Módulo 5: Lenguaje Pascal

Documentos relacionados
Dra. Jessica Andrea Carballido

UNIDAD I. ALGORITMOS

2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

Módulo 8: Primitivas en Pascal

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

CAPITULO II. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

UNIDAD 2: INTRODUCCIÓN AL LENGUAJE DE PROGRAMACiÓN R

FUNDAMENTOS DE PROGRAMACIÓN LABORATORIO SESIÓN 2

ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS Tipos de datos Expresiones Operadores y operandos Identificadores como localidades de memoria

Expresión, Operador, Operando, Asignación, Prioridad

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

LENGUAJE FORTRAN. FUNCIONES Y SUBRUTINAS

Declaración de variables (integer, single, double, boolean, etc.) en Visual Basic. Dim. Ejemplos. (CU00309A)

Capítulo 5 IDENTIFICADORES, VARIABLES Y CONSTANTES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Programación Digital I

Tema 3 Constantes, Variables y Tipos

Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:

descripción del argumento identificador tipo longitud condición restricción

INTRODUCCIÓN AL TURBO PASCAL.

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación)

Facultad de Ciencias Exactas, Ingeniería y Agrimensura UNR INFORMATICA

Definición(2) La base (r) de un sistema de numeración especifica el número de dígitos o cardinal* de dicho conjunto ordenado. Las bases más utilizadas

Declaración de variables. Sentencias de entrada/salida

El lenguaje C. if (a>3) { printf("hola"); // bloque printf("%d",a); // de getch(); //código } Partes de un programa en C.

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down).

Módulo 6: Condicionales y otros

Programación y matemática

Algoritmos. Luis Castellanos & Angela Galea marzo de 2012

Declaración de Procedimientos

Módulo 2: Algoritmos (continuación)

SUBRANGO ENUMERADOS CONJUNTOS

UNIDAD III: Elementos del Lenguaje QuickBASIC OBJETIVO GENERAL:

A continuación estudiaremos a qué se refiere el término «programación», qué es un lenguaje de programación y veremos alguna terminología propia de

Tema 1: Algoritmos y programas

Prácticas de Lenguajes, Gramáticas y Autómatas

CAPITULO ALGORITMOS Y PROGRAMAS CONTENIDO

Tema 5. Soporte lógico de computadoras.

José A. Jiménez Nieto

Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

SISTEMA DE NUMERACIÓN BINARIO

Resolución de Problemas y Algoritmos

Qué Tipos de Datos se Almacenan en OpenOffice.org Calc?

1. Algoritmo, Pseudocódigo, Diagramas de flujo.

Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones)

TEMA 1: NÚMEROS REALES

Arreglos y Subrangos

Manual de turbo pascal

Introducción a la Programación

Procesamiento de Lenguajes (PL) Curso 2015/2016. Práctica 5: traductor a código m2r

Diagramas de Flujo Programación Estructurada. Diagramas de Flujo y Pseudocódigo

Estructuras de Control. Secuencia y Selección

Introducción a c++ Introducción a la programación EIS Informática III

GIMNASIO VIRTUAL SAN FRANCISCO JAVIER Valores y Tecnología para la Formación Integral del Ser Humano UNIDAD II EXCEL

Estructuras de Control. Secuencia y Selección

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Diseño de Algoritmos. Programación en pseudocódigo y ordinogramas

Este es un arreglo de números enteros, o sea que guarda una serie de variables de tipo INTEGER, todas agrupadas en una sola estructura.

FUNDAMENTOS DE INFORMÁTICA

Represent. Información. Caracteres Alfanuméricos

Sintaxis y Semántica del Lenguaje. Gramáticas

Programación en Pascal

Estructuras de control y DFDs

Operando1 operador de relación Operando2

3. Tipos primitivos de dato

TEMA 2: TEORÍA DE CONJUNTOS Y CONJUNTOS NUMÉRICOS.

Autoestudio 2: Variables y Operadores

Algoritmos y Diagramas de flujo

DIAGRAMAS DE FLUJOS. Qué son Los Diagramas de Flujo y Para qué se Usan?

OPERADORES LÓGICOS JAVASCRIPT. EJEMPLOS. RELACIONALES MAYOR, MENOR, IGUAL, DISTINTO. AND, OR, NOT. CORTO- CIRCUITO (CU01117E)

UNIDAD 3: TIPOS ABSTRACTOS DE DATOS

TEMA 2: Algoritmos y Programas. Fundamentos de Informática (Grados en Ingenierías Industriales)

UNIVERSIDAD SAN MARCOS

1. ESTRUCTURA DE UN PROGRAMA PASCAL Todo programa escrito en lenguaje Pascal, del más simple al más complejo, tiene la siguiente estructura:

Programación en Lenguaje Ensamblador para el Procesador MC68000

Los datos de una cuenta bancaria. (Dato compuesto por: nombre, apellidos, etc.) La capital de Canadá. ("Ottawa" > Dato de tipo cadena)

