0% encontró este documento útil (0 votos)
58 vistas21 páginas

CursoLenguajeProgramacion 0610

Este documento describe el curso de Programación I, el cual consta de 4 unidades que cubren temas como algoritmos, procesamiento de archivos, pilas, colas, listas y árboles. La unidad 1 se enfoca en algoritmos, programación y tratamiento de datos como arreglos, funciones, cadenas de caracteres y apuntadores.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
58 vistas21 páginas

CursoLenguajeProgramacion 0610

Este documento describe el curso de Programación I, el cual consta de 4 unidades que cubren temas como algoritmos, procesamiento de archivos, pilas, colas, listas y árboles. La unidad 1 se enfoca en algoritmos, programación y tratamiento de datos como arreglos, funciones, cadenas de caracteres y apuntadores.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 21

CURSO: LENGUAJE DE PROGRAMACIÓN I

(Código SYC 10155; 5 UC)


Prof: Leonardo Alvarado

Objetivo General:
Emplear las diferentes herramientas de estructura de programación para resolver problemas de sistematización de
procesos.

UNIDAD 1: Algoritmo, programación y tratamiento de datos

UNIDAD 2: Procesamiento de archivos y pilas

UNIDAD 3: Colas, listas y árboles

UNIDAD 4: Desarrollo de Proyecto

UNIDAD 1: ALGORITMO, PROGRAMACIÓN Y TRATAMIENTO DE DATOS


Objetivo de la unidad: Describir tratamientos de datos, cadenas de caracteres y apuntadores.

1.1 Arreglos, funciones y procedimientos.


 Introducción (Conceptos básicos, repaso C++).
 Funciones y procedimientos.
 Arreglos.

1.2 Cadenas de caracteres:


 Concepto y características.
 Longitud de una cadena, operaciones con cadenas.
 Procedimientos y funciones para tratamiento de cadenas.

1.3 Apuntadores:
 Introducción.
 Declaración sintáctica de un puntero.
 Apuntadores y funciones.
 Expresiones y aritmética.
 Método de ordenamiento.

INTRODUCCIÓN

Qué es una computadora: Una computadora es un dispositivo electrónico programable, utilizado


para procesar información (datos de entrada) y generar resultados que son enviados a las unidades
de salida. Este dispositivo es capaz de realizar miles de millones de operaciones en segundos y son
procesados bajo el control de un programa de computación.

Una computadora está constituida por dos partes fundamentales: Una parte tangible (hardware)
formada por circuitos integrados, cables, monitores, teclados, etc., y los programas, o el conjunto de
instrucciones que controlan y coordinan los componentes del hardware. El proceso de creación de
un software o programa es llamado programación y es realizado por programadores

El software se puede dividir en dos tipos:


(a) Software del sistema: Sirve de base para controlar e interactuar con el hardware y con otros
programas y es indispensable para que la máquina funciones ejemplos son los sistemas operativos
(Microsoft Windows, Linux, Mac OS), los controladores (permiten al SO interactuar con los
periféricos), y los compiladores (que traducen un lenguaje de programación a lenguaje de
máquina).

(b) Software de aplicaciones: Son programas escritos para ejecutar tareas específicas, por ejemplo:
Word, Excel, Calibre (gestión de libros), VLC (reproductor multimedia)

Algoritmos
Un algoritmo se puede definir como una secuencia instrucciones precisas, definidas y finitas que
produce un resultado en un tiempo finito. Es utilizado para resolver un problema mediante la
computadora. El algoritmo no debe confundirse con el programa, este último contiene las
instrucciones para la resolución del problema escritas en un lenguaje de programación.

Ejemplos:
 Las instrucciones para descomponer un número en factores primos.
 Ordenar una lista de números
 Sumar polinomios

Tipos de Lenguajes:

Un lenguaje de programación es un sistema estructurado y diseñado principalmente para dar


instrucciones a las computadoras. Los programas se pueden escribir usando diversos lenguajes de
programación algunos son comprendidos directamente por la computadora mientras que otros
requieren ser traducidos.

Los lenguajes de programación se pueden clasificar en tres tipos:


 Lenguajes de máquinas
 Lenguajes de bajo nivel o ensambladores
 Lenguajes de alto nivel

Lenguajes de máquina: código máquina es un lenguaje directamente interpretable por el


