Tema 1. elementos básicos de pascal #ipg2murjc

124
Introducción a la programación Tema 1. Elementos básicos de Pascal Oriol Borrás Gené @oriolUPM Curso 2017/18

Transcript of Tema 1. elementos básicos de pascal #ipg2murjc

Page 1: Tema 1. elementos básicos de pascal #ipg2murjc

Introducción a la programación

Tema 1. Elementos básicos de Pascal

Oriol Borrás Gené @oriolUPM

Curso 2017/18

Page 2: Tema 1. elementos básicos de pascal #ipg2murjc

Tema 1. Elementos básicos de Pascal

Oriol Borrás Gené - @oriolupm

1.1. Introducción y conceptos de programación.

1.2. Tipos de datos básicos.

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador.

1.4. La documentación del programa.

1.5. Normas de estilo.

Page 3: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Informática o Computer Science

“Conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de computadores”.

Computador u ordenador

Máquina electrónica, analógica o digital que bajo el control de uno o más programas, de forma automática acepta y procesa datos, efectuando operaciones lógicas y aritméticas con ellos hasta proporcionar unos datos de salida que serán la solución a un problema dado.

Page 4: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Hardware y Software

Hardware (soporte físico)Conjunto de componentes físicos (cables, circuitos, etc.) que integran un computador. Ej.: Placa base, disco duro, tarjeta gráfica, etc.

Software (soporte lógico)Conjunto de programas que encontramos en un computador.

Page 5: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Esquema de un computador

CPU(Unidad Central

de Proceso)

DISPOSITIVOS DE ENTRADA

DISPOSITIVOS DE SALIDA

MEMORIA

PROGRAMA

DATOSENTRADA DATOS

SALIDA

TecladoRatón

Escáner...

MonitorImpresora

Altavoz...

Page 6: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Arquitectura de Von Neumann (1945)

● Arquitectura de diseño para un computador digital electrónico

● CPU:○ Unidad Aritmético-Lógica○ Unidad de control

● Memoria ● Dispositivos de E/S

Fuente: https://frikosfera.wordpress.com/2015/02/27/que-es-la-arquitectura-von-neumann/

Page 7: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

¿Qué es programar?

Proporcionar un conjunto de instrucciones a un ordenador mediante un lenguaje de programación que “entienda”.

¿Qué es un programa?

Conjunto ordenado de instrucciones entendible por un computador y tienen el objetivo de resolver un problema.

Page 8: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Fases para resolver un problema con una computadora (programar):

1. Analizar y definir el problema2. Diseñar o describir un método para resolverlo -> Algoritmo3. Implementar el algoritmo en un lenguaje de programación4. Comprobar que funciona correctamente5. Depurar

Page 9: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

¿Qué es un programa?

Programa = Algoritmos + Estructuras de datosAlgoritmo

Secuencia precisa de pasos y operaciones que permiten obtener unos resultados a partir de unos datos.

Estructuras de datos

Elementos que utilizamos para guardar datos en memoria. Ej.: Variables.

Page 10: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

¿Qué es un programa?

PROGRAMAENTRADA SALIDA

Page 11: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Características de los algoritmos:

● Precisos (no ambiguo) en cuanto a:○ Orden (secuencia de pasos)○ Contenido (qué se realiza en cada paso)

● Deterministas, responder siempre igual ante las mismas condiciones

● Finitos

Page 12: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Aspectos deseables de los algoritmos:

● Generalidad: de solución al mayor tipo de problemas posible.

● Eficiencia, menor número de pasos posible

Page 13: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Lenguajes algorítmicos

Permiten describir un algoritmo sin ser tan formales como un lenguaje de programación (serán más genéricos) y más precisos que el lenguaje natural.

Page 14: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Diagramas de flujo

Fuente: https://es.wikipedia.org/wiki/Archivo:Graf_algo_bisiesto.PNG

Page 15: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Pseudocódigo Programa: TablaMultiplicar

variables: t, num , total; Inicio Escribir "Introduce un número" Leer numInicioDesdeDesde t=1 hasta t=10 repetir hacer total = num*tEscribir: totalfinDesdeFin

Page 16: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Pseudocódigo (ejercicio 1)

Desarrollar un algoritmo que calcule el volumen de aire que contiene una pelota, perfectamente esférica, a partir de un valor del radio aportado por el usuario.

1. Analizar y definir el problema

● Datos de entrada: radio de la esfera● Datos de salida: volumen de la esfera

Page 17: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Pseudocódigo (ejercicio 1)

2. Diseñar

Algoritmo Vesfera

Radio, volumen : Real Inicio

Escribir ("Escriba el valor del radio de la esfera" ) Leer (Radio) Volumen ← 4/3 * π * radio^3 Escribir ("El volumen de la esfera es", Volumen)

Fin

Page 18: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Pseudocódigo (ejercicio 2)

Desarrollar un algoritmo que detecte si un número dado es positivo o negativo.

1. Analizar y definir el problema

● Datos de entrada: número ● Datos de salida: mensaje indicando si el número es

positivo o negativo

Page 19: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Pseudocódigo (ejercicio 2)

2. Diseñar

Algoritmo Detectar

a : Entero Inicio Escribir ("Escriba un número" ) Leer (a)

Si a>= 0 entonces Escribir (“El número es positivo”)

Sino Escribir (“El número es negativo”)Fin

Page 20: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Pseudocódigo (ejercicio individual - casa)

Piensa en una receta de cocina muy básica que conozcas y crea un algoritmo que explique la secuencia en pseudocódigo.

Page 21: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

¿Qué son los datos?

Un dato es cualquier información codificada de forma que pueda ser aceptada y procesada por un ordenador.

