módulo 4: lenguaje pascalmc/tem/downloads/modulo 4 - pascal... · 2011. 10. 6. · técnologías...
TRANSCRIPT
Técnologías en la educación matemática – Dra. Marcela Capobianco – 1 de 50
Tecnologías en la Educación Tecnologías en la Educación MatemáticaMatemática
Dra. Marcela CapobiancoDCIC - UNS
Módulo 4: Módulo 4: Lenguaje PascalLenguaje Pascal
Técnologías en la educación matemática – Dra. Marcela Capobianco – 2 de 50
CopyrightCopyright● Copyright © 2010 M. Capobianco
● Se asegura la libertad para copiar, distribuir y modificar este documento de acuerdo a los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni textos de cubierta delantera o trasera.
● Una copia de esta licencia está siempre disponible en la página http://www.gnu.org/copyleft/fdl.html.
Técnologías en la educación matemática – Dra. Marcela Capobianco – 3 de 50
Cómo seguimosCómo seguimos● Resolveremos problemas con
soluciones objetivas ● Expresaremos la solución
como un algoritmo● Codificaremos la solución en
el lenguaje Pascal
PROBLEMA
SOLUCIÓN
ALGORITMO
PROGRAMA
Técnologías en la educación matemática – Dra. Marcela Capobianco – 4 de 50
Aprender un Aprender un lenguaje nuevolenguaje nuevo
● ¿Qué significa aprender un nuevo lenguaje?● Pensemos en aprender a hablar italiano,
¿Qué tendremos que aprender?– Nuevas palabras
– Nuevas formas de conectar estas palabras
– Qué significa cada expresión en el contexto de este lenguaje
– Qué estilos comunicativos se usan
Técnologías en la educación matemática – Dra. Marcela Capobianco – 5 de 50
Tipos de lenguajesTipos de lenguajesLenguajes
ArtificialesNaturales
castellanoingléscastellanoinglés
código morsenotación musicallenguajes de Programación
código morsenotación musicallenguajes de Programación
Técnologías en la educación matemática – Dra. Marcela Capobianco – 6 de 50
Aprender un lenguaje Aprender un lenguaje de programaciónde programación
● Para aprender un lenguaje de programación nuevo necesitamos conocer :
– Alfabeto: qué letras puedo usar
– Vocabulario: qué palabras son válidas
– Sintaxis: cómo escribir sentencias del lenguaje
– Semántica: qué significan las sentencias del lenguaje
– Pragmática: el estilo de uso de las sentencias
Técnologías en la educación matemática – Dra. Marcela Capobianco – 7 de 50
El lenguaje PascalEl lenguaje Pascal● Pascal fue definido por Wirth en 1972● Alfabeto: letras y símbolos del código ASCII● Vocabulario: palabras reservadas e
identificadores● Sintaxis: cómo escribir las sentencias● Semántica: qué significan las sentencias● Pragmática: el uso de las programas
Técnologías en la educación matemática – Dra. Marcela Capobianco – 8 de 50
AlfabetoAlfabeto● El alfabeto es el código ASCII● American Standard code for Information
Interchange (código standard americano para intercambio de información)
● Está formado por 256 símbolos
Técnologías en la educación matemática – Dra. Marcela Capobianco – 9 de 50
Código ASCIICódigo ASCII32 33 ! 34 " 35 # 36 $ 37 % 38 & 39
40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 48 0 49
50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 : 59
60 < 61 = 62 > 63 ? 64 @ 65 A 66 B 67 C 68 D 69
70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79
80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89
90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99
100 d 101 e 102 f 103 g 104 h 105 106 j 107 k 108 l 109
110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119
120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 128 Ç 129
130 é 131 â 132 ä 133 à 134 å 135 ç 136 ê 137 ë 138 è 139
ii
Técnologías en la educación matemática – Dra. Marcela Capobianco – 10 de 50
VocabularioVocabulario● Los identificadores son nombres para
elementos del programa (por ejemplo datos) creados por el programador
● Deben comenzar con una letra y pueden involucrar letras o números
● Ejemplos: num, cantidad, es_nro_par, SueldoNeto, Valor2
● No afecta si usamos mayúculas o minúsculas
Técnologías en la educación matemática – Dra. Marcela Capobianco – 11 de 50
Palabras reservadasPalabras reservadas● Son términos que ya tienen un significado en
el lenguaje Pascal y sólo pueden ser usadas por el programador con ese significado
● Ejemplos: PROGRAM, IF, ELSE, BEGIN
Técnologías en la educación matemática – Dra. Marcela Capobianco – 12 de 50
EjercicioEjercicio● Escribir 5 nombres de identificadores válidos● Escribir 5 nombres de identificadores no
válidos y decir en cada caso porque razón no son válidos
Técnologías en la educación matemática – Dra. Marcela Capobianco – 13 de 50
SintaxisSintaxis● Es el aspecto de un programa
PROGRAM <nombre del programa> ;< Declarar los datos a usar por el programa >
< Declarar algoritmos auxiliares (subprogramas) a usar por el programa >
BEGIN< acciones que ejecutará el programa >END.
Técnologías en la educación matemática – Dra. Marcela Capobianco – 14 de 50
Datos en PascalDatos en Pascal● Los datos tienen un nombre y un valor
asociado (como en los algoritmos)● El valor puede modificarse durante la
ejecución del programa● Los datos se llaman
– variables: pueden recibir diferentes valores durante la ejecución del programa
– constantes: cuyo valor nunca cambia
Técnologías en la educación matemática – Dra. Marcela Capobianco – 15 de 50
Tipos de DatosTipos de Datos● El tipo define el conjunto de valores que
puede tomar una variable● Existen algunos tipos predefinidos:
– Integer: es un subconjunto de los números enteros
– Real: es un subconjunto de los números reales
– Boolean: es el conjunto {true, false} (valores lógicos)
– Char: es el conjunto de caracteres del código ASCII
Técnologías en la educación matemática – Dra. Marcela Capobianco – 16 de 50
DeclaraciónDeclaración● Declaración de variables: se escribe la
palabra reservada VAR, y luego nombre y tipo de dato de cada variable.
VAR contador: INTEGER;
raiz1,raiz2,raiz3: REAL;
letra: CHAR;
Técnologías en la educación matemática – Dra. Marcela Capobianco – 17 de 50
Tipo IntegerTipo IntegerOperadorOperador operaciónoperación OperandosOperandos ResultadoResultado
+ suma Integer Integer- resta Integer Integer* producto Integer Integer
div divisiónentera
Integer Integer
mod resto Integer Integer
Técnologías en la educación matemática – Dra. Marcela Capobianco – 18 de 50
Tipo RealTipo Real● Corresponde a un subconjunto de los reales
OperadorOperador operaciónoperación OperandosOperandos ResultadoResultado
+ suma Real Real- resta Real Real* producto Real Real
/ div. real Real Real
Técnologías en la educación matemática – Dra. Marcela Capobianco – 19 de 50
Tipo BooleanTipo Boolean● Este tipo de dato tiene únicamente dos
valores asociados, true y false (correspondientes a verdadero y falso)
● Operadores : los operadores booleanos y, o y no (vistos en la primer clase), se denominan en Pascal and, or y not
Técnologías en la educación matemática – Dra. Marcela Capobianco – 20 de 50
Tipo CharTipo Char● Este tipo de dato tiene asociados los
distintos caracteres que componen el código ASCII
● ¿Cómo se diferencia un dato cuyo nombre es A de la letra A?
● Para referenciar a un caracter como un valor de tipo CHAR, se utilizan las comillas simples.
● Ej : ´a´, ´? ´, ´ + ´, ´ ´, etc.
Técnologías en la educación matemática – Dra. Marcela Capobianco – 21 de 50
EjercicioEjercicio● Analizar la corrección de los siguientes
identificadores en pascal: ALPHA, A$3, 3F, r-4, Comisión
● Para cada uno de los siguientes casos, definir dos constantes utilizando nombres significativos: precios, años, días, letras.
● Para cada uno de los datos definir variables de tipo adecuado para representarlos: un día del mes, cantidad de alumnos en un curso, indicar si encontré un nombre en una lista de personas, la raíz cuadrada de un número.
Técnologías en la educación matemática – Dra. Marcela Capobianco – 22 de 50
Sintaxis: asignaciónSintaxis: asignación● En algoritmos: nombre_del_dato ← expresión● Ejemplos:
dia ← 31suma ← suma + 5
● En Pascal:
<identificador_de_variable> := <expresión>● Ejemplos:
dia := 31suma := suma + 5
Técnologías en la educación matemática – Dra. Marcela Capobianco – 23 de 50
Lectura y escrituraLectura y escritura● Veremos cómo hacer que nuestro programa
se comunique con el usuario● Para esto Pascal provee primitivas para
mostrar valores por pantalla y leer valores por teclado
Técnologías en la educación matemática – Dra. Marcela Capobianco – 24 de 50
Lectura y escrituraLectura y escritura● WRITE: muestra valores en la pantalla● WRITELN: muestra valores en pantalla y baja
de línea (LN)● READ: lee valores que son ingresados por
teclado● READLN: lee valores y espera por un FIN DE
LINEA (LN)
Técnologías en la educación matemática – Dra. Marcela Capobianco – 25 de 50
Ejemplo de escrituraEjemplo de escritura
write(‘YO’); write(‘TU’);write(‘EL’);
YOTUEL
Técnologías en la educación matemática – Dra. Marcela Capobianco – 26 de 50
Ejemplo de escrituraEjemplo de escritura
writeln(‘YO’); writeln(‘TU’);writeln(‘EL’);
YOYOTUTUELEL
Técnologías en la educación matemática – Dra. Marcela Capobianco – 27 de 50
Lectura en PascalLectura en Pascalread(A); read(B);read(C);
11 22 33
Técnologías en la educación matemática – Dra. Marcela Capobianco – 28 de 50
Lectura en PascalLectura en Pascalreadln(A); readln(B);readln(C);
112233
Técnologías en la educación matemática – Dra. Marcela Capobianco – 29 de 50
El lenguaje de los El lenguaje de los procesadoresprocesadores
● Cada procesador entiende un conjunto de instrucciones específicas, esto depende del fabricante
297D:0100 MOV AH,01 297D:0102 INT 21 297D:0104 CMP AL,0D 297D:0106 JNZ 0100 297D:0108 MOV AH,02 297D:010A MOV DL,AL 297D:010C INT 21 297D:010E INT 20
Muestra por pantalla lo que se teclea, hasta presionar Enter
Técnologías en la educación matemática – Dra. Marcela Capobianco – 30 de 50
Un poco de historiaUn poco de historia● En la década del 50' los programadores
debían conocer las instrucciones específicas de cada procesador
80868086 MotorolaMotorola IBMIBM
Programación de bajo nivel
Técnologías en la educación matemática – Dra. Marcela Capobianco – 31 de 50
La programación en La programación en los 60'los 60'
Lenguaje de Programación L
Lenguaje de Programación L
Traductor de L a 8086
Traductor de L a Motorola
Traductor de L a IBM
80868086 MotorolaMotorola IBMIBM
Técnologías en la educación matemática – Dra. Marcela Capobianco – 32 de 50
La programación de La programación de alto nivelalto nivel
80868086 MotorolaMotorola IBMIBM
Algol Cobol Fortran ...
CompilaciónCompilación
Técnologías en la educación matemática – Dra. Marcela Capobianco – 33 de 50
Programando en Programando en PascalPascal
● Tengo que aprender el lenguaje de cada procesador?
● NO. Hay lenguajes de programación de “alto nivel” (como Pascal) que permiten escribir un programa que puede ser ejecutado por cualquier computadora.
Programa en PascalPrograma en Pascal
Técnologías en la educación matemática – Dra. Marcela Capobianco – 34 de 50
Programando en Programando en PascalPascal
● Para esto se necesita una traducción del lenguaje de “alto nivel” al lenguaje de la máquina específica.
● Dicha traducción la realiza un “compilador", si recibe la opción correspondiente
CompiladorCompilador
Programa en PascalPrograma en Pascal
Técnologías en la educación matemática – Dra. Marcela Capobianco – 35 de 50
Edición, compilación y Edición, compilación y ejecuciónejecución
● Un entorno hace posible editar, compilar y ejecutar programas. Nosotros usaremos a Lazarus.
Edición Compilación
Programa fuente escrito en PascalPrograma fuente escrito en Pascal
Programa ejecutable por la computadora
Programa ejecutable por la computadora
Ejecución
Técnologías en la educación matemática – Dra. Marcela Capobianco – 36 de 50
Estructura de un Estructura de un programaprograma
PROGRAM <nombre del programa> ;< Declaración de los datos a usar por el programa >
< Declaración de algoritmos auxiliares (subprogramas) a usar por el programa >
BEGIN<secuencia de acciones que ejecutará el programa >
END.
Técnologías en la educación matemática – Dra. Marcela Capobianco – 37 de 50
EjemploEjemploPROGRAM HolaMundo ;VAR nro,cuadrado:integer;BEGINwriteln('Este es mi primer programa en Pascal');
write('Ingrese un número: ');readln(nro);cuadrado:=nro*nro;write('El cuadrado del número ingresado es: ');writeln(nro);END.
Técnologías en la educación matemática – Dra. Marcela Capobianco – 38 de 50
EjercicioEjercicio● Implementar el siguiente programaPROGRAM Circulo; {cálculo de perímetro}CONST Pi = 3.141592;VAR radio:INTEGER; circunferencia:REAL;BEGIN write(’Ingrese el radio: ’); {ingresa radio por teclado} readln(radio); circunferencia := 2 * Pi * Radio; {hallo circunferencia} writeln(' Dado el radio: ',radio, ' la
circunferencia es:’, circunferencia); END.
PROGRAM Circulo; {cálculo de perímetro}CONST Pi = 3.141592;VAR radio:INTEGER; circunferencia:REAL;BEGIN write(’Ingrese el radio: ’); {ingresa radio por teclado} readln(radio); circunferencia := 2 * Pi * Radio; {hallo circunferencia} writeln(' Dado el radio: ',radio, ' la
circunferencia es:’, circunferencia); END.
Técnologías en la educación matemática – Dra. Marcela Capobianco – 39 de 50
EjerciciosEjercicios● Escribir un programa en Pascal para calcular
el promedio de 4 números leídos por teclado● Escribir un programa en Pascal para calcular
el área de un rectángulo, leyendo por teclado la base y la altura del mismo
Técnologías en la educación matemática – Dra. Marcela Capobianco – 40 de 50
EjerciciosEjercicios● Determinar la validez
de las siguientes declaraciones:
● Const Base = 173.5; Error = 0.1E-5; Parar = ‘&; Blanco = ‘ ’;
● Var
i,j : Real;k : Boolean;m : Integer;
● Var
Cant = 100;Suma: 45;Diferencia: Integer;
Técnologías en la educación matemática – Dra. Marcela Capobianco – 41 de 50
Expresiones en Expresiones en PascalPascal
● Ahora veremos como escribir expresiones más complejas en Pascal
● Mencionaremos algunas primitivas provistas por Pascal que pueden usarse en las expresiones
● Diferentes tipos tienen asociado un conjunto diferente de primitivas para operar con ellos
Técnologías en la educación matemática – Dra. Marcela Capobianco – 42 de 50
OperadoresOperadores● El tipo boolean tiene asociados los
operadores and, or y not que corresponden a los operadores lógicos y, o y not que vimos en la primera clase
● Los tipos integer y real tienen asociados los operadores aritméticos de suma (+), resta (-), multiplicación (*) y división (/)
● El tipo integer tiene además a div y mod
Técnologías en la educación matemática – Dra. Marcela Capobianco – 43 de 50
Primitivas del tipo Primitivas del tipo IntegerInteger
● La constante MAXINT representa el máximo entero que puede usarse
● Algunas funciones predefinidas:– Succ(N): devuelve el sucesor de N
– Pred(N): devuelve el predecesor de N
– SQR(N): devuelve N2
Técnologías en la educación matemática – Dra. Marcela Capobianco – 44 de 50
EjemplosEjemplos● SQR(3) devuelve 9● SQR(-4) devuelve 16● Pred(2) devuelve 1● Succ(3) devuelve 4● Pred(-4) devuelve -5● ¿Se puede aplicar la función succ a una
variable de tipo real? ¿Por qué?
Técnologías en la educación matemática – Dra. Marcela Capobianco – 45 de 50
EjerciciosEjercicios● Escribir un programa en Pascal para calcular
el cuadrado de un número dado, usando la función SQR
● Escribir un programa en Pascal que calcule el valor de la función f(x)=x2+x4 para un x dado como entrada
● Escribir un programa en Pascal que dado un número calcule su predecesor y su sucesor usando las funciones aprendidas
Técnologías en la educación matemática – Dra. Marcela Capobianco – 46 de 50
Primitivas del tipo realPrimitivas del tipo real● Función SIN: dado un valor de un ángulo (en
radianes), devuelve su seno. Análogamente COS, TAN. Ejemplo: SIN(0) = 0, COS(0) = 1
● Función SQRT: raíz cuadrada. Ej: SQRT(4) = 2.0
● Función ROUND: dado un valor real, devuelve el entero más cercano. Ejemplo: ROUND(0.9) = 1
● Función TRUNC: dado un valor real, devuelve el entero que resulta de eliminar la parte decimal. Ejemplo: TRUNC (0.9) = 0
Técnologías en la educación matemática – Dra. Marcela Capobianco – 47 de 50
EjerciciosEjercicios● Escribir un programa en Pascal para calcular
la raiz cuadrada de un número dado usando la función SQRT
● Escribir un programa en Pascal que calcule el seno y el coseno de un ángulo dado como entrada
● Escribir un programa en Pascal para que dado un número real calcule el entero más cercano a este
Técnologías en la educación matemática – Dra. Marcela Capobianco – 48 de 50
Primitivas del tipo Primitivas del tipo charchar
● Función CHR: La función chr permite obtener un caracter cualquiera a partir de su código ASCII
● Ejemplo: chr(65) es ´A´; chr(33) es ´!´
● Función ORD: dado un caracter cualquiera, devuelve su código ASCII.
● Ejemplo: ord(´A´) = 65, ord(´!´) = 33
● También funcionan pred y succ
● Se pueden comparar con los operadores relacionales
Técnologías en la educación matemática – Dra. Marcela Capobianco – 49 de 50
EjemploEjemploEjemploEjemploPROGRAM CaracterSiguiente;VAR caracter,siguiente:char;BEGIN write('Ingrese un caracter: '); readln(caracter); siguiente:=succ(caracter); write('El próximo carácter es: '); writeln(siguiente);END.
Técnologías en la educación matemática – Dra. Marcela Capobianco – 50 de 50
EjercicioEjercicio● Escribir un programa en Pascal que permita
obtener la mayúscula de una letra dada como entrada