La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

COMPUTACION 2009 Clase 2.

Presentaciones similares


Presentación del tema: "COMPUTACION 2009 Clase 2."— Transcripción de la presentación:

1 COMPUTACION 2009 Clase 2

2 Computación - Fac. Ingeniería - UNMDP
Temas de la clase 2 El paradigma de la programación estructurada Resolución de un problema usando un programa Pascal Datos string, enumerados y subrango Expresiones 4/11/2017 Computación - Fac. Ingeniería - UNMDP

3 Programación estructurada
La programación estructurada es un paradigma de programación (cuerpo teórico que sustenta un estilo de programación) donde se enfatiza el orden y agrupamiento de operaciones a realizar. Sus componentes son: Estructuras básicas de control Recursos abstractos Razonamiento top-down 4/11/2017 Computación - Fac. Ingeniería - UNMDP

4 Estructuras básicas de control
Secuencia: conjunto ordenado de instrucciones Decisión Repetición 4/11/2017 Computación - Fac. Ingeniería - UNMDP

5 Computación - Fac. Ingeniería - UNMDP
Recursos abstractos Consisten en concebir una acción compleja, no en términos de instrucciones de computadora, sino en términos de entidades naturales al mismo problema deducidas en una forma adecuada. 4/11/2017 Computación - Fac. Ingeniería - UNMDP