La información se almacena en la memoria de la computadora en formato binario:

1 0

Un dígito binario o bit es la unidad más pequeña y fundamental de información.

Page 22: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

1 Byte = 8 bits1 Kilobyte (KB) = 210 bytes = 1024 bytes ~103 bytes1 Megabyte (MB) = 210 KB = 220 bytes = 1048576 bytes ~106 bytes1 Gigabyte (GB) = 210 MB = 230 bytes = 1073741824 bytes ~109 bytes1 Terabyte (TB) = 210 GB = 240 bytes ~1012 bytes1 Petabyte (PB) = 210 TB = 250 bytes ~103 bytes1 Exabyte (EB) = 210 PB = 260 bytes ~103 bytes

1 bit = 0/1

Page 23: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

A partir de los datos binarios (0 y 1) con los que trabajan las computadoras podremos codificarlos en diferentes formatos.

Código binario

Cada dígito tiene distinto valor dependiendo de la posición que ocupe. El valor de cada posición es el de una potencia de base 2, elevada a un exponente igual a la posición del dígito menos uno.

2 (n-1)

Page 24: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Código binario

Dígito-> X X X X Posición (n) -> 4 3 2 1Valor (2 (n-1))-> 8 4 2 1

● Posición n = 1 (dígito = 1 y valor = 2 (1-1)= 2 0 = 1) -> 1*10 1 0 1

● Posición n = 2 (dígito = 0 y valor = 2 (2-1)= 2 1 = 2) -> 0*2

Dígito * Valor

● Posición n = 3 (dígito = 1 y valor = 2 (3-1)= 2 2 = 4) -> 1*4

● Posición n = 4 (dígito = 0 y valor = 2 (4-1)= 2 4 = 8) -> 0*8

= 5

Ejemplo: Valor en decimal del número en binario 0101

Page 25: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Conversiones de formatos:

● Decimal:○ Sin signo○ Signo-magnitud○ Complemento a 2○ Exponente desplazado

● BCD (Binary Code Decimal)● Hexadecimal

Page 26: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Lenguajes de programación

Son un conjunto de caracteres, reglas para combinarlos y reglas que especifican sus efectos cuando se ejecuta por un ordenador.

Están diseñados para representar los algoritmos de forma que el ordenador los entienda.

Son lenguajes artificiales y más formales, rigurosos a la par que simples en su sintaxis y semántica frente al lenguaje natural.

Page 27: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Lenguaje o código máquina

Es el sistema de códigos hexadecimales directamente interpretable por la computadora que representan instrucciones, registros de la CPU, direcciones de memoria o datos.

● Lenguaje de bajo nivel● Es difícil de programar● Depende de cada máquina

Ejemplo: A0 2F (instrucción) -> acceder a la celda de memoria 2F

Page 28: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Lenguaje ensamblador

Conjunto de mnemónicos que representan instrucciones básicas para la computadora.

Estos mnemotécnicos nos ofrecen una mayor legibilidad de lo que se ejecuta y están asociados a los códigos hexadecimales que interpreta la computadora (lenguaje máquina). Ej.: A0 -> READ.

● Lenguaje de nivel medio● Más sencillo de programar● Depende de cada máquina

Ejemplo: READ 2F (instrucción) -> acceder a la celda de memoria 2F

Page 29: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Lenguaje de alto nivel

Son más cercanos al lenguaje natural y matemático, siendo más legibles.

Características:

● Sintaxis● Semántica● Traducción y ejecución● Tipos de errores

FORTRANALGOL Lisp

COBOL APLSIMULA

BASIC PrologC Pascal Scheme Modula Ada

C++ Perl Python Ruby JavaPHP C#

Page 30: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Sintaxis

Conjunto de reglas que determinan cómo se construyen y secuencian los elementos del lenguaje.

Especificación de la sintaxis:

● Notación BNF (Backus-Naur)● Diagramas sintácticos

Ejemplo BNF

<registry expression> ::= <Add Key>

(Registry expression es equivalente a Add Key)

Page 31: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Sintaxis

Conjunto de reglas que determinan cómo se construyen y secuencian los elementos del lenguaje.

Especificación de la sintaxis:

● Notación BNF (Backus-Naur)● Diagramas sintácticos

Diagrama sintáctico

Page 32: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Semántica

Indica el significado de cada elemento del lenguaje (para qué sirve).

Traducción y ejecución

Es necesario traducir el programa (código fuente) escrito en lenguaje de alto nivel a lenguaje máquina que entienda la computadora (código objeto), se hará mediante un programa denominado compilador.

COMPILADORCÓDIGO FUENTE (programa en alto nivel)

CÓDIGO OBJETO(lenguaje máquina)

Page 33: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Traducción y ejecución

Normalmente existen más partes de programa en otros ficheros objeto, mediante un programa enlazador juntaremos todos los ficheros en uno que pueda ejecutarse.

CÓDIGO OBJETO ENLAZADOR PROGRAMA EJECUTABLE

OTROS CÓDIGOS OBJETO

Page 34: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Errores

● Errores de compilación: impiden al compilador generar el ejecutable por algún error de sintaxis, de tipo, etc.

● Errores de ejecución: se producen cuando se ejecuta el programa y este deja de funcionar en algún momento.

● Errores lógicos: el programa se ejecuta pero los resultados no son los esperados.

BUG

Page 35: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Evolución de los lenguajes de programación

Existen una serie de motores que impulsan la evolución hacia nuevos lenguajes de programación:

● Abstracción● Encapsulación● Modularidad● Jerarquía

● + comprensión● + legibilidad● + fácil mantenimiento● - coste

Page 36: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Paradigmas de programación

