+ All Categories
Home > Documents > Estructuras de control - Departamento de Ciencias de la ...

Estructuras de control - Departamento de Ciencias de la ...

Date post: 29-Oct-2021
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
63
TEMA Estructuras de control Dept. Ciencias de la Computación e I.A. Universidad de Granada
Transcript
Page 1: Estructuras de control - Departamento de Ciencias de la ...

TEM

A

Estructuras de control

Dept. Ciencias de la Computación e I.A.

Universidad de Granada

Page 2: Estructuras de control - Departamento de Ciencias de la ...

ÍndiceEstructura secuencial.

Ejemplos

Estructuras condicionales. Condicional SimpleCondicional DobleCondicional MúltipleEjemplos

Estructuras repetitivas. Bucles Controlados por condiciónBucles Controlados por contadorEjemplos

Page 3: Estructuras de control - Departamento de Ciencias de la ...

Conceptos Básicos

Las estructuras de control de un lenguaje de programación se refieren al orden en que lasinstrucciones de un algoritmo se ejecutarán. El orden de ejecución de las sentencias o instrucciones determinán el flujo de control.

Las tres estructuras básicas de control son:

secuenciaselecciónrepetición

Page 4: Estructuras de control - Departamento de Ciencias de la ...

Conceptos BásicosUn programa propio puede ser escrito utilizandolas tres estructuras de control básicas (Bôhm y Jacopin (1996)).

Un programa se define como propio si cumple lo siguiente:

Posee un sólo punto de entrada y salida o fin paracontrol del programa.Existen caminos desde la entrada hasta la salidaque se pueden seguir y que pasan por todas laspartes del programa.Todas las instrucciones son ejecutadas y no existen lazos o bucles infinitos.

Page 5: Estructuras de control - Departamento de Ciencias de la ...

Estructura SecuencialLas sentencias se ejecutan sucesivamente, en el orden en que aparecen. No existen “saltos” o bifurcaciones.// Cálculo de Raices de una ecuación de grado 2.#include <iostream>

#include <cmath>

using namespace std;

int main(){

double a,b,c,r1,r2;

1 cout << "\nIntroduce coeficiente de 2o grado: ";

2 cin >> a;

3 cout << "\nIntroduce coeficiente de 1er grado: ";

4 cin >> b;

5 cout << "\nIntroduce coeficiente independiente: ";

6 cin >> c;

7 r1 = ( -b + sqrt( b*b-4*a*c ) ) / (2*a);

8 r2 = ( -b - sqrt( b*b-4*a*c ) ) / (2*a);

9 cout << "Las raíces son" << r1 << " y " << r2 << endl;

}

Page 6: Estructuras de control - Departamento de Ciencias de la ...

Estructura SecuencialSi bien el programa anterior es correcto, no es capaz de manejar situaciones excepcionales. Por ejemplo, ¿qué pasa en la sentencia:

r1 = ( -b + sqrt( b*b-4*a*c ) ) / (2*a);si a = 0 o b*b-4*a*c < 0?En el primer caso, obtendríamos un error de ejecución por intentar hacer una división por cero.

Solución: primero comprobar (mediante estructuras condicionales), y no efectuar el cálculo si no es posible

Pero antes....

Page 7: Estructuras de control - Departamento de Ciencias de la ...

Diagrama de Flujo

Es una representación gráfica de un algoritmoSe construyen a partir de símbolos especiales que se conectan mediante flechas que indican el flujo de ejecución.

Operacionesde E/S

Estructura Secuencial

Condición

Dirección de Flujo

Inicio

Fin

Page 8: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo del Cálculo de Raíces (suponiendo discriminante no negativo)

Page 9: Estructuras de control - Departamento de Ciencias de la ...

Estructura CondicionalTambien recibe el nombre de “estructura de selección”

Permite elegir entre diferentes cursos de acción en función de condiciones.

Si la nota del examen es mayor o igual que 5mostrar “Aprobado”

Si la condición es verdadera, entonces se ejecuta la sentencia mostrar, y luego el programa continuaría en la sentencia siguiente al Si

Si la condición es falsa, la sentencia mostrar se ignora y el programa continúa

Page 10: Estructuras de control - Departamento de Ciencias de la ...

Estructura Condicional Simple

La instrucción en pseudo código