Libro 1: Fundamentos de Programación

INSTRUCCIONES PARA EL USO DEL SOFTWARE (IS)

Objetivos específicos. Al finalizar el tema, el alumno deberá ser capaz de:

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria.

Transcripción:

Módulo 5: Lenguaje Pascal Tecnologías en la Educación Matemática Dr. Carlos Gonzalía DCIC - UNS Técnologías en la educación matemática Dr. Carlos Gonzalía 1 de

Copyright Copyright 2012: M. Capobianco, C. Gonzalía 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. Tecnologías en la educación matemática Dr. Carlos Gonzalía 2

Cómo seguimos PROBLEMA SOLUCIÓN ALGORITMO Resolveremos problemas con soluciones objetivas. Expresaremos la solución como un algoritmo. PROGRAMA Codificaremos la solución en el lenguaje Pascal. Tecnologías en la educación matemática Dr. Carlos Gonzalía 3

Aprender un lenguaje 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 Tecnologías en la educación matemática Dr. Carlos Gonzalía 4

Tipos de lenguajes Lenguajes Naturales Artificiales castellano inglés código morse notación musical lenguajes de programación Tecnologías en la educación matemática Dr. Carlos Gonzalía 5

Aprender un lenguaje de 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 Tecnologías en la educación matemática Dr. Carlos Gonzalía 6

El lenguaje Pascal Pascal fue definido por Niklaus 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 los programas Tecnologías en la educación matemática Dr. Carlos Gonzalía 7

Alfabeto El alfabeto es el código ASCII. American Standard Code for Information Interchange (código estándar americano para intercambio de información). Está formado por 256 símbolos. Tecnologías en la educación matemática Dr. Carlos Gonzalía 8

Código ASCII Tecnologías en la educación matemática Dr. Carlos Gonzalía 9

Código ASCII Extendido Tecnologías en la educación matemática Dr. Carlos Gonzalía 10

Vocabulario Los identificadores son nombres para elementos del programa (por ejemplo datos) creados por el programador. Deben comenzar con una letra, seguida de más letras o números (o el signo de subrayado ). Ejemplos: num, cantidad, es_nro_par, SueldoNeto, Valor2 No afecta si usamos mayúsculas o minúsculas. Tecnologías en la educación matemática Dr. Carlos Gonzalía 11

Palabras 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 Lista completa en Appendix B del Free Pascal User s Guide, en el sitio: http://www.freepascal.org/docs-html/user/user.html Tecnologías en la educación matemática Dr. Carlos Gonzalía 12

Ejercicio 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. Tecnologías en la educación matemática Dr. Carlos Gonzalía 13

La forma que debe tener un programa PROGRAM <nombre del programa> ; CONST < Declarar los datos constantes a usar por el programa > VAR < Declarar los datos variables a usar por el programa > < Declarar algoritmos auxiliares (subprogramas) a usar por el programa > BEGIN < acciones que ejecutará el programa > END. Tecnologías en la educación matemática Dr. Carlos Gonzalía 14

Datos 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 Tecnologías en la educación matemática Dr. Carlos Gonzalía 15

Tipos 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. Tecnologías en la educación matemática Dr. Carlos Gonzalía 16

Declaració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; Tecnologías en la educación matemática Dr. Carlos Gonzalía 17

Tipo Integer Operador operación Operandos Resultado + suma Integer Integer - resta Integer Integer * producto Integer Integer div división Integer Integer entera mod resto Integer Integer Tecnologías en la educación matemática Dr. Carlos Gonzalía 18

Tipo Real Corresponde a un subconjunto de los reales Operador operación Operandos Resultado + suma Real Real - resta Real Real * producto Real Real / div. real Real Real Tecnologías en la educación matemática Dr. Carlos Gonzalía 19

Tipo 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. Tecnologías en la educación matemática Dr. Carlos Gonzalía 20

Tipo 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 carácter como un valor de tipo CHAR, se utilizan las comillas simples. Ej.: a,?, +,, etc. Tecnologías en la educación matemática Dr. Carlos Gonzalía 21

Ejercicio 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. Tecnologías en la educación matemática Dr. Carlos Gonzalía 22

Sintaxis: asignación En algoritmos: <nombre_del_dato> <expresión> Ejemplos: dia 31 suma suma + 5 En Pascal: <identificador_de_variable> := <expresión> Ejemplos: dia := 31 suma := suma + 5 Tecnologías en la educación matemática Dr. Carlos Gonzalía 23

Lectura 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. Tecnologías en la educación matemática Dr. Carlos Gonzalía 24

Lectura y escritura WRITE: muestra valores en la pantalla. WRITELN: muestra valores en pantalla y baja de línea (LN por line ). READ: lee valores que son ingresados por teclado. READLN: lee valores y espera por un FIN DE LINEA (LN). Tecnologías en la educación matemática Dr. Carlos Gonzalía 25

Ejemplo de escritura write( YO ); write( TU ); write( EL ); YOTUEL Tecnologías en la educación matemática Dr. Carlos Gonzalía 26

