Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Las sentencias de decisión o también llamadas de CONTROL DE FLUJO son estructuras de control
que realizan una pregunta la cual retorna verdadero o falso (evalúa una condición) y selecciona la
siguiente instrucción a ejecutar dependiendo la respuesta o resultado.
En algún momento dentro de nuestros algoritmos, es preciso cambiar el flujo de ejecución de las
instrucciones, es decir, el orden en que las instrucciones son ejecutadas. Muchas de las veces
tenemos que tomar una decisión en cuanto a que se debe ejecutar basándonos en una respuesta
de verdadero o falso (condición).
La ejecución de las instrucciones incluyendo una estructura de control como el condicional
funcionan de esta manera:
Las instrucciones comienzan a ejecutarse de forma secuencial (en orden) y cuando se llega a una
estructura condicional, la cual esta asociada a una condición, se decide que camino tomar
dependiendo siempre del resultado de la condición siendo esta falsa o verdadera.
Cuando se termina de ejecutar este bloque de instrucciones se reanuda la ejecución en la
instrucción siguiente a la de la condicional.
siendo "condicion" el lugar donde se pondrá la condición que se tiene que cumplir para que sea
verdadera la sentencia y así proceder a realizar el "set de instrucciones" o código contenido dentro de
la sentencia.
Segunda Forma
Ahora veremos la misma sintaxis pero ahora le añadiremos la parte "Falsa" de la sentencia:
Notas: cualquier número de casos a evaluar por switch así como la sentencia default son opcionales. La sentencia switch es muy
útil en los casos de presentación de menús.
Sintaxis:
Coche::Coche() {
printf("Coche creado\n");
}
Coche::~Coche() {
printf("Coche destruido\n");
}
void Coche::arranca() {}
void Coche::detiene() {}
void Coche::acelera() {}
int main () {
printf("\t ELABORO: MORENO GONZALEZ
DANIELA\n");
printf("\t GRUPO: 1MM2\n\n");
printf("Lo hice.");
return 1;
}
Moreno González Daniela 1MM2
Tarea 05 27 de Noviembre del 2020
#include <iostream>
#include "Coche.hpp"
class Garaje {
private:
int maxCoches;
public:
Garaje();
Garaje(int maxCoches);
~Garaje();
int main(){
printf("\t ELABORO: MORENO GONZALEZ DANIELA\n");
printf("\t GRUPO: 1MM2\n\n");
return 0;
}
Moreno González Daniela 1MM2
Tarea 05 27 de Noviembre del 2020
return 0;
}
bool Garaje::estaLleno() {
return false;
}
int main () {
printf("\t ELABORO: MORENO GONZALEZ DANIELA\n");
printf("\t GRUPO: 1MM2\n\n");
printf("Creamos un garaje.\n");
Garaje garaje = Garaje();
Coche cocheAzul = Coche();
Coche cocheRojo = Coche();
garaje.entra(cocheAzul);
garaje.entra(cocheRojo);
garaje.sale(cocheRojo);
return 1;
} Moreno González Daniela 1MM2
Tarea 05 Cuestionario 27 de Noviembre del 2020
1.- ¿De que otra forma se le puede llamar a una sentencia de decisión?
R= Sentencia de control de flujo
2.- ¿Qué es una sentencia de decisión?
R= Son estructuras de control que realizan una pregunta
3.- ¿Cómo retorna esta pregunta?
R= Retorna como verdadero o falso
4.- ¿Qué hace dependiendo del resultado?
R= Selecciona la siguiente instrucción a ejecutar dependiendo la respuesta o resultado.
5.- ¿Qué incluye la ejecución de las instrucciones?
R= Una estructura de control como el condicional
6.- ¿Cómo comienzan a ejecutarse las instrucciones?
R= De forma secuencial
7.- ¿Qué pasa cuando se llega a una estructura condicional?
R= se decide que camino tomar dependiendo siempre del resultado de la condición siendo esta falsa o verdadera.
8.- ¿Qué pasa cuando se termina de ejecutar ese bloque de instrucciones?
R= Se reanuda la ejecución en la instrucción siguiente a la de la condicional.
9.- ¿Cuántas formas hay de ocupar la sentencia IF?
R= Existen solo dos formas de ejecutar la sentencia if
10.- ¿Qué otra sentencia de decisión conoces? Menciona una
R= Sentencia de decisión switch
donde:
1.contador es una variable numérica
2.final es la condición que se evalua para finalizar el ciclo (puede ser independiente del contador)
3.incremento es el valor que se suma o resta al contador
Hay que tener en cuenta que el "for" evalua la condición de finalización igual que el while, es decir, mientras
esta se cumpla continuaran las repeticiones.
int i = 0;
int max = 0;
bucle: i++;
printf("Contador: %d\n",i);
if (i < max)
goto bucle;
system ("PAUSE");
}
Moreno González Daniela 1MM2
Tarea 05 27 de Noviembre del 2020
Los dos ejemplos anteriores se presentan en seguida, salvo que en lugar de for se hace uso de while.
Nota: no deje de observar que la construcción del ciclo while para el caso de la sentencia continue es diferente, esto
para garantizar que el ciclo no vaya a caer en una iteración infinita.
1.- ¿De que otra forma se le puede llamar a una sentencia de control?
R= Sentencia de decisión
2.- ¿Qué es una sentencia de control?
R= Son estructuras de control que realizan una pregunta
3.- ¿Cómo retorna esta pregunta?
R= Retorna como verdadero o falso
4.- ¿Qué hace dependiendo del resultado?
R= Selecciona la siguiente instrucción a ejecutar dependiendo la respuesta o resultado.
5.- ¿Qué incluye la ejecución de las instrucciones?
R= Una estructura de control como el condicional
6.- ¿Cómo comienzan a ejecutarse las instrucciones?
R= De forma secuencial
7.- ¿Qué pasa cuando se llega a una estructura condicional?
R= se decide que camino tomar dependiendo siempre del resultado de la condición siendo esta falsa o verdadera.
8.- ¿Qué pasa cuando se termina de ejecutar ese bloque de instrucciones?
R= Se reanuda la ejecución en la instrucción siguiente a la de la condicional.
9.- ¿Cuántas formas hay de ocupar la sentencia IF?
R= Existen solo dos formas de ejecutar la sentencia if
10.- ¿Qué otra sentencia de control conoces? Menciona una
R= Sentencia de decisión switch
SENTENCIA DE DECISIÓN
Las sentencias de decisión o también llamadas de CONTROL DE FLUJO son estructuras de control
que realizan una pregunta la cual retorna verdadero o falso (evalúa una condición) y selecciona la
siguiente instrucción a ejecutar dependiendo la respuesta o resultado.
En algún momento dentro de nuestros algoritmos, es preciso cambiar el flujo de ejecución de las
instrucciones, es decir, el orden en que las instrucciones son ejecutadas. Muchas de las veces
tenemos que tomar una decisión en cuanto a que se debe ejecutar basándonos en una respuesta
de verdadero o falso (condición).
La ejecución de las instrucciones incluyendo una estructura de control como el condicional
funcionan de esta manera:
Las instrucciones comienzan a ejecutarse de forma secuencial (en orden) y cuando se llega a una
estructura condicional, la cual esta asociada a una condición, se decide que camino tomar
dependiendo siempre del resultado de la condición siendo esta falsa o verdadera.
Cuando se termina de ejecutar este bloque de instrucciones se reanuda la ejecución en la
instrucción siguiente a la de la condicional.
SENTENCIA DE CONTROL
En la sección (Sentencia switch) vimos que la sentencia break es utilizada con el propósito de forzar un salto dentro del
bloque switch hacia el final del mismo. En esta sección volveremos a ver el uso de break, salvo que esta ocasión la usaremos
junto con las sentencias for y la sentencia while. Además, veremos el uso de la sentencia continue.
break
La sentencia break se usa para forzar un salto hacia el final de un ciclo controlado por for o por while.
continue
La sentencia continue se usa para ignorar una iteración dentro de un ciclo controlado por for o por while.
Coche::Coche() {
printf("Coche creado\n");
}
Coche::~Coche() {
printf("Coche destruido\n");
}
void Coche::arranca() {}
void Coche::detiene() {}
void Coche::acelera() {} Moreno González Daniela 1MM2
Tarea 05 27 de Noviembre del 2020
class Garaje {
private:
int maxCoches;
public:
Garaje();
Garaje(int maxCoches);
~Garaje();
int entra(Coche coche);
int sale(Coche coche);
bool estaLleno();
};
Garaje::Garaje(){
printf("Garaje.\n");
maxCoches = 3;
}
Garaje::Garaje(int mx){
maxCoches = mx;
}
Garaje::~Garaje(){}
int Garaje::entra(Coche coche) {
printf("Entra un coche.\n");
return 0;
}
Moreno González Daniela 1MM2
Tarea 05 int Garaje::sale(Coche coche) {
printf("Sale un coche.");
27 de Noviembre del 2020
return 0;
}
bool Garaje::estaLleno() {
return false;
}
Perro::Perro(int initialAge)
{
itsAge = initialAge;
}
Perro::~Perro()
{
printf(" objeto destruido.");
}
Bucles::Bucles(){}
Bucles::~Bucles(){}
Bucles::Bucles(int maximo){}
Moreno González Daniela 1MM2
Tarea 05 27 de Noviembre del 2020
void Bucles::bucleWhile(int maximo){
int temp = 0;
printf(" iniciamos el bucle WHILE: %d y max
%d",temp,maximo);
while (temp < maximo) {
printf(" %d es menor que %d",temp,maximo);
temp++;
}
}
int Menu::menu(){
int temp = 0;
do {
printf(" MENU Seleccion.\n");
printf(" 1. Ensalada\n");
printf(" 2. Cordero \n");
printf(" 3. Merluza \n");
printf(" 4. Pato \n");
printf(" Elije algo: ");
scanf("%d",temp);
switch (temp) {
return temp;
} Moreno González Daniela 1MM2
Tarea 05 27 de Noviembre del 2020
void Programa26(){
printf("\t ELABORO: MORENO GONZALEZ DANIELA\n");
printf("\t GRUPO: 1MM2\n\n");
printf("Lo hice.");
}
void Programa27(){
printf("\t ELABORO: MORENO GONZALEZ DANIELA\n");
printf("\t GRUPO: 1MM2\n\n");
}
void Programa28(){
printf("\t ELABORO: MORENO GONZALEZ DANIELA\n");
printf("\t GRUPO: 1MM2\n\n");
printf("Creamos un garaje.\n");
garaje.entra(cocheAzul);
garaje.entra(cocheRojo);
garaje.sale(cocheRojo); Moreno González Daniela 1MM2
}
Tarea 05 27 de Noviembre del 2020
void Programa29(){
printf("\t ELABORO: MORENO GONZALEZ DANIELA\n");
printf("\t GRUPO: 1MM2\n\n");
bool test = false;
Perro Canelo(5);
Canelo.Ladra();
printf("Canelo es un perro cuya edad es: \n");
printf("%d años\n", Canelo.GetAge());
Canelo.Ladra();
Canelo.SetAge(7);
printf("Ahora Canelo es ");
printf("%d años\n", Canelo.GetAge());
system ("PAUSE");
}
void Programa31(){
printf("\t GRUPO: 1MM2\n\n");
printf("Hola! Vamos a mostrar un loop\n");
int i = 0;
int max = 0;
printf("¿Cuantas vueltas damos?");
scanf("%d",&max);
bucle: i++;
printf("Contador: %d\n",i);
if (i < max)
goto bucle;
}
Moreno González Daniela 1MM2
Tarea 05 27 de Noviembre del 2020
void Programa32(){
printf("\t ELABORO: MORENO GONZALEZ DANIELA\n");
printf("\t GRUPO: 1MM2\n\n");
}
void Programa33(){
printf("\t ELABORO: MORENO GONZALEZ DANIELA\n");
printf("\t GRUPO: 1MM2\n\n");
Bucles ciclador = Bucles();
Bucles cicladorparam = Bucles(34);
ciclador.bucleWhile(23);
cicladorparam.bucleFor(10);
ciclador.bucleDoWhile(5);
}
void Programa34(){
int resultado = 0;
printf("\t ELABORO: MORENO GONZALEZ DANIELA\n");
printf("\t GRUPO: 1MM2\n\n");
printf(" Vamos a sacar el menu.\n" );
Menu menutero = Menu();
resultado = menutero.menu();
printf(" El resultado es: %d",resultado);
} Moreno González Daniela 1MM2
void Programa37(){
Tarea 05 int pruebaInt = 99, prueba2Int = 34;
27 de Noviembre del 2020
short pruebaShort = 34;
char carac = 'a';
int *puntero = 0;
int *punteroNuevo;
printf("\t ELABORO: MORENO GONZALEZ DANIELA\n");
printf("\t GRUPO: 1MM2\n\n");
printf("Variable pruebaInt: %d\n",pruebaInt);
printf("Direccion pruebaInt: %d\n",&pruebaInt);
puntero = &pruebaInt;
int opcion;
do{
printf("\n\nElige la opcion del programa que deseas ejecutar: \n");
printf("1.- Programa 26\n");
printf("2.- Programa 27\n");
printf("3.- Programa 28\n");
printf("4.- Programa 29\n");
printf("5.- Programa 31\n");
printf("6.- Programa 32\n");
printf("7.- Programa 33\n");
printf("8.- Programa 34\n");
printf("9.- Programa 37\n");
printf("10.- Salir\n");
scanf("%d",&opcion);
switch(opcion){
Moreno González Daniela 1MM2
Tarea 05 27 de Noviembre del 2020
case 6:
case 1: Programa32();
Programa26(); break;
break;
case 7:
case 2: Programa33();
Programa27(); break;
break;
case 8:
case 3: Programa34();
Programa28(); break;
break;
case 9:
case 4: Programa37();
Programa29(); break;
break;
case 5: case 10:
Programa31(); opcion = 10;
break; break;
}
}while(opcion != 10);
NOTA