+ All Categories
Home > Education > Estructuras de control

Estructuras de control

Date post: 13-Jun-2015
Category:
Upload: germanvina
View: 1,203 times
Download: 0 times
Share this document with a friend
32
ESTRUCTURAS DE ESTRUCTURAS DE CONTROL CONTROL SELECTIVAS SELECTIVAS Y Y REPETITIVAS REPETITIVAS Ing. José Luis Ceballos
Transcript
Page 1: Estructuras de control

ESTRUCTURAS DE ESTRUCTURAS DE CONTROLCONTROL

SELECTIVAS SELECTIVAS

YY

REPETITIVASREPETITIVAS

Ing. José Luis Ceballos

Page 2: Estructuras de control

CONCEPTUALIZACIÓNCONCEPTUALIZACIÓN

Las estructuras de control permiten establecer el orden de Las estructuras de control permiten establecer el orden de ejecución de las instrucciones de un programa. Por ejecución de las instrucciones de un programa. Por defecto, el flujo de ejecución de un programa es defecto, el flujo de ejecución de un programa es secuencial, es decir, las instrucciones se ejecutan una secuencial, es decir, las instrucciones se ejecutan una después de la otra en el orden en el cual fueron escritas después de la otra en el orden en el cual fueron escritas en el código del programa. en el código del programa.

Las estructuras selectivas y repetitivas permiten alterar el Las estructuras selectivas y repetitivas permiten alterar el flujo normal de ejecución del programa; en este sentido, flujo normal de ejecución del programa; en este sentido, las estructuras de selección se utilizará para elegir las estructuras de selección se utilizará para elegir cuáles instrucciones se ejecutarán y las repetitivas, se cuáles instrucciones se ejecutarán y las repetitivas, se utilizarán para repetir una serie de instrucciones. utilizarán para repetir una serie de instrucciones.

Ing. José Luis Ceballos

Page 3: Estructuras de control

INTRUCCIONES SELECTIVASINTRUCCIONES SELECTIVAS Instrucción If-then-elseInstrucción If-then-elseLa sintaxis es:La sintaxis es:

if (if (condicióncondición) then) thenbeginbegin

sentencias;sentencias;endendelseelsebeginbegin

sentencias;sentencias;end;end;

Lo anterior establece que de ser verdadera la Lo anterior establece que de ser verdadera la condición,condición, se ejecutará el grupo se ejecutará el grupo de sentencias A, en caso contrario, se ejecutará el grupo de sentencias B. de sentencias A, en caso contrario, se ejecutará el grupo de sentencias B. Nótese que el Nótese que el end end que está antes del que está antes del elseelse no lleva punto y coma, ninguna no lleva punto y coma, ninguna instrucción inmediatamente antes de un instrucción inmediatamente antes de un elseelse lleva punto y coma, esto forma lleva punto y coma, esto forma parte de la sintaxis. En caso de que el grupo de sentencias esté compuesto parte de la sintaxis. En caso de que el grupo de sentencias esté compuesto por una sola instrucción, se omite el por una sola instrucción, se omite el begin – endbegin – end. El uso de paréntesis en la . El uso de paréntesis en la condición es opcional, sin embargo, cuando se evalúa mas de una condicióncondición es opcional, sin embargo, cuando se evalúa mas de una condiciónsu uso es necesario, para indicar cual expresión se evalúa primero. su uso es necesario, para indicar cual expresión se evalúa primero.

Grupo A

Grupo B

Ing. José Luis Ceballos

Sin punto y coma

Page 4: Estructuras de control

INTRUCCIONES SELECTIVASINTRUCCIONES SELECTIVAS

Instrucción If- thenInstrucción If- then

Existen situaciones en donde se omite la parte Existen situaciones en donde se omite la parte elseelse de la instrucción condicional, debido a que de la instrucción condicional, debido a que no se considera necesario ejecutar un grupo de no se considera necesario ejecutar un grupo de instrucciones en caso de que no se cumpla la instrucciones en caso de que no se cumpla la condicióncondición. Así la sintaxis quedaría como sigue:. Así la sintaxis quedaría como sigue:

if (condición) thenif (condición) thenbeginbegin

sentencias;sentencias;end;end;

Ing. José Luis Ceballos

Page 5: Estructuras de control

INTRUCCIONES SELECTIVASINTRUCCIONES SELECTIVAS Instrucción If- then - else en cadenaInstrucción If- then - else en cadenaLa sintaxis es:La sintaxis es:

