módulo 4: lenguaje pascalmc/tem/downloads/modulo 4 - pascal... · 2011. 10. 6. · técnologías...

Post on 12-Aug-2021

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

top related