pascal estructuras de control
TRANSCRIPT
1
75.01 Computación
Estructuras de Control
Lic. María del Carmen Muotri - Ing. María Delia Grossi
Codificando las Estructuras de Control
If expresión lógica
then
beginsentencia1;…
sentencia n
end
else
beginsentencia1e;…
sentencia ne
End;
Selección Simple: If – then - else
Se colocan si dentro del then hay más de una sentencia
Puede no ir
Se colocan si dentro del else hay más de una sentencia
Expresión o combinación de expresiones que puede ser verdadera o falsa
2
Codificando las Estructuras de Control
If expresión lógica
then
beginsentencia1;…
sentencia n
end
else
beginsentencia1e;…
sentencia ne
End;
Selección Simple: If – then - else
Se ejecutan sentencia1…sentencia n
Verdadera
No se accede
Codificando las Estructuras de Control
If expresión lógica
then
beginsentencia1;…
sentencia n
end
else
beginsentencia1e;…
sentencia ne
End;
Selección Simple: If – then - else
No se accede
Falsa
Se ejecutan sentencia1e…sentencia ne
3
Ingresar un valor por teclado e informar si ese
valor es positivo o negativoprogram Chequeo_Signo; var
Numero : real; begin
Writeln(‘Ingrese un numero: '); Readln(Numero); if Numero >= 0.0 thenwriteln('El numero es positivo')
elsewriteln('El numero es negativo');
ReadLnend.
Ingresar un número por teclado e informar
si dicho número es par o imparprogram EJEM;Uses
Crt; Var
num: integer; begin
ClrScr; Write('Introduzca un numero: '); ReadLn(num); If (num mod 2 = 0)then
WriteLn('NUMERO PAR') else
WriteLn('NUMERO IMPAR');ReadLn
end.
4
Operaciones Aritméticas en Pascal
Resto de dividir a por b
A mod bRestoMod
Cociente entero de a por b
A div bDivisión EnteraDiv
Cociente de A por BA / BDivisión/
Producto de A por BA * BMultiplicación*
Resta de A y BA – BResta-
Suma de A y BA + BSuma+
ResultadoEjemploSignificadoOperador
13 4
1 3
AB
A div BA mod B
C:= A div B
D:= A mod BD
13 4
0 3.25
AB
A / B
C
C:= A / B
Leer tres valores e informar cual es el mayor de los tresProgram Mayor;Uses
Crt;Var
A,B,C, Elmanyor : Integer;Begin
ClrScr;Writeln (`Digite tres números enteros `);Readln (A,B,C);If A > B thenIf A > C thenElmayor := A
elseElmayor := C
elseIf B > C then
Elmayor := Belse
Elmayor := C; Writeln (`El número mayor es: `,Elmayor);ReadLn
End.
5
Leer dos números desde el teclado y si el primero es mayor que el segundo intercambiar sus valoresProgram Intercambio; Uses
Crt;Var
num1,num2:Integer; Begin
ClrScr; WriteLn ('Escriba dos numeros: '); ReadLn (num1,num2); WriteLn ;If num1 > num2thenbegin
Write(num2,' ',num1,'El primer numero es mayor.');WriteLn(' Se cambia el orden.')
endelsebegin
Write(num1,' ',num2,'El segundo numero es mayor.'); Write(' No se cambia el orden.');
end;ReadLn
End.
Codificando las Estructuras de Control
Case variable of
lista constantes1:begin
sentencia1;…
sentencia 1n
end;
lista constantes2:
begin
sentencia2;…
sentencia 2nend;lista constantes n:
sentencia n
else
sentencia1e;End;
Selección Compuesta: Case
Se colocan si dentro de la opción (en este caso, la primera) hay más de una sentencia
Puede no ir
End del Case (no tiene un begin en correspondencia)
La variable debe ser integer, char, boolean o enumerado
6
Codificando las Estructuras de Control
Case variable oflista constantes1:begin
sentencia1;…
sentencia 1n
end;
lista constantes2:
begin
sentencia2;…
sentencia 1nend;lista constantes n:
sentencia n
else
sentencia1e;End;
Selección Compuesta: Case
Se ejecutan estas sentencias
No se accede
La variable se encuentra dentro de esta lista
Programa con CASEprogram lengua; uses crt; var
num: integer; begin
clrscr; writeln('Seleccione un idioma'); writeln('1.- Español'); writeln('2.- English'); writeln('3.- Français'); writeln('4.- Deutsch'); writeln('5.- Italiano'); readln(num);case num of
1: writeln ('Hola'); 2: writeln ('Hello'); 3: writeln('Salut'); 4: writeln('Hallo'); 5: writeln('Ciao');
else (* Si no contiene ninguno de los valores anteriores*) writeln('Error')
end; readkey; (*esperamos a que se pulse una tecla*)
end.
7
En la siguiente tabla se encuentran las categorías a las que pertenecen los signos del zodíaco:
TierraTauro
AguaPiscis
AireAcuario
TierraCapricornio
FuegoSagitario
AguaEscorpio
AireLibra
TierraVirgo
FuegoLeo
AguaCáncer
AireGéminis
FuegoAries
CategoríaSigno del Zodíaco
program zodíaco;uses Crt;var Numero : Integer;beginClrScr;Writeln( 'Listado de signos del zodiaco:' );Writeln( '1. Aries' );Writeln( '2. Tauro' ); Writeln( '3. Geminis' );Writeln( '4. Cancer' );
Writeln( '5. Leo' );Writeln( '6. Virgo' );
Writeln( '7. Libra' );Writeln( '8. Escorpio' );Writeln( '9. Sagitario' );Writeln( '10. Capricornio' );Writeln( '11. Acuario' );Writeln( '12. Piscis' );Writeln( 'Introduzca numero de signo: ' );
ReadLn( Numero );case Numero of
1, 5, 9 : Write( 'Es un signo de Fuego.' );2, 6, 10 : Write( 'Es un signo de Tierra.' );3, 7, 11 : Write( 'Es un signo de Aire.' );4, 8, 12 : Write( 'Es un signo de Agua.' )
elseWrite( 'ERROR: ', Numero,' no esta asociado a ningun signo.' )
end;ReadLn
end.
8
Codificando las Estructuras de Control
Repeat
sentencia1;…
sentencia n
Until expresión lógica;
Repetición: Repeat - Until Repetición: While - do
While expresión lógica do
begin
sentencia1;…
sentencia n
end;
Begin y End se colocan si hay más de una sentencia
Escribir un programa en Pascal que realice un
bucle con While y muestre en pantalla del 1 al 10
Program bucle; Uses
Crt; Var
x: integer; Begin
ClrScr; x:=0; while x <= 10 dobegin
WriteLn(x); x:=x+1;
end;ReadLn
End.
9
Escribir un programa en Pascal que realice un bucle
con Repeat y muestre en pantalla los números del 1
al 10.Program bucle_Repeat; Uses
Crt; Var
x:integer; Begin
ClrScr; x:=0; Repeat
WriteLn (x); x:=x+1;
Until x=10;ReadLn
End.
Ejercicios
1. Se ingresan los números del 1 al 100, sumarlos e imprimir el resultado.
2. Imprimir un listado con los números del 1 al 1000 cada uno con su respectivo cuadrado. Cada pareja de valores debe imprimirse enuna misma línea, colocar un título al comienzo.
3. Realizar la tabla de multiplicar para cualquier número que se ingresa desde el teclado.
4. Calcular el factorial de un número entero llamado N que es ingresado desde teclado. Tener en cuenta que F=F * N y que N es distinto de cero.
5. Escribir un programa que calcule la suma y el promedio de los 50primeros números enteos.
10
TablaProgram tabla; Uses
Crt;Var
tabla, x, num: Integer;Begin
ClrScr;Write (‘Escriba un numero para realizar su tabla de multiplicar: ');ReadLn (num); WriteLn;Repeat
x:= x + 1;tabla:= num * x;
Until x=11;ReadLn
End.
FactorialProgram factorial;Uses
Crt;Var
temp,num,fac:Longint;Begin
ClrScr;fac:=1;temp:=num;Write(‘Escriba el numero al cual calcularemos el factorial: '); ReadLn(num);temp:=num;While num>=1 doBegin
fac:=fac*num;num:=num-1;
end;Write('El factorial de ‘,temp,' es ‘,fac); ReadLn;
End.
11
Ejemplo 1
Desarrollar un Programa en Lenguaje Pascal que permita calcular y mostrar por pantalla el sueldo semanal de un dibujante de un estudio de Ingeniería.
Se deberá ingresar por teclado: el nombre y apellido del dibujante, la cantidad de horas trabajadas (de tipo entero) yel precio por hora trabajada (de tipo real).Se considera que el usuario del programa no comete error de tipeo en el ingreso de los datos.VERSIÓN1
{SECCIÓN DECLARATIVA}program Sueldo1;{Versión 1}uses
Crt;var
nombre, apellido: string[20];horasTrab: integer;precioHora: real;sueldo: real;
begin{SECCIÓN ALGORÍTMICA}{Prólogo}
writeLn( ‘CÁLCULO DEL SUELDO SEMANAL DE UN DIBUJANTE’ );writeLn; write( ‘Ingrese el nombre del dibujante: ’ );readLn( nombre );write( ‘Ingrese el apellido del dibujante: ’ );readLn( apellido );
Ejemplo 1
Tipos de datos String. 2 sentencias de lectura
12
write( ‘Ingrese las HORAS trabajadas: ’ );readLn(horasTrab );write( ‘Ingrese el PRECIO horario: ’ );readLn(precioHora);
{Resolución}{Cálculor el sueldo}
sueldo:= horasTrab * precioHora;{Epílogo}
{Exhibición del Resultado en pantalla}write( ‘El Sueldo Semanal de ', nombre,' ', apellido);writeLn( ' es de: ',sueldo:12:2, ' pesos');
{Generación de Pausa}readLn;
end.
Ejemplo 1Enunciados de Lecturaprecedidos por enunciados de Escritura
Flujo de Control del Programa:
Ejemplo 2
Desarrollar un Programa en Lenguaje Pascal que permita calcular y mostrar por pantalla el sueldo semanal de un dibujante de un estudio de Ingeniería.
Se deberá ingresar por teclado: el nombre y apellido del dibujante y la cantidad de horas trabajadas (de tipo entero). El precio que se paga por hora trabajada es de 10.5 pesos. Se considera que el usuario del programa no comete error de tipeo en el ingreso de los datos.
VERSIÓN2: ahora precioHora es una constante.}
13
{SECCIÓN DECLARATIVA}program Sueldo2;{Versión 2}uses
Crt;
ConstprecioHora=10.5;
varnombre, apellido: string[20];horasTrab: integer;sueldo: real;
begin{SECCIÓN ALGORÍTMICA}
{Prólogo}…
{Desarrollo}…
{Epílogo}end.
Ejemplo 2
Modificación con respecto a la Versión 1
Ejemplo 3
Desarrollar un Programa en Lenguaje Pascal que permita calcular y mostrar por pantalla el sueldo semanal de un dibujante de un estudio de Ingeniería.
Se deberá ingresar por teclado: el nombre y apellido del dibujante y la cantidad de horas trabajadas (de tipo entero).El precio que se paga por hora trabajada es de 10.5 pesos.En el caso en el que la cantidad de horas trabajadas sea superior a 40, el excedente se considera como "horas extras" y el precio de cada hora extra es de 21 pesos.Se considera que el usuario del programa no comete error de tipeo en el ingreso de los datos.VERSIÓN3: En esta versión se analiza si se trabajaron horas extras. Se utiliza la Estructura Selectiva Simple if-then-else
14
{SECCIÓN DECLARATIVA}program Sueldo3;{Versión 3}uses
Crt;Const
precioHora=10.5;precioHExtra= 21;
varnombre, apellido: string[20];precioHora: real;sueldo: real;
begin{SECCIÓN ALGORÍTMICA}{Prólogo}
writeLn( ‘CÁLCULO DEL SUELDO SEMANAL DE UN DIBUJANTE’ );writeLn; write( ‘Ingrese el nombre del dibujante: ’ );readLn( nombre );write( ‘Ingrese el apellido del dibujante: ’ );readLn( apellido );
Ejemplo 3
write( ‘Ingrese las HORAS trabajadas: ’ );readLn(horasTrab );
{Resolución}{Cálculo del sueldo evaluando la cantidad de horas trabajadas }
If horasTrab > 40thenbegin
write(nombre, ' ',apellido);writeLn(' trabajó ', (horasTrab - 40),' horas extra');sueldo:= 40 * precioHora + (horasTrab-40)* precioHExtra
endelse
sueldo:= horasTrab * precioHora;{Epílogo}
{Exhibición del Resultado en pantalla}write( ‘El Sueldo Semanal de ', nombre,' ', apellido);writeLn( ' es de: ',sueldo:12:2, ' pesos');
{Generación de Pausa}readLn;
end.
Como dentro del "then" hay más de 1 acción, se coloca "begin"-"end"
Ejemplo 3 (Cont.)
15
Flujo de Control del Programa:
horasTrab > 40
horasTrab <= 40
Prólogo Epílogo
Desarrollo
Ejemplo 3 (Cont.)
if
Ejemplo 4Desarrollar un Programa en Lenguaje Pascal que permita calcular y mostrar por pantalla el sueldo semanal de un dibujante de un estudio de Ingeniería.Se deberá ingresar por teclado: el nombre y apellido del dibujante y la cantidad de horas trabajadas (de tipo entero).El básico que se le paga por hora trabajada es de 10.5 pesos.Las horas extras (más de 40 horas), se calculan de acuerdo a la categoría del empleado:
�Categoría 1, le corresponde un 50% adicional al básico/ hora,�Categoría 2. le corresponde un 100% adicional al básico/hora�Categoría 3, le corresponde un 150% adicional al básico/hora�Categoría 4, le corresponde un 200% adicional al básico/hora.
Se considera que el usuario del programa no comete error de tipeo en el ingreso de los datos.VERSIÓN 4. Ahora hay múltiples opciones. Se utilizan "IF ANIDADOS". Cuando una o ambas bifurcaciones de la sentencia if-then-else contienen también una sentencia if, se dice que dichas sentencias if están anidadas y al proceso anidamiento.
16
{SECCIÓN DECLARATIVA}program Sueldo4;{Versión 4}uses
Crt;Const
precioHora=10.5;precioHExtra= 21;
varnombre, apellido: string[20];precioHora: real;sueldo: real;categoria: byte; {representa la categoría del empleado.
Observación: el tipo byte es un tipo entero de rango admisible 0..255}
factor: real; {representa el factor por horas extras}begin
Ejemplo 4
Ejemplo 4{SECCIÓN ALGORÍTMICA}
{Prólogo}writeLn( ‘CÁLCULO DEL SUELDO SEMANAL DE UN DIBUJANTE’ );writeLn; write( ‘Ingrese el nombre del dibujante: ’ );readLn( nombre );write( ‘Ingrese el apellido del dibujante: ’ );readLn( apellido );write('Ingrese las HORAS trabajadas: ');readLn(horasTrab);
{Resolución}{Calcular el sueldo}
17
if HorasTrab > 40thenbeginwrite('Ingrese la categoría del empleado ');readLn(categoria);if categoria = 1 then
factor:= 1.5else
if categoria=2thenfactor:= 2
elseif categoria=3then
factor:= 2.5else
factor:= 3; sueldo:= ((horasTrab-40)*factor*10.5 ) + precioHora*40;
endelse
sueldo:= precioHora * horasTrab;
este "if-then-else" se encuentra dentro de "if horasTrab". Se dice que está "anidado"}
como se considera que el usuario no comete error de tipeo, la única opción es queingrese el 4 }
{Epílogo}{Exhibición del Resultado en pantalla}
write( ‘El Sueldo Semanal de ', nombre,' ', apellido);writeLn( ' es de: ',sueldo:12:2, ' pesos');
{Generación de Pausa}readLn;
end.
Ejemplo 4 (Cont.)
18
Ejemplo 5Desarrollar un Programa en Lenguaje Pascal que permita calcular y mostrar por pantalla el sueldo semanal de un dibujante de un estudio de Ingeniería.Se deberá ingresar por teclado: el nombre y apellido del dibujante y la cantidad de horas trabajadas (de tipo entero).El básico que se le paga por hora trabajada es de 10.5 pesos.Las horas extras (más de 40 horas), se calculan de acuerdo a la categoría del empleado:
�Categoría 1, le corresponde un 50% adicional al básico/ hora,�Categoría 2. le corresponde un 100% adicional al básico/hora�Categoría 3, le corresponde un 150% adicional al básico/hora�Categoría 4, le corresponde un 200% adicional al básico/hora.
Se considera que el usuario del programa no comete error de tipeo en el ingreso de los datos.VERSIÓN 5. Ahora hay múltiples opciones y se utiliza la estructura CASE
{SECCIÓN DECLARATIVA}program Sueldo5;{Versión 5}uses
Crt;Const
precioHora=10.5;precioHExtra= 21;
varnombre, apellido: string[20];precioHora: real;sueldo: real;categoria: byte;factor: real;
begin
19
Ejemplo 5{SECCIÓN ALGORÍTMICA}
{Prólogo}writeLn( ‘CÁLCULO DEL SUELDO SEMANAL DE UN DIBUJANTE’ );writeLn; write( ‘Ingrese el nombre del dibujante: ’ );readLn( nombre );write( ‘Ingrese el apellido del dibujante: ’ );readLn( apellido );write('Ingrese las HORAS trabajadas: ');readLn(horasTrab);
{Resolución}{Calcular el sueldo}
if HorasTrab > 40thenbeginwrite('Ingrese la categoría del empleado ');readLn(categoria);case categoria of1:factor:= 1.5;
2:factor:= 2;
3:factor:= 2.5;
4:factor:= 3;
end;{Cálculo del Sueldo}sueldo:= (horasTrab-40)*factor*10.5 + precioHora*40
endelse
sueldo:= precioHora * horasTrab;
Fin del case. No tiene correspondencia con un begin
Como hay 1 sola acción no se enmarca en begin - end
categoria DEBE ser una variable de tipo ordinal (en base a los tipos vistos podría ser: entera, char o boolean).NO REAL
Ejemplo 5
20
{Epílogo}{Exhibición del Resultado en pantalla}
write( ‘El Sueldo Semanal de ', nombre,' ', apellido);writeLn( ' es de: ',sueldo:12:2, ' pesos');
{Generación de Pausa}readLn;
end.
Ejemplo 5 (Cont.)
Flujo de Control del Case:
1
2
3
4
EpílogoCase categoria of
Ejemplo 5 Una VarianteDesarrollar un Programa en Lenguaje Pascal que permita calcular y mostrar por pantalla el sueldo semanal de un dibujante de un estudio de Ingeniería.Se deberá ingresar por teclado: el nombre y apellido del dibujante y la cantidad de horas trabajadas (de tipo entero).El básico que se le paga por hora trabajada es de 10.5 pesos.Las horas extras (más de 40 horas), se calculan de acuerdo a la categoría del empleado:
�Categoría 1 a 3, le corresponde un 50% adicional al básico/ hora,�Categoría 4 a 6. le corresponde un 100% adicional al básico/hora�Categoría 7 a 9, le corresponde un 150% adicional al básico/hora�Categoría 10 a 12, le corresponde un 200% adicional al básico/hora.
Se considera que el usuario del programa no comete error de tipeo en el ingreso de los datos.
21
if HorasTrab > 40thenbeginwrite('Ingrese la categoría del empleado ');readLn(categoria);case categoria of1..3:factor:= 1.5;
4..6:factor:= 2;
7..9:factor:= 2.5;
10..12:factor:= 3;
end;{Cálculo del Sueldo}sueldo:= (horasTrab-40)*factor*10.5 + precioHora*40
endelse
sueldo:= precioHora * horasTrab;
Los posibles valores de lavariable pueden indicarse como:Rango de valores
Ejemplo 5.1
if HorasTrab > 40thenbeginwrite('Ingrese la categoría del empleado ');readLn(categoria);case categoria of1,2,3:factor:= 1.5;
4,5,6:factor:= 2;
7,8,9:factor:= 2.5;
10,11,12:factor:= 3;
end;{Cálculo del Sueldo}sueldo:= (horasTrab-40)*factor*10.5 + precioHora*40
endelse
sueldo:= precioHora * horasTrab;
Los posibles valores de lavariable pueden indicarse como:Valores Enumerados
Ejemplo 5.2
22
Desarrollar un Programa en Lenguaje Pascal que permita calcular y mostrar por pantalla el sueldo semanal de cada uno de los dibujantes de un estudio de Ingeniería. Se deberá ingresar por teclado: el nombre y apellido del dibujante y la cantidad de horas trabajadas (de tipo entero).Se deberá ingresar por teclado el nombre y apellido de los dibujante, la cantidad de horas trabajadas (de tipo entero).El precio que se paga por hora trabajada es de 10.5 pesos.En el caso en el que la cantidad de horas trabajadas sea superior a 40, el excedente se considera como "horas extras" y el precio de cada hora extra es de 21 pesos.Nota: El ingreso de datos finaliza cuando se responde con ‘n’ o ‘N’ a la
pregunta: 'Desea calcular el sueldo de otro dibujante?‘
Se considera que el usuario del programa no comete error de tipeo en el ingreso de los datos.VERSIÓN6: En esta versión se deben calcular los sueldos de "n" dibujantes .
Ejemplo 6
Marca de Fin
{SECCIÓN DECLARATIVA}program Sueldo6;{Versión 6}uses
Crt;Const
precioHora=10.5;precioHExtra= 21;
varnombre, apellido: string[20];precioHora: real;sueldo: real;
resp: char; Representa la respuesta del usuario
Ejemplo 6 (Cont.)
23
begin{SECCIÓN ALGORÍTMICA}
{Prólogo}writeLn( ‘CÁLCULO DEL SUELDO SEMANAL DE DIBUJANTES’ );
{Resolución y Epílogo}Repeat
write('Ingrese el NOMBRE del dibujante: ');readLn(nombre);write('Ingrese el APELLIDO del dibujante: ');readLn(apellido);write('Ingrese las HORAS trabajadas: ');readLn(horasTrab); if horasTrab > 40 thenbegin
write(nombre, ' ',apellido);writeLn(' trabajó ', (horasTrab - 40),' horas extra');sueldo:= 40 * precioHora + (horasTrab-40)* precioHExtra
endelse
sueldo:= horasTrab * precioHora; write('El Sueldo Semanal es: ', sueldo:12:2, ' pesos'); write('Desea calcular el sueldo de otro dibujante?');readLn(resp)
Until (resp='N') OR (resp='n');Se evalúa condición al final. Cuando es TRUE, Fin
{Generación de Pausa}readLn;
end.
Flujo de Control del Repeat:
Prólogo
Desarrollo y Epílogo
repeat Until (resp= ‘N’) or(resp = ‘n’)
Condición = TRUE
24
Desarrollar un Programa en Lenguaje Pascal que permita calcular y mostrar por pantalla el sueldo semanal de los dibujantes de un estudio de Ingeniería. Se deberá informar también la cantidad de dibujantes ingresados.Se deberá ingresar por teclado: el nombre y apellido del dibujante y la cantidad de horas trabajadas (de tipo entero).Se deberá ingresar por teclado el nombre y apellido de los dibujante, la cantidad de horas trabajadas (de tipo entero).El precio que se paga por hora trabajada es de 10.5 pesos.En el caso en el que la cantidad de horas trabajadas sea superior a 40, el excedente se considera como "horas extras" y el precio de cada hora extra es de 21 pesos.Para finalizar el ingreso de datos se deberá ingresar 0 como Horas Trabajadas.Se considera que el usuario del programa no comete error de tipeo en el ingreso de los datos.VERSIÓN7: En esta versión se pueden calcular los sueldos de "n" dibujantes.y se utiliza otra estructura de control REPETITIVA: while do.También se cuenta la cantidad de dibujantes ingresados.}
Ejemplo 7
Marca de Fin
{SECCIÓN DECLARATIVA}program Sueldo7;{Versión 7}uses
Crt;Const
precioHora=10.5;precioHExtra= 21;
varnombre, apellido: string[20];precioHora: real;sueldo: real;
contador: integer;Permite contar la cantidad de dibujantes
Ejemplo 7 (Cont.)
25
begin{SECCIÓN ALGORÍTMICA}
{Prólogo}writeLn( ‘CÁLCULO DEL SUELDO SEMANAL DE DIBUJANTES’ );contador:=0;write('Ingrese las horas trabajadas del dibujante (con 0 fin): ');readln(horasTrab);
{Resolución y Epílogo}while (horasTrab <> 0) dobegin
contador:= contador + 1;write('Ingrese el NOMBRE del dibujante: ');readLn(nombre);write('Ingrese el APELLIDO del dibujante: ');readLn(apellido);write('Ingrese las HORAS trabajadas: ');readLn(horasTrab); if horasTrab > 40 thenbegin
writeLn(nombre,’' trabajó ', (horasTrab - 40),' horas extra');sueldo:= 40 * precioHora + (horasTrab-40)* precioHExtra
endelse
sueldo:= horasTrab * precioHora; write('El Sueldo Semanal es: ', sueldo:12:2, ' pesos'); write('Ingrese HORAS trabajadas otro dibujante (c/ 0 fin): ');readLn(horasTrab)
end;
Se evalúa condición al inicio. Cuando es TRUE, se ejecuta los siguientes enunciados
Se incrementa contador
Se analiza si el ciclo continúa
Se realiza primer lectura
begin{Exhibición por pantalla de la cantidad de dibujantes procesados}
writeLn;writeLn('La cantidad de dibujantes ingresados es: ', contador);
{Generación de Pausa}readLn;
end.
Flujo de Control del Repeat:
Prólogo
Desarrollo y Epílogo
While horasTrab <> 0 do
Condición = FALSE