if (condición1) thenif (condición1) thenbeginbegin

sentencias;sentencias;endendelse if (condición2)else if (condición2)beginbegin

sentencias;sentencias;endendelse if (condición3)else if (condición3)beginbegin

sentencias;sentencias;endendelseelsebeginbegin

sentencias;sentencias;end;end; Ing. José Luis Ceballos

Si condición1 es verdadera se ejecutan estas

sentencias

Si condición2 es verdadera se ejecutan estas

sentencias

Si condición3 es verdadera se ejecutan estas

sentencias

Si ninguna condición anterior es verdadera, se ejecutan

estas sentencias

Page 6: Estructuras de control

INTRUCCIONES SELECTIVASINTRUCCIONES SELECTIVAS

Instrucción If- then - else en cadenaInstrucción If- then - else en cadena

De acuerdo a la sintaxis anterior, la instrucción if- then - De acuerdo a la sintaxis anterior, la instrucción if- then - else en cadena evaluará cada condición en orden, y si else en cadena evaluará cada condición en orden, y si alguna de ellas es verdadera, entonces, se ejecutará el alguna de ellas es verdadera, entonces, se ejecutará el grupo de sentencias asociada a la condición, y lo que grupo de sentencias asociada a la condición, y lo que resta de la cadena será omitido. El grupo de sentencias resta de la cadena será omitido. El grupo de sentencias asociadas con el asociadas con el elseelse final, se ejecutará cuando ninguna final, se ejecutará cuando ninguna de las condiciones anteriores se haya cumplido, es de las condiciones anteriores se haya cumplido, es decir, este último grupo de instrucciones funciona como decir, este último grupo de instrucciones funciona como un valor predeterminado. un valor predeterminado.

Ing. José Luis Ceballos

Page 7: Estructuras de control

INTRUCCIONES SELECTIVASINTRUCCIONES SELECTIVAS

Instrucciones If – then - else anidadasInstrucciones If – then - else anidadas

El grupo de instrucciones asociado a una condición puede estar El grupo de instrucciones asociado a una condición puede estar constituido por instrucciones válidas de Pascal, incluyendo otra constituido por instrucciones válidas de Pascal, incluyendo otra instrucción instrucción if – then - elseif – then - else; de ser así, se estaría creando ; de ser así, se estaría creando instrucciones anidadas if. instrucciones anidadas if.

A continuación se presenta un ejemplo de sintaxis:A continuación se presenta un ejemplo de sintaxis:

Ing. José Luis Ceballos

Page 8: Estructuras de control

INTRUCCIONES SELECTIVASINTRUCCIONES SELECTIVAS Instrucciones If - then - else anidadasInstrucciones If - then - else anidadas

if (condición1) thenif (condición1) thenbeginbegin

if (condición2) thenif (condición2) thenbeginbegin

sentencias;sentencias;endendelseelsebeginbegin

sentencias;sentencias;end;end;

endendelse if (condición3) thenelse if (condición3) thenbeginbegin

if (condición4) thenif (condición4) thenbeginbegin

sentencias;sentencias;end;end;

endendelseelsebeginbegin

sentencias;sentencias;end;end;

Grupo 4

Grupo 2

Grupo 3

Grupo 1

Ing. José Luis Ceballos

Page 9: Estructuras de control

INTRUCCIONES SELECTIVASINTRUCCIONES SELECTIVAS

Instrucciones If – then - else anidadasInstrucciones If – then - else anidadas

En el ejemplo de sintaxis anterior, para que se ejecute el En el ejemplo de sintaxis anterior, para que se ejecute el Grupo 1 de sentencias, Grupo 1 de sentencias, condición1condición1 y y condición2condición2 deben deben ser verdaderas; para ejecutarse el Grupo 2 de ser verdaderas; para ejecutarse el Grupo 2 de sentencias, sentencias, condición1condición1 verdadera y verdadera y condición2condición2 falsa; el falsa; el Grupo 3 de sentencias se ejecutará sólo si Grupo 3 de sentencias se ejecutará sólo si condición3condición3 y y condición4condición4 son verdaderas; y el Grupo 4 de sentencias son verdaderas; y el Grupo 4 de sentencias se ejecutará si se ejecutará si condición1 condición1 y y condición3condición3 son falsas. son falsas.

Ing. José Luis Ceballos

Page 10: Estructuras de control

INTRUCCIONES SELECTIVASINTRUCCIONES SELECTIVASSentencia if – then –else EjemploSentencia if – then –else Ejemplo