Si la nota del examen es mayor o igual que 5mostrar “Aprobado”

Se traduce a C++ mediante una sentencia condicional simple:

if ( nota >= 5 ) cout << “Aprobado”;

La forma general es:

if (<condicion>) <bloque if>;

Una expresión lógica

Una sentencia o conjunto de sentencias (encerradas entre {} )

Page 11: Estructuras de control - Departamento de Ciencias de la ...

Estructura Condicional SimpleEl diagrama de flujo asociado es:

Expr Cond.

Bloque IF

True

False

Page 12: Estructuras de control - Departamento de Ciencias de la ...

Cálculo de Raíces// Calculo de Raices: control de la variable a#include <iostream>#include <cmath>using namespace std;

int main(){double a,b,c,r1,r2; 1 cout << "\nIntroduce coeficiente de 2o grado: ";2 cin >> a;3 cout << "\nIntroduce coeficiente de 1er grado: ";4 cin >> b;5 cout << "\nIntroduce coeficiente independiente: ";6 cin >> c;7 if (a!=0) {8 r1 = ( -b + sqrt( b*b-4*a*c ) ) / (2*a);9 r2 = ( -b - sqrt( b*b-4*a*c ) ) / (2*a);10 cout << "Las raíces son" << r1 << " y “ << r2;

}}

Page 13: Estructuras de control - Departamento de Ciencias de la ...

Cálculo de Raíces (2)

Esta aproximación no calcula raíces si a=0.

¿Cómo hacer que también calcule la solución sia=0 (ecuación de primer grado)?

11 if (a==0)12 cout << “Tiene una única raíz " << -c/b << endl;}

Algo a considerar: las condiciones son excluyentes (a vale cero o a vale distinto de cero)

Page 14: Estructuras de control - Departamento de Ciencias de la ...

Estructura Condicional DoblePermite elegir entre 2 cursos de acción diferentes en función del valor de verdad de una expresión lógica.

Si la nota del examen es mayor o igual que 5mostrar “Aprobado”

Si no mostrar “Suspenso”

En C++:

if ( nota >= 5 ) cout << “Aprobado”;

else

cout << “Suspenso”;

La forma general es:

if( <condicion> ) < bloque if >;

else

< bloque else >;

Page 15: Estructuras de control - Departamento de Ciencias de la ...

Estructura Condicional DobleEl diagrama de flujo asociado es:

Expr Cond.

Bloque IF

TrueFalse

Bloque ELSE

Page 16: Estructuras de control - Departamento de Ciencias de la ...

Cálculo de Raíces

7 if (a!=0) {8 r1 = ( -b + sqrt( b*b-4*a*c ) ) / (2*a);9 r2 = ( -b - sqrt( b*b-4*a*c ) ) / (2*a);10 cout << "Las raíces son" << r1 << "y“ << r2;

}11 else {12 r1 = -c / b;13 cout << “La unica raiz es: “ << r1;

}

En la ecuación de segundo grado, cuando a = 0, entonces la raíz es única y vale –c/b

Los bloques comienzan con { y terminan con }

// Inicio Bloque

// Inicio Bloque

// Fin Bloque

// Fin Bloque

Page 17: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo: el mayor de tres números

¿Cómo hacer para calcular el máximo de tres números a, b y c y almacenar el resultado en una variable max cuyo valor se mostrará por pantalla al final?

Page 18: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo: el mayor de tres… (2)

// Programa para calcular el máximo de tres números// que se almacenará en otra variable y se // mostrará en la pantalla#include <iostream>#include <cmath>

using namespace std;

int main() {int a, b, c, max;

1 cout << “Valor de a: “; cin >> a;2 cout << “Valor de b: “; cin >> b;3 cout << “Valor de c: “; cin >> c;

...

Page 19: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo: el mayor de tres… (3)

...4 if ((a>=b) && (a>=c))5 max = a;6 if ((b>=a) && (b>=c))7 max = b;8 if ((c>=a) && (c>=b))9 max = c;

10 cout << “El mayor es “ << max << endl;}

Page 20: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo: el mayor de tres… (4)

(a>=b)y

(a>=c)max = a

(b>=a)y

(b>=c)max = b

(c>=a)y

(c>=b)max = c

cout << max

true

true

true

false

false

false

Page 21: Estructuras de control - Departamento de Ciencias de la ...