microprocesador de una computadora, consiste en cadenas de números que finalmente terminan en
unos y ceros. El lenguaje de máquina es específico de la arquitectura de la máquina, aunque el
conjunto de instrucciones disponibles pueda ser similar entre arquitecturas distintas arquitecturas.
(Wikipedia)

En este ejemplo de lenguaje de máquina se imprime 100 veces en pantalla la letra “A”
169 1 160 0 153 0 128 153 0 129 153 130 153 0 131 200 208 241 96

Lenguajes de bajo nivel o ensambladores: Las instrucciones son escritas como abreviaturas en
inglés llamadas nemotécnicos por ejemplo: Mov, Add, Sub, End. Se requiere un traductor para
llevarlo a lenguaje de máquina, a este traductor se le llama Ensamblador. Algunos ejemplos de
lenguaje ensamblador: TASM (Turbo Assembler de Borland), MASM (Microsoft Macro
Assembler), NASM (Netwide Assembler - Libre). El ensamblador era el lenguaje principal para los
sistemas de videojuegos antiguos, como Sega, Atari 2600 y NES.

Lenguajes de alto nivel: Son lenguajes más comprensibles por los humanos, diseñados para que
las personas tengan una mayor compresión. Además, los lenguajes de programación de alto nivel
son independientes de las máquinas.
Algunas ventajas:
 Tiempo de aprendizaje corto comparado con los otros lenguajes
 Depuración más sencilla
 Mayor portabilidad

Algunas desventajas:
 Mayor tiempo de ejecución
 Ocupa más memoria