Una institución educativa asigna un valor en letra Una institución educativa asigna un valor en letra al resultado de la evaluación obtenido por un al resultado de la evaluación obtenido por un estudiante. Desarrolle un programa que solicite la estudiante. Desarrolle un programa que solicite la calificación numérica obtenida por el alumno y calificación numérica obtenida por el alumno y determine su calificación en letras de acuerdo a determine su calificación en letras de acuerdo a la siguiente tabla:la siguiente tabla:

Calificación obtenida en númeroCalificación obtenida en número Equivalente en letrasEquivalente en letras

Menor que 60Menor que 60 EE

Entre 60 y 69Entre 60 y 69 DD

Entre 70 y 79Entre 70 y 79 CC

Entre 80 y 89Entre 80 y 89 BB

Igual o mayor a 90Igual o mayor a 90 AA

Ing. José Luis Ceballos

Page 11: Estructuras de control

INTRUCCIONES SELECTIVASINTRUCCIONES SELECTIVASEjemplo 1Ejemplo 1

program calificacion; program calificacion; (*nombre del programa *)(*nombre del programa *)uses wincrt; uses wincrt; (*inclusión de unidades. Crt para usar la función clrscr( ) y la función gotoxy( ) *)(*inclusión de unidades. Crt para usar la función clrscr( ) y la función gotoxy( ) *)

varvar N : real; N : real; (*declaración de variables a usar en el programa *)(*declaración de variables a usar en el programa *)

begin begin (* inicio del bloque principal del programa *)(* inicio del bloque principal del programa *) clrscr;clrscr; gotoxy(10,10);write( ‘Calificación en número obtenida: ‘); gotoxy(10,10);write( ‘Calificación en número obtenida: ‘); (* solicitud de la calificación en número *)(* solicitud de la calificación en número *) gotoxy(45,10);read(N); gotoxy(45,10);read(N); (* se almacena el valor en la variable *)(* se almacena el valor en la variable *) if (N < 60) thenif (N < 60) then begin begin (* se inicia la verificación para obtener el equivalente en letras *)(* se inicia la verificación para obtener el equivalente en letras *)

gotoxy(10,12);write( ‘ Calificación en letra : E‘);gotoxy(10,12);write( ‘ Calificación en letra : E‘); endend else if (N >= 60) and (N <= 69) thenelse if (N >= 60) and (N <= 69) then beginbegin

gotoxy(10,12);write( ‘ Calificación en letra : D‘);gotoxy(10,12);write( ‘ Calificación en letra : D‘); endend else if (N >= 70) and (N <= 79) thenelse if (N >= 70) and (N <= 79) then beginbegin

gotoxy(10,12);write( ‘ Calificación en letra : C‘);gotoxy(10,12);write( ‘ Calificación en letra : C‘); endend else if (N >= 80) and (N <= 89) thenelse if (N >= 80) and (N <= 89) then beginbegin

gotoxy(10,12);write( ‘ Calificación en letra : B‘);gotoxy(10,12);write( ‘ Calificación en letra : B‘); endend elseelse beginbegin

gotoxy(10,12);write( ‘ Calificación en letra : A‘);gotoxy(10,12);write( ‘ Calificación en letra : A‘); end;end; gotoxy(10,15);write(‘Presione una tecla para finalizar….’); gotoxy(10,15);write(‘Presione una tecla para finalizar….’); end. end. (* fin del programa *)(* fin del programa *)

Ing. José Luis Ceballos

Page 12: Estructuras de control

INTRUCCIONES SELECTIVASINTRUCCIONES SELECTIVAS Instrucción caseInstrucción case

La sintaxis es:La sintaxis es:

case expresión ofcase expresión of

valor1:valor1:beginbegin

sentencias;sentencias;end;end;valor2:valor2:beginbegin

sentencias;sentencias;end;end;valor3:valor3:beginbegin

sentencias;sentencias;endendelseelse

beginbeginsentencias;sentencias;

end;end;end;end;

Ing. José Luis Ceballos

Page 13: Estructuras de control

INTRUCCIONES SELECTIVASINTRUCCIONES SELECTIVAS Instrucción Instrucción casecase