Anidamiento de Estructuras Condicionales

Si la nota es mayor o igualque 9

imprimir "Sobresaliente”else Si la nota es mayor o igual que 7

imprimir "Notable"else Si la nota es mayor o igualque 5

imprimir "Aprobado"else

imprimir "Suspenso"

if (nota>=90)

cout << “A”;

else if (nota>=80)

cout << “B”;

else if (nota>=70)

cout << “C”;

else if (nota>=60)

cout << “D”;

else cout << “E”;

Page 22: Estructuras de control - Departamento de Ciencias de la ...

¿ Cuando se ejecuta cada instrucción ?

if (condic_1) {inst_1;if (condic_2)

{inst_2;}

else{ inst_3;}

inst_4;}

else{ inst_5;}

condic_1 condic_2

inst_1 true independiente

inst_2 true true

inst_3 true false

inst_4 true independiente

inst_5 false independiente

Page 23: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo: el mayor de tres… (5)...

4 if (a>=b) 5 if (a>=c) 6 max = a;7 else8 max = c;9 else7 if (b>=c) 4 max = b;5 else6 max = c;

...

Opción 2

Page 24: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo: el mayor de tres… (6)

a>=b

b>=c a>=c

max = amax = cmax = bmax = c

Imprime max

true

truetrue

false

false false

Page 25: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo: el mayor de tres… (7)

...4 if (a>=b) 5 max = a;6 else7 max = b;8 if (c>max) 9 max = c;

...

Opción 3

Page 26: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo: el mayor de tres… (8)

a>=btruefalse

max = amax = b

c>max

max = c

true

Imprime max

false

Page 27: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo: el mayor de tres… (8)

1 ó 22Opción 3

12Opción 2

13Opción 1

AsignacionesCondiciones

Buscaremos un término medio entre Eficiencia y Elegancia

Page 28: Estructuras de control - Departamento de Ciencias de la ...

Ejercicios

Completar el programa de la ecuación de segundo grado, teniendo en cuenta los valores del discriminante también.

Implementa un programa que calcule el mayor de cuatro números.

Page 29: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo#include <iostream>using namespace std;int main(){int dato1,dato2;char opcion;

cout << "Introduce el primer operando: ";cin >> dato1;cout << "Introduce el segundo operando: ";cin >> dato2;cout << "Selecciona (S) sumar, (R) restar: ";cin >> opcion;

if (opcion == 'S')cout << "Suma = " << dato1+dato2 << endl;

if (opcion == 'R')cout << "Resta = " << dato1-dato2 << endl;

if ((opcion != 'R') && (opcion != 'S'))cout << "Ninguna operacion\n";

}

En este caso, las condiciones no son excluyentes

Page 30: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo#include <iostream>using namespace std;

int main(){int dato1,dato2;char opcion;

cout << "Introduce el primer operando: ";cin >> dato1;cout << "Introduce el segundo operando: ";cin >> dato2;cout << "Selecciona (S) sumar, (R) restar: ";cin >> opcion;

if (opcion == 'S')cout << "Suma = " << dato1+dato2 << endl;

else if (opcion == 'R')cout << "Resta = " << dato1-dato2 << endl;

else cout << "Ninguna operacion\n";}

Más eficiente

Page 31: Estructuras de control - Departamento de Ciencias de la ...

Estructura Condicional MúltiplePermite definir en una sola estructura, una serie de pares (condición, acción), con condiciones mútuamente excluyentes.Muy utilizada en la construcción de menús.

switch (<expresión>) {

case<constante1>:<sentencias1>

break;

case <constante2>:<sentencias2>

break;

.........................

[default: <sentencias>]

}

Page 32: Estructuras de control - Departamento de Ciencias de la ...

Estructura Condicional Múltiple<expresión> es una expresión entera o carácter.<constante1> ó <constante2> es un literal tipo entero o tipo carácter.switch sólo comprueba la igualdad.No debe haber dos casos (case) con la misma <constante> en el mismo switch. Si esto ocurre, sólo se ejecutan las sentencias correspondientes al caso que aparezca primero.El identificador especial default permite incluir un caso por defecto, que se ejecutará si no se cumple ningún otro. Se suele colocar como el último de los casos.En las estructuras condicionales múltiples también se permite el anidamiento.

