La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

COMPUTACION 2009 C lase 4 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida.

Presentaciones similares


Presentación del tema: "COMPUTACION 2009 C lase 4 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida."— Transcripción de la presentación:

1

2 COMPUTACION 2009 C lase 4

3 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida Aritméticas Lógica Relacionales Caracter Estandar Integer Real Char Boolean Del programador Decisión Enumerados Subrangos String Repetición

4 4/25/2015 Computación - Fac. Ingeniería - UNMDP3 Marca Cilindrada Precio Stock HONDA 100 5000 $ 7 HONDA 220 7800.50 $ 2 SUZUKI 450 14000 $ 3 HARLEY_D 800 50000 $ 0 KAWASAKI 650 30000 $ 3 Marca Cilindrada Precio Stock HONDA 100 5000 $ 7 HONDA 220 7800.50 $ 2 SUZUKI 450 14000 $ 3 HARLEY_D 800 50000 $ 0 KAWASAKI 650 30000 $ 3

5 4/25/2015 Computación - Fac. Ingeniería - UNMDP4 Problema 1:  Queremos conocer marca y precio de todas las motos que valga menos de 20000 $  Cómo lo averiguamos?  Por cada moto, preguntamos usando la siguiente decisión: Si el precio< 20000 entonces imprimir marca y precio;

6 Conocer datos de todas las motos que valgan menos de 20000 $ Primera moto (moto:=1) READLN(precio,marca); IF precio<20000 THEN WRITELN(precio,marca); Segunda moto (moto:=2) READLN(precio,marca); IF precio<20000 THEN WRITELN(precio,marca); Según nuestros datos, en total tenemos cinco modelos

7 Tercera moto (moto:=3) READLN(precio,marca); IF precio<20000 THEN WRITELN(precio,marca); Cuarta moto (moto:=4) READLN(precio,marca); IF precio<20000 THEN WRITELN(precio,marca); Quinta moto (moto:=5) READLN(precio,marca); IF precio<20000 THEN WRITELN(precio,marca); Para lograr la ejecución de la pregunta para cada moto, hemos repetido código 5 veces

8 Conocer datos de todas las motos que valgan menos de 20000 $ READLN(precio,marca); IF precio<20000 THEN WRITELN(precio,marca); REPETIR CINCO VECES FIN REPETIR Este sentencia es una mejor opción (logramos lo mismo y NO repetimos codigo)

9 Código para leer y sumar tres valores numéricos. Por ejemplo: 6, 12 y 2 SUMA:=0; Read(A); SUMA:=SUMA+A; Read(A); SUMA:=SUMA+A; Read(A); SUMA:=SUMA+A;

10 Código para leer y sumar tres valores numéricos SUMA:=0; Read(A); SUMA:=SUMA+A; Read(A); SUMA:=SUMA+A; Read(A); SUMA:=SUMA+A;

11 Código para leer y sumar tres valores numéricos SUMA:=0; Read(A); SUMA:=SUMA+A; REPETIR 3 VECES FIN REPETIR

12 4/25/2015 Computación - Fac. Ingeniería - UNMDP11 ejecutarse en forma repetitiva  Las sentencias de repetición especifican que ciertas sentencias (escritas una sola vez) deben ejecutarse en forma repetitiva.  La ejecución repetitiva puede hacerse indicando la cantidad de veces (como en el ejemplo anterior) o señalando que se ejecute una sentencia (simple o compuesta) mientras una expresión lógica lógica sea verdadera (o falsa) según el caso.  Estas sentencias se conocen como CICLOS Sentencias ejecutables de repetición

13 4/25/2015 Computación - Fac. Ingeniería - UNMDP12 Sentencias ejecutables de REPETICION WHILE REPEAT FOR

14 la construcción mas apropiada es WHILE o REPEAT. la construcción mas apropiada es WHILE o REPEAT. Si el número de repeticiones se conoce a-priori Se recomienda FOR. Se recomienda FOR. NO SI

15 4/25/2015 Computación - Fac. Ingeniería - UNMDP14 Sentencias ejecutables de REPETICION WHILE REPEAT FOR

16 WHILE EXPRESION LOGICA Ejecutar SENTENCIA TRUE Estructura de Control: WHILE-DO La sentencia se ejecutó una vez DO

17 WHILE EXPRESION LOGICA Ejecutar SENTENCIA TRUE Estructura de Control: WHILE-DO La sentencia se ejecutó dos veces DO