Figura 1: Ventajas de los lenguajes compilados (https://xkcd.com/303/)

Los lenguajes de alto nivel necesitan de un traductor que los convierte a lenguaje de máquina, este
traductor puede ser un compilador o un intérprete.

Los lenguajes compilados utilizan un programa llamado compilador para la traducción del código
fuente a lenguaje de máquina; el resultado es un código objeto entendible por la computadora
llamado archivo ejecutable. Ejemplos de lenguajes compilados: Fortran, C, C++, Go, Rust.

El lenguaje interpretado es convertido a lenguaje de máquina a medida que es ejecutado,


ejemplos: PHP, JavaScript, Ruby, Python, Matlab, Bash.
Figura 2. Listado de 26 programas más conocidos, ordenados por tiempos de ejecución, uso de
memoria y consumo de energía (Rui et al., 2017)

INTRODUCCIÓN AL LENGUAJE C++

¿Por qué C++?


 C++ es un lenguaje fue creado en 1979 y lleva más de 30 años en el mercado, ocupa los
primeros lugares en los índices de popularidad basado en las búsquedas y consultas en la
web (p. ej. TIOBE, PYPL o Popularity of Programming Language).
 Mucho soporte en foros de consulta (Stack Overflow, YouTube, etc.).
 Hay muchas aplicaciones y programas escritos en C++, muy utilizado por las grandes
empresas de tecnología.
 Es un lenguaje es orientado a procedimientos y a objetos (paradigmas de programación).
 Es un lenguaje muy solicitado en ofertas de empleo.
Figura 3: Lenguajes de programación más populares septiembre 2022 (índice TIOBE
https://www.tiobe.com/tiobe-index/)

Instrucciones para instalar el compilador y ejecutar programas de C++ en Windows 10:

1. Descargar e instalar el compilador MinGW una vez descargado iniciar la instalación; luego
de lo cual se abrirá una ventana Installer Manager y se seleccionan los paquetes básicos.
2. Una vez instalado se agrega la ruta a la variable de entorno del sistema Path; para ello se
busca en el inicio la palabra “variables” y se agrega la ruta C:\MinGW\bin
(IMPORTANTE: NO MODIFICAR NADA SOLO AGREGAR UNA NUEVA
LÍNEA)
3. Descargar e instalar cualquiera de los siguientes editores de código: Notepad++, Sublime
Text, Atom, Visual Studio Code.
4. Crear una carpeta en lugar y el nombre deseado. Luego se escribe el código del programa
en C/C++ y se guarda en la carpeta creada.
5. Abrir un terminal o consola de sistema de Windows, ir a menú inicio, escribir cmd
(símbolo de sistema).
6. Moverse hasta el directorio donde se encuentra el código fuente escribiendo, por ejemplo,
cd C:\Curso_Programacion\Codigo
7. Compilar escribiendo en el terminal escribiendo g++ nombre_cod.cpp -o salida_cod.exe
8. Finalmente, para ejecutar el programa escriba salida_cod.exe

En Linux y Mac Os el compilador g++ ya viene instalado.


Análisis de un código C++
A continuación, vamos a analizar el código sencillo en C++ que imprime líneas de texto en pantalla;
en la figura 4 se muestra el código fuente:

// Impresión en pantallas de
// varias instrucciones

#include <iostream>

int main()
{
std::cout << "Bienvenidos al curso:\n";
std::cout << "Lenguajes de Programacion I";

return 0;
}
Figura 4. Código fuente un programa simple en C++

1.
// Impresión en pantallas de
// varias instrucciones

Estas líneas representan comentarios utilizados para documentar el programa, en C++ los
comentarios comienzan con “//” (doble barra o slash), también se puede usar “/*” para comenzar y
“*/” para terminar un comentario que ocupe varias líneas.

2.
#include <iostream>

La expresión anterior se llama directiva de preprocesador y le dice al programa que incluya el


contenido del archivo iostream (que es una biblioteca estándar de C++), el cual permite tener acceso
a las funciones y clases para realizar tareas en este caso los dispositivos de entrada y/o salida (cin,
cout), es decir, permite que se introduzcan o se devuelvan datos.

3.
int main()
{
std::cout << "Bienvenidos al curso:\n";
std::cout << "Lenguaje de Programacion I";

return 0;
}

La expresión main() es la función principal, todo programa en C++ debe contener una función
main. La palabra int, indica el tipo de valor devuelto por la función, en este caso es un entero. En la
siguiente línea se presenta el bloque de instrucciones o sentencias que se ejecutan encerradas entre
llaves.
4
std::cout << "Bienvenidos al curso:\n";

Las llaves encierran el cuerpo de la función el cual contiene las instrucciones que se ejecutarán. La
expresión std:cout indica que se usará la función cout de la biblioteca estándar, esta instrucción
junto con “<<” imprime el texto “Bienvenidos al curso:\n”, en pantalla. La expresión ‘\n’ se
llama secuencia de escape e indica que se debe crear una nueva línea. La instrucción termina con
punto y coma “;”

Finalmente, la palabra clave return se utiliza para salir de la función en este caso la función retorna
el valor “0”.

Tipos de datos:
C++ es un lenguaje de programación fuertemente tipado, esto quiere decir que las variables que se
utilicen deben ser, es decir, hay que indicar el nombre y el tipo de variable declaradas antes de ser
utilizadas. Los tipos de datos fundamentales en C++ son los siguientes:

 Booleanos: Representa dos valores: Verdadero: true (1) o Falso: false (0)
 Char: Representa un carácter o también un entero
 Numéricos: Dentro de los datos numéricos se tienen varios tipos
▪ Enteros: short, long, long long
▪ Números en coma flotante: float, double, long double

Estos datos ocupan un determinado tamaño en memoria, en la tabla 1 se muestra el número de bits
(8 bits = 1 byte) y el rango de valores que comprende cada tipo de dato. En el caso de los números
decimales se muestra el valor más pequeño y el más grande que se puede representar. La mayoría de
las veces, para los datos de tipo entero se puede usar el tipo de dato int que incluye los datos tipo
short y long.

Tabla 1. Tipos de datos fundamentales


Tamaño en
Tipo bits Rango de valores
bool 8 0 (false) 1 (true)
char 8 -128 128
short (int) 16 -32.768 32.767
long (int) 32 -2.147.483.648 2.147.483.647
long long (int) 64 -9.223.372.775.808 9.223.372.775.807
float 32 1,2E-38 3,402923E+38
double 64 2,2E-308 -1,7976931E+308
long double 96 3,3E-4932 +1,2E+4932
El tamaño del datos se da en bits (8 bits = 1 byte)
Variables
Es un lugar en la memoria RAM de la computadora, utilizado para guardar un determinado tipo de
información. Cada variable tiene asociado un nombre o identificador, un tipo y un valor. Por
ejemplo, la variable int num1=25, tiene por nombre “num1”, es del tipo entero (int o integer) y su
valor es 25. En los lenguajes compilados tal como C/C++, es necesario declarar las variables antes
de poder trabajar con estas. La forma de declarar variables.

 int num1; (se declara la variable num1 de tipo entero)


 int x=10; (se declara la variable x de tipo entero y le asigna el valor de 10)
 double sueldo; (se declara la variable sueldo de tipo double)

Operadores:
Los operadores son signos que representan operaciones básicas entre datos. En C++ lo operadores
pueden ser de varios tipos:

Operadores aritméticos
 Suma (+)
 Resta (-)
 Multiplicación (*)
 División (/)
 División entera (%) representa el resto de la división; ejemplo
8%4 devuelve 0 (el resto de la división); 8%3 devuelve 2

Operadores de relación:
Comparan expresiones y devuelven 1 (True) o 0 (False)
 Menor que <
 Mayor que >
 Menor o igual que <=
 Mayor o igual que >=
 Idéntico a ==
 Diferente a !=

Operadores Lógicos
 And (y lógico) &&
 Or (o lógico) | |
 Not (negación) !

Ejemplo uso de los diferentes operadores


Supongamos que x = 8; f= 9.3; c=’y’ las siguientes expresiones

 ( x > 5) && ( c == ’y’) : la expresión es cierta y devuelve el valor 1


 ( x > 5) && ( c == ’p’) : la expresión es falsa y devuelve el valor 0
 ( x > 5) | | ( c == ’p’) : la expresión es cierta y devuelve el valor 1
 ( f < 3.14) | | ( c == ’p’) : la expresión es falsa y devuelve el valor 0

Operadores de asignación
 Igual (=): x=10 asigna el valor de 10 a la variable x
 Más igual (+=): x+=5 equivale a x=x+5
 Menos igual (- =): x- =3 equivale a x=x-3
 Por igual (*=): x*=2 equivale a x=x*2
 Dividido igual (/=): x/=5 equivale a x=x/5
Operadores de incremento o decremento
 Incremento ++: x++ equivale a la expresión x+=1 es decir incrementa en 1 el valor de la
variable
 Decremento - - : x-- equivale a la expresión x-=1, es decir disminuye en 1 el valor de la
variablesSi un operador de incremento ++ (o decremento - -) se coloca antes de una variable
p. ej. ++x, se le llama preincremento (o predecremento), esto ocasiona que la variable se
incremente en 1 (o disminuya en 1) y después el nuevo valor de la variable se utiliza.

Si un operador de incremento ++ (o decremento - -) se coloca después de una variable p. ej. x-- se


le llama posincremento (o posdecremento), esto hace que el valor actual de la variable se utilice y
luego se incremente en 1 (o disminuya en 1).

Ejercicio de programación
El siguiente programa muestra el uso de los operadores ++ para preincrementar y postincrementar
la variable c.

// Uso de los operadores de


// preincremento y posincremento.
// Ejemplo modificado del libro: Como programar C++, Deitel & Deitel
#include <iostream>

using namespace std;

int main()
{
int c; // declara la variable

// demuestra el posincremento
c = 5; // asigna 5 a c
cout << "Posincremento muestra el valor de c y luego incrementa en 1" << endl;
cout << " c : " << c << endl; // despliega 5
cout << "c++ : " << c++ << endl; // despliega 5 y después posincrementa
cout << " c : " << c << endl << endl; // despliega 6

// demuestra el preincremento
c = 5; // asigna 5 a c
cout << "Preincremento incrementa en 1 el valor de c y luego muestra el valor
incrementado" << endl;
cout << " c : " << c << endl; // despliega 5
cout << "++c : " << ++c << endl; // preincrementa y después despliega 6
cout << " c : " << c << endl; // despliega 6

return 0;

}
Figura 5. Ejercicio de programación, demuestra el uso de los operadores de preincremento y
postincremento
Estructuras de Control en C++
Las estructuras de control controlan la secuencia de ejecución de un conjunto de instrucciones o de
instrucciones individuales en un bloque o unidad, se dividen en tres tipos:
 Estructuras de secuencia
 Estructuras de selección: if, if/else, switch
 Estructuras de repetición: while, do while, for

Estructuras de secuencia:
El conjunto de instrucciones o sentencias que se van ejecutando en orden una a continuación de la
otra.
{
Instruccion1
Instrucción 2
Instrucción 3

}

Estructuras de selección if, if/else, if / else if /else: Ejecuta una instrucción si se cumple cierta
condición, la sintaxis es la siguiente

 if

if (condicion)
instrucción;

Si son varias instrucciones las instrucciones van entre llaves “{}”

if (condición) {
instruccion1;
instruccion2;
instruccion3;
}

 if/else

if (condición1)
instruccion1;
else
instruccion2;

 if/else if/else

if (condición1)
instruccion1;
else if (condicion2)
instruccion2;
else if (condicion3)
instruccion3;
else
instruccion4;
Ejemplo1: Uso de if
int calificacion;
cout <<"Ingrese la calificación del estudiante";
cint >> calificación;

if (calificacion>=10)
cout<< "El estudiante aprobó la materia";

if/else: Ejecuta una instrucción si se cumple la condición si no se cumple ejecuta otra instrucción

Ejemplo 2: Uso if /else


int calificacion;

cout <<"Ingrese la calificación del estudiante";


cint >> calificación;

if (calificaion>=10)
cout<< "El estudiante aprobó la materia";
else
cout << "El estudiante reprobó";

Ejemplo 3: Uso if/ else if / else


#include <iostream>

using namespace std;


int main() {

int calificacion;

cout <<"Ingrese la calificación del estudiante: ";


cin >> calificacion;

if (calificacion==20)
cout<< " Superior \n";
else if (calificacion >= 18)
cout << "Excelente \n";
else if (calificacion >= 16)
cout << "Muy bueno \n";
else if (calificacion >= 14)
cout << " Bueno \n";
else if (calificacion >= 10)
cout << "Puedes mejorar \n";
else
cout << "Reprobado \n ";

return 0;
}
Estructura de selección switch
Permite seleccionar una instrucción entre múltiples alternativas de acuerdo al valor de la variable
que puede ser del tipo char o int. La sintaxis del condicional switch es la siguiente:

switch (opción)
{
case valor1:
Instrucion1;
break;

case valor2:
Instrucion2;
break;

case valor3:
Instrucion3;
break;

default:
Instrucion4;

El siguiente ejemplo pide introducir un número entero entre 1 y 7, dependiendo del número entero
la salida será la impresión en pantalla del día correspondiente.
Ejemplo uso de switch
#include <iostream>
using namespace std;
int main() {
int diasemana;

cout <<"Ingrese un numero correspondiente entre 1 y 7 ";


cin >> diasemana;

switch (diasemana)
{
case 1:
cout<<"Lunes\n";
break;

case 2:
cout<<"Martes\n";
break;

case 3:
cout<<"Miercoles\n";
break;

case 4:
cout<<"Jueves\n";
break;

case 5:
cout<<"Viernes\n";
break;

case 6:
cout<<"Sabado\n";
break;

case 7:
cout<<"Domingo\n";
break;

default:
cout << "No corresponde a ningun dia de la semana";
break;
}

return 0;
}
Estructuras de repetición:
También llamados ciclos o bucles permiten repetir una acción mientras cierta condición sea
verdadera, En C++ existen 3 estructuras de este tipo
 while
 do/ while
 for

Estructura de repetición while: El bucle o ciclo while repite una instrucción o serie de
instrucciones hasta que se satisface una condición, esta condición es una expresión lógica.

La sintaxis del ciclo while es la siguiente:

while (condición lógica)


instrucción;

Si son varias instrucciones, estas se encierran entre llaves

while (condición lógica) {


instruccion1;
instrucción 2;
instrucción 3;
….

Ejemplo de uso estructura de repetición while

// Uso de estructura while


#include <iostream>

using namespace std;

int main(){
int suma=0;
while (suma<=100){
cout<< "La suma es : "<< suma << endl;
suma+=10;
}

}
Estructura de repetición do/while: El bucle o ciclo do/while es semejante al ciclo while, ambas
estructuras repiten una instrucción (o serie de instrucciones) hasta que se satisface una condición;
la diferencia es que la evaluación de la condición se hace después que la instrucción se ejecuta, lo
que le permite ejecutarse al menos una vez.

Sintaxis de la estructura do/while

do
instrucción;
while (condición);

Si son varias instrucciones

do {
instrucción;
instrucción;
instrucción;

} while (condición);

Ejemplo uso de la estructura do/while, compare las dos estructuras inicializando la variable suma
con un valor superior a 100
// Uso de estructura do/while
#include <iostream>

using namespace std;

int main(){
int suma=0;
do {
cout<< "La suma es : "<< suma << endl;
suma+=10;
} while (suma<=100);

return 0;

}
Estructura de repetición for: Es un tipo de estructura controlada por un contador, la sintaxis
incluye tres expresiones que indican: el valor inicial del contador, otra que indica si se continúa o
no y la tercera que permite que el contador se modifique.

Sintaxis de la estructura for

for ( int contador =1; contador <=10; contador++)

Las tres expresiones entre paréntesis son:


 int contador :Se declara la variable, contador como entero con valor inicial en este caso 1
 contador <=10 :Se evalúa si la condición se cumple o no
 contador++ :Incrementa el valor de la variable contador en una unidad

Ejemplo de ciclo for, muestra en pantalla el valor que va tomando el contador y luego el valor
multiplicado por 2

// Uso de estructura de repiticion for


#include <iostream>

using namespace std;

int main(){

for (int cont=1; cont<=20; cont++) {


cout << cont <<" multiplicado por 2 " << " = "<< 2*cont << endl;
}
return 0;
}
Estructura de Datos
La calidad de un algoritmo puede afectar el rendimiento de un software y la forma como se
introducen los datos tiene un papel muy importante allí intervienen las estructuras de datos. Una
estructura de datos es una forma particular de organizar datos (información) en una computadora
para que puedan ser utilizados de manera eficiente. Existen diversos tipos de estructuras por
ejemplo arreglos (arrays), cadenas de caracteres (strings), listas (lists), colas (queue), árboles,
grafos, etc.

Los datos se pueden clasificar en dos tipos:

Datos Simples: Ocupan una casilla o celda en memoria: enteros (integer), reales (real), carácter
(char), lógico (boolean)

Datos estructurados: Son datos en los que con un nombre o identificador se hace referencia a un
grupo de celdas o casilla en memoria, ejemplos de datos estructurados Arreglos (arrays), cadenas de
caracteres (strings), listas enlazadas, pilas, colas, árboles, grafos.

FUNCIONES Y PROCEDIMIENTOS
Una función es un conjunto de procedimientos encapsulados en un bloque o módulo, estas
instrucciones se utilizan para resolver problemas específicos. En C++ todo programa consta de una
o más funciones y una de ellas se debe llamar main. Las funciones pueden recibir o no parámetros y
retornar un valor, en caso de que la función no retorne valores se denomina procedimiento o no.

Existen varios tipos de funciones:


Funciones propias (built-in functions): Estas funciones están definidas en la biblioteca
matemática en C++ math.h. Algunas de estas funciones se muestran en la figura 4.

Figura 6. Algunas funciones propias definidas en la biblioteca math.h (cmath) de C++

Funciones definidas por el usuario: Creadas por el usuario para resolver problemas específicos la
sintaxis es la siguientes
Para definir una función en C++ se utiliza la siguiente sintaxis

tipodato nombrefuncion (tipo1 param1, tipo2 param2, tipo3 param3,...){

<bloque de instrucciones>;

return valor;
}
Figura 6. Sintaxis para declarar una función en C++

 tipodato: representa el tipo de datos que retorna la función


 tipo1 param1, tipo 2 param2, …: representa los tipos de datos y argumentos, se pueden usar
tanto como se deseen. Si no se indica el tipo de datos se suponen enteros, sin embargo,
siempre es recomendable indicar el tipo de dato.
 <bloque de instrucciones>: Representa el cuerpo de la función y contiene las instrucciones
que se ejecutarán cuando se llame a la función.
 return: Esta instrucción devuelve la información hasta el punto desde donde se llamó la
función. Cualquier instrucción que se encuentre después de return, no se ejecuta (una
función puede tener varias instrucciones return). El tipo de valor que se retorna debe
coincidir con el tipo declarado a la función.

Ejemplo función que devuelve el mayor de tres números

double mayor_tres_numeros(double x, double y, double z){

double mayor=x;

if (y > x)
mayor = y;

if (z > mayor)
mayor = z;

return mayor;
}

Ejemplo uso de varias instrucciones return

double valor_cero(double n){

if (n==0){
cout << "El valor de n es 0";
return 0;
}

cout << "El valor de n es diferente de 0";


return n;
}
Prototipo de funciones:
Los prototipos de funciones se escriben antes de las funciones definidas por el programador, el
prototipo le indica al compilador el nombre tipo de datos que retorna, número de parámetros que se
esperan recibir, son obligatorios en C++. Para el ejemplo de la figura 6 el prototipo

double mayor_tres_numeros(double n1, double n2, double n3);

Llamadas de la función
La llamada o invocación de una función se realiza desde cualquier parte del código y para ello se
escribe el nombre de la función y los valores de los parámetros. Por ejemplo:

mayor_cero(3.5, 10, 9.8);

Algunos detalles a tomar en cuenta son los siguientes:


El nombre de la función debe coincidir con el nombre que se da al invocarla, deben coincidir el
orden y el tipo de parámetros, cada parámetro va separado por comas (,), la llamada a la función
debe terminar con punto y coma (;).

Parámetros y argumentos:
Parámetros: representan las variables dentro de los paréntesis en la definición de la función mientras
que los argumentos son los valores que se envían a la función cuando esta es llamada.

Funciones recursivas:
Una función recursiva es una función que se llama así misma de forma repetida hasta que se
satisface una condición, esta función solo resuelve casos bases, si la función se le llama en el caso
base la función devuelve un resultado, en un caso más complicado la función replantea el caso más
complicado en un caso más sencillo y se vuelve a llamar a la función para resolver este caso menos
complicado, este proceso es realizado de manera recursiva hasta que la función alcance el caso
base. En el siguiente código se muestra como resolver de manera recursiva el factorial de un
número n.

El factorial de un número n se escribe como n! y se resuelve de la siguiente manera

n! = n*(n-1)*(n-2)*(n-3)* …*2*1
por ejemplo
7=7*6*5*4*3*2*1.

Veamos cómo se plantea este problema de forma recursiva.


Ejemplo cálculo del factorial de un número N de manera recursiva

// Se explica el concepto de recursividad de una función


// calculando el factorial del número N
// N! = N*(N-1)*(N-2)*(N-3)*...*2*1

#include <iostream>
double factorial(int);

using namespace std;


int main() {
int N;
cout << "Introduzca el número N : \n";
cin >> N;

cout<< "El factorial de N es: " << factorial(N) << endl;

double factorial(int n) {
double fact=1;

if (n==1 || n==0 )
fact=1;
else
fact=n*factorial(n-1);

return fact;
}

Escribir la función factorial de manera que imprima en pantalla los factores que se multiplican y el
resultado, por ejemplo
Factorial(5)

Imprime en pantalla

5*4*3*2*1=120
Bibliografía principal

 Joyanes, A. y Zahonero, I. (2005). Programación en C. Metodología, algoritmos y


Estructuras de Datos. España: Mc Graw Hill – Interamericana.
 Joyanes, A. (2003). Fundamentos de Programación. Algoritmos, Estructuras de Datos y
Objetos. Tercera Edición. España: Mc Graw Hill – Interamericana.
 Wirth,N.(1999). Algoritmos+Estructuras de Datos = Programas. Dossat, S.A.
 Charte, F. (2004). Programación. Introducción a la Programación. Anaya Multimedia.
 Farrell, J. (2001). Introducción a la Programación: Lógica y Diseño. México:
International Thomson Editores, S.A.
 Cairo, O. y Guardati, S. (2002). Estructura de Datos. México: Mc Graw Hill -
Interamericana.
 Correa, G. (1998). Desarrollo de Algoritmos y sus Aplicaciones en BASIC, PASCAL,
COBOL, y C. México: Mc Graw Hill.
 Deitel, Harvey, y Deitel, Paul (2003). Cómo programar en C++. México: Pearson Prentice
Hall.

Bibliografía complementaria

 Pereira, Rui & Couto, Marco & Ribeiro, Francisco & Rua, Rui & Cunha, Jácome &
Fernandes, João & Saraiva, João. (2017). Energy efficiency across programming
languages: how do energy, time, and memory relate? 256-267.
Doi: 10.1145/3136014.3136031.
 Wikilibros: Programación en C++ [consulta: septiembre 2022]. Disponible en
<https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B>
 Curso de Programación en C++ Píldoras Informativas (YouTube)
https://www.youtube.com/watch?v=EaTeni7YCyM&list=PLU8oAlHdN5BmoxxnllWdZfRc
ffMPCNck5&index=1

También podría gustarte