La instrucción La instrucción casecase es una alternativa a la instrucción es una alternativa a la instrucción if-then-else, if-then-else, y yconsiste en comparar el valor de una consiste en comparar el valor de una expresiónexpresión de número entero, de número entero, carácter, booleano o enumerado con un valor específico. Al coincidir carácter, booleano o enumerado con un valor específico. Al coincidir algunos de estos valores, se ejecuta el grupo de sentencias algunos de estos valores, se ejecuta el grupo de sentencias asociado a ese valor. asociado a ese valor. En caso de que la En caso de que la expresiónexpresión no coincida con ningún valor, entonces se no coincida con ningún valor, entonces seejecutará por defecto o de manera predeterminada el grupo de ejecutará por defecto o de manera predeterminada el grupo de sentencias asociadas al sentencias asociadas al elseelse. Es de hacer notar que la instrucción . Es de hacer notar que la instrucción elseelse es opcional dentro del ciclo es opcional dentro del ciclo casecase. .

Ing. José Luis Ceballos

Page 14: Estructuras de control

INTRUCCIONES SELECTIVASINTRUCCIONES SELECTIVASEjemplo 2Ejemplo 2

Desarrollar un programa que lea un Desarrollar un programa que lea un carácter del teclado e indique si es una carácter del teclado e indique si es una letra o número. En caso de ser una letra, letra o número. En caso de ser una letra, que señale si es mayúscula o minúscula.que señale si es mayúscula o minúscula.

Ing. José Luis Ceballos

Page 15: Estructuras de control

INTRUCCIONES SELECTIVASINTRUCCIONES SELECTIVASEjemplo 2Ejemplo 2program leer_caracter;program leer_caracter; (*nombre del programa *)(*nombre del programa *)

uses wincrt;uses wincrt; (*inclusión de unidades. Crt para usar la función clrscr( ) y la función gotoxy( ) *)(*inclusión de unidades. Crt para usar la función clrscr( ) y la función gotoxy( ) *) varvar c : char;c : char; (*declaración de variables a usar en el programa *)(*declaración de variables a usar en el programa *)

beginbegin (* inicio del bloque principal del programa *)(* inicio del bloque principal del programa *)

clrscr;clrscr;gotoxy(5,10);write( ‘Presione un carácter del teclado gotoxy(5,10);write( ‘Presione un carácter del teclado ’);’); (* solicitud de la lectura de un carácter *)(* solicitud de la lectura de un carácter *)

gotoxy(41,10);read(c);gotoxy(41,10);read(c); (* se almacena el carácter presionado en la variable *)(* se almacena el carácter presionado en la variable *)

case c ofcase c of (* se inicia la verificación para saber qué carácter fue presionado *)(* se inicia la verificación para saber qué carácter fue presionado *)

‘‘0’..’9’ : begin0’..’9’ : begin gotoxy(5,13);write(‘La tecla presionada corresponde a un número’);gotoxy(5,13);write(‘La tecla presionada corresponde a un número’); end;end; ‘ ‘a’..’z’ : begina’..’z’ : begin gotoxy(5,13);write(‘La tecla presionada corresponde a una letra minúscula’);gotoxy(5,13);write(‘La tecla presionada corresponde a una letra minúscula’); end;end; ‘ ‘A’..’Z’ : beginA’..’Z’ : begin gotoxy(5,13);write(‘La tecla presionada corresponde a una letra mayúscula’);gotoxy(5,13);write(‘La tecla presionada corresponde a una letra mayúscula’); end;end; #30..#31 : begin#30..#31 : begin gotoxy(5,13);write(‘La tecla presionada corresponde a un código de control’);gotoxy(5,13);write(‘La tecla presionada corresponde a un código de control’); endend else beginelse begin gotoxy(5,13);write(‘Carácter no identificado’);gotoxy(5,13);write(‘Carácter no identificado’); end;end; end;end; (* fin de la verificación *)(* fin de la verificación *)

gotoxy(5,15);write(‘Presione ENTER para finalizar….’);gotoxy(5,15);write(‘Presione ENTER para finalizar….’);end.end. (* fin del programa *)(* fin del programa *)

Ing. José Luis Ceballos

Page 16: Estructuras de control

INTRUCCIONES INTRUCCIONES REPETITIVASREPETITIVAS

Instrucción for toInstrucción for toLa sintaxis es:La sintaxis es:

for variable:= for variable:= valor_inicialvalor_inicial to to valor_finalvalor_final do dobeginbegin

sentencias;sentencias;end;end;

La instrucción La instrucción forfor se utiliza cuando se tiene establecido el se utiliza cuando se tiene establecido el número de veces que se debe ejecutar repetidamente un número de veces que se debe ejecutar repetidamente un grupo de sentencias.grupo de sentencias.

Ing. José Luis Ceballos

Page 17: Estructuras de control

