Universidad Nacional Experimental De Guayana Coordinación general de pregrado Vicerrectorado Académico Proyecto de carrera: ING. Industrial Asignatura: Computación II Estructura de control repetitiva. Profesor: Bachiller: Luis Extraño Villandri Pacheco Ciudad Guayana,2016
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Universidad Nacional Experimental De Guayana
Coordinación general de pregrado
Vicerrectorado Académico
Proyecto de carrera: ING. Industrial
Asignatura: Computación II
Estructura de control repetitiva.
Profesor: Bachiller:
Luis Extraño Villandri Pacheco
Ciudad Guayana,2016
Estructura de control repetitiva.
Las estructuras de control repetitivas son aquellas en las que
una sentencia o grupos de sentencias se repiten muchas
veces. Este conjunto de sentencias se denomina bucle (loop).
En este capitulo se introducen las estructuras de control
repetitivas disponibles en el lenguaje turbo pascal así mismo
se describen un conjunto de técnicas para diseñar algoritmos
y programas que utilicen bucles.
Tipos de estructura de control repetitiva.
• BUCLE
Una estructura de control que permite la recepción de una serie determinada de sentencias se denominan bucle (lazo o ciclo).
El cuerpo del bucle contiene las sentencias que se repiten. Pascal proporciona tres estructuras o sentencias de control para especificar la repetición: while, repeat y for.
SENTENCIA WHILE Indica al ordenador que se ejecuten una o más sentencias mientras se
cumpla una determinada condición. La condición viene determinada por
una variable o expresión booleana.
Formato: WHILE condición DO BEGIN (sentencia1); ... (sentencian);
END; WHILE condición DO (sentencia);
Esta sentencia comprueba inicialmente si la condición es verdadera. Si la
condición es verdadera se ejecutan las sentencias mientras la condición de
su enunciado sea verdadera y finaliza cuando la condición es falsa. Dado
que la condición puede ser falsa inicialmente, es decir antes de comenzar
el bucle, habrá casos en que el bucle no se ejecute.
• SENTENCIA REPEAT UNTIL Ejecuta las sentencias comprendidas entre las palabras reservadas
REPEAT y UNTIL hasta que la expresión o variable sea verdadera.
Formato: REPEAT begin (Sentencia); (Sentencia); ... end; UNTIL
condición;
Se ejecutan siempre una vez, por lo menos, y la terminación del bucle se
produce cuando el valor de la expresión lógica o condición de salida es
verdadera. Se ejecuta hasta que la expresión es verdadera, es decir, se
ejecuta mientras la expresión sea falsa.
SENTENCIA FOR Repite la ejecución de una o varias sentencias un número fijo de veces.
previamente establecido. Necesita una variable de control del bucle que
es necesariamente de tipo ordinal, ya que el bucle se ejecuta mientras la
variable de control toma una serie consecutiva de valores de tipo
ordinal, comprendidos entre dos valores extremos (inferior y superior).
Formato ascendente: FOR variable control:=valor inicial TO valor final DO
(sentencia); Formato descendente: FOR variablecontrol:=valorincial
DOWNTO valor final DO (sentencia); donde (sentencia) puede ser una
sentencia simple o compuesta.
Sintaxis de control repetitiva. • Ejemplo:
program leccion7;
Var
contar, x : Integer;
Begin
write('Hasta donde tengo que contar: ');
readln(contar); For x:=0 to contar do begin
write('Voy por el ');
writeln(x);
end;
writeln('Terminado');
end.
Por supuesto, detrás del do, si hubiera habido solo una
instrucción, se hubiera podido evitar
usar begin...end.
También es posible contar hacia atrás:
For x:=100 downto 0 do begin
write('Voy por el ');
writeln(x);
end;
El bucle For no tiene mayor complicación.
Bucle condicional repeat. Until. Este bucle se repite siempre y cuando la condición propuesta sea verdadera. Es como un if que repite una y otra vez su bloque hasta que sea falso. Ejemplo: program leccion7; var salida : Integer; begin repeat write('Introduce un valor (0..9): '); readln(salida); until (salida>=0) and (salida<=9); writeln('Por fin un valor correcto. Terminando.'); end.
Bucle condicional while.do. Este bucle es muy similar a repeat. Until. Solo tiene dos diferencias: hace el chequeo de la condición al principio, y se puede evitar usar un bloque si solo hay una instrucción.
Ejemplo: program leccion7; var contar, x : Integer; begin write('Introduce un número: '); readln(contar); x := 0; while x <> contar do begin writeln(x); x := x + 1; end; end.
Sintaxis: while ( expresión condicional )
{ Bloque de sentencias; }
1. Se evalúa la expresión. Si el resultado es falso, acaba el
bucle. Si es verdadero continua en el punto 2.
2. Se ejecutan el bloque de sentencias.
3. Vuelve al punto 1.
Sintaxis: do
{ Bloque de sentencias; }
while ( expresión condicional );
1 Se ejecuta el bloque de sentencias.
2. Se evalúa la expresión condicional. Si el resultado es
falso, se sale del bucle. Si es verdadero, se vuelve al
punto1.
Sintaxis: for ( iniciación contador; condición; progresión contador)
{ Bloque de sentencias del bucle; }
1Se inicia el contador.
2. Se evalúa la expresión condicional. Si es falsa acaba el
bucle. Si es verdadera, continúa con el paso 3.
3. Se ejecutan el bloque de sentencias.
4. Se actualiza el contador.
5. Vuelve al paso 2.
Diferencias de estructura de control repetitiva
• El for se utiliza mayormente cuando se conoce el numero de veces que hay que
realizar algo, por ejemplo, si se sabe de antemano que son 5 iteraciones las que hay que
realizar porque son 5 los nombres que hay que mostrar. El for admite muchas
variaciones como por ejemplo especificar dos condiciones de permanencia for (i = 0; i <
10 && encontrado == 0;i++) { //--el código }
El while a diferencia del for hay que especificar el valor inicial antes de entrar en el
While y dentro hay que poner de manera explicita el
incremento/decremento. Cuando digo que se tiene que poner de manera explicita el
valor inicial (condición de entrada) me estoy refiriendo que a un numero, a un puntero, .
en definitiva lo que debe de ocurrir es que se de una determinada condición. En el for eso
no ocurre ya que el for está hecho para ejecutarse sí o sí. El incremento/decremento
puede ser en una variable de tipo numérico, pero también en un puntero, en un carácter
que cambie, etc.
Ejemplo: 1- Ambos bucles hacen lo mismo: i = 0 while (i < 10) { //tu código i++; } ................. for (i = 0; i < 10; i++) {