Este documento presenta una introducción a los conceptos básicos de la programación, incluyendo definiciones de términos como algoritmo, programa, hardware, software, lenguajes de programación, datos, y más. Explica los pasos para resolver un problema con una computadora, como analizar el problema, diseñar un algoritmo, implementarlo en un lenguaje de programación, y depurarlo. También describe conceptos como pseudocódigo y diagramas de flujo para describir algoritmos de manera más legible.
2. 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.
3. 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.
4. 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.
5. 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
DATOS
ENTRADA DATOS
SALIDA
Teclado
Ratón
Escáner
...
Monitor
Impresora
Altavoz
...
6. 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/2
7/que-es-la-arquitectura-von-neumann/
7. 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.
8. 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 problema
2. Diseñar o describir un método para resolverlo -> Algoritmo
3. Implementar el algoritmo en un lenguaje de programación
4. Comprobar que funciona correctamente
5. Depurar
9. 1.1. Introducción y conceptos de programación
Oriol Borrás Gené @oriolupm
¿Qué es un programa?
Programa = Algoritmos + Estructuras de datos
Algoritmo
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.
10. 1.1. Introducción y conceptos de programación
Oriol Borrás Gené @oriolupm
¿Qué es un programa?
PROGRAMAENTRADA SALIDA
11. 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
12. 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
13. 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.
14. 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
15. 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 num
InicioDesde
Desde t=1 hasta t=10 repetir
hacer total = num*t
Escribir: total
finDesde
Fin
16. 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
17. 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
18. 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
19. 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
20. 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.
21. 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.
23. 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)
24. 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 1
Valor (2 (n-1)
)-> 8 4 2 1
● Posición n = 1 (dígito = 1 y valor = 2 (1-1)
= 2 0
= 1) -> 1*1
0 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
25. 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
26. 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.
27. 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
28. 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
29. 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
FORTRAN
ALGOL Lisp
COBOL APL
SIMULA
BASIC Prolog
C Pascal Scheme Modula Ada
C++ Perl Python Ruby Java
PHP C#
30. 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)
31. 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
32. 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)
33. 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
34. 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
35. 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
36. 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.
37. 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.
38. 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
39. 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.
40. 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++.
41. 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
42. 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/Fil
e: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).
43. 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
44. 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
45. 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
46. 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)
47. 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
48. 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. Funciones
3. *. div ,mod
4. +, -
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
49. 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. Funciones
3. *. div ,mod
4. +, -
1.2. Tipos de datos básicos
Oriol Borrás Gené @oriolupm
4 div 2 * 2 = 4
Asociatividad de izquierda a derecha
50. 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
51. 1.2. Tipos de datos básicos
Oriol Borrás Gené @oriolupm
Tipo real (definición)
Real sin signo
Dígito
Cifras
52. 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)
53. 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
54. 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. Funciones
3. *, /
4. +, -
1.2. Tipos de datos básicos
Oriol Borrás Gené @oriolupm
Asociatividad de izquierda a derecha
55. 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 > 0
tg (x) sin (x) /cos (x) para x ≠ π/2 + kπ
arcsen (x) arctan (x/sqrt(1-sqr(x)) para 0 < x < 1
Logb
(x) ln (x) / ln (b) para b>1, x>0
1.2. Tipos de datos básicos
Oriol Borrás Gené @oriolupm
Logb
(X) = Ln (X) / Ln (b)
56. 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
57. 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
58. 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
59. 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
60. 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
61. 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
62. 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
63. 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
64. 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 ß → ß
65. 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
66. 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 ß → ß
67. 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
68. 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 = 1
False = 0
True
True
True
True
True
True
True
69. 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) = 0
ord (TRUE) = 1
odd (n) =
TRUE si n es impar
False en otro caso
odd (n) es equivalente a n mod 2 = 1
70. 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
71. 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. Funciones
3. -, not
4. *, /, div, mod, and
5. +, -, or
6. =, <>, <, <=, >, >=
1.2. Tipos de datos básicos
Oriol Borrás Gené @oriolupm
Asociatividad de izquierda a derecha
72. 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
73. 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?
74. 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
76. EJERCICIOS
1. Dadas las variables A, B y C, ¿cuál será el valor que queda almacenado en
cada una de ellas?
A = 5
B = 10
C = 15
A = B + C * 2
B = A * (2 + C)
C = A + B
1.2. Tipos de datos básicos
Oriol Borrás Gené @oriolupm
77. EJERCICIOS
2. Dadas las variables A = 2 y B=7 marca aquellas que sean verdaderas
a. A = B
b. A < B
c. A > B
d. A <= B
e. A <> B
1.2. Tipos de datos básicos
Oriol Borrás Gené @oriolupm
78. EJERCICIOS
3. Cual de las siguientes expresiones en Pascal es incorrecta en cuanto a su
sintaxis:
a. x = y
b. 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
79. 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
80. 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
81. 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
82. 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
83. 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
84. 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
85. 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
86. 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
87. Datos definidos por el programador
Constantes
Son 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
88. 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
89. 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
90. Datos definidos por el programador
Variables
Son 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
91. 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
92. 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
93. 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
94. 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
95. 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;
96. 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
97. 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
98. 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
99. 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
100. 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.
101. Instrucciones básicas:
Asignación (ejemplos):
base := 3.1
altura := 4.2
area := base * altura / 2
indice := indice +1
acumulador := acumulador + valor
Oriol Borrás Gené @oriolupm
1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador
102. 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
103. 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
104. 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).
105. 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)
writeln
write (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
106. 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.
107. Instrucciones básicas:
Parámetros de formato de salida (entero) ◻ = espacio en blanco
Ejemplos:
write (23:6) >> ◻◻◻◻23
write (1:4, 44:4, 222:4) >> ◻◻◻1◻◻44◻222
write (3333:2) >> 3333
Oriol Borrás Gené @oriolupm
1.3. Elementos básicos de Pascal. Tipos de datos definidos por el programador
108. 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)
109. 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+03
write (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
110. 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.9
writeln (´Buenos días´:14) >> ◻◻◻Buenos días
111. 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
112. 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
113. 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
114. 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.
115. 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
116. 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
117. Instrucciones básicas:
Lectura (ejercicio casa)
PROGRAM lectura;
VAR
a, b : integer;
r : real;
l, m : char;
BEGIN
read (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?
118. Instrucciones básicas:
Lectura (ejercicio casa)
PROGRAM lectura;
VAR
a, b : integer;
r : real;
l, m : char;
BEGIN
read (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’
119. 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
● ...
120. 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
121. 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}
122. 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
123. Oriol Borrás Gené @oriolupm
Ejercicios de autoevaluación tema 1 (Casa)
https://goo.gl/forms/tsYfkwmIGTHB01072
Ejercicios para casa
124. Bibliografía
PAREJA, C. (1997). Desarrollo de
Algoritmos y Técnicas de programación en
Pascal.
http://antares.sip.ucm.es/cpareja/libroAlgo
ritmos/
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/200
9/03/aprenda-pascal.pdf