INTRUCCIONES INTRUCCIONES REPETITIVASREPETITIVAS

Instrucción for toInstrucción for to La instrucción La instrucción for for hace uso de una variable de hace uso de una variable de

control, la cual recibe el control, la cual recibe el valor_inicialvalor_inicial al al ejecutarse por primera vez el ciclo, luego, ejecutarse por primera vez el ciclo, luego, ejecuta el grupo de sentencias que se ejecuta el grupo de sentencias que se encuentran antes del encuentran antes del end end del del forfor y se y se incrementa en uno el valor de la variable control, incrementa en uno el valor de la variable control, volviéndose a ejecutar el grupo de sentencias volviéndose a ejecutar el grupo de sentencias que están dentro del ciclo, hasta que la variable que están dentro del ciclo, hasta que la variable control alcance un valor mayor al control alcance un valor mayor al valor_final, valor_final, en en cuyo instante finaliza el ciclo.cuyo instante finaliza el ciclo.

Page 18: Estructuras de control

INTRUCCIONES INTRUCCIONES REPETITIVASREPETITIVAS

Instrucción for downtoInstrucción for downtoLa sintaxis es:La sintaxis es:

for variable:= for variable:= valor_inicialvalor_inicial downto downto valor_finalvalor_final do dobeginbegin

sentencias;sentencias;end;end;

Esta variante de la instrucción Esta variante de la instrucción forfor se utiliza cuando se se utiliza cuando sedecrementa en uno el valor de la variable de control. El decrementa en uno el valor de la variable de control. El ciclo se ejecutará hasta que la variable control sea menor que elciclo se ejecutará hasta que la variable control sea menor que elvalor_final.valor_final.

Ing. José Luis Ceballos

Page 19: Estructuras de control

INTRUCCIONES INTRUCCIONES REPETITIVASREPETITIVAS

Instrucción for to/downto Instrucción for to/downto

Joyanes Aguilar establece las siguientes consideraciones Joyanes Aguilar establece las siguientes consideraciones al momento de implementar una sentencia al momento de implementar una sentencia for to/downtofor to/downto::

1.- La variable de control así como el 1.- La variable de control así como el valor_inicial valor_inicial y el y el valor_final valor_final deben deben

ser del mismo tipo de dato. Para este caso, el tipo de dato ser del mismo tipo de dato. Para este caso, el tipo de dato Real Real no no está está

permitido. Tanto permitido. Tanto valor_inicial valor_inicial y y valor_final valor_final pueden ser expresiones o pueden ser expresiones o

constantes.constantes.

2.- Es ilegal intentar modificar el valor de la variable control, así como 2.- Es ilegal intentar modificar el valor de la variable control, así como

el el valor_inicialvalor_inicial y el y el valor_final valor_final dentro del ciclo dentro del ciclo forfor. .

Ing. José Luis Ceballos

Page 20: Estructuras de control

INTRUCCIONES REPETITIVASINTRUCCIONES REPETITIVASEjemplo 1Ejemplo 1

Desarrollar un programa que calcule el Desarrollar un programa que calcule el promedio de 10 números indicados por el promedio de 10 números indicados por el usuario.usuario.

Ing. José Luis Ceballos

Page 21: Estructuras de control

INTRUCCIONES REPETITIVASINTRUCCIONES REPETITIVASEjemplo 1Ejemplo 1

program promedio; program promedio; (*nombre del programa *)(*nombre del programa *)

uses wincrt; uses wincrt; (*inclusión de unidades. Crt para usar la función clrscr( ) y la función gotoxy( ) *)(*inclusión de unidades. Crt para usar la función clrscr( ) y la función gotoxy( ) *) varvar num, s, i : integer; num, s, i : integer; (*declaración de variables a usar en el programa *)(*declaración de variables a usar en el programa *) prom : real;prom : real;

beginbegin (* inicio del bloque principal del programa *)(* inicio del bloque principal del programa *)

clrscr;clrscr; gotoxy(5,10);write( ‘A continuación indique 10 números’);gotoxy(5,10);write( ‘A continuación indique 10 números’); s:= 0;s:= 0;

for i:= 1 to 10 do for i:= 1 to 10 do (* inicio del ciclo repetitivo. Diez iteraciones *)(* inicio del ciclo repetitivo. Diez iteraciones *)

beginbegin gotoxy(5,13);write(‘Número gotoxy(5,13);write(‘Número ’); ’); (* solicitud del número*)(* solicitud del número*)