Definen un conjunto de reglas, patrones y estilos de programación usados por un grupo de lenguajes de programación.

Existen cuatro grandes paradigmas: funcional, lógico, imperativo o procedural y orientado a objetos.

No existe una separación estricta entre paradigmas y lenguajes de programación.

Page 37: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Paradigma funcional

La computación se realiza mediante la evaluación de expresiones:

● Definición de funciones● El valor generado por una función depende exclusivamente de los argumentos

alimentados a la función● Programación declarativa● Ej.: LISP, Scala, Scheme.

Se especifican un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema. La solución es obtenida mediante mecanismos internos de control, sin especificar exactamente cómo encontrarla.

Page 38: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Paradigma lógico

La computación se basa en la definición de relaciones lógicas, modelando los problemas con enunciados de lógica de primer orden:

● Definición de reglas● Programación declarativa● Ej.: Prolog, Mercury, Oz.

No se listan los pasos a llevar a cabo

Page 39: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Paradigma imperativo

Se caracteriza por tener un estado implícito que es modificado mediante instrucciones o comandos del lenguaje:

● Definición de procedimientos● Definición de tipos de datos● Ejecución secuencial● Cambio de estado de variables● Ejemplos: Pascal, Basic, C.

Page 40: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Paradigma orientado a objetos

El comportamiento del programa es llevado a cabo por objetos (variables y funciones), se basa en la programación imperativa:

● Definición de clases y herencia● Objetos como abstracción de datos y procedimientos● Ejemplos: Java, Python, C++.

Page 41: Tema 1. elementos básicos de pascal #ipg2murjc

1.1. Introducción y conceptos de programación

Oriol Borrás Gené @oriolupm

Ingeniería del software

“Aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento del software” (IEEE, 1993).

PLANIFICACIÓN

ANÁLISIS

DISEÑO

PROGRAMACIÓN

PRUEBA Y DEPURACIÓN

MANTENIMIENTO

Determinar necesidades, recursos, presupuesto, tiempos, ...¿Qué? definir funciones por módulo, trabajo conjunto de los módulos, criterios de validación, redactar especificaciones, ...

¿Cómo? Diseño módulos, dividir en tareas, asignar tareas a equipos de trabajo

Codificar en el lenguaje elegido

Page 42: Tema 1. elementos básicos de pascal #ipg2murjc

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Historia de Pascal

Creado por Niklaus Wirth en 1970 para facilitar a sus alumnos el aprendizaje de la programación estructurada.

Su nombre se debe al matemático y filósofo francés Blaise Pascal inventor de la primera máquina de calcular.

Fuente: https://es.wikipedia.org/wiki/Blaise_Pascal#/media/File:Arts_et_Metiers_Pascaline_dsc03869.jpg

Evolución de la versión inicial o estándar de Pascal a la extendida con TurboPascal y otras como Delphi (orientada a objetos).

Page 43: Tema 1. elementos básicos de pascal #ipg2murjc

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Características de Pascal

● Lenguaje de alto nivel● Propósito general● Paradigma imperativo● Estructurado (datos y control) ● Modular

Page 44: Tema 1. elementos básicos de pascal #ipg2murjc

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Datos básicos

Un dato es cualquier información codificada de forma que pueda ser aceptada y procesada por un ordenador.

Los datos básicos también se conocen como predefinidos o estándar:

● Enteros: integer● Real: real● Carácter: char● Booleano: boolean

Page 45: Tema 1. elementos básicos de pascal #ipg2murjc

1.2. Tipos de datos básicos. Elementos básicos de Pascal

Oriol Borrás Gené @oriolupm

Tipo integer (definición)

● Dominio (incluye enteros positivos o negativos)● Acotado por la constante predefinida MaxInt● En Turbo Pascal (2 bytes) su valor es 32767 -> {-32767 … 32767}● Sin espacios ni puntos, el signo precede al número● Posibilidad de desbordamiento

Entero sin signo

Dígito

Page 46: Tema 1. elementos básicos de pascal #ipg2murjc

Tipo integer (operaciones)

+ (suma) x → (Ej.: 2+5 → 7)

- (resta) x → (Ej.: 3-6 → -3)

* (multiplicación) x → (Ej.: 4*5 → 20)

div (división) x → (Ej.: 10/3 → 3)

mod (resto de la división entera) x → (Ej.: 10/3 → 1)

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

- (cambio de signo) → (Ej.: -2)

Page 47: Tema 1. elementos básicos de pascal #ipg2murjc

Tipo integer (funciones)

abs (valor absoluto). Ej.: abs(-3) → 3

sqr (cuadrado). Ej.: sqr(9) → 81

pred (predecesor). Ej.: pred (-5) → -6; pred (5) → 4

succ (sucesor). Ej.: succ (-5) → -4; succ (4) → 5

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Page 48: Tema 1. elementos básicos de pascal #ipg2murjc

Tipo integer (expresiones)

Entendemos por expresión entera como la combinación de números, operaciones, y/o funciones cuyo resultado tras evaluarlas es un entero.

Precedencias:

1. ()2. Funciones3. *. div ,mod4. +, -

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

2 + 3 * 5

1º2º= 2 + 15 = 17

4 + 2 * 7 + sqr (2)

= 4 + 2*7 + 4 = 4 + 14 + 4 = 22

(4 + 2) * 7 + sqr (2)

= 6*7 + sqr(2)= 6 * 7 + 4 = 42 + 4 = 46

Page 49: Tema 1. elementos básicos de pascal #ipg2murjc

Tipo integer (expresiones)

Entendemos por expresión entera como la combinación de números, operaciones, y/o funciones cuyo resultado tras evaluarlas es un entero.