6 Razonamiento top-down (deducción de arriba hacia abajo
Consisten en concebir una acción compleja, no en términos de instrucciones de computadora, sino en términos de entidades naturales al mismo problema deducidas en una forma adecuada. El razonamiento top-down acompaña a los recursos abstractos usados 4/11/2017 Computación - Fac. Ingeniería - UNMDP

7 Recurso abstracto vs. razonamiento top-down
Problema (enunciado general) 1er paso de su solución 2do paso de su solución Solución final Problema (acción no primitiva) 1er división en acciones no primitivas 2da división en acciones no primitivas y primitivas 3er división en acciones primitivas (algoritmo) 4/11/2017 Computación - Fac. Ingeniería - UNMDP

8 Computación - Fac. Ingeniería - UNMDP
Ejemplo Calcular el seno usando un polinomio de Taylor Acciones primitivas del procesador: ingresar datos, escribir datos, sumar, restar, multiplicar y dividir 4/11/2017 Computación - Fac. Ingeniería - UNMDP

9 2.1 Calcular los términos de la serie
ALGORITMO SENO1 1.  Leer x 2.  Calcular p7(x) 3.  Escribir el resultado Acción no primitiva Acciones no primitivas derivadas ALGORITMO SENO2   1.  Leer x 2.1 Calcular los términos de la serie 2.2 Sumar algebraicamente los términos de la serie 3. Escribir el resultado

10 ALGORITMO SENO3 1. Leer x 2.1.1 a  x3/3! 2.1.2 bx5/5!
c  x7/7! 2.2 sen  x - a + b-c 3 Escribir sen Acciones no primitivas derivadas

11 ALGORITMO SENO4 1. Leer x 2.1.1.1 pot1  x*x*x 2.1.1.2 fact1  3*2
a  pot1/fact1 pot2  x*x*pot1     fact2  5*4*fact1     bpot2/fact2     pot3 x*x*pot2     fact3 7*6*fact2     cpot3/fact3 2.2 sen  x - a + b-c 3 Escribir sen Las acciones encontradas son primitivas. Puede facilmente llevarse a un programa Pascal

12 ALGORITMO SENO4 1. Leer x 2.1.1.1 pot1  x*x*x 2.1.1.2 fact1  3*2
a  pot1/fact1 pot2  x*x*pot1     fact2  5*4*fact1     bpot2/fact2     pot3 x*x*pot2     fact3 7*6*fact2     cpot3/fact3 2.2 sen  x - a + b-c 3 Escribir sen Las acciones encontradas son primitivas. Puede facilmente llevarse a un programa Pascal

13 Cómo resolver un problema con un sistema informático? (I)
DEFINICION del problema (enunciado con especificaciones) ANALISIS Y DISEÑO de un método estructurado de solución: ALGORITMO CODIFICACION del algoritmo en un lenguaje de programación de alto nivel (como resultado se obtiene el PROGRAMA FUENTE). Ejemplo.pas 4/11/2017 Computación - Fac. Ingeniería - UNMDP

14 Cómo resolver un problema con un sistema informático? (II)
COMPILACION del programa fuente (como resultado se obtiene PROGRAMA OBJETO). EJECUCION a partir del programa objeto linkeditado se obtiene un archivo ejecutable (Ejemplo.exe). Ejecución + datos se obtienen los resultados. 4/11/2017 Computación - Fac. Ingeniería - UNMDP

15 Cómo resolver un problema con un sistema informático? (III)
DEPURACION Eliminación y corrección de errores (debugger) DOCUMENTACION Interna: comentarios en el programa fuente. Externa: diagramas con el analisis de diseño, manuales, etc. 4/11/2017 Computación - Fac. Ingeniería - UNMDP

16 Computación - Fac. Ingeniería - UNMDP
Ciclo de desarrollo de un PROGRAMA PASCAL Edición del programa fuente Almacenamiento de la edición Compilación del programa fuente. Se encontrarán errores SINTÁCTICOS. Ejecución del programa. Se encontrarán errores SEMÁNTICOS Visualización de los resultados Depuración y modificación. 4/11/2017 Computación - Fac. Ingeniería - UNMDP

17 ERRORES en Programación
Los errores sintácticos son los que se cometen cuando no se siguen exactamente las reglas de escritura de un lenguaje de programación. (SINTAXIS: define como se combinan los símbolos, constantes, identificadores y palabras reservadas) Los errores semánticos son los que se cometen cuando los resultados obtenidos no son los esperados como solución al problema planteado. 4/11/2017 Computación - Fac. Ingeniería - UNMDP

18 Computación - Fac. Ingeniería - UNMDP
PROGRAM Identificador (USES Identificador) LABEL Declaración de etiquetas CONST Definición de constantes TYPE Declaración de tipos VAR Declaración de variables PROCEDURE Declaración de procedimientos FUNCTION Declaración de funciones BEGIN Sentencias ejecutables END. Vamos a estudiar la sección de declaración de tipos de datos 4/11/2017 Computación - Fac. Ingeniería - UNMDP

19 Computación - Fac. Ingeniería - UNMDP
Uso de la sección TYPE: datos creados por el programador Para que PASCAL incorpore un nuevo tipo de datos le debemos dar un nombre en una declaración de tipo. La declaración del nuevo tipo debe hacerse en la sección TYPE. Notar que esta declaración es distinta a la declaración de variables. Una vez que se declaró el nuevo tipo de dato, se deben declarar las variables que pertenezcan a esos tipos en la sección VAR 4/11/2017 Computación - Fac. Ingeniería - UNMDP

20 Computación - Fac. Ingeniería - UNMDP
Tipo de dato creado por el programador: cadena o string El tipo string (palabra reservada) está formado por toda secuencia finita de caracteres (hasta 255) encerrada entre apóstrofos Estas secuencias de caracteres se llaman cadenas (o string) constantes. Ejemplos de constantes string: ‘Hoy es miercoles 18 de marzo del 2009’ ‘KAWASAKI’ 4/11/2017 Computación - Fac. Ingeniería - UNMDP

21 Computación - Fac. Ingeniería - UNMDP
Declaración del tipo cadena o string: sintaxis Type Identificador de tipo = string[n]; {n indica la cantidad de caracteres de la cadena } 4/11/2017 Computación - Fac. Ingeniería - UNMDP

22 Computación - Fac. Ingeniería - UNMDP
Tipo cadena o string: ejemplo1 Declaración del tipo de datos en TYPE Program ejemplo1_string; TYPE Marca_motos=string[10];{Hasta 10 caracteres} Facultades=string[25];{Hasta 25 caracteres} VAR Mi_moto:Marca_motos; Fac:Facultades; BEGIN Mi_moto:= ‘SUSUKI’; Readln(Fac); END. Declaración de variables usando el tipo declarado en TYPE 4/11/2017 Computación - Fac. Ingeniería - UNMDP

23 Computación - Fac. Ingeniería - UNMDP
Tipo cadena o string: ejemplo2 Observación: El tipo string (sin corchetes) indica una cadena de hasta 255 caracteres. Y Pascal lo tiene predefinido Program ejemplo1_string; TYPE Nombre=string[25]; VAR apellido:Nombre; Linea:string; BEGIN apellido:= ‘Garcia Martinez’; Linea:=‘Este es un ejemplo de string. Puede contener hasta 255 caracteres’; END. 4/11/2017 Computación - Fac. Ingeniería - UNMDP

24 Computación - Fac. Ingeniería - UNMDP
Datos enumerados El tipo enumerado define un conjunto de valores definidos y ordenados por el programador(i.e. definidos por enumeración). Estos valores serán tomados por las variables de ese tipo Sintaxis: type Identificador de tipo=(const1,const2, ,constn); 4/11/2017 Computación - Fac. Ingeniería - UNMDP

25 Computación - Fac. Ingeniería - UNMDP
Datos enumerados: ejemplo Program ejemplo_enumerado; TYPE dias_semana=(lunes,martes,miercoles,jueves, viernes,sabado,domingo); facultades=(ingenieria,exactas,arquitectura, economicas); VAR dias:dias_semana; fac1,fac2:facultades; BEGIN fac1:=ingenieria; dias:=lunes; END. La variable dias solo puede tomar como valor lunes,martes,miercoles,jueves,viernes,sabado, domingo 4/11/2017 Computación - Fac. Ingeniería - UNMDP

26 Computación - Fac. Ingeniería - UNMDP
Datos enumerados: observación Los identificadores de los valores no deben repetirse. El siguiente ejemplo es ilegal: Type dias_semana=(lunes,martes,miercoles,jueves, viernes,sabado,domingo); fin_semana=(sabado,domingo); sabado, domingo son valores ambigüos. 4/11/2017 Computación - Fac. Ingeniería - UNMDP

27 Computación - Fac. Ingeniería - UNMDP
Ejemplo del uso incorrecto de tipos: TYPE dias_semana=(lunes,martes,miercoles,jueves,viernes,sabado, domingo); facultades=(ingenieria,exactas, arquitectura, economicas); VAR sem1:dias_semana; f1,f2: facultades; Altura:real; BEGIN sem1:=ingenieria;{error, tipo mezclado} f2:=jueves; {error, tipo mezclado} Altura:=martes; {error, tipo mezclado} READLN(sem1); {error,No se puede leer} OBSERVACION: los datos de tipo enumerado no pueden ser leidos o escritos. 4/11/2017 Computación - Fac. Ingeniería - UNMDP

28 Computación - Fac. Ingeniería - UNMDP
Datos subrango El tipo de dato SUBRANGO es un subconjunto de un tipo asociado (que comprenden a los tipos agrupados como escalares: INTEGER, Enumerado, CHAR) Un tipo de dato puede definirse como un subintervalo de algún otro tipo escalar previamente definido, al que se llama su tipo escalar asociado. 4/11/2017 Computación - Fac. Ingeniería - UNMDP

29 Computación - Fac. Ingeniería - UNMDP
Datos subrango La definición de un tipo por subrango indica simplemente el valor menor y mayor en el subrango, teniendo en cuenta que la cota inferior no puede ser mayor que la cota superior. No se permiten subrangos del tipo real. 4/11/2017 Computación - Fac. Ingeniería - UNMDP

30 Computación - Fac. Ingeniería - UNMDP
Datos subrango Semánticamente, un tipo por subrango es una sustitución apropiada del tipo escalar asociado en todas las definiciones. Estas constantes deben ser distintas y del mismo tipo Sintaxis: TYPE Identificador de tipo=constante1..constante2; 4/11/2017 Computación - Fac. Ingeniería - UNMDP

31 Computación - Fac. Ingeniería - UNMDP
TYPE Motos=(HONDA, SUSUKI, KAWASAKI, HARLEY_DAVIDSON); Motos_japonesas=HONDA..KAWASAKI; dias_semana=(lunes,martes,miercoles,jueves,viernes, sabado, domingo); Dias_laborables=lunes..viernes; {subrango de dias_semana} Siglo_XX= ;{subrango de integer} Minusculas='a'..'z'; {subrango de char} VAR D1,D2,D3:Dias_laborables; letra:Minusculas; Ejemplo 4/11/2017 Computación - Fac. Ingeniería - UNMDP

32 Computación - Fac. Ingeniería - UNMDP
Datos escalares u ordinales No es un tipo de dato. Se clasifican como datos escalares a aquellos tipos de datos cuyos valores posee un orden determinado (predefinidos o definidos por el programador) Todos los enteros Tipo char Tipo boolean Tipo enumerado Tipo subrango (de un tipo escalar 1, 2, o 4) 4/11/2017 Computación - Fac. Ingeniería - UNMDP

33 Extendiendo el poder de constantes y variables: EXPRESIONES
La combinación de valores constantes y variables unidos mediante operadores generan expresiones Amplían la manipulación de datos por parte del programador La característica fundamental de una expresión es la obtención de un valor luego de su cálculo. 4/11/2017 Computación - Fac. Ingeniería - UNMDP

34 operando operador operando
Formato de las expresiones Expresión binaria operando operador operando Ejemplo: A + B Expresión unaria operador operando Ejemplo: - A

35 TIPOS DE EXPRESIONES ARITMETICAS RELACIONALES LOGICAS CARACTER
Recordar su uso en la asignación(para variable y expresión numérica): A:=34.6*5/(D+25);

36 Operandos de expresiones aritméticas
* multiplica div divide y trunca {solo para enteros} mod a mod b=a-[(a div b)*b] {solo para enteros} suma resta / division (ambos operandos pueden ser enteros, pero el resultado es siempre real) 4/11/2017 Computación - Fac. Ingeniería - UNMDP

37 Ejemplos de expresiones aritméticas
El resultado de todas las expresiones es un único valor. 7 div 2 12/6.2 (7 div 2)+(12/6.2) (7 div 2)+(12/6.2) - A*2.1 beta * alfa / 4/11/2017 Computación - Fac. Ingeniería - UNMDP

38 Computación - Fac. Ingeniería - UNMDP
Expresiones relacionales Las expresiones relacionales se usan para comparar expresiones, obteniéndose como resultado un valor booleano (true o false). Los operadores relacionales sirven para comparar dos valores por mayor, menor, igual , mayor o igual, menor o igual, o distinto. 4/11/2017 Computación - Fac. Ingeniería - UNMDP

39 Operadores relacionales
= igual <> distinto > mayor < menor <= menor o igual >= mayor o igual 4.5> resultará siempre false 2.2= resultará siempre true A<= el resultado depende del valor de A (w+7.8)=(a/b-9) el resultado depende de los valores de w,a y b.

40 Computación - Fac. Ingeniería - UNMDP
Expresiones lógicas Las expresiones relacionales (con resultados booleanos, i.e., true o false) pueden combinarse mediante los operadores lógicos and(conjunción), or (disyunción) y not(negación). Esta combinación origina las expresiones lógicas (o expresiones booleanas). 4/11/2017 Computación - Fac. Ingeniería - UNMDP

41 Computación - Fac. Ingeniería - UNMDP
Expresiones lógicas Estas expresiones amplían las posibilidades para modelar predicados (o condiciones). Estos predicados serán evaluados para fijar el control de flujo de ejecución del programa. La importancia de las expresiones lógicas se verá con las sentencias ejecutables IF, WHILE y REPEAT. 4/11/2017 Computación - Fac. Ingeniería - UNMDP

42 Computación - Fac. Ingeniería - UNMDP
Expresiones lógicas: tablas de verdad Para evaluar las expresiones lógicas se usan las tablas de verdad. Si p y q son operandos lógicos (= expresiones relacionales) tenemos las siguientes tablas de verdad: p q p and q p or q not p true true true true false true false false true false false true false true true false false false false true 4/11/2017 Computación - Fac. Ingeniería - UNMDP

43 Computación - Fac. Ingeniería - UNMDP
Expresiones lógicas: ejemplos VAR a,b,z1,z2,z3,z4,sigue:boolean; Altura,peso,zz,c:real; {Ejemplos de expresiones logicas en asignaciones} sigue:=true; Z2:=a or b; Z3:=(peso>2) and Z2; Z1:=not sigue; Z4:=(Altura>=2)or((peso+2=c)and(zz/(5*c)>0)); Observación : Una constante y una variable se consideran expresiones (las mas elementales) 4/11/2017 Computación - Fac. Ingeniería - UNMDP

44 Computación - Fac. Ingeniería - UNMDP
Expresiones lógicas: reglas de precedencia Cuando armamos expresiones debemos tener en cuenta las siguientes reglas de precedencia a fin de colocar correctamente los paréntesis: Operador Prioridad Not (la mas alta, se evalúa primero) *,/,div,mod,and 2 +,-,or <,<=,=,<>,>=,< 4 (la mas baja, se evalúa al final) 4/11/2017 Computación - Fac. Ingeniería - UNMDP

45 Computación - Fac. Ingeniería - UNMDP
Expresiones lógicas: reglas de precedencia Operador Prioridad Not (la mas alta, se evalúa primero) *,/,div,mod,and 2 +,-,or <,<=,=,<>,>=,< 4 (la mas baja, se evalúa al final) (Altura>=2) or peso+2=c and not(zz/5*c >0) Se evalúa primero. No hay error porque el operando es una expresión relacional Cuando se evalúa and. Su operando derecho es correcto, pero el izquierdo es un valor real ( c )  tendremos error! 4/11/2017 Computación - Fac. Ingeniería - UNMDP

46 Computación - Fac. Ingeniería - UNMDP
Expresiones caracter o cadenas El operador usado es "+" y sirve para concatenar (unir) caracteres y/o cadenas de caracteres. Ejemplo: 'o'+'s'+'o' quedará 'oso' 'oso'+' '+'blanco' quedará 'oso blanco' 4/11/2017 Computación - Fac. Ingeniería - UNMDP


Descargar ppt "COMPUTACION 2009 Clase 2."

Presentaciones similares


Anuncios Google