Page 33: Estructuras de control - Departamento de Ciencias de la ...

#include <iostream>using namespace std;int main(){int dato1,dato2;char opcion;

cout << "Introduce el primer operando: ";cin >> dato1;cout << "Introduce el segundo operando: ";cin >> dato2;cout << "Selecciona (S) sumar, (R) restar: ";cin >> opcion;

switch (opcion){case 'S': {cout << "Suma = " << dato1+dato2 << endl;

break;}

case 'R': {cout << "Resta = " << dato1-dato2 << endl;break;}

default: cout << "Ninguna operacion\n";}

}

Ejemplo 1

Page 34: Estructuras de control - Departamento de Ciencias de la ...

cout << "Introduce el primer operando: ";cin >> dato1;cout << "Introduce el segundo operando: ";cin >> dato2;cout << "Selecciona (S) sumar, (R) restar: ";cin >> opcion;

switch (opcion){case 's':case 'S': {cout << "Suma = " << dato1+dato2 << endl;

break;}

case 'r':case 'R': {cout << "Resta = " << dato1-dato2 << endl;

break;}

default: cout << "Ninguna operacion\n";}

}

Ejemplo 2

Page 35: Estructuras de control - Departamento de Ciencias de la ...

Estructuras Repetitivas

Page 36: Estructuras de control - Departamento de Ciencias de la ...

Estructuras Repetitivas

Las estructuras repetitivas son también conocidas como bucles, ciclos o lazos.

Una estructura repetitiva permite la ejecución de un conjunto de sentencias:

hasta que se satisface una determinada condición (controladas por condición)

un número determinado de veces (controladas por contador)

Page 37: Estructuras de control - Departamento de Ciencias de la ...

Bucles Controlados por Condición

Se ejecuta el conjunto de sentencias de interés mientras la condición sea verdadera.

Existen dos formas básicas de construcción:

Pre - Testwhile (< condición>){

<cuerpo del bucle>}

Post - Testdo{<cuerpo del bucle>}while (< condición>);

Primero se pregunta y luego se ejecuta

Primero se ejecuta luego se pregunta

Page 38: Estructuras de control - Departamento de Ciencias de la ...

Bucles (Pre / Post) Test

Condición

<Cuerpo Bucle>

True

False

Condición

<Cuerpo Bucle>

True

False

Pre - Test Post - Test

Page 39: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo

cont = 1;

do {cout << "****" << endl;cont = cont + 1;

}while (cont <= 10);

cont = 0;

do {cout << "****" << endl;cont = cont + 1;

}while (cont < 10);

Escribir 10 líneas con 4 estrellas cada una

cont = 1;

while (cont <= 10){cout << "****" << endl;cont = cont + 1;

}

cont = 0;

while (cont < 10){cout << "****" << endl;cont = cont + 1;

}

Page 40: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo

cin >> topecont = 0;

do {cout << "****" << endl;cont = cont + 1;

}while (cont < tope);

Escribir tope líneas con 4 estrellas cada una

Problema si tope = 0

cin >> tope;cont = 0;

while (cont < tope){cout << "****" << endl;cont = cont + 1;

}

Solución

Page 41: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo

cin >> topei = 0;while (i <= tope)

{cout << i << endl;i = i + 2;}

Escribir los números pares entre [0..tope]

¿Qué ocurre si el código anterior se cambia por :

cin >> topei = 0;while (i <= tope)

{i = i + 2;cout << i << endl;}

El 0 no se imprime e imprime un número par

de más

Page 42: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo: control por centinela

suma = 0;do{cin >> valor;suma = suma + valor;

}while (valor != -1)cout << "La suma es"

<< suma;

Sumar valores que se leen por teclado hasta que se lee -1.(el valor utilizado para detener el procesamiento se conoce como centinela)

Se procesa el valor centinela.Esta clase de problemas se evita utilizando la técnica de lectura anticipada.

suma = 0;cin >> valor;while (valor != -1){suma = suma + valor;cin >> valor;} cout << "La suma es"

<< suma;

Lectura anticipada: se usa un bucle pre-test y se comprueba el primer valor.

Page 43: Estructuras de control - Departamento de Ciencias de la ...

Ciclos post-test como Filtros en la Entrada de Datos

