Date post: | 13-Jun-2015 |
Category: |
Education |
Upload: | germanvina |
View: | 1,203 times |
Download: | 0 times |
ESTRUCTURAS DE ESTRUCTURAS DE CONTROLCONTROL
SELECTIVAS SELECTIVAS
YY
REPETITIVASREPETITIVAS
Ing. José Luis Ceballos
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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