2. Unidad 04
Estructuras de control
Objetivos
• El alumno estará en la capacidad de crear programas en
el lenguaje C utilizando estructuras de control.
3. Estructuras de control repetitivas
• Son aquellas que permiten repetir la ejecución de un
conjunto de instrucciones siempre y cuando una
condición se cumpla, a la entrada o a la salida del
LOOP o LAZO
• En el C podemos distinguir tres estructuras de
control repetitivas:
▫ while
▫ do…while
▫ for
Programación 1 - 2009-01 - Unidad 4 - Estructuras de control
4. Instrucción while
• Mientras la expresión sea
diferente de cero (verdadera)
se ejecuta el bloque de
instrucciones
Programación 1 - 2009-01 - Unidad 4 - Estructuras de control
Expresión ≠0
Bloque de instrucciones
si no
5. Instrucción while
• Sintaxis:
while (expresión)
bloque;
▫ El bloque de instrucciones se ejecutará mientras el
valor de la expresión sea verdadero. De lo contrario se
continua con la siguiente instrucción.
Programación 1 - 2009-01 - Unidad 4 - Estructuras de control
6. Instrucción while
int main(array<System::String ^> ^args)
{ int contador;
contador = 1;
while (contador <= 5)
{ printf("contador = %dn", contador);
contador = contador +1;
}
_getch();
}
Escriba un programa que permita imprimir los cinco primeros números
positivos.
• Datos de entrada: Ninguno
• Datos de salida: Impresión de los cinco primeros números positivos
• Restricciones: Ninguna
Escriba un programa que permita imprimir los cinco primeros números
positivos.
• Datos de entrada: Ninguno
• Datos de salida: Impresión de los cinco primeros números positivos
• Restricciones: Ninguna
7. Instrucción do…while
• Se ejecuta el bloque de
instrucciones mientras la
expresión sea diferente de
cero.
• Siempre se ejecuta el bloque
de instrucciones por lo menos
una vez.
Programación 1 - 2009-01 - Unidad 4 - Estructuras de control
Expresión ≠0
Bloque de instrucciones
si
no
8. Instrucción do while
• Sintaxis:
do
bloque de instrucciones;
while (expresión);
▫ El bloque de instrucciones se ejecutará mientras el
valor de la expresión sea verdadero. De lo contrario se
continua con la siguiente instrucción.
▫ El bloque de instrucciones se ejecutará por lo menos
una vez.
Programación 1 - 2009-01 - Unidad 4 - Estructuras de control
9. Instrucción do …while
int main(array<System::String ^> ^args)
{ int contador;
contador = 1;
do
{ printf("contador = %dn", contador);
contador = contador +1;
} while (contador <= 5);
_getch();
}
Escriba un programa que permita imprimir los cinco primeros números
positivos.
• Datos de entrada: Ninguno
• Datos de salida: Impresión de los cinco primeros números positivos
• Restricciones: Ninguna
Escriba un programa que permita imprimir los cinco primeros números
positivos.
• Datos de entrada: Ninguno
• Datos de salida: Impresión de los cinco primeros números positivos
• Restricciones: Ninguna
10. Instrucción while y do …while
• El bloque de instrucciones puede estar constituido por
una o más instrucciones.
• Si el bloque está compuesto por varias instrucciones se
encierran entre { }.
• No olvide que:
▫ En el bloque de instrucciones se debe incluir alguna
instrucción que permita modificar el valor de la expresión
en algún momento para poder salir del lazo.
▫ En la instrucción do…while el bloque de instrucciones se
ejecuta por lo menos la primera vez.
Programación 1 - 2009-01 - Unidad 4 - Estructuras de control
11. Instrucción for
• Se ejecuta la expresion 1
• Mientras la expresión 2 sea
diferente de cero (verdadera)
se ejecuta el bloque de
instrucciones y la expresión 3
Programación 1 - 2009-01 - Unidad 4 - Estructuras de control
expresión2 ≠0
Bloque de instrucciones
si
no
expresión 1
expresión 3
12. Instrucción for
• Sintaxis:
for (expresión 1; expresión 2; expresión 3)
bloque;
▫ Primero se ejecuta la expresión 1.
▫ El bloque de instrucciones y la expresión 3 se
ejecutarán mientras el valor de la expresión 2 sea
verdadero.
Programación 1 - 2009-01 - Unidad 4 - Estructuras de control
13. Instrucción for
int main(array<System::String ^> ^args)
{
int contador;
for (contador=1;contador<6;contador++)
printf("contador = %dn", contador);
_getch();
}
Escriba un programa que permita imprimir los cinco primeros números
positivos.
• Datos de entrada: Ninguno
• Datos de salida: Impresión de los cinco primeros números positivos
• Restricciones: Ninguna
Escriba un programa que permita imprimir los cinco primeros números
positivos.
• Datos de entrada: Ninguno
• Datos de salida: Impresión de los cinco primeros números positivos
• Restricciones: Ninguna
14. Instrucción for
• Si se omite expresión 2 se asumirá el valor permanente de 1 y
el bloque se ejecutará de forma indefinida (bucle infinito).
• Inicialmente se ejecuta expresión 1, esta se realiza para
inicializar algún parámetro que controla la repetición del
bloque de instrucciones.
• La expresión 2 es una condición que debe ser verdadera para
que se ejecute el bloque.
• La expresión 3 se utiliza para modificar el valor del parámetro
que controla el bucle.
Programación 1 - 2009-01 - Unidad 4 - Estructuras de control
15. Sentencias
break , continue, exit.
Objetivos
• El alumno estará en la capacidad de crear programas
donde utilice las sentencias break , continue y exit
según crea conveniente para un caso en específico.
16. break
• La proposición "break" permite una salida forzada de
las siguientes estructuras de control:
▫ do…while
▫ while
▫ for
▫ switch
• Es utilizado para provocar el fin de la ejecución de
una ECR o para salir de la sentencia switch
Programación 1 - 2009-01 - Unidad 4 - Estructuras de control
17. Sentencia break
int main(array<System::String ^> ^args)
{
int num,cont;
cont=0;
num=0;
while (num<=20)
{ num=num+1;
if (cont==6)
break;
if (num %2 ==0)
{ cont=cont+1;
printf("%d ",num);
}
}
_getch();
}
Realizar una aplicación en C que imprima los 6 primeros
número pares que hay entre 1 y 20
Realizar una aplicación en C que imprima los 6 primeros
número pares que hay entre 1 y 20
18. continue
• La proposición “continue" provoca un salto
obligatorio a la siguiente iteración dentro del ciclo de
las siguientes ECR:
▫ do…while
▫ while
▫ for
• La sentencia dentro de un bucle forzará al programa
a finalizar la iteración actual y a comenzar la
evaluación de la siguiente.
Programación 1 - 2009-01 - Unidad 4 - Estructuras de control
19. Sentencia continue
int main(array<System::String ^> ^args)
{
int i, suma;
suma=0;
for (i=1; i<=10;i++)
{
if (i%2!=0) // salta los impares
continue;
suma=suma+i; // aquí procesa los pares
}
printf (“La suma es : %d”, suma);
_getch();
}
Realizar una aplicación en C que sume los número pares
comprendidos entre 1 y 10 inclusive
Realizar una aplicación en C que sume los número pares
comprendidos entre 1 y 10 inclusive
20. exit
• Sintaxis:
exit (código)
▫ Si el código es 0, entonces la aplicación terminará bajo la
denominación de “éxito”
▫ Si el código diferente a 0, entonces la aplicación terminará
bajo la denominación de “fallo”
• Es una función que esta definida en la librería <stdlib.h>
y es utilizada para terminar la ejecución programa
actual, desde el lugar donde se le invoque.
Programación 1 - 2009-01 - Unidad 4 - Estructuras de control
21. Sentencia exit
int main(array<System::String ^> ^args)
{
char caracter;
while (1)
{ flushall();
printf(“Pulse el caracter S para salir ”);
scanf(“%c”,&caracter);
if (caracter==‘S’ || caracter==‘s’)
exit(0);
}
}
Realizar una aplicación en C que pregunte al usuario si
desea salir del programa hasta que el usuario ingrese la
letra S.
Realizar una aplicación en C que pregunte al usuario si
desea salir del programa hasta que el usuario ingrese la
letra S.
22. Ejercicio
int main(array<System::String ^> ^args)
{
int contador, numero;
contador=0;
while (1)
{ printf(“Ingrese el numero 0 para salir ”);
scanf(“%d”, &numero);
if (numero==0)
exit(0);
contador=contador +1
}
printf(“La cantidad de numeros ingresados es: %d”,contador);
return 0;
}
Realizar una aplicación en C que permita ingresar un
conjunto de números enteros y nos determine la cantidad de
enteros ingresados, si se sabe que se ingresarán números
hasta que el usuario digite el valor de cero.
Realizar una aplicación en C que permita ingresar un
conjunto de números enteros y nos determine la cantidad de
enteros ingresados, si se sabe que se ingresarán números
hasta que el usuario digite el valor de cero.