Académique Documents
Professionnel Documents
Culture Documents
Estructurado
ESTRUCTURAS DE
CONTROL
08/04/2016
Paradigmas de Programacin
Mayor nivel de abstraccin
Ejecucin paso a
paso mediante
constructos muy
simples
Uso extensivo de
saltos
condicionales
Estructurad
o
Mayor nivel de
abstraccin
mediante el uso
de Estructuras
de Control
Imperativo
Programacin
modular mediante
el uso de
funciones y
procedimientos
Mayor abstraccin
mediante el uso
de objetos y
mtodos
Procedural
C++ /
Java
Otros
Orientado a
Objetos
Declarativo
08/04/2016
Lgico
Funcional
Concurrent
e
2
Estructuras de Control
De seleccin
if - else if - else
switch
De repeticin
while
do while
for
De repeticin - interrumpir el flujo
continue
break
08/04/2016
int nota;
cin>>nota;
if (nota < 0 || nota > 20) {
cout<<"Nota invalida"<<endl;
}
else if (nota < 10) {
cout<<"Nota
desaprobatoria"<<endl;
}
else {
cout<<"Nota
aprobatoria"<<endl;
}
Opcion
al
4
08/04/2016
int nota;
cin>>nota;
if (nota < 0 || nota > 20)
cout<<"Nota invalida"<<endl;
else if (nota < 10)
cout<<"Nota
desaprobatoria"<<endl;
else {
cout<<"Nota
aprobatoria!!"<<endl;
cout<<"Nota
aprobatoria!!"<<endl;
cout<<"Nota
aprobatoria!!"<<endl;
}
if (a >= 2)
if (b >= 4)
b = a;
else
b = 2 * a;
cout << "b = << b << endl;
int a = 3, b = 1;
if (a >= 2) {
if (b >= 4) {
b = a;
}
} else {
b = 2 * a;
}
cout << "b = << b << endl;
Utilizar bloques { }
cuando tengamos
mltiples niveles!
08/04/2016
Sentencia switch
Permite ejecutar
switch(ch){
instrucciones
case 'm':
/* En este caso se continua hasta
dependiendo del
proximo break */
valor de una
case 'M':
variable
cout<<"Sexo masculino<<endl;
Equivalente a
break;
case 'f':
varias sentencias
case 'F':
if
cout<<"Sexo femenino<<endl;
No requiere llaves
break;
default:
para delimitar
cout<<"Opcion invalida (para el
bloques
programa)";
Por lo general
break;
requiere el uso de }
break para
finalizar cada
ST 202W - Lenguaje de Programacin
08/04/2016
bloque
Estructurado
el
Bucle while
Ejecuta un
conjunto
de
instruccion
es solo
mientras
la
condicin
sea
verdadera.
08/04/2016
int contador = 0;
int v[100];
while (contador < 100) {
v[contador] = 7;
contador++;
}
ST 202W - Lenguaje de Programacin
Estructurado
Bucle do-while
Primero
ejecuta el
conjunto
de
instruccion
es, luego
verifica si
la
condicin
se
satisface.
int x = 10;
int x = 10;
do {
x++;
} while(x < 10)
//x?
Ejecuta las
instrucciones 0 o
ms veces
08/04/2016
Ejecuta las
instrucciones 1 o
ms veces
10
Sentencia break
Interrumpe
la
ejecucin
del bucle
while, dowhile, o
for sin
importar la
condicin
especificad
a en el
bucle.
08/04/2016
int numero;
while (true) {
cin >> numero;
if(numero <= 0) {
break;
}
cout << numero; // Solo positivos
}
// Ejecucion finaliza al leer numero <= 0
11
Sentencia continue
Ignora el
resto de
instruccion
es en el
bucle
while, dowhile, o
for y
contina
con la
siguiente
iteracin.
08/04/2016
int numero;
while (true) {
cin >> numero; //
if(numero <= 0) {
continue;
//
}
cout << numero; //
}
// Ejecucion del bucle
12
Bucle for
Preferido cuando sabemos con exactitud cuntas
iteraciones deben realizarse:
for (instruccion-inicial; condicion; instruccion-deiteracion) {
/* instrucciones */
}
Equivalente a:
instruccion-inicial;
while(condicion) {
/* instrucciones */
instruccion-de-iteracion;
}
//
Ejemplos:
i=0,1,2,3,...,99
for (int i=0; i<100;
i=i+1) {
/* instrucciones */
}
08/04/2016
13
Bucle for
Ms ejemplos:
// i=0,2,4,6,8,10
int d=2;
for (int i=0; i*i<=100; i=i+d)
{
/* instrucciones */
}
Importante: Las variables de iteracin (i, j, )
pueden ser declaradas fuera de la sentencia for, o
dentro de instruccion-inicial
// i=0,2,4,...,100
int i;
for (i=0; i<=100; i=i+2) {
/* instrucciones */
}
08/04/2016
14
Bucle for
Preferido cuando
sabemos con
exactitud cuantas
iteraciones deben
realizarse
Puede utilizar
break para
escapar del bucle
y continue para
seguir con la
siguiente
iteracin
08/04/2016
15
Bucles infinitos
while y for
pueden ser
utilizados para
iterar hasta que
se llame a la
sentencia
break
08/04/2016
while(true) {
/* Hacer algo */
if(condicion)
break;
/* Hacer algo */
}
while(1) {
/* Hacer algo */
if(condicion)
break;
/* Hacer algo */
}
for(int i=0;;i++) {
/* Hacer algo */
if(condicion)
break;
/* Hacer algo */
}
for(;;) {
/* Hacer algo */
if(condicion)
break;
/* Hacer algo */
}
16
Cul es el valor de x?
Break
y
contin
ue
int y = 0;
int x = 0;
while (y < 10) {
y++;
if (y == 3) {
break;
}
x++;
}
//x?
08/04/2016
int y = 0;
int x = 0;
while (y < 10) {
y++;
if (y == 3) {
continue;
}
x++;
}
//x?
17
Ejercicios
Desarrolle un programa que almacene los primeros 81
trminos de la serie de Fibonacci en un arreglo de enteros
de 64 bits (long long)
F[0] = 0
F[1] = 1
F[i] = F[i-1] + F[i-2]
Desarrolle un programa que almacene las primeras 51
filas del triangulo de Pascal en una matriz de enteros de
64 bits (long long)
C[i][0] = C[i][i] = 1
C[i][j] = C[i-1][j-1] + C[i-1][j]
08/04/2016
18
Ejercicios
Desarrolle un programa que identifique si una cadena
de caracteres tiene caracteres repetidos.
Desarrolle un programa que elimine todos los
caracteres que aparezcan ms de una vez en una
cadena de caracteres.
o No est permitido realizar una copia adicional de la
cadena ingresada.
o Busque una solucin que minimice el uso de memoria.
19