gotoxy(15,13);read(num); gotoxy(15,13);read(num); (* se almacena el número en la variable *)(* se almacena el número en la variable *)

s:= s + num; s:= s + num; (* se acumula el valor del número*)(* se acumula el valor del número*)

end; end; (* final del ciclo for *)(* final del ciclo for *)

prom:= s/10; prom:= s/10; (* se calcula el promedio *)(* se calcula el promedio *)

gotoxy(5,15);write(‘El promedio de los valores introducidos es : ’, prom:6:2);gotoxy(5,15);write(‘El promedio de los valores introducidos es : ’, prom:6:2); gotoxy(5,17);write(‘Presione una tecla para finalizar…..’);gotoxy(5,17);write(‘Presione una tecla para finalizar…..’);end. end. (* fin del programa *)(* fin del programa *)

Ing. José Luis Ceballos

Page 22: Estructuras de control

INTRUCCIONES REPETITIVASINTRUCCIONES REPETITIVASEjemplo 2Ejemplo 2

Desarrollar un programa muestre por Desarrollar un programa muestre por pantalla los números naturales, en orden pantalla los números naturales, en orden descendente.descendente.

Ing. José Luis Ceballos

Page 23: Estructuras de control

INTRUCCIONES REPETITIVASINTRUCCIONES REPETITIVASEjemplo 2Ejemplo 2

program numeros_naturales; program numeros_naturales; (*nombre del programa *)(*nombre del programa *)

uses wincrt; uses wincrt; (*inclusión de unidades. Crt para usar la función clrscr( ) y la función gotoxy( ) *)(*inclusión de unidades. Crt para usar la función clrscr( ) y la función gotoxy( ) *) varvar i : integer; i : integer; (*declaración de variables a usar en el programa *)(*declaración de variables a usar en el programa *)

beginbegin (* inicio del bloque principal del programa *)(* inicio del bloque principal del programa *)

clrscr;clrscr; gotoxy(5,5);write( ‘Se mostrarán los números naturales en orden descendiente’);gotoxy(5,5);write( ‘Se mostrarán los números naturales en orden descendiente’);

gotoxy(1,7);gotoxy(1,7); for i:= 9 downto 0 do for i:= 9 downto 0 do (* inicio del ciclo repetitivo *)(* inicio del ciclo repetitivo *)

beginbegin writeln(i); writeln(i);

end; end; (* final del ciclo for downto*)(* final del ciclo for downto*)

gotoxy(5,20);write(‘Presione una tecla para finalizar…..’);gotoxy(5,20);write(‘Presione una tecla para finalizar…..’);end. end. (* fin del programa *)(* fin del programa *)

Ing. José Luis Ceballos

Page 24: Estructuras de control

INTRUCCIONES INTRUCCIONES REPETITIVASREPETITIVAS

Instrucción while doInstrucción while doLa sintaxis es:La sintaxis es:

while while condición condición dodobeginbegin

sentencias;sentencias;end;end;

En una sentencia En una sentencia whilewhile el grupo de instrucciones inmerso en ella, se el grupo de instrucciones inmerso en ella, se

ejecutará repetidamente, mientras que la ejecutará repetidamente, mientras que la condicióncondición sea verdadera. Si sea verdadera. Si

la condición cambia dentro del bucle, entonces, el ciclo finalizará. A la condición cambia dentro del bucle, entonces, el ciclo finalizará. A

diferencia del ciclo diferencia del ciclo for,for, en esta instrucción no se conoce previamente en esta instrucción no se conoce previamente el el

número de iteraciones.número de iteraciones.Ing. José Luis Ceballos

Page 25: Estructuras de control

INTRUCCIONES INTRUCCIONES REPETITIVASREPETITIVAS

Instrucción while do Instrucción while do

Joyanes Aguilar establece las siguientes consideraciones Joyanes Aguilar establece las siguientes consideraciones al momento de implementar una sentencia al momento de implementar una sentencia while dowhile do::

1.- La condición lógica debe ser modificada por una 1.- La condición lógica debe ser modificada por una

sentencia dentro del ciclo, en caso contrario, este será sentencia dentro del ciclo, en caso contrario, este será

Infinito.Infinito.

2.- Es posible que el grupo de sentencias del ciclo 2.- Es posible que el grupo de sentencias del ciclo while dowhile do

nunca se ejecuten. Esto sucederá si la condición es falsa nunca se ejecuten. Esto sucederá si la condición es falsa

la primera vez que se evalúa. la primera vez que se evalúa.

Ing. José Luis Ceballos

