Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estructuras de Control
#include <iostream>
using namespace std;
int main()
{
// Declaración de variables
float lado1, lado2, area;
// Instrucciones
cout << "Introduce el tamaño de los lados: ";
cin >> lado1 >> lado2;
area = lado1 * lado2;
cout << "El área es "<< area;
}
Fundamentos de Programación Tema 3. Estructuras de Control 8 / 30
Estructuras Secuenciales: Ejemplo
Problema: Mostrar el resultado de dividir dos datos dados de entrada
// Programa División
// Entradas: el dividendo y el divisor, divisor<>0
// Salidas: el cociente de la división
…
int main()
{
// Declaración de variables
float dividendo, divisor, cociente;
// Instrucciones
cout << "Introduce dividendo: ";
cin >> dividendo;
cout << "Introduce divisor: ";
cin >> divisor;
cociente = dividendo / divisor;
cout << dividendo << " / " << divisor << " = " << cociente;
}
Fundamentos de Programación Tema 3. Estructuras de Control 9 / 30
Estructuras Condicionales o de Selección:
Simple
• Permite decidir entre dos caminos diferentes de
ejecución (SI lógico ENTONCES B1 SINO B2)
if (<expresión lógica>)
F <expresión {
lógica> <Bloque instrucciones 1>
}
Bloque
instrucciones 2 V else
{
Bloque <Bloque instrucciones 2>
instrucciones 1 }
// Las llaves no son necesarias si sólo
hay una instrucción
Inicialización V Ejecución
Evaluación
variable control cuerpo ciclo
int i, suma;
F suma = 0;
for (i = 1 ; i <= 10 ; i++)
for (inicialización; evaluación ; modificación) {
{ suma = suma + 1;
<Bloque instrucciones> }
} cout << suma;
// Las llaves no son necesarias si sólo hay una instrucción
// La variable de control suele ser de tipo entero
// No se debe modificar su valor en las instrucciones del ciclo
int i, suma;
F
suma = 0;
while (i <= 10 )
{
while (expresión lógica) suma = suma + 1;
{ }
<Bloque instrucciones> cout << suma;
}
// Las llaves no son necesarias si sólo hay una
instrucción
<expresión V Ejecución
lógica> cuerpo ciclo
int i, suma;
F
suma = 0;
i = 1; // inicialización
while ( i<=10 )
while (expresión lógica) {
{ suma = suma + 1;
<Bloque instrucciones> i = i + 1; // modificación
} }
// Las llaves no son necesarias si sólo hay una cout << suma;
instrucción
V
<expresión
lógica> int i, suma;
suma = 0;
F i = 1; // inicialización
do
do
{
{
suma = suma + 1;
<Bloque instrucciones>
i = i+1; // modificación
} while (expresión lógica)
} while (i<=10 )
// se suele utilizar para controlar los valores de los
cout << suma;
// datos de entrada
// también para volver a ejecutar programas
Fundamentos de Programación Tema 3. Estructuras de Control 20 / 30
Estructuras Repetitivas
Problema: Dado un número n de notas calcular la nota media
// Programa NotaMedia
// Entradas: el número de notas y cada una de dichas notas
// Salidas: la nota media
int main ()
{
int n, i; float nota, suma;
suma = 0.0 ;
cout << "Introduce el número de notas";
cin >> n;
for (i = 1; i <= n ; i++) {
cout << "Introduce la nota número “ << i << ": ";
cin >> nota;
suma = suma + nota;
}
if (i > 0)
cout << "La nota media es “ << suma/n;
else cout << "No hay notas";
}
}
Fundamentos de Programación Tema 3. Estructuras de Control 22 / 30
Estructuras Repetitivas
Problema: Calcular la nota media de una serie de notas, se termina al pulsar -1
// Programa NotaMedia
// Entradas: una secuencia de notas mayores que 0, terminadas en una nota -1
// Salidas: la nota media
int main ()
{ int i;
float nota, suma;
i = 0; suma = 0.0;
cout << "Introduce la nota " << i +1 << " (-1 para terminar ):" ;
cin >> nota;
while (nota != -1) {
suma = suma + nota;
i = i + 1;
cout << "Introduce la nota " << i+1 <<" (-1 para terminar ):" ;
cin >> nota;
}
if (i > 0)
cout << "La nota media es " << suma / i;
else cout << "No hay notas";
}
Fundamentos de Programación Tema 3. Estructuras de Control 23 / 30
Estructuras Repetitivas
Problema: Calcular la nota media de una serie de notas, se termina al pulsar -1
// Programa NotaMedia
// Entradas: una secuencia de notas mayores que 0, terminadas en una nota -1
// Salidas: la nota media
int main ()
{
int n, i;
float nota, suma;
i = 0; suma = 0.0;
do {
cout << "Introduce la nota " << i << " (-1 para terminar ): " ;
cin >> nota;
if (nota != -1) {
suma = suma + nota; i = i + 1;
}
} while (nota != -1) ;
if (i > 0)
cout << "La nota media es " << suma / i;
else cout << "No hay notas";
}
i j Suma
1 4 1
1 3 2
1 2 3
2 4 4
2 3 5
2 2 6
// Programa SumaPositivosNegativos
// Entradas: una secuencia de números
// Salidas: la suma de los valores positivos y la suma de los negativos
int main ()
{ float numero, sum_pos = 0.0, sum_neg = 0.0; char res;
do {
cout << " Introduce un número : ";
cin >> numero;
if (numero > 0)
sum_pos = sum_pos + numero;
else sum_neg = sum_neg + numero;
cout << "Para seguir introduciendo números pulsa S ó s: ";
cin >> res;
} while ((res == 'S') || (res == 's'));
cout << " Suma de positivos = " << sum_pos << endl;
cout << " Suma de negativos = " << sum_neg << endl;
}
Fundamentos de Programación Tema 3. Estructuras de Control 27 / 30
Problema: Queremos leer una serie de números y calcular la suma de
los positivos y la de los negativos. Para cuando el usuario lo desee
// Programa SumaPositivosNegativos
// Entradas: una secuencia de números
// Salidas: la suma de los valores positivos y la suma de los negativos
int main ()
{
float numero, sum_pos = 0.0, sum_neg = 0.0; char res = ’s’;
while ((res == 'S') || (res == 's')) {
cout << " Introduce un número : ";
cin >> numero;
if (numero > 0)
sum_pos = sum_pos + numero;
else sum_neg = sum_neg + numero;
cout << "Para seguir introduciendo números pulsa S ó s: ";
cin >> res;
}
cout << " Suma de positivos = " << sum_pos << endl;
cout << " Suma de negativos = " << sum_neg << endl;
}
Fundamentos de Programación Tema 3. Estructuras de Control 28 / 30
Problema: Queremos leer una serie de números y calcular la suma de
los positivos y la de los negativos. Se para al pulsar 0
// Programa SumaPositivosNegativos
// Entradas: una secuencia de números
// Salidas: la suma de los valores positivos y la suma de los negativos
int main ()
{
float numero, sum_pos = 0.0, sum_neg = 0.0;
cout << " Introduce un número (0 para acabar): ";
cin >> numero;
while (numero != 0){
if (numero > 0)
sum_pos = sum_pos + numero;
else sum_neg = sum_neg + numero;
cout << " Introduce un número (0 para acabar): ";
cin >> numero;
}
cout << " Suma de positivos = " << sum_pos << endl;
cout << " Suma de negativos = " << sum_neg << endl;
}
Fundamentos de Programación Tema 3. Estructuras de Control 29 / 30
Resumen
• Estructuras secuenciales: las instrucciones se ejecutan en
el orden en que están escritas:
– Lectura/Entrada: cin>>
– Escritura/Salida: cout<<
– Asignación: =
• Estructuras condicionales o de selección: permiten
ejecutar diferentes caminos de instrucciones
– Simple: if-else
– Múltiple: switch
• Estructuras repetitivas o cíclicas: permiten repetir
conjuntos de instrucciones:
– Ciclos Fijos o contados: for
– Ciclos Condicionales: while y do-while