Precedencias:

1. ()2. Funciones3. *. div ,mod4. +, -

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

4 div 2 * 2

= 4

Asociatividad de izquierda a derecha

Page 50: Tema 1. elementos básicos de pascal #ipg2murjc

Tipo real (definición)

● Dominio ℝ (incluye valores numéricos con parte decimal)● Intervalo acotado (4 bytes):

○ Comprendido entre 士2.9*10-39 y 1.7*10+38

○ Precisión entre 11 y 12 cifras● Representación:

○ Usando punto decimal (ej.: -2.4, 4.034, -0.45)○ Notación científica (ej.: 7.93E+25)

● Posibilidad de desbordamiento y de error de redondeo

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Page 51: Tema 1. elementos básicos de pascal #ipg2murjc

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Tipo real (definición)

Real sin signo

Dígito

Cifras

Page 52: Tema 1. elementos básicos de pascal #ipg2murjc

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Tipo real (operaciones)

+ (suma) ℝ x ℝ → ℝ (Ej.: 0.5+5.3 →5.8)

- (resta) ℝ x ℝ → ℝ (Ej.: 2.5-1.5 → 1.0)

* (multiplicación) ℝ x ℝ → ℝ (Ej.: 4.1*5.2 → 21.32)

/ (división) ℝ x ℝ→ ℝ (Ej.: 10.4/3.5 → 2.9714)

- (cambio de signo) ℝ → ℝ (Ej.: -5.8)

Page 53: Tema 1. elementos básicos de pascal #ipg2murjc

ln (logaritmo neperiano)

exp (función exponencial)

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Tipo real (funciones)

abs (valor absoluto)

sqr (cuadrado)

sqrt (raíz cuadrada)

sin (seno)

cos (coseno)

arctan (arcotangente)

Ángulo en radianes Base e

Page 54: Tema 1. elementos básicos de pascal #ipg2murjc

Tipo real (expresiones)

Entendemos por expresión entera como la combinación de números, operaciones, y/o funciones cuyo resultado tras evaluarlas es un real.

Precedencias:

1. ()2. Funciones3. *, / 4. +, -

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Asociatividad de izquierda a derecha

Page 55: Tema 1. elementos básicos de pascal #ipg2murjc

Tipo real (expresiones)

A partir de las funciones que nos ofrece Pascal y mediante expresiones podremos llegar a otras funciones matemáticas habituales

Función Expresión equivalente