Page 26: Estructuras de control

INTRUCCIONES REPETITIVASINTRUCCIONES REPETITIVASEjemplo 3Ejemplo 3

Desarrollar un programa que lea una Desarrollar un programa que lea una secuencia de caracteres hasta que el secuencia de caracteres hasta que el usuario registre un punto. Al final el usuario registre un punto. Al final el programa debe indicar cuántos caracteres programa debe indicar cuántos caracteres contiene la secuencia. contiene la secuencia.

Ing. José Luis Ceballos

Page 27: Estructuras de control

INTRUCCIONES REPETITIVASINTRUCCIONES REPETITIVASEjemplo 3Ejemplo 3

program secuencia_caracteres; program secuencia_caracteres; (*nombre del programa *)(*nombre del programa *)

uses wincrt; uses wincrt; (*inclusión de unidades. Crt para usar la función clrscr( ) y la función gotoxy( ) *) (*inclusión de unidades. Crt para usar la función clrscr( ) y la función gotoxy( ) *)

varvar ch : char; ch : char; (*declaración de variables a usar en el programa *)(*declaración de variables a usar en el programa *) c : integer;c : integer;beginbegin (* inicio del bloque principal del programa *)(* inicio del bloque principal del programa *)

clrscr;clrscr; gotoxy(5,5);write( ‘Indique una secuencia de caracteres. Tipee un punto para finalizar ’);gotoxy(5,5);write( ‘Indique una secuencia de caracteres. Tipee un punto para finalizar ’);

gotoxy(3,7);gotoxy(3,7); c:= 0;c:= 0; read(ch); read(ch); (* lee el caracter *)(* lee el caracter *) while ch <> ‘.’ do while ch <> ‘.’ do (* Inicio del ciclo while. Se verifica la condición *)(* Inicio del ciclo while. Se verifica la condición *)

beginbegin c:= c + 1;c:= c + 1;

read(ch); read(ch); (* lee otro caracter *)(* lee otro caracter *) end; end; (* final del ciclo while *)(* final del ciclo while *)

gotoxy(5,20);write(‘Usted tipeo ‘,c,’ caracteres’);gotoxy(5,20);write(‘Usted tipeo ‘,c,’ caracteres’); gotoxy(5,21);write(‘Presione una tecla para finalizar…..’);gotoxy(5,21);write(‘Presione una tecla para finalizar…..’);end. end. (* fin del programa *)(* fin del programa *)

Ing. José Luis Ceballos

Page 28: Estructuras de control

INTRUCCIONES INTRUCCIONES REPETITIVASREPETITIVAS

Instrucción repeat untilInstrucción repeat untilLa sintaxis es:La sintaxis es:

repeatrepeat

sentencias;sentencias;

until condición;until condición;

La sentencia La sentencia repeat untilrepeat until hace que se repita la ejecución de las sentencias asociadas a hace que se repita la ejecución de las sentencias asociadas a ella, hasta que la condición sea verdadera. ella, hasta que la condición sea verdadera. La diferencia que existe con respecto al ciclo La diferencia que existe con respecto al ciclo whilewhile dodo visto anteriormente, es que en visto anteriormente, es que en este, la condición se evalúa antes de ingresar a la ejecución de las sentencias; por el este, la condición se evalúa antes de ingresar a la ejecución de las sentencias; por el contrario, en el ciclo contrario, en el ciclo repeat untilrepeat until se ejecutan al menos una vez las sentencias y luego se se ejecutan al menos una vez las sentencias y luego se verifica la condición. En tal sentido, si se requiere validar primero la condición antes de verifica la condición. En tal sentido, si se requiere validar primero la condición antes de ejecutar el grupo de sentencias, se debe hacer uso de la sentencia ejecutar el grupo de sentencias, se debe hacer uso de la sentencia while dowhile do, en , en cualquier otro caso, se puede hacer uso de la sentencia cualquier otro caso, se puede hacer uso de la sentencia repeat untilrepeat until. .

Ing. José Luis Ceballos

Page 29: Estructuras de control

INTRUCCIONES INTRUCCIONES REPETITIVASREPETITIVAS

Instrucción repeat untilInstrucción repeat until

Joyanes Aguilar establece algunas consideraciones Joyanes Aguilar establece algunas consideraciones sobre la sentencia sobre la sentencia repeat untilrepeat until::