Ejemplo de escritura writeln( YO ); writeln( TU ); writeln( EL ); YO TU EL Tecnologías en la educación matemática Dr. Carlos Gonzalía 27

Lectura en Pascal read(a); read(b); read(c); 1 2 3 Tecnologías en la educación matemática Dr. Carlos Gonzalía 28

Lectura en Pascal readln(a); readln(b); readln(c); 1 2 3 Tecnologías en la educación matemática Dr. Carlos Gonzalía 29

El lenguaje de los procesadores Cada procesador entiende un conjunto de instrucciones específicas, esto depende del fabricante (Intel, AMD, Sun, IBM, Motorola, etc.). 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 Tecnologías en la educación matemática Dr. Carlos Gonzalía 30

Un poco de historia En la década del '50 los programadores debían conocer las instrucciones específicas de cada procesador. Programación de bajo nivel 8086 Motorola IBM Tecnologías en la educación matemática Dr. Carlos Gonzalía 31

La programación en los '60 Lenguaje de Programación L Traductor de L a 8086 Traductor de L a Motorola Traductor de L a IBM 8086 Motorola IBM Tecnologías en la educación matemática Dr. Carlos Gonzalía 32

La programación de alto nivel Algol Cobol Fortran... Compilación 8086 Motorola IBM Tecnologías en la educación matemática Dr. Carlos Gonzalía 33

Programando en Pascal 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 Pascal Tecnologías en la educación matemática Dr. Carlos Gonzalía 34

Programando en Pascal 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. Compilador Programa en Pascal Tecnologías en la educación matemática Dr. Carlos Gonzalía 35

Edición, compilación y ejecución Edición Compilación Ejecución Programa fuente escrito en Pascal Programa ejecutable por la computadora Un entorno hace posible editar, compilar y ejecutar programas. Nosotros usaremos a Lazarus. Tecnologías en la educación matemática Dr. Carlos Gonzalía 36

Estructura de un programa PROGRAM <nombre del programa> ; CONST < Declarar los datos constantes a usar por el programa > VAR < Declarar los datos variables a usar por el programa > < Declarar algoritmos auxiliares (subprogramas) a usar por el programa > BEGIN < acciones que ejecutará el programa > END. Tecnologías en la educación matemática Dr. Carlos Gonzalía 37

Ejemplo PROGRAM HolaMundo; VAR nro, cuadrado: integer; BEGIN writeln('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(cuadrado); END. Tecnologías en la educación matemática Dr. Carlos Gonzalía 38

Ejemplo 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. Tecnologías en la educación matemática Dr. Carlos Gonzalía 39

Ejercicios 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. Tecnologías en la educación matemática Dr. Carlos Gonzalía 40

Ejercicios Determinar la validez de las siguientes declaraciones: Const Base = 173.5; Error = 0.1E-5; Parar = &; Blanco = ; Var Var i,j : Real; k : Boolean; m : Integer; Cant = 100; Suma: 45; Diferencia: Integer; Tecnologías en la educación matemática Dr. Carlos Gonzalía 41

Expresiones en Pascal Ahora veremos cómo 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. Tecnologías en la educación matemática Dr. Carlos Gonzalía 42

Operadores El tipo boolean tiene asociados los operadores and, or y not que corresponden a los operadores lógicos y, o y no 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. Tecnologías en la educación matemática Dr. Carlos Gonzalía 43

Primitivas del tipo Integer 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 N 2 Tecnologías en la educación matemática Dr. Carlos Gonzalía 44

Ejemplos 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é? Tecnologías en la educación matemática Dr. Carlos Gonzalía 45

Ejercicios 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)=x 2 +x 4 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. Tecnologías en la educación matemática Dr. Carlos Gonzalía 46

Primitivas 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 Tecnologías en la educación matemática Dr. Carlos Gonzalía 47

Ejercicios Escribir un programa en Pascal para calcular la raíz 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 éste. Tecnologías en la educación matemática Dr. Carlos Gonzalía 48

Primitivas del tipo char Función CHR: permite obtener un carácter cualquiera a partir de su código ASCII. Ejemplo: chr(65) es A, chr(33) es! Función ORD: dado un carácter cualquiera, devuelve su código ASCII. Ejemplo: ord( A ) = 65, ord(! ) = 33 También funcionan pred y succ. Se pueden comparar caracteres con los operadores relacionales. Tecnologías en la educación matemática Dr. Carlos Gonzalía 49

Ejemplo PROGRAM CaracterSiguiente; VAR caracter, siguiente: char; BEGIN write('ingrese un carácter: '); readln(caracter); siguiente := succ(caracter); write('el próximo carácter es: '); writeln(siguiente); END. Tecnologías en la educación matemática Dr. Carlos Gonzalía 50

Ejercicio Escribir un programa en Pascal que permita obtener la mayúscula de una letra dada como entrada. Tecnologías en la educación matemática Dr. Carlos Gonzalía 51