Los ciclos post-test son útiles para forzar que los datos de entrada pertenezcan a un rango o conjunto de opciones predeterminados.

// filtro para valores positivosdo{cout << "Introduzca un valor > 0:";cin >> valor;

}while (valor < 0);

// filtro para 's','S','n','N'do{cout << "Desea Salir (s/n)?:";cin >> opc;

}while((opc != 's')&&(opc !='S')&&(opc != 'n')&&(opc != 'N'));

Page 44: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo: lectura anticipada (1)// Programa que va leyendo números enteros hasta que// se introduzca el cero. Imprimir el número de// pares e impares introducidos

#include <iostream>using namespace std;

int main(){int ContPar, ContImpar, valor;

ContPar=0;ContImpar=0;cout << "Introduce valor: \n";cin >> valor;...

Page 45: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo: lectura anticipada (1)

...while (valor != 0) {

if (valor % 2 == 0)ContPar = ContPar + 1;

elseContImpar = ContImpar + 1;

cout << "Introduce valor: \n";cin >> valor;}

cout << "Fueron " << ContPar << " pares y "<< ContImpar << " impares\n";

}

Page 46: Estructuras de control - Departamento de Ciencias de la ...

Problema para Resolver

Tenemos que realizar un programa que calcule la nota promedio de un conjunto de notas. La cantidad de notas puede variar en cadaejecución del programa.

Utilizaremos un valor "centinela" para indicarel fin de las notas.El proceso terminará cuando se ingrese dichovalorEl valor concreto del centinela debe ser diferente al de cualquier posible entrada válida(en este caso podría ser -1)

Page 47: Estructuras de control - Departamento de Ciencias de la ...

Bucles sin fin

Bucle al que la evaluación de la condición nunca le permite dejar de ejecutarse.

contador = 2;while (contador < 3) {

contador--;cout << contador << endl;}

contador = 1;while (contador != 10) {

contador = contador + 2;}

contador = contador – 1;

Page 48: Estructuras de control - Departamento de Ciencias de la ...

Utilidad: filtros con bucles post-test// Introducir un único valor, pero positivo.// Imprimir el coseno.// Entrada: Un valor entero positivo.// Salida: El coseno del valor introducido.#include <iostream>#include <cmath>using namespace std;int main(){

int valor;

do {cout << "\nIntroduzca un valor positivo: ";cin >> valor;}while (valor < 0);

cout << cos(valor);}

Sigue pidiendo el valor mientras sea negativo

(hasta que sea positivo)

Page 49: Estructuras de control - Departamento de Ciencias de la ...

Utilidad: filtros con bucles… (2)

char opcion;do{

cout << "Introduzca una opción: \n";cin >> opcion;}while ((opcion!='s') && (opcion!='S') &&

(opcion!='n') && (opcion!='N') );

Sigue pidiendo la opción mientras sea distinta de ‘s’, ‘S’, ‘n’ y ‘N’(hasta que sea una de ellas)

Page 50: Estructuras de control - Departamento de Ciencias de la ...

Bucles controlados por contador

Se utilizan para repetir un conjunto de sentencias un número fijo de veces. Se necesita una variable controladora, un valor inicial, un valor final y un incremento.

Page 51: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo// Hallar la media de 5 números enteros.// Entradas: 5 números enteros (se leen en valor).// Salidas: La media de los 5 números.…………………int main(){int i, valor, suma;double media;

suma = 0;i = 1; while (i <= 5){

cout << "Introduce el número " << i << "o: \n";cin >> valor;suma = suma + valor;i++; }

media = suma / 5.0;cout << "La media es " << media << endl;}

Valor inicial del contador Prueba de límites del

valor del contador

Incremento del valor del contador

Page 52: Estructuras de control - Departamento de Ciencias de la ...

Ejemplo: diagrama de flujo

v_c <= v_final

trueCuerpo del bucle

V_c = v_c + v_incr

true

false

v_c = v_inic

Existe un tipo específico de bucles con esta utilidad

Page 53: Estructuras de control - Departamento de Ciencias de la ...

Nuestro problema es:Determinar el promedio de las notas de un

examen

Esta tarea la podemos subdividir en otras máspequeñas: 1. Inicializar variables2. Ingresar, Sumar y Contar las notas del

examen3. Calcular e imprimir el promedio

Pseudo Código y Refinamientos Sucesivos