1.- La condición se evalúa al final del ciclo, después de 1.- La condición se evalúa al final del ciclo, después de ejecutarse todas las sentencias.ejecutarse todas las sentencias.2.- Si la condición es falsa, se vuelve a repetir el ciclo y se 2.- Si la condición es falsa, se vuelve a repetir el ciclo y se ejecutan nuevamente todas las sentencias.ejecutan nuevamente todas las sentencias.3.- Si la condición es verdadera, se finaliza el ciclo.3.- Si la condición es verdadera, se finaliza el ciclo.

Ing. José Luis Ceballos

Page 30: Estructuras de control

INTRUCCIONES REPETITIVASINTRUCCIONES REPETITIVASEjemplo 4Ejemplo 4

Desarrollar un programa que le solicite al Desarrollar un programa que le solicite al usuario un número entero y devuelva el usuario un número entero y devuelva el valor de su raíz cuadrada. El programa valor de su raíz cuadrada. El programa estará ejecutando el proceso hasta que el estará ejecutando el proceso hasta que el usuario revele que no va a indicar otro usuario revele que no va a indicar otro número.número.

Page 31: Estructuras de control

INTRUCCIONES REPETITIVASINTRUCCIONES REPETITIVASEjemplo 4Ejemplo 4

program raiz_cuadrada; program raiz_cuadrada; (*nombre del programa *)(*nombre del programa *)

uses wincrt; uses wincrt; (*inclusión de unidades. Crt para usar la función clrscr( ) y la función gotoxy( ) *)(*inclusión de unidades. Crt para usar la función clrscr( ) y la función gotoxy( ) *)

varvar num : integer; num : integer; (*declaración de variables a usar en el programa *)(*declaración de variables a usar en el programa *) raiz : real;raiz : real; resp: char;resp: char;

beginbegin (* inicio del bloque principal del programa *)(* inicio del bloque principal del programa *)

repeat repeat (* inicio del ciclo. No se verifica previamente ninguna condición *)(* inicio del ciclo. No se verifica previamente ninguna condición *)

clrscr;clrscr; gotoxy(5,10);writeln( ‘Indique un número gotoxy(5,10);writeln( ‘Indique un número ’); ’); (* se solicita el número *)(* se solicita el número *)

gotoxy(27,10);readln(num); gotoxy(27,10);readln(num); (* se almacena en la variable *)(* se almacena en la variable *) raiz:= sqrt(num); raiz:= sqrt(num); (* se obtiene la raíz cuadrada del número*)(* se obtiene la raíz cuadrada del número*)

gotoxy(5,12);writeln(‘La raíz cuadrada del número es : ‘,raiz:8:2);gotoxy(5,12);writeln(‘La raíz cuadrada del número es : ‘,raiz:8:2); gotoxy(5,15);writeln(‘Desea calcular la raíz cuadrada a otro número ? (S/N) gotoxy(5,15);writeln(‘Desea calcular la raíz cuadrada a otro número ? (S/N) ‘); ‘); gotoxy(62,15)readln(resp);gotoxy(62,15)readln(resp); until (resp = ‘N’) or (resp = ‘n’); until (resp = ‘N’) or (resp = ‘n’); (* final del ciclo repeat until *)(* final del ciclo repeat until *)

gotoxy(5,21);writeln(‘Presione una tecla para finalizar…..’);gotoxy(5,21);writeln(‘Presione una tecla para finalizar…..’);end. end. (* fin del programa *)(* fin del programa *)

Ing. José Luis Ceballos

Page 32: Estructuras de control

ASIGNACIÓNASIGNACIÓN

Desarrollar un programa que señale si un número entero Desarrollar un programa que señale si un número entero indicado por el usuario es negativo o positivo.indicado por el usuario es negativo o positivo.

Desarrollar un programa que señale si un número entero Desarrollar un programa que señale si un número entero ingresado por el usuario es múltiplo de 5.ingresado por el usuario es múltiplo de 5.

Desarrollar un programa que señale el mayor de dos Desarrollar un programa que señale el mayor de dos números enteros indicados por el usuario.números enteros indicados por el usuario.

Haciendo uso de cada una de las sentencias repetitivas Haciendo uso de cada una de las sentencias repetitivas (For, While-Do, Repeat-Until) desarrollar un programa (For, While-Do, Repeat-Until) desarrollar un programa que muestre por pantalla los números comprendidos en que muestre por pantalla los números comprendidos en un rango definido por el usuario, tomando en cuenta un un rango definido por el usuario, tomando en cuenta un incremento en una unidad entre los valores del rango.incremento en una unidad entre los valores del rango.

Ing. José Luis Ceballos


Recommended