teoría – alejandro gonzalez programaciÓn i. ¿qué vimos ? problema del mundo real problema del...
Post on 29-Jan-2016
224 Views
Preview:
TRANSCRIPT
Teoría – Alejandro Gonzalez
PROGRAMACIÓN I
¿Qué vimos ?
Problema del Mundo Real
Problema del Mundo Real AnálisisAnálisis SoluciónSoluciónDiseñoDiseño
ModeloModelo Diseño ModularDiseño Modular
Qué vimos ?
AnálisisInstrucciones
Datos
+
Restringidas por el lenguaje de Programación
Programa
Pertenecen a un TIPO de Datos
CONSTANTES
VARIABLES
Numéricas
Lógicas
Caracter
Temas Asignación de valores a una variable Estructuras de control
Secuencia Selección Decisión Repetición Iteración: precondicional – postcondicional
¿Cómo asignamos valores a variables?
HASTA AHORA…
Program uno;
Var
num:integer;
Begin
num:= 8;
End.
Program uno;
Var
num:integer;
Begin
read (num);
End.
ASIGNACIÓN
¿Cómo asignamos valores a variables?
Read: se usa para leer datos (por defecto desde teclado) y asignarlos a las variables correspondientes.
Salida en Pascal
Write: se usa para mostrar información en pantalla. Puede ser, por ejemplo, el contenido de una variable. Pueden ser de tipo entero, real, char. Los datos a mostrar si son más de uno deben ir separados por coma.
Salida en Pascal
program ejemploWrite; var a,b,c: integer; Begin
Read(a); b:= a * 4; write (b); write (‘El valor de b es:’ ,b);End.
Teoría – Alejandro Gonzalez
Estructuras de Control en Pascal
Estructuras de Control - Concepto
Veremos que este conjunto debe contener como mínimo:
secuencia decisión / selección iteración
Todos los lenguajes de programación tienen un conjunto mínimo de instrucciones que permiten especificar el control del algoritmo que se quiere implementar.
Estructuras de Control - SECUENCIA
La forma de ejecución más simple, está representada por una sucesión de operaciones (por ej. asignaciones), en la que el orden de ejecución coincide con el orden físico de aparición de las instrucciones. Program ejemplo;
var a,b,res: integer; begin read (a); b:= 100; res := a + b; end;
a b res
8 100 108
Estructuras de Control - DECISIÓN En un algoritmo representativo de un problema
real es prácticamente imposible que todo sea secuencial. Es necesario tomar decisiones en función de los datos del problema.
¿Evaluar condición?
Se procesan las Instrucciones por la
alternativa verdadera
Se procesan lasInstrucciones por la
alternativa falsa
Falsa Verdadera
Estructuras de Control - DECISIÓN EN EL ROBOT…si (condición) accion accion ----
si (condición) accion accion sino accion
EN PASCAL…if (condición) then accion
if (condición) then accionelse accion
EN PASCAL…if (condición) then begin accion; accion; endelse accion
Estructuras de Control - DECISIÓN
Ejemplo: escriba un programa que le permita determinar e informar si la suma de dos números enteros leídos es mayor a 20, en caso contrario, debe informarse que la suma es menor
¿Cómo leo números?.¿Cómo determino si la suma es mayor a 20?¿Cómo informo el resultado?
Estructuras de Control - DECISIÓN
Program uno;Var num1, num2,res: integer;Begin read (num1); read (num2); res:= num1 + num2; if (res > 20) then write (“La suma superó el valor 20”) else write (“La suma no superó el valor 20”)End.
Estructuras de Control - DECISIÓN
Ejercicio 1: escriba un algoritmo que le permita determinar e informar si un número leído desde teclado es par.
¿Cómo leo el número?.¿Cómo determino si es par?¿Cómo informo el resultado?
Estructuras de Control - DECISIÓN
Program uno;Var resto,num1:integer;Begin read (num1); resto:= num1 MOD 2; if (resto = 0) then write (‘El número es par’) else write (‘El número es impar’);End.
Program uno;Var num1:integer;Begin read (num1); if (num1 MOD 2 = 0) then write (‘El número es par’) else write (‘El número es impar’);End.
¿Lo vemos en el Free Pascal ?
¿Lo vemos en el Free Pascal ?
Estructuras de Control – SELECCION
Permite realizar una o más acciones dependiendo de cuál de todas las condiciones evaluadas es verdadera.
Ejecutar acciones cuando Variable_
Decisión =posibilidad 1
Evalúa la Variable_Decisión
Ejecutar accionescuando Variable_
Decisión=posibilidad 2
Ejecutar acciones cuando Variable_
Decisión = posiblidad N...
Estructuras de Control - SELECCION
EN EL ROBOT…No hay
EN PASCAL…case variable of posibilidad 1: accion 1; posibilidad 2: begin accion 2; accion 3 ; end else accion;end;
Estructuras de Control - SELECCION
Ejercicio 2: escriba un algoritmo que lea dos números reales y un carácter desde teclado, e informe el resultado de aplicar la operación que indica el carácter, a los números leídos.
¿Cómo determino qué operación hay que hacer?
Estructuras de Control - SELECCION
Program dos;Var num2,num1,res:real; op: char;Begin read (num1); read (num2); read (op); if (op = ‘+’) then res:= num1 + num2 else if (op = ‘-’) then res:= num1 - num2 else if (op = ‘*’) then res:= num1 * num2 else if (op = ‘/’) then res:= num1 / num2Write (“El resultado es:”, res);End.
Program dos;Var num2,num1,res:real; op: char;Begin read (num1); read (num2); read (op); case op of ‘+’: res:= num1 + num2; ‘-’: res:= num1 - num2; ‘*’: res:= num1 * num2; ‘/’: res:= num1 / num2; end;write (“El resultado es:”, res);End.
¿Qué pasa si leo cualquier otro carácter?
¿Lo vemos en el Free Pascal
?
¿Lo vemos en el Free Pascal
?
Estructuras de Control - SELECCION
Ejercicio 3: escriba un algoritmo que lea un carácter e informe que tipo de carácter leyó (numérico, letra minúscula, letra mayúscula o símbolo especial).
¿Cómo determino qué tipo es?
Estructuras de Control - SELECCION
Program tres;Var car: char;Begin read (car); if (car=‘a’) or (car=‘b’) or (car=‘c’)… then write (“El carácter leído es una letra minúscula”) else if (car=‘A’) or (car=‘B’) or (car=‘C’)… then write (“El carácter leído es una letra mayúscula”) else if (car=‘0’) or (car=‘1’) or (car=‘2’)… then write (“El carácter leído es un número”) else write (“El carácter leído es un símbolo especial”)End.
Program tres;Var car: char;Begin read (car); case car of ‘a’: write (“El carácter leído es una letra minúscula”); ‘b’:write (“El carácter leído es una letra minúscula”); … ‘A’: write (“El carácter leído es una letra mayúscula”); ‘B’:write (“El carácter leído es una letra mayúscula”); … ‘0’: write (“El carácter leído es número”); ‘1’: write (“El carácter leído es un número”); … else write (“El carácter leído es un símbolo”);End.
Esto resulta un
problema…
Estructuras de Control - SELECCION
Program tres;Var car: char;Begin
read (car); case car of ‘a’..’z’: write (“El carácter leído es una letra minúscula”);
‘A’..’Z’: write (“El carácter leído es una letra mayúscula”);
‘0’..’9’: write (“El carácter leído es número”);
else write (“El carácter leído es un símbolo”);
End.
Estructuras de Control - SELECCION
La variable de decisión debe ser de tipo ordinal.
Puede haber más de un valor en cada una de las entradas.
Un valor debe aparecer en una sola de las entradas.
Deben incluirse todas las posibilidades.
Estructuras de Control - SELECCION
Para pensar:Si ahora suponemos que lo que se quiere hacer es contar aquellas personas que tienen peso entre 48,5 y 50,5, las que tienen entre 60 y 75,5 y las que tienen entre 90 y 103,5
¿Puedo utilizar una estructura de control de selección CASE?
Estructuras de Control - REPETICION
Es una extensión natural de la secuencia. Consiste en repetir un número fijo y conocido de veces una o más acciones.
Se Repitió N veces?
no
si
Ejecutar el bloque de instrucciones del lazo
Estructuras de Control - REPETICION
EN EL ROBOT…repetir 4 accion 1 accion 2
repetir variable accion 1 accion 2
EN PASCAL…
¿Qué son? ¿Qué representan?
For indice := valor_inicial to valor_final do
begin
accion 1;
accion 2;
end;Palabras Clave
Estructuras de Control - REPETICION
Ejercicio 4: realizar un algoritmo que calcule la suma de los números entre el 1 y el 20.
Estructuras de Control - REPETICION
Program cuatro; var i,suma: integer; begin suma:= 0; for i:= 1 to 20 do suma:= suma + i;end.
¿Qué sucede con i después de que el for se termina?
¿Puedo modificar i?
¿Lo vemos en el Free Pascal ?
¿Lo vemos en el Free Pascal ?
Estructuras de Control - REPETICIONEjemplo 1: For indice := ‘A’ to ‘H’
do accion
¿De qué tipo es índice?¿Cuántas veces se ejecuta el for?
Ejemplo 2:For índice := FALSE to TRUE do Begin Acciones End;
Ejemplo 3:For índice := 20 to 18 do acciones
¿De qué tipo es índice?¿Cuántas veces se ejecuta el for?
¿De qué tipo es índice?¿Cuántas veces se ejecuta el for?
¿Lo vemos en el Free
Pascal ?
¿Lo vemos en el Free
Pascal ?
Estructuras de Control - REPETICION
Ejemplo 4:
For índice := 20 downto 18 do
begin
accion;
accion;
End;
¿De qué tipo es índice?¿Cuántas veces se ejecuta el for?
Estructuras de Control - REPETICION
Consideraciones acerca de la variable índice en Pascal:
La variable de control debe ser de tipo ordinal (entero, boolean, char).No debe modificarse dentro del lazo Error Los incrementos ó decrementos y testeos son implícitosAl terminar el ciclo, la variable índice no tiene un valor definido (su uso se limita a la repetición).
Estructuras de Control - REPETICION
Ejercicio 5: realizar un algoritmo que lea 55 valores que representan sueldos de los 55 docentes de la Facultad e informe el monto total que debe pagar la facultad.
Estructuras de Control - REPETICION
Program cinco;Var sueldo, total: real; i:integer;Begin total:= 0; for i:= 1 to 55 do begin read(sueldo); total:= total + sueldo; end; write (total);End.
Estructuras de Control - ITERACION
Puede ocurrir que se desee ejecutar un bloque de instrucciones desconociendo el número exacto de veces que se ejecutan.
Para estos casos existen en la mayoría de los lenguajes de programación estructurada, las estructuras de control iterativas condicionales.
Como su nombre lo indica las acciones se ejecutan dependiendo de la evaluación de la condición.
Estructuras de Control - ITERACION
Precondicionales.
Evalúan la condición y luego ejecutan el bloque de acciones. (Como el mientras del robot)
Postcondicionales.
Ejecutan el bloque de acciones y luego evalúan la condición. (NUEVO!!)
Estructuras de Control - ITERACION
Las estructuras iterativas pre-condicionales primero evalúan la condición y si es verdadera se ejecuta el bloque de acciones.
Dicho bloque se pueda ejecutar 0, 1 ó más veces.
Evalúa la condición
Se ejecutan las acciones correspondientes
VerdaderaFalsa
Estructuras de Control - ITERACION
EN EL ROBOT…mientras (condicion) accion 1 accion 2
EN PASCAL…while condicion do accion1
while condicion do begin accion 1; accion 2; end;
Estructuras de Control - ITERACION
Ejercicio 5: realizar un programa que lea números hasta leer el número 8. Al finalizar informar la suma de todos los números leídos.
Estructuras de Control - ITERACION
Program cinco;
Var
num,total:integer;
Begin
total:= 0;
read (num)
while (num <> 8) do
begin
total:= total + num;
read(num);
end;
write(total);
End.
Estructuras de Control - ITERACION
En cuanto a las estructuras iterativas post-condicionales, primero se ejecuta el bloque de acciones y luego se evalúa la condición. A diferencia de la estructura iterativa pre-condicional, el bloque de acciones se ejecuta 1 ó más veces.
Se ejecutan las acciones del bloque
Evaluar la condición
Falsa Verdadera
Estructuras de Control - ITERACION
EN EL ROBOT…No existe EN PASCAL…
repeat accion1until (condicion)
Estructuras de Control - ITERACION
Ejercicio 5: realizar un programa que lea números hasta leer el número 8. Al finalizar informar la suma de todos los números leídos.
NO ES ADECUADO UN REPEAT UNTIL
Ejercicio 6: realizar un programa que lea números hasta leer el número 8 (debe procesarse). Al finalizar informar la suma de todos los números leídos.
Estructuras de Control - ITERACION
Program seis;Var num,total:integer;Begin total:= 0; read (num); while (num <> 8) do begin total:= total + num; read(num); end; total:= total + num; write (total);End.
Program seis;Var num,total:integer;Begin total:= 0; repeat read (num); total:= total + num; until (total = 8) write (total);End.
Estructuras de Control - ITERACION
Precondicionales:Se utiliza el while.Evalúan la condición y luego ejecutan el bloque de Realiza las acciones mientras la condición es verdadera. Se ejecuta 0,1 o más veces.
Postcondicionales:Se utiliza el repeat until.Ejecuta el bloque de acciones y luego evalúa la condición.Realiza las acciones mientras la condición es falsa. Se ejecuta 1 o más veces. (como mínimo 1 vez)
REALIZAR LOS SIGUIENTES EJERCICIOS
1. Se lee una secuencia de caracteres terminada en ‘-’. Se pide
contar todos los caracteres ‘a’ que aparecen en la secuencia, y
calcular el porcentaje de ‘a’ sobre el total de caracteres.
2. Se leen números hasta ingresar el cero. Para cada uno se
pide informar su sumatoria.
top related