xy exp (y * ln (x)) para x > 0tg (x) sin (x) /cos (x) para x ≠ π/2 + kπarcsen (x) arctan (x/sqrt(1-sqr(x)) para 0 < x < 1Logb(x) ln (x) / ln (b) para b>1, x>0

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupmLogb (X) = Ln (X) / Ln (b)

Page 56: Tema 1. elementos básicos de pascal #ipg2murjc

Oriol Borrás Gené @oriolupm

Sobrecarga de operadores y funciones

Se pueden utilizar tanto con enteros como reales:

● +, - y *● abs y sqr

1.2. Tipos de datos básicos

Page 57: Tema 1. elementos básicos de pascal #ipg2murjc

Oriol Borrás Gené @oriolupm

Conversión de tipos (inter y real)

● ⊂ ℝ, por lo tanto x ℝ → ℝ● Conversión automática de a ℝ (ej.: 8 * 2.4 = 19,2)● Funciones de conversión de ℝ a :

○ trunc (x): devuelve la parte entera de x ○ round (x): redondea x al entero más próximo

Ejemplo:

round (5.9)=6 mientras que trunc (5.9)=5

1.2. Tipos de datos básicos

Page 58: Tema 1. elementos básicos de pascal #ipg2murjc

Tipo char (definición)

● Dominio C (juego de caracteres disponibles en la computadora)● Intervalo acotado: juego de caracteres ASCII de 8 bits (256 caracteres)● Se escribe entre apóstrofes ´

Ejemplo: ´A´, ´h´, ‘@’● Excepción: el carácter apóstrofe se escribe doble entre apóstrofes

´´´´

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Page 59: Tema 1. elementos básicos de pascal #ipg2murjc

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Tipo char (tabla códigos ASCII en Pascal)

Fuente: https://es.wikipedia.org/wiki/ASCII

Page 60: Tema 1. elementos básicos de pascal #ipg2murjc

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Tipo char (operaciones y funciones)

+ (concatenación de caracteres). Ej.: ´a´+ ´b´= ´ab´

pred (carácter anterior en la tabla ASCII) C → C

succ (carácter siguiente en la tabla ASCII) C → C

Page 61: Tema 1. elementos básicos de pascal #ipg2murjc

Funciones de conversión de tipos (integer y char)

ord (nº orden ASCII del carácter) C→

chr (carácter asociado a un nº de orden ASCII) → C

Ejemplo:

chr (ord(‘B’) + 4) = chr (66 + 4) = chr (70) = ´F´

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Page 62: Tema 1. elementos básicos de pascal #ipg2murjc

Cadenas de caracteres en Pascal

● No existen en Pascal estándar, string en TurboPascal● El dominio incluye: secuencia de caracteres con espacios en blanco, eñes,

acentos, etc.● Se escribe entre apóstrofes ´ ´

Ejemplos:

´hola buenos días´ o ´ejemplo con apóstrofe ´´ entre medias ´

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Page 63: Tema 1. elementos básicos de pascal #ipg2murjc

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Tipo boolean (definición)

● Proviene del álgebra de Boole, dominio ß (incluye dos valores lógicos)● Intervalo acotado: true y false● Se utiliza en expresiones lógicas

Page 64: Tema 1. elementos básicos de pascal #ipg2murjc

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Tipo boolean (operaciones)

Operadores lógicos

not (negación lógica) ß → ß

and (conjunción lógica) ß x ß → ß

or (disyunción lógica) ß x ß → ß

Page 65: Tema 1. elementos básicos de pascal #ipg2murjc

1.2. Elementos básicos de Pascal

Oriol Borrás Gené @oriolupm

Tipo boolean (operaciones)

Tabla de verdad

A B A and B A or B not A

False False

False True

True False

True True

False

False

False

False

False

FalseTrue

True

True

True

True

True

Page 66: Tema 1. elementos básicos de pascal #ipg2murjc

Tipo boolean (operaciones)

Operadores relacionales

= (igual) > (mayor)

<> (distinto) >= (mayor o igual)

< (menor)

<= (menor o igual)

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Todos están sobrecargados

Permiten la comparación entre dos valores de cualquiera de los tipos básicos:

x → ßℝ x ℝ → ßC x C → ßß x ß → ß

Page 67: Tema 1. elementos básicos de pascal #ipg2murjc

Tipo boolean (operaciones)

Operadores relacionales

= (igual) > (mayor)

<> (distinto) >= (mayor o igual)

< (menor)

<= (menor o igual)

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Pascal solo acepta comparación entre elementos del mismo tipo excepto: integer y real

Page 68: Tema 1. elementos básicos de pascal #ipg2murjc

Tipo boolean (operaciones)

Operadores relacionales lógicos

Cuando se aplican a tipo booleano reciben nombres específicos:

= (equivalencia lógica)

<> (or exclusivo lógico) <= (implicación lógica)

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

A B A = B A <> B A <= B

False False

False True

True False

True True

False

False

False

False False

True = 1False = 0

True

True

True

True

True

True

True

Page 69: Tema 1. elementos básicos de pascal #ipg2murjc

Tipo boolean (Funciones)

succ (valor siguiente) ß → ß Ej.: succ (FALSE) = TRUE

pred (valor anterior) ß → ß Ej.: pred (FALSE) = TRUE

ord (número de orden) ß →

odd (indica si un entero es impar) → ß

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

ord (FALSE) = 0ord (TRUE) = 1

odd (n) = TRUE si n es impar

False en otro caso

odd (n) es equivalente a n mod 2 = 1

Page 70: Tema 1. elementos básicos de pascal #ipg2murjc

Circuito largo-corto

Con la opción de circuito corto el compilador no evalúa de manera completa una expresión si no es necesario.

Pascal establece la evaluación con circuito largo, y TurboPascal permite escoger entre ambos modos (por defecto circuito corto).

Ejemplo: Sean num, den números reales, si den=0

(den <> 0) and (num/den = 0)

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Page 71: Tema 1. elementos básicos de pascal #ipg2murjc

Expresiones (general)

Una expresión estará formada por una constante o una variable o una función aplicada a una expresión o una operación entre expresiones.

Precedencias:1. ()2. Funciones3. -, not4. *, /, div, mod, and 5. +, -, or6. =, <>, <, <=, >, >=

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Asociatividad de izquierda a derecha

Page 72: Tema 1. elementos básicos de pascal #ipg2murjc

Expresiones (general)

Cada expresión tiene un tipo (integer, real, char o boolean).

Para funciones u operadores aplicadas a expresiones el tipo de la expresión tiene que coincidir con el tipo requerido.

Ejemplos:

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

pred(3.4)NO

´a´+ 2

NO

Page 73: Tema 1. elementos básicos de pascal #ipg2murjc

Expresiones (general) - Ejemplo

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

(( 2 + 3 ) * 2.1 < ord (´a´) ) or TRUE

¿(( 2 + 3 ) * 2.1 < ord (´a´) ) or TRUE = 2?

Posición ASCII a = 97

¿(( 2 + 3 ) * 2.1 < ord (´a´) ) or TRUE = TRUE?

Page 74: Tema 1. elementos básicos de pascal #ipg2murjc

Tipos ordinales (general)

● integer, char y boolean● Se pueden enumerar sus dominios asignando a sus elementos una posición

○ ord ()● Las funciones pred () y succ () son exclusivas de los tipos ordinales

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Page 75: Tema 1. elementos básicos de pascal #ipg2murjc

EJERCICIOS

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Page 76: Tema 1. elementos básicos de pascal #ipg2murjc

EJERCICIOS

1. Dadas las variables A, B y C, ¿cuál será el valor que queda almacenado en cada una de ellas?

A = 5B = 10C = 15A = B + C * 2B = A * (2 + C)C = A + B

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Page 77: Tema 1. elementos básicos de pascal #ipg2murjc

EJERCICIOS

2. Dadas las variables A = 2 y B=7 marca aquellas que sean verdaderas

a. A = Bb. A < Bc. A > Bd. A <= Be. A <> B

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Page 78: Tema 1. elementos básicos de pascal #ipg2murjc

EJERCICIOS

3. Cual de las siguientes expresiones en Pascal es incorrecta en cuanto a su sintaxis:

a. x = yb. odd (´4´) or odd (succ(´5´))c. odd (m) or odd (succ(m))d. ord (´c´) - ord (succ(´c´)) > 0

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Page 79: Tema 1. elementos básicos de pascal #ipg2murjc

EJERCICIOS

4. Dadas las variables A = -2 y B = 120 indicar si la expresión se evalúa como TRUE o FALSE:

a. (A > 0) OR (B > 100)b. (A <= 0) AND ( B > 100)c. NOT (A<>B)

1.2. Tipos de datos básicos

Oriol Borrás Gené @oriolupm

Page 80: Tema 1. elementos básicos de pascal #ipg2murjc

Palabras reservadas

Tienen un significado predefinido e inalterable en cada lenguaje y no se pueden utilizar para otros cometidos.

● Pascal: and, array, begin, case, const, div, do, downto, else, end, file, for, forward, function, goto, if, in, label, mod, nil, not, of, or, packed, procedure, program, record, repeat, set, then, to, type, until, var, while, with.

● TurboPascal: implementation, interface, string, unit, uses.

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Oriol Borrás Gené @oriolupm

Page 81: Tema 1. elementos básicos de pascal #ipg2murjc

Identificadores

Palabras asociadas a diferentes elementos de un lenguaje (dispositivos, tipos, constantes, variables, funciones, procedimientos, etc.). Vienen predefinidos.

Predefinidos● Archivos estándar: input, output● Constantes: FALSE, TRUE, MAXINT, PI● Tipos: boolean, char, integer, real, text● Funciones: abs, arctan, sqr, sin, trunc, etc.● Procedimientos: dispose, get, new, pack, page, put, read, readln, reset, rewrite,

unpack, write, writeln

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 82: Tema 1. elementos básicos de pascal #ipg2murjc

Identificadores

Definidos por el programador

Permiten representar archivos, variables, constantes, tipos, funciones y procedimientos a medida que los vamos necesitando.

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

LetraAZ

Dígito

Page 83: Tema 1. elementos básicos de pascal #ipg2murjc

Identificadores

Definidos por el programador (reglas):

● Construidos solo mediante letras y dígitos, empezando por letra solo● No se permiten espacios en blanco (en TurboPascal se permite el carácter

subrayado: _ )● No hay distinción entre mayúscula y minúscula● No se permiten caracteres especiales, ej.: ñ, acentos, etc.● Evitar identificadores muy largos● No pueden ser palabras reservadas● Únicos en un programa

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 84: Tema 1. elementos básicos de pascal #ipg2murjc

EJERCICIOS

¿Identificador correcto o incorrecto?

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

1var

var1

numero a

númeroa

numeroa

numeroA

char

numero#

numero_2

Page 85: Tema 1. elementos básicos de pascal #ipg2murjc

Símbolos especiales

+ – * / := . , ; : = < > <= >= <> ( ) [ ] (* *) { } (. .) _ . .

Literales

Valores concretos de uno de los tipos básicos de Pascal escritos directamemte. Ejemplos:

integer: -3, 12, etc. char: ´a´, ´5´, ´@´, etc. string: ´buenos días´boolean: FALSE real: 2.54, -0.435, etc.

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 86: Tema 1. elementos básicos de pascal #ipg2murjc

Comentarios

Texto que se intercala en el código fuente para explicar su contenido.

Los compiladores ignoran los comentarios, indicándose mediante:

(* * ) o { }

Ejemplos:

(* esto es un ejemplo de comentario *) { y otro ejemplo}

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 87: Tema 1. elementos básicos de pascal #ipg2murjc

Datos definidos por el programador

ConstantesSon datos que no cambian su valor a lo largo de la ejecución del programa. Cuentan con un identificador (normalmente definido por el programador) y un valor, este valor según sus características definirá el tipo. Por ejemplo si es 1.3 será un tipo real.

Se pueden clasificar en:

● Constantes literales. Ej.: 5, 0.66, ´t´● Constantes predefinidas. Ej.: PI, MAXINT, TRUE, FALSE● Expresiones constantes.

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 88: Tema 1. elementos básicos de pascal #ipg2murjc

Datos definidos por el programador

Constantes

● Expresiones constantes. Ejemplos:

2,5 * PI

alto * largo ← siendo “alto” y “largo” constantes literales predefinidas previamente

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 89: Tema 1. elementos básicos de pascal #ipg2murjc

Datos definidos por el programador

Definición de constantes (sintaxis)

Palabra reservada: const

CONST IDENTIFICADOR1 = valor1;IDENTIFICADOR2 = valor2;…IDENTIFICADORn = valorn;

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 90: Tema 1. elementos básicos de pascal #ipg2murjc

Datos definidos por el programador

VariablesSon datos que pueden cambiar su valor a lo largo de la ejecución del programa, se definen por un identificador, y un tipo. Su valor es desconocido al definirlas.

Se corresponden con un espacio de memoria con nombre donde se guardará el valor asignado posteriormente y que variará a lo largo del programa.

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 91: Tema 1. elementos básicos de pascal #ipg2murjc

Datos definidos por el programador

Declaración de variables (sintaxis)

Palabra reservada: var.

VAR Identificador1, Identificador2, … identificadorn: tipo1;Identificador11, Identificador12, … identificador1n: tipo2;...

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

El tipo de una variable permanece a lo largo de todo el programa

Page 92: Tema 1. elementos básicos de pascal #ipg2murjc

Estructura de un programa en Pascal

Pascal es un lenguaje estructurado que requiere de una forma específica de escritura para que lo comprenda el compilador. ● Encabezamiento / cabecera● Declaraciones y definiciones● Cuerpo

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 93: Tema 1. elementos básicos de pascal #ipg2murjc

Estructura de un programa en Pascal

Encabezamiento

Establece la identificación (o título) del programa.

Su estructura es la siguiente:

Program <identificador> (<parámetro de E/S 1>, <parámetro de E/S 2>, …);

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

ENCABEZAMIENTO

DECLARACIONES

CUERPO

Opcional en TurboPascal

Page 94: Tema 1. elementos básicos de pascal #ipg2murjc

Estructura de un programa en Pascal

Declaraciones

Aquí el programador indicará al compilador todos los identificadores no predefinidos que requerirá el programa.

● Definición de constantes● Declaración de variables● Definición de unidades● Definición de procedimientos, funciones, etc.

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

ENCABEZAMIENTO

DECLARACIONES

CUERPO

Page 95: Tema 1. elementos básicos de pascal #ipg2murjc

Estructura de un programa en Pascal

Declaraciones

● Definición de unidades:

Permite utilizar desde un programa otros módulos compilados previamente (TurboPascal). Palabra reservada: USES

Sintaxis:

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

ENCABEZAMIENTO

DECLARACIONES

CUERPO

USES idUnidad1, idUnidad2;

Page 96: Tema 1. elementos básicos de pascal #ipg2murjc

Estructura de un programa en Pascal

Declaraciones

Permiten al compilador:

● Reservar espacio de memoria para cada identificador● Verificar el correcto uso de los constructores

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

ENCABEZAMIENTO

DECLARACIONES

CUERPO

Page 97: Tema 1. elementos básicos de pascal #ipg2murjc

Estructura de un programa en Pascal

Cuerpo del programa

Contiene el conjunto de instrucciones ejecutables que constituyen un programa

Comienza con la palabra reservada begin y finaliza con la palabra reservada end y un punto “.”

Cada instrucción se separa con el símbolo “;”

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

ENCABEZAMIENTO

DECLARACIONES

CUERPO

Page 98: Tema 1. elementos básicos de pascal #ipg2murjc

Estructura de un programa en Pascal

Cuerpo del programa (sintaxis):

BEGIN

instruccion1;instruccion2;…instruccionn;

END.

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

ENCABEZAMIENTO

DECLARACIONES

CUERPO

Page 99: Tema 1. elementos básicos de pascal #ipg2murjc

Estructura de un programa en Pascal (resumen)

PASCAL PSEUDOCÓDIGO

PROGRAM nombre; Algoritmo Nombre{declaraciones} {declaraciones}BEGIN Inicio{sentencias} {sentencias}END. FIN

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 100: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Asignación

Se utiliza para dar un valor inicial a las variables o para modificar el que ya tienen a lo largo de un programa.

El símbolo de la asignación es := y su sintaxis:

identificador := expresion

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

La expresión o su resultado ha de ser del mismo tipo que la variable.

Page 101: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Asignación (ejemplos):

base := 3.1altura := 4.2area := base * altura / 2indice := indice +1acumulador := acumulador + valor

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 102: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Asignación

No confundir asignación := con igualdad =, esta última es un operador relacional cuya función es comparar expresiones y su resultado es un valor booleano.

Pascal asigna un valor indefinido a las variables creadas (valor basura) al iniciarse el programa, habrá que tenerlo en cuenta y asignar previamente un valor si consideramos que es necesario para el programa.

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 103: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Todo programa se comunica con el exterior a través de entradas y salidas de datos.

Escritura

● La escritura o salida de datos siempre se hace a un archivo.

● El archivo especial OUTPUT es el monitor o pantalla de la computadora.

● El resto de archivos se denominan mediante un identificador definido por el usuario.

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 104: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Escritura

Se realiza mediante las órdenes write o writeln con la siguiente sintaxis:

write (<nombre_fichero>, expresion1, expresion2, …, expresionn)writeln (<nombre_fichero>, expresion1, expresion2, …, expresionn)

Ambas órdenes evalúan sus argumentos (expresiones) y escriben el resultado en <nombre_fichero>.

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Si se omite el <nombre_fichero> la salida será al archivo output (monitor).

Page 105: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Escritura

El resultado de writeln es el mismo que write más un salto de línea. Si escribimos sólo write no ocurre nada si escribimos sólo writeln provoca un salto de línea.

Ejemplos:

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

write (´hola´)write (2*4)writelnwrite (23,54)writeln (´->2 + ´,2,’ es igual a ´, 2+2)write (‘adios’,34)

Por pantalla se verá:

>> hola8>> 2354->2 + 2 es igual a 4>> adios34

Page 106: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Parámetros de formato de salida (entero)

write (expresionEntera:m, …)

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

● Escribe el entero o el resultado de la expresión entera justificado por la derecha un valor “m”.

● La salida puede ser mayor al espacio indicado por m.

Page 107: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Parámetros de formato de salida (entero) ◻ = espacio en blanco

Ejemplos:

write (23:6) >> ◻◻◻◻23write (1:4, 44:4, 222:4) >> ◻◻◻1◻◻44◻222write (3333:2) >> 3333

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 108: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Parámetros de formato de salida (real)

write (expresionReal:m:n, …)

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

● Por defecto la salida de valores reales se escribe en notación científica. Ej.: 2.57384570E+2

● Escribe el entero o el resultado de la expresión entera justificado por la derecha un valor “m”.

● La salida puede ser mayor al espacio indicado por m.● n indica el número de decimales (con redondeo)

Page 109: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Parámetros de formato de salida (real) ◻ = espacio en blanco

Ejemplos:

a = 4123.456700 → a = 4.123456700E+03 write (a:16) >> ◻4.123456700E+03write (a:9:2) >> ◻◻4123.45

(se muestra el real en formato decimal y no científico)

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 110: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Parámetros de formato de salida (caracteres y cadenas de caracteres)

write (caracteres:m, …)

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

● Escribe el o los caracteres justificado por la derecha un valor “m”.

Ejemplos: ◻ = espacio en blanco

writeln (´54.9´:5) >> ◻54.9writeln (´Buenos días´:14) >> ◻◻◻Buenos días

Page 111: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Parámetros de formato de salida (booleanos)

write (booleanos:m, …)

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

● Escribe el booleano justificado por la derecha un valor “m”.

Ejemplo: ◻ = espacio en blanco

writeln (true:5) >> ◻true

Page 112: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Escritura (ejercicios)

1. a := 15.389; 3. writeln (5 * 7 + 2:5); writeln (a:8:2); write (3.5E-3:3:4);

writeln(555:8);

2. writeln (‘Hola que tal’);write (‘estoy’);write (‘bien’:5);

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 113: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Lectura

● La lectura o entrada de datos siempre se hace desde un archivo.

● El archivo especial INPUT es el teclado de la computadora, almacenando en este archivo todas las pulsaciones del teclado.

● El resto de archivos se denominan mediante un identificador definido por el usuario.

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 114: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Lectura

Se realiza mediante las órdenes read o readln con la siguiente sintaxis:

read (<nombre_fichero>, var1, var2, …, varn)readln (<nombre_fichero>, var1, var2, …, varn)

Las variables no pueden ser de tipo boolean.

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Si se omite el <nombre_fichero> la entrada será por el archivo input.

Page 115: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Lectura

El resultado de readln es el mismo que read leyendo los “n” datos del <nombre_fichero> (o archivo input - teclado-) y los asigna a las “n” variables expresadas como argumentos. Para el caso de readln además una vez leídos sus argumentos ignora si hay más valores en el fichero y posiciona la siguiente lectura en la línea siguiente.

● Readln escrito solo hará una pausa hasta que se pulse “Intro”● El salto de línea ↵ lo incluye como salto de línea

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 116: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Lectura (ejercicio clase) - http://rextester.com/l/pascal_online_compiler

program leer;

var

a,b,c: char;

begin

writeln('pruebas varias');

¿readln?

¿read?

writeln('a = ',a,' b = ',b,' c = ',c, '.');

end.

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Page 117: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Lectura (ejercicio casa)

PROGRAM lectura;VAR a, b : integer;

r : real;l, m : char;

BEGINread (l,a);readln (r,m);read (m,b):readln;read (a);

END.

Oriol Borrás Gené @oriolupm

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Entradas teclado:a 4 3↵buenas↵71 23 4 ↵10 30

¿Valor final de a, b, r, l y m?

Page 118: Tema 1. elementos básicos de pascal #ipg2murjc

Instrucciones básicas:

Lectura (ejercicio casa)

PROGRAM lectura;VAR a, b : integer;

r : real;l, m : char;

BEGINread (l,a);readln (r,m);read (m,b):readln;read (a);

END.

1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador

Entradas teclado:a 4 3↵buenas↵71 23 4 ↵10 30

Pasos a b r l m

0 4 ¿? ¿? ‘a’ ¿?

1 4 ¿? 3.0 ‘a’ ↵

2 4 1 3.0 ‘a’ ‘7’

3 4 1 3.0 ‘a’ ‘7’

4 10 1 3.0 ‘a’ ‘7’

Page 119: Tema 1. elementos básicos de pascal #ipg2murjc

1.4. La documentación del programa

Oriol Borrás Gené @oriolupm

Aspectos relevantes

● Comentarios:○ Descripción del funcionamiento: subprogramas, bloques, etc.○ Condiciones de entrada○ Condiciones de salida○ ...

● Estructuración del programa fuente● Elección de identificadores● ...

Page 120: Tema 1. elementos básicos de pascal #ipg2murjc

1.5. Normas de estilo

Oriol Borrás Gené @oriolupm

Claridad del texto en el programa: ● Una instrucción por línea -> Retornos de línea● Reflejar la estructura del programa de manera visual -> Tabuladores● No exceder la longitud de pantalla -> Longitud de línea

Elegir un criterio de escritura:

● Constantes en mayúscula ● Variables en minúscula

-> nombres compuestos la inicial de la segunda palabra en mayúscula● Palabras clave o reservadas en mayúscula● Tipos comienzan con T

Page 121: Tema 1. elementos básicos de pascal #ipg2murjc

1.5. Normas de estilo (ejemplo)

Oriol Borrás Gené @oriolupm

PROGRAM NombrePrograma(input, output); { Propósito: } { Entrada: } { Salida: }CONST {Definición de constantes} CONSTANTES = #VALOR; {}VAR {Declaración de variables} variables : tipo; {}BEGIN {Programa principal} Instrucción1; Instrucción2; ...; InstrucciónN;END. {Programa principal}

Page 122: Tema 1. elementos básicos de pascal #ipg2murjc

Oriol Borrás Gené @oriolupm

Elección de identificadores

● Criterio para la semántica:○ Buscar una palabras o palabras que representen el objetivo o el

significado del identificador● Criterio para la sintaxis:

○ Evitar identificadores de gran longitud

1.5. Normas de estilo

Page 123: Tema 1. elementos básicos de pascal #ipg2murjc

Oriol Borrás Gené @oriolupm

Ejercicios de autoevaluación tema 1 (Casa)

https://goo.gl/forms/tsYfkwmIGTHB01072

Ejercicios para casa

Page 124: Tema 1. elementos básicos de pascal #ipg2murjc

BibliografíaPAREJA, C. (1997). Desarrollo de Algoritmos y Técnicas de programación en Pascal. http://antares.sip.ucm.es/cpareja/libroAlgoritmos/

URJC. Apuntes de la asignatura.

Hernández Yáñez, L. (2013). Fundamentos de la programación (apuntes de clase). https://www.fdi.ucm.es/profesor/luis/fp/FP.pdf

Zayas Alzamora, R. y Escobar Santiesteban, R. (2013). Aprenda Pascal.https://milenguaje.files.wordpress.com/2009/03/aprenda-pascal.pdf

http://antares.sip.ucm.es/cpareja/libroAlgoritmos/