18 WHILE EXPRESION LOGICA SIGUE EL PROGRAMA FALSE Estructura de Control: WHILE-DO La sentencia no se ejecuta

19 4/25/2015 Computación - Fac. Ingeniería - UNMDP18 Sentencia WHILE-DO  La sentencia WHILE-DO provoca la ejecución de una sentencia mientras una expresión lógica sea verdadera.  Cuando la expresión lógica es falsa, termina la ejecución.

20 Sintaxis de WHILE-DO WHILE expresión lógica DO Sentencia; WHILE expresión lógica DO begin Sentencia 1 ; Sentencia 2 ;.................; Sentencia n end;

21 Moto:=1; While moto<= 5 do begin readln(marca, precio); if precio< 20000 then writeln(marca,precio); moto:=moto+1 end; Moto:=1; While moto<= 5 do begin readln(marca, precio); if precio< 20000 then writeln(marca,precio); moto:=moto+1 end;

22 4/25/2015 Computación - Fac. Ingeniería - UNMDP21  Notar que, si al iniciarse el ciclo WHILE la expresión lógica es falsa, no se ejecuta la/s sentencia/s.  En la expresión lógica debe figurar alguna/s variable/s que la modifiquen durante la ejecución del ciclo. Observaciones:

23 CICLOS TIPICOS Ciclo controlado por contador Ciclo controlado por centinela Ciclo contador Ciclo sumador

24 4/25/2015 Computación - Fac. Ingeniería - UNMDP23 El ciclo consta de tres partes: Inicialización Evaluación Incremento CICLO controlado por CONTADOR  Un ciclo controlado por contador es aquel que se ejecuta un número determinado de veces. Este ciclo está vigilado por una variable de control.

25 4/25/2015 Computación - Fac. Ingeniería - UNMDP24 I:=1; {Inicialización } WHILE I<5 DO {Evaluación} Begin...... I:=I+1 {Incremento} End; Esquema del ciclo controlado por contador Variable de control

26 Ejemplo: leer tres números enteros enteros program itera; VAR I,A:integer; begin I:=1; WHILE I<=3 do begin READLN(A); I:=I+1; end end. I I<=3 A 1 true -234 2 true 1345 3 true 20987 4 false Recordar que cada vez que A e I toma un nuevo valor, pierden el anterior Lote de prueba: -234,1345,20987

27 Ejemplo: leer N números enteros program iteratres; VAR I,N,A:integer; begin READLN(N); I:=1; WHILE I<=N do begin READLN(A); I:=I+1; end end. Lote de prueba: 5, -1,3,6,-234,4

28 4/25/2015 Computación - Fac. Ingeniería - UNMDP27  El centinela es un valor específico que toma una variable (el centinela) en el momento que deseamos terminar una tarea específica. CICLO controlado por CENTINELA

29 EJEMPLO: Luego de leer una cantidad de datos cuya cantidad no se conoce de antemano (se sabe que los datos son distintos de cero), escribir los que sean mayores que 23. Como todos los datos válidos a procesar son distintos de cero, tomamos como centinela al valor cero.

30 El código en azul se coloca antes de ingresar al ciclo y se repite como las ultimas lineas dentro del cuerpo del ciclo Program lectura; {ESQUEMA DE LECTURA ADELANTADA} Var num: real; Begin WRITE('Ingresar un numero:'); READLN(num); WHILE num <> 0 DO Begin IF num>23 THEN WRITELN(num); WRITE('Ingresar un numero:'); READLN(num); End End. Num num<>0 num>23 SALIDA 10 true false 30 true true 1234 true true -98 true false 23 true false 33 true true 0 false 30 1234 33 Lote de prueba:10,30,1234,-98,23,33,0

31 4/25/2015 Computación - Fac. Ingeniería - UNMDP30  Un ciclo contador cuenta la cantidad de veces que ocurre algún hecho. Ejemplo: En un lote de números positivos, cuya cantidad no se conoce a-priori, contar cuantos números hay entre 100 y 200. Ciclo CONTADOR

32 Program cuenta; Var Contador:integer; num:real; Begin Contador:=0; WRITE('Ingresar un numero:'); READLN(num); WHILE num>0 DO Begin IF (num>=100) AND (num<=200) THEN Contador:=Contador+1; WRITE('Ingresar un numero:'); READLN(num) End; WRITELN('La cantidad de datos es',Contador) End. Lote de prueba: 10, 189, 234, 155, 78,100, -9

