Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmica Tema 3 y 4
Algoritmica Tema 3 y 4
Estructuras de Control
Integrantes:
David Alejandro Montes Mendez. C.I. 28.387.069 Telf.: 0412-026.46.26
Danielis Guzman Leon C.I. 16.880.982 Telf.: 412-376.75.22
Josué Abraham Muñoz Zambrano C.I. 29.100.456 Telf.: 0412-555.70.02
Juan Carlos Gabriel Navas González C.I. 28.326.698 Telf.: 0412-308.29.46
if (condición)
{
Bloque de código que se ejecuta si la condición es verdadera
} else {
Bloque de código que se ejecuta si la condición es falsa
}
Por ejemplo, la siguiente sentencia if comprueba si una variable edad es mayor o igual
que 18. En el “ if “primero verifica si la condición se cumple (verdadero), si lo es, se
ejecuta el bloque de código, si no se cumple (falso), ejecuta el bloque de código“ else “
El operador ternario es una forma concisa de escribir una condición y asignar un valor en
función de si la condición se cumple o no. Es parecida a la condicional if, es usada si se
necesitas dos resultados posibles, si necesitas escribir más líneas de código, es mejor
utilizar la sentencia if.
Condicional Swicht
Switch (expresión)
{
case value1:
código a ejecutar si expresión es igual a value1
break;
case value2:
código a ejecutar si expresión es igual a value2
break;
default:
código a ejecutar si no coincide con ningún case anterior
break;
}
Elementos:
case valueX: Cada case especifica un valor posible de la expresión. Los valores
en los case deben ser únicos y distintos.
break: Esta es una palabra clave opcional que indica que se debe salir del switch
después de ejecutar el código del case correspondiente. Si no se utiliza, el control
fluye al siguiente case a menos que una instrucción lo detenga.
int numero;
Ciclo While
Un ciclo while es una estructura de control que permite a un programa ejecutar un bloque
de código repetidamente, mientras que una condición sea verdadera
while (condición)
{
Bloque de código que se ejecuta repetidamente
}
La condición se evalúa al comienzo de cada iteración del ciclo. Si la condición es
verdadera, el bloque de código se ejecuta. Si la condición es falsa, el ciclo se termina.
Por ejemplo, el siguiente código utiliza un ciclo while para imprimir los números del 1 al
10:
Se puede expresar una variable ( i ) con un valor asignado ( 1 ), donde la condición es: si “
i “ es menor o igual a 10. Si esta condición se cumple, el bloque de código se ejecutará
hasta que esta condición sea falsa. Dentro del bloque de instrucciones, se suma un
incremento de 1 a la variable i (i++) para que el valor aumente hasta que este sea mayor
a 10 y se finalice el ciclo.
Es importante colocar “ std::endl; “ para que esa línea se finalice y el siguiente ciclo se
ejecute en la siguiente línea.
int i = 1;
Ciclo Do-While
Diferencia del while y do-while
Do
{
Bloque de código
} while (condición)
int i = 1;
do {
std::cout << i << std::endl;
i++;
} while (i <=10);
Ciclo for
Un ciclo “ for “es una estructura de control iterativa, que nos permite ejecutar de manera
repetitiva un bloque de instrucciones, conociendo previamente un valor de inicio, un
tamaño de paso y un valor final para el ciclo.
Se puede ver que el valor final es de 20, entonces se leería de esta manera: i es menor o
igual a 20 (verdadero): se ejecuta el código, cambiando el valor de i que es de 0 a 2,
sucesivamente hasta que llegue a 20.
int i=0;
{
cout << i <<std :: endl;
}
Funciones
Una función en es un bloque de código que realiza una tarea específica. Una función
puede ser llamada desde cualquier parte del programa, lo que permite dividir el programa
en partes más pequeñas y manejables. Una función puede hacer las mismas acciones
que un programa.
Elementos:
Prototipo
Para nosotros crear una función, se debe declarar encima de la función principal (main), y
definirla debajo de la función principal (main), es decir, le decimos al programa que existe
una función llamada suma (a esto se le llama prototipo), declarada encima de la función
principal y se realiza la operación por debajo, sea una suma, resta o lo que vayamos a
ejecutar dentro de esa función. Debemos tener en cuenta que en la “Definicion” de la
función, debe retornar un valor “return”, es decir que dentro de la función principal main,
cuando vayamos a llamar la función, que en este caso es suma, se le debe colocar el
valor de la suma en el “return” de la definición, de esta manera, la función podrá retornar a
la función principal, y darnos los valores de operación que se hicieron dentro de la función
“suma”.
Se coloca numero1 y numero2 porque ahí es donde el usuario está colocando los
números a sumar. También debemos tener en cuenta que el orden como se coloque las
variables dentro de los paréntesis en la “llamada” es el mismo orden como lo va a tomar la
función que estemos llamando, es decir, si en la llamada de la función colocamos dentro
del paréntesis (numero1, numero2), en la operación de la función “suma”, lo tomara como
“a” para numero1 y “b” para numero2.
Ahora solo lo se muestra por pantalla el resultado, y de esta manera tenemos una función
de suma sin necesidad de tener ese código dentro de la función principal.
int main()
{
int numero1, numero2;
cout << "Introduzca el primer número: ";
cin >> numero1;
cout << "Introduzca el segundo número: ";
cin >> numero2;
Funcion Void
En ocasiones una función no necesita devolver ningún valor y, por tanto, no es obligatorio
usar return.
Para ello, debemos definir la función con un tipo especial llamado void.
Ejemplo.
En este caso solo se desea mostrar un mensaje en cadena, no necesita retornar ningún
valor, solo se llama la función, y se muestra lo que esta en el bloque de código.
Ejemplo
int main()
{
imprime_mensaje_inicial(); //Solo se necesita llamar la función y mostrar lo que este
dentro.
}
Paso de Argumentos
Paso por valor: En este paso, los argumentos se copian en la pila de la función. Esto
significa que la función recibe una copia de los datos originales, y cualquier cambio que
realice en la copia no afectará a los datos originales.
Paso por referencia: En este paso, se pasa una referencia a los datos originales. Esto
significa que la función puede acceder y modificar directamente los datos originales.
Sintaxis:
Paso por valor:
tipo nombre_de_la_funcion(tipo argumento1, tipo argumento2)
int main() {
int x = 10;
incrementa(x);
return 0;
}
void incrementa(int a)
{
a++;
cout<<” ”<<a; // El valor de a es 11, ya que toma la x por valor y le realiza el
incremento que se está pidiendo.
}
int main()
{
int x = 10;
incrementa(x);
std::cout << "El valor de x es: " << x << std::endl; // El valor de x sigue siendo 10, no
hay modificación
return 0;
}
Valores de retorno
El valor de retorno de una función es un valor que se devuelve a la función que la llamó.
Este valor puede ser de cualquier tipo, incluyendo tipos primitivos, tipos de puntero, tipos
de referencia y tipos complejos.
Las funciones que devuelven un valor deben especificar el tipo de valor devuelto en su
declaración
1. Ejemplo
Por ejemplo, la siguiente función devuelve un valor entero:
La función sumar() devuelve la suma de los valores de los argumentos a y b.
Para devolver un valor de una función, se utiliza la instrucción return. La
instrucción return puede tener una expresión como operando. La expresión se
evalúa y su valor se devuelve a la función que llamó.
2. Ejemplo
C++
float sumar(int a, int b) //Se declara variables de tipo entero
{
return (float)a + (float)b; //Retorna valores de tipo flotante
}
3. Ejemplo
Las funciones que no devuelven ningún valor se declaran con el tipo de retorno
void. Por ejemplo, la siguiente función no devuelve ningún valor:
C++
void imprimir(const char* mensaje)
{
cout << mensaje; //No retorna valores
}
Macros
Una macro es una porción de código que se sustituye por su valor durante el proceso de
compilación. Las macros se definen mediante el símbolo.
Ejemplo:
int main()
{
cout<<”El valor del macro es: "<< VALOR_MACRO;
}
int main()
{
cout<<"El numero mayor entre 1 y 5 es: %d", maximo(1,5);
}
Esto puede ser útil si tienes que escribir varias veres el mismo código y quieres ahorrar
tiempo de tipeo, o bien, si quieres que sea más legible.
Recursividad
La recursividad es un concepto fundamental en matemáticas y computación que permite
definir una función en términos de sí misma. En C++, una función recursiva es una función
que llama a sí misma.
Ejemplo:
int factorial(int n)
{
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
Si n == 0, entonces el factorial de n es 1.
De lo contrario, el factorial de n es n multiplicado por el factorial de n - 1.
La función factorial() se llama a sí misma hasta que n es igual a 0. En este punto, la
función devuelve 1.
Las funciones recursivas pueden ser una forma eficiente de implementar algoritmos
complejos. Sin embargo, es importante utilizarlas con cuidado para evitar bucles infinitos.
Para que una función recursiva sea correcta, debe tener una condición de terminación. La
condición de terminación es una condición que indica que la función ha alcanzado un
punto en el que puede dejar de llamarse a sí misma.
#include <iostream>
using namespace std;
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main()
{
cout<<"factorial es: "<<factorial(7);
}
Bibliografías
Sentencia if
https://www.mclibre.org/consultar/php/lecciones/php-estructuras-control-condicional-if.html
Ternario
https://es.stackoverflow.com/questions/384162/qu%C3%A9-hace-el-operador-en-c
Swicht
While
Do-while
For
https://www.programarya.com/Cursos/C++/Condicionales/Condicional-switch
Funciones
https://www2.eii.uva.es/fund_inf/cpp/temas/8_funciones/funciones.html
Paso de argumentos
Valores de retorno
Macros
https://gbenussi.wordpress.com/2013/07/29/macros-en-c-y-c/
Recursividad
https://bard.google.com/chat/4f87341f96f73f27