Introducción a la Programación.
Pascal.
Vicente López
Escuela Técnica Superior de Informática
Universidad Autónoma de Madrid
(
[email protected] )
2
Índice General
1 Esquemas Básicos
1.1 Ordenación temporal
. . . . . . . . . . . . . . . . . . . . . . .
1.2 Componentes básicos . . . . . . . . . . . . . . . . . . . . . . .
1.3 Tráfico de información . . . . . . . . . . . . . . . . . . . . . .
7
7
8
9
2 Lenguajes
13
2.1 Procesamiento de información: hombre y ordenador . . . . . . 13
2.2 Formalización de los lenguajes . . . . . . . . . . . . . . . . . . 15
2.3 Las máquinas de Von Neuman . . . . . . . . . . . . . . . . . . 16
2.4 Breve historia de los lenguajes . . . . . . . . . . . . . . . . . . 17
2.5 Tipos de lenguajes
. . . . . . . . . . . . . . . . . . . . . . . . 20
3 Algoritmos
23
3.1 Pasos en la resolución . . . . . . . . . . . . . . . . . . . . . . . 23
3.2 Uso múltiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 El ejemplo de Josefo . . . . . . . . . . . . . . . . . . . . . . . 25
4 Pascal
33
4.1 Características
. . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 El programa Pascal . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3 Palabras reservadas y estructuras . . . . . . . . . . . . . . . . 35
4.4
Instrucciones sencillas y compuestas . . . . . . . . . . . . . . . 37
. . . . . . . . . . . . . . . . . . . . . . 38
4.5 Diagramas de sintaxis
5 Datos
39
. . . . . . . . . . . . . . . . . . 39
Identificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
. . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.1 Variables, datos y direcciones
5.2
5.3 Tipos de datos
3
4
ÍNDICE GENERAL
5.4 Constates con tipo . . . . . . . . . . . . . . . . . . . . . . . . 46
5.5
Inicialización de los datos . . . . . . . . . . . . . . . . . . . . 46
5.6 Asignación de las constantes . . . . . . . . . . . . . . . . . . . 46
5.7 Asignación de los distintos tipos de variables . . . . . . . . . . 47
6 Entrada y salida
51
6.1 Dispositivos de entrada, salida y almacenamiento . . . . . . . 51
6.2 Las funciones Read y Write
. . . . . . . . . . . . . . . . . . . 52
6.3 Formatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.4 Las funciones WriteLn y ReadLn . . . . . . . . . . . . . . . . 55
7 Acciones
7.1 Operaciones básicas.
59
. . . . . . . . . . . . . . . . . . . . . . . 59
. . . 59
7.1.1 Operadores aritméticos y expresiones aritméticas.
. . . . . . . . . . . . . . . . . . 61
7.1.2 Funciones aritméticas.
7.1.3 Aritmética entera y real.
. . . . . . . . . . . . . . . . . 62
7.1.4 Operadores lógicos. . . . . . . . . . . . . . . . . . . . . 65
7.1.5 Expresiones lógicas. . . . . . . . . . . . . . . . . . . . . 68
7.1.6 Manipulación de bits. . . . . . . . . . . . . . . . . . . . 70
7.2 Sentencias de control. . . . . . . . . . . . . . . . . . . . . . . . 74
7.3 Sentencias de repetición.
. . . . . . . . . . . . . . . . . . . . . 79
. . . . . . . . . . . . . . 85
7.4 Manipulación de los datos STRING.
8 Modularidad
87
8.1 Dividir para vencer . . . . . . . . . . . . . . . . . . . . . . . . 87
8.2 Procedimientos
. . . . . . . . . . . . . . . . . . . . . . . . . . 88
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
8.3 Funciones
8.4
. . . . . . . . . . . . . . 91
8.5 Paso de valores por contenido o dirección . . . . . . . . . . . . 92
8.6 Definición diferida . . . . . . . . . . . . . . . . . . . . . . . . . 96
8.7 Módulos y submódulos . . . . . . . . . . . . . . . . . . . . . . 97
8.8 Recursividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Ámbito de definición de las variables
9 Datos con estructura
103
9.1 Tipos de datos definidos por el programador . . . . . . . . . . 103
9.2 Enumeraciones
. . . . . . . . . . . . . . . . . . . . . . . . . . 105
9.3 Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
9.4 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
ÍNDICE GENERAL
5
9.5 Registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
9.6 Uniones
10 Ficheros
125
10.1 Ficheros con Tipo . . . . . . . . . . . . . . . . . . . . . . . . . 125
10.2 Procesamiento secuencial y aleatorio . . . . . . . . . . . . . . 131
10.3 Ficheros de Texto . . . . . . . . . . . . . . . . . . . . . . . . . 136
11 Punteros
141
11.1 Contenidos, direcciones e identificadores
. . . . . . . . . . . . 141
11.2 Punteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
11.3 Asignación dinámica de memoria.
. . . . . . . . . . . . . . . . 145
. . . . . . . . . . . 147
11.4 Declaraciones recursivas de tipos de datos
6
ÍNDICE GENERAL
Capítulo 1
Esquemas básicos del
ordenador
1.1 Ordenación temporal
Un ordenador es una máquina diseñada para el procesamiento automático
de información.
El esquema más sencillo de un ordenador actual es el siguiente:
Entrada
-
Computadora
-
Salida
Se denominan dispositivos de entrada a todos aquellos que hacen posible
la captura de los datos necesarios para realizar las tareas encomendadas al
ordenador. Ejemplos comunes de dispositivos de entrada son los teclados, las
tarjetas perforada, y los ratones, pero también lo son los escaners, micrófonos,
terminales TRC (Tubos de Rayos Catódicos),...
Se denominan dispositivos de salida a todos aquellos que hacen posible
la comunicación de los resultados de las tareas realizadas por el ordenador.
Ejemplos comunes de dispositivos de salida son los terminales TRC, impre-
7
8
CAPÍTULO 1. ESQUEMAS B ÁSICOS
soras, y plotters, pero también lo son altavoces, actuadores mecánicos,...
Es fundamental en un computador la ordenación temporal de sus opera-
ciones:
Entrada
-
Computadora
-
Salida
-
Tiempo
y los componentes se definen exclusivamente a partir de la secuencia de ope-
raciones realizadas.
1.2 Componentes básicos
Globalmente a los dispositivos de entrada y salida se les denomina periféricos.
Los dispositivos de almacenamiento de información como discos, diskettes,
cintas,..., también son periféricos que son dispositivos de entrada o salida
según se grabe o se lea la información.
A los componentes físicos del ordenador se le denomina Hardware y a la
información que dirige la realización de las tareas se le denomina Software.
El ordenador, aparte de los periféricos, consta de dos componentes prin-
cipales: Unidad de memoria y unidad central de procesos.
Ordenador
Unidad de
memoria
Unidad
central de
procesos
• La unidad de memoria está formada por cientos, miles o millones de
celdas de memoria en las que se puede almacenar información y que
están identificadas por su dirección (en el sentido postal).
u u u
A
1
2
4
J
3
3
1
2
3
4
5
6
7
1.3. TR ÁFICO DE INFORMACI ÓN
9
Al contenido de la información en general se accede por la dirección de
la celda. El contenido también puede ser la dirección de una celda con
lo que es posible almacenar en memoria la instrucciones que se han de
realizar incluyendo el acceso a la información de las celdas.
• La unidad central de procesamiento (CPU) dirige y controla el procesa-
miento de información que realiza el ordenador y consta de dos partes:
la unidad de control y la unidad aritmético – lógica.
de
unidad
memoria
6
?
unidad
de
control
-
unidad
aritmético
–
lógica
La unidad de control busca, obtiene, y ejecuta las instrucciones de
los programas almacenadas en la memoria. Cuando las instrucciones
indican la realización de operaciones aritméticas (+, ∗,... ) o lógicas (
≥ , ≡ , ...) estas se derivan para ser realizadas en la unidad aritmético
– lógica.
1.3 Tráfico de información
Vamos a ver de forma simplificada las acciones a las que da lugar en un
ordenador las instrucciones de un programa. Es fundamental comprender lo
inexcusable de la secuencialidad temporal de la instrucciones suministradas
al ordenador.
Como ejemplo vamos a considerar esta porción de programa:
{1}
{2}
{3}
{4}
{5}
a := 3;
b := 5;
c := a + b;
c := c + 2;
if (c > 9) then writeln(c);
10
CAPÍTULO 1. ESQUEMAS B ÁSICOS
y consideraremos un modelo muy simplificado de un ordenador. Este modelo
dispone de una U.C.P., con unidad de control y aritmético lógica, y una
pequeña memoria con 64 posiciones.
Se reservan las posiciones de la 1 a la 50 para almacenar los programas
que luego se ejecutarán y las posiciones 51, 52, 53, ... se utilizan para datos
intermedios.
En nuestro modelo se inicializan todos los datos a cero al empezar la
ejecución del programa y cuando la U.C.P. va a empezar a ejecutar la primera
instrucción las posiciones 51, 52 y 53 contienen un 0. En esas posiciones se
almacenarán los valores de las variables a,b, y c, respectivamente,
0
51
0
52
0
53
La primera instrucción del programa
a := 3;
indica a la U.C. que en la posición 51 de memoria ha de almacenarse el
número entero 3.
0
0
3
51
52
53
La segunda,
b := 5;
que en 52 almacene un 5,
3
51
5
52
0
53
y en la tercera, la U.C. realiza las siguientes acciones: obtiene los números
almacenados en 51 y 52, los envía a la U.A.L. para ser sumados y el resultado
que devuelve se almacena en 53.
3
51
5
52
8
53
1.3. TR ÁFICO DE INFORMACI ÓN
11
En la cuarta instrucción obtiene el número almacenado en 53 y lo envía a
la U.A.L. junto con el 2 para ser sumados. El resultado devuelto lo almacena
de nuevo en 53.
3
51
5
52
10
53
La quinta instrucción implica que la U.C. obtiene el número almacenado
en 53 y lo envía junto con el 9 a la U.A.L. para ser comparados. Como
de la comparación la U.A.L. devuelve que es cierto, se envía al periférico
correspondiente la orden de sacar al exterior el contenido de la memoria 53.
12
CAPÍTULO 1. ESQUEMAS B ÁSICOS
Capítulo 2
Lenguajes de programación
2.1 Procesamiento de información: hombre y
ordenador
La infor
Comentarios de: Introduccion Pascal (0)
No hay comentarios