33 4/25/2015 Computación - Fac. Ingeniería - UNMDP32  Un ciclo sumador suma un grupo de datos numéricos Ejemplo: Sumar 4 números enteros. Escribir el resultado de la suma Ciclo SUMADOR (o acumulador)

34 Program suma1; var I,A,suma:integer; BEGIN I:=1; suma:=0; WHILE I<5 do begin readln(A); suma:=suma+A; I:=I+1; end; WRITELN('El valor de suma es:',suma) end. I suma I<5 A SALIDA 1 0 true 234 234 2 true -34 200 3 true 18 218 4 true 55 273 5 false 273 Lote de prueba:234,-34,18,55

35 4/25/2015 Computación - Fac. Ingeniería - UNMDP34 Sentencias ejecutables de REPETICION WHILE REPEAT FOR

36 Estructura de Control: REPEAT-UNTIL REPEAT Ejecución de SENTENCIA EXPRESIÓN LÓGICA UNTIL La sentencia se ejecutó una vez

37 Estructura de Control: REPEAT-UNTIL REPEAT Ejecución de SENTENCIA EXPRESIÓN LÓGICA FALSE UNTIL La sentencia se ejecutó dos veces

38 Estructura de Control: REPEAT-UNTIL REPEAT EXPRESIÓN LÓGICA La sentencia no se ejecuta TRUE Fin del REPEAT (continúa el programa)

39 4/25/2015 Computación - Fac. Ingeniería - UNMDP38 Sentencia REPEAT-UNTIL  La entrada a esta sentencia se hace por la palabra reservada REPEAT. Pascal ejecuta la sentencia/s entre REPEAT y UNTIL.  Luego evalúa la expresión lógica.

40 4/25/2015 Computación - Fac. Ingeniería - UNMDP39 Sentencia REPEAT-UNTIL  Si esta es falsa, el control de ejecución vuelve a REPEAT y continúa ejecutando la sentencia/s. Este proceso continúa mientras la expresión lógica sea falsa (formándose así un ciclo)  Si esta es verdadera, termina el ciclo.

41 4/25/2015 Computación - Fac. Ingeniería - UNMDP40 Sintaxis de la estructura de control: REPEAT-UNTIL La sentencia es ejecutada, por lo menos, una vez REPEAT Sentencia_1;..........; Sentencia_n UNTIL Expresión lógica; REPEAT Sentencia UNTIL Expresión Lógica;

42 program repeat1; var A:integer; begin A:=1; repeat writeln(A); A:=A+1; until A>4; end. Ejemplo: Escribir los cuatro primeros números naturales A A>4 1 2 false 3 false 4 false 5 true 1 2 3 4

43 program repeat1; var A:integer; begin A:=1; repeat writeln(A); A:=A+1; until A>4; end. Comparación de repeat con while program repeat1; var A:integer; begin A:=1; while A<=4 do begin writeln(A); A:=A+1; end end. A A>4 1 2 false 3 false 4 false 5 true 1 2 3 4 A A<=4 1 true 2 true 3 true 4 true 5 false 1 2 3 4

44 Ejemplo Hallar el máximo y el mínimo de un conjunto de datos reales. Hagamos un razonamiento top-down 4/25/2015 Computación - Fac. Ingeniería - UNMDP43

45 4/25/2015 Computación - Fac. Ingeniería - UNMDP44 Program maxmin; Var cantnum,i:integer; num,max,min:real; BEGIN read(cantnum); read(num) min:=num; max:=num; i:=2; while i<=cantnum do begin read(num); if num<min then min:=num else if num>max then max:=num; i:=i+1 end; END. Program maxmin; Var cantnum,i:integer; num,max,min:real; BEGIN read(cantnum); read(num) min:=num; max:=num; i:=2; while i<=cantnum do begin read(num); if num<min then min:=num else if num>max then max:=num; i:=i+1 end; END.

46 Se lee una cantidad no conocida a priori de números reales positivos. Además se leen 4 reales positivos A,B,C y D tal que A<B<C<D. Hacer un programa PASCAL para contar cuantos números reales positivos se encuentran en c/u los siguientes 3 sub- intervalos: A B C D Para contar no tener en cuenta a A,B,C y D. Para numeros menores que A y mayores que D no contar. EJERCICIO


Descargar ppt "COMPUTACION 2009 C lase 4 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida."

Presentaciones similares


Anuncios Google