Page 54: Estructuras de control - Departamento de Ciencias de la ...

La fase de inicialización Inicializar variables se puede refinar a:

Inicializar la variable total a ceroInicializar el contador de notas a cero

La fase Ingresar, Sumar y Contar las notas del examen

se puede refinar a

Ingresar la primera nota (posiblemente el centinela)

Mientras el usuario no ingrese el valor centinelasumar la nota al totalsumar uno al contadorIngresar la siguiente nota (posiblemente el centinela)

Page 55: Estructuras de control - Departamento de Ciencias de la ...

La fase Calcular e imprimir el promedio se puede refinar a

Si la cantidad de notas es distinta de ceroel promedio es la suma de las notas dividido la cantidad Imprimir el promedio

En caso contrarioImprimir “No se ingresaron notas"

Page 56: Estructuras de control - Departamento de Ciencias de la ...

Resolución en PseudoCodigoInicializar la variable total a ceroInicializar el contador de notas a cero Ingresar la primera nota (posiblemente el centinela)

Mientras el usuario no ingrese el valor centinelasumar la nota al totalsumar uno al contadorIngresar la siguiente nota (posiblemente el

centinela)

Si la cantidad de notas es distinta de ceroel promedio es la suma de las notas dividido la

cantidadImprimir el promedio

En caso contrarioImprimir “No se ingresaron notas"

Page 57: Estructuras de control - Departamento de Ciencias de la ...

………………….const double CENTINELA = -1.0;int main(){ double contador, suma, avg, nota;

suma = 0; contador = 0; cout << "Ingrese la nota (-1 para fin) ";cin >> nota;

while (nota != CENTINELA){suma = suma + nota;contador = contador + 1;cout << "Ingrese la nota (-1 para fin) ";cin >> nota;

}if(contador > 0)

{avg = suma / contador;cout << " El promedio es " << avg;

}elsecout << " No se ingresaron notas ";

}

Resolución en C++

Ejecutar

Page 58: Estructuras de control - Departamento de Ciencias de la ...

Bucles controlados por Contador: FOR

SI conocemos exactamente la cantidad de veces que necesitamos repetir un conjunto de sentencias, entonces podemos usar un bucle FOR.

En general, los bucles controlados por contadorrequieren

una variable de control o contadorUn valor inicial para el contadorUn valor final para el contadorUna condición para verificar si la variable de control alcanzó su valor final.Un valor de incremento (o decremento) con el cualse modifica la variable de control en cada bucle

Page 59: Estructuras de control - Departamento de Ciencias de la ...

Bucles controlados por Contador: FOR

La forma general del bucle FOR es:

for (inicializacion; condicion continuación;incremento )< conjunto de sentencias>

Ejemplo: imprimir los valores enteros entre 1 y 10

for( nro = 1; nro <= 10; nro = nro + 1)cout << nro << endl;

Page 60: Estructuras de control - Departamento de Ciencias de la ...

Diagrama de Flujo del FOR

Condición

<Cuerpo Bucle>

TrueFalse

Inicialización

Incremento

Page 61: Estructuras de control - Departamento de Ciencias de la ...

Relación entre FOR y WHILE

Se debe notar que los bucles FOR se pueden reescribir como bucles WHILE

inicializacion

while (condicion continuacion)

< conjunto de sentencias>

incremento

for ( inicializacion; condicion continuación, incremento )

< conjunto de sentencias>

Page 62: Estructuras de control - Departamento de Ciencias de la ...

Ejemplos// tabla de multiplicar de un nro dadoint i,nro;cin >> nro;for(i = 1; i <= 10; i = i + 1){cout << nro * i << endl;}

// sumar los nros pares entre 2 y 200int i,suma;suma = 0;for(i = 2; i <= 200; i = i + 2){ suma = suma + i;}

cout << "la suma es " << suma << endl;

Page 63: Estructuras de control - Departamento de Ciencias de la ...

Ejemplos// tabla de multiplicar de un nro dadoint i,nro;cin >> nro;i = 1;while (i <= 10){cout << nro * i << endl;i = i+1; }

// sumar los nros pares entre 2 y 200int i,suma;suma = 0;i = 2;while (i <= 200){ suma = suma + i;

i = i+2;}

cout << "la suma es " << suma << endl;


Recommended