1

INTRODUCCIÓN A
LA PROGRAMACIÓN
EN PASCAL
Ing. Francisco Javier Camacho Calderón
SUCRE - BOLIVIA
2
ESTRUCTURA GENERAL DE
UN PROGRAMA EN PASCAL
Programa = {ED, Proc., Func.}
Combinados imaginativamente para
resolver un problema.
En gral. todo programa se
estructura en tres zonas:
1. Encabezamiento.
2. Zona de Declaración.
3. Zona de Desarrollo.
//Encabezado.
Program Programa0;
//Zona de Desarrollo.
begin
. . . . .
INSTRUCCIONES;
. . . . .
end.
//Zona de Declaraciones.
3
ENCABEZAMIENTO
Permite identificar el programa, darle un
nombre.
La primera instrucción de un programa en
Pascal.
Una sola línea de programa. Tiene la sgte.
sintaxis:
Program nombre_del_prog;
Al final de toda instrucción en Pascal
se coloca un punto y coma (;).
4
REGLAS PARA NOMBRES
EN PASCAL
 Secuencia de Letras, números y
caracteres válidos. Ejm . guión largo o
carácter de subrayado (_).
 No puede ser una secuencia sólo de
números. Si letras y caracteres válidos.
 Sin espacios. Espacios y otros
caracteres reemplazar por uno válido.
 Siempre empezar con letra o carácter
válido.
5
REGLAS PARA NOMBRES
EN PASCAL
 No utilizar palabras reservadas (Read,
For, While, Program, entre otras).
 Recomendable nombre significativo.
Debe revelar idea que expresa u
objetivo que cumple.
 Pascal no distingue mayúsculas de
minúsculas ¬ Suma = SUMA = suma.
Validos Inválidos
Sumar, Suma_1, Suma y resta, For_1
Suma_de_cuadrados 1_Suma, 115
6
ZONA DE DECLARACIONES
Permite declarar todos los elementos de
programa a utilizar.
Elementos de Programa. Son :
 Unidades Llamadas a uso. Primero.
 Etiquetas.
 Tipos de Datos. Antes que Constantes
y variables.
 Constantes.
 Variables.
 Funciones y/o Procedimientos. A ← B
Orden indistinto pero de preferencia éste.
7
ZONA DE DECLARACIONES
Todo elemento referenciado, invocado o
utilizado se debe declarar antes.
No se puede utilizar elementos de
programa no declarados.
Sólo se requiere declarar elementos de
programa, que se van a utilizar.
Tipos de Elementos de Programa
1. Usuario Definidos. Creados y
compilados por el usuario.
2. Estándar. Predefinidos y compilados
en la biblioteca de Pascal. Parte del LP.
8
ZONA DE DECLARACIONES
Sólo se requiere declarar elementos de
programa, Usuario definidos.
Tanto Elementos Usuario definidos como
Estándar pueden ser invocados,
referenciados o utilizados por cualquier
programa o subprograma.
9
ZONA DE DESARROLLO
Aquí se transcribe el Algoritmo Básico.
Se conoce como el Programa Principal.
Secuencia de Instrucciones para resolver
el problema. Aunque no es regla, se
distinguen tres partes:
1. Entrada de Datos. Lectura de la Inf. de
entrada.
2. Proceso. Operaciones para
transformar la Inf. de entrada en Inf.
de salida.
3. Salida de resultados. Despliegue o
escritura de la Inf. de salida.
10
ZONA DE DESARROLLO
Comienza con la instrucción (palabra
reservada) begin y termina con la
instrucción end seguida de un punto (.),
entre ellas se escriben las instrucciones
del Algoritmo (Programa).
El punto (.) indica el final del programa.
El begin no termina en ; , es una
excepción a la regla, y siempre se
corresponde con un end.
begin – end marcan de inicio y final de un
bloque de instrucciones de programa.
11
UNIDADES
Unidad = {ED, Proc., Func.}
Combinados imaginativamente para
resolver un problema.
Programa se ejecuta solo.
Unidad requiere ser llamada a uso por un
programa para ejecutarse. También
difiere levemente en su estructura.
Llamarlas a uso, con la sgte. sintaxis:
Uses lista_de_unidades;
Si esta instrucción existe ¬ primera
después del encabezado. Termina en ;
12
UNIDADES
Solo una cláusula Uses en c/programa.
lista_de_unidades = NomUnid_1,
NomUnid_2, NomUnid_3, . . . . .
Los nombres de unidades (NomUnid_k)
deben cumplir las Reglas para Nombres
en Pascal.
Pueden listarse una tras otra en una línea
o en varias, separadas por comas (,).
Toda lista en Pascal utiliza como
separador de lista la coma (,).
13
UNIDADES
Ejm.: Uses wincrt, math, unidad1;
Uses crt,
math,
unidad1;
Las Unidades Usuario Definidas.
Almacenan otros elementos de programa
creados y compilados por el usuario.
Para poder invocarlas deben estar
compiladas previamente.
Ejm. unidad1.
14
UNIDADES
Las Unidades Estándar. Almacenan
elementos de programa predefinidos y
compilados que forman la biblioteca de
Pascal.
Pueden ser Invocadas directamente por
cualquier programa para realizar varias
tareas útiles:
 Tratamiento de cadenas (Copy,
Delete, Insert, etc.).
 Configuración de pantalla
(TextMode, Window, etc.).
 Obtener Inf. del SO.
 Tratamiento de gráficos.
15
UNIDADES
Unidades Estándar. Realizan varias
tareas útiles (Cont.):
 Funciones matemáticas.
 Tratamiento de archivos.
 Otras aplicaciones.
Ejm.
Dos Func. del SO DOS.
Graph Manejo de gráficos.
Printer Gestionar impresoras.
System Rutinas útiles en tiempo de Ejec.
wincrt Interactuar con pantalla.
math Func. matemáticas .
16
ETIQUETAS
Identificadores de partes importantes del
programa.
Asociadas a instrucciones GOTO. Se evita
su uso.
Sintaxis de declaración :
Label lista_etiquetas;
Lista_etiquetas = NomEtiq_1,

NomEtiq_2, NomEtiq_3, . . .
Ejm. Label Inicio, NuevaIt, Retorno;
Label Inicio,
NuevaIt,
Retorno;
17
DATOS
Dato. Término genérico. Número, letra o
carácter cualquiera, una combinación que
representa o aporta conocimiento sobre
un hecho, objeto, persona o estado, real
o abstracto, tangible o intangible; y sobre
el cual actúan los programas.
Declaración in directa, a través de tres
elementos que forman parte de los
programas, éstos son:
 Tipos de Datos.
 Constantes.
 Variables.
18
TIPOS DE DATOS
De la definición de dato se puede deducir
que estos pueden ser de diversos tipos.
Tipo de Dato = {valores} que puede tomar
un dato. Determina espacio de memoria
ocupado y la forma como se representa.
Su declaración tiene la sgte. sintaxis:
Type
NomTipoDato_1 = DefiniciónTipo_1;
NomTipoDato_2 = DefiniciónTipo_2;
. . . . .
NomTipoDato_N = DefiniciónTipo_N;
DefiniciónTipo_N. Descripción basada en
tipos predefinidos.
19
TIPOS DE DATOS ESTÁNDAR
Disponibles en casi todos los LP.
Llamados Tipos de Datos Básicos, son:
1. Lógico o Booleano (Boolean). Solo
admite dos valores True (Verdadero - 1)
o False (Falso - 0).
2. Carácter (Char). Puede tomar uno de
caracteres del código ASCII. 1 Byte. Un
número entre 0 y 255.
3. Cadena (String). Cualquier cadena de
caracteres de hasta 255 caracteres.
Ocupa, tantos Bytes como caracteres.
20
TIPOS DE DATOS ESTÁNDAR
4. Enteros. Números positivos y/o
negativos incluido el cero (0) que no
admiten decimales. Los tipos enteros
y los rangos que admiten son:
Nombre
Entero
Palabra
Reservada
Rango de valores Tamaño
(Bytes)
Con Signo Integer - 32768 . . 32767 2
Sin Signo Word 0 . . 65535 2
Corto con Signo SortInt - 128 . . 127 1
Corto sin Signo Byte 0 . . 255 1
Largo LongInt - 2147483648 . . 2147483647 4
21
TIPOS DE DATOS ESTÁNDAR
5. Reales. Números reales. Con
decimales y exponente, escritos en
Notación Científica. Los tipos reales y
los rangos que admiten son:









++
Sólo admite enteros y exponente. No admite decimales.
*
Requieren coprocesador matemático 8087 o su emulador,
debe activarse con ls directivas de compilador {+N} o {+E} .
Nombre Palabra
Reservada
Rango de valores Cifras
Signif.
Tamaño
(Bytes)
Real Real ± 2.9 E - 39 . . 1.7 E 38 11 – 12 6
Simple precisión
*

Single ± 1.5 E - 45 . . 3.4 E 38 7 – 8 4
Doble precisión
*
Double ± 5.0 E - 324 . . 1.7 E 308 15 – 16 8
Extendido
*
Extended ± 1.9 E - 4851 . . 1.1 E 4932 19 – 20 10
Computador
* ++
Comp - 2 E 63 . . 2 E 63 18 – 19 8
22
TIPOS DE DATOS ESTÁNDAR
Los Tipos Enteros, Carácter y Booleano,
son de Tipo Ordinal.
Son conjuntos finitos de valores.
Se puede determinar con exactitud que
valor sigue y que valor antecede a uno
dado.
También caen dentro del Tipo Escalar.
23
TIPOS DE DATOS
USUARIO DEFINIDOS
Tipos de Datos que el usuario crea de
acuerdo a sus necesidades, sin ninguna
restricción.
Pueden ser:
Simples. Se estudiará su declaración.
Estructurados: Arreglos, registros,
cadenas, conjuntos y archivos.
Otros: Puntero, objeto y procedimiento.
Estructurados y otros se estudiarán
después.
24
TIPOS DE DATOS USUARIO
DEFINIDOS SIMPLES
1. Enumerados. Definidos por una lista de
valores cttes. entre paréntesis, su
sintaxis de declaración es:
Type
NomTp_Enu = (val_1, val_2, . . . , val_N);
Ejm.
Type
Estaciones = (Primavera, Verano, Otoño,
Invierno);
Dias_sem = (Lunes, Martes, Miércoles,
Jueves, Viernes, Sábado,
Domingo);
25
TIPOS DE DATOS USUARIO
DEFINIDOS SIMPLES
2. Subrango. Subconjunto de valores de
Tipo Escalar, definido por los valores
límite inicial y final, su sintaxis de
declaración es:
Type
NomTpSubR = Primer_valor . . Ult_valor;
Ejm.
Type
Digidec = 0 . . 9;
Dias_Lab = Lunes . . Viernes;
26
CONSTANTES
Datos que no cambian de valor,
asociados a un Identificador o Nombre.
Su valor no puede ser modificado por el
programa.
Su declaración tiene la sgte. sintaxis:
Const
NomCtte_1[ : TpDat_1] = ValCtte_1;
NomCtte_2 [ : TpDato_2 ] = ValCtte_2;
. . . . .
NomCtte_N [ : TpDato_N ] = ValCtte_N;
Ejm. Const g : real = 9.8;
Vluz = 300000;
Frase = ‘El estudio lleva al éxito’;
27
VARIABLES
Datos que cambian de valor, asociados a
un Identificador o Nombre. El programa
puede cambiar irrestrictamente su valor.
Su declaración tiene la sgte. sintaxis:
Var
ListaNomVar_1 : TipoDato_1;
ListaNomVar_2 : TipoDato_2;
. . . . .
ListaNomVar_N : TipoDato_N;
Ejm. Var a, b : Integer;
Velson : Integer;
c : Real;
28
PROCEDIMIENTOS Y
FUNCIONES
Son pequeños programas o segmentos
de programa, que hacen una tarea
específicas.
Llamados rutinas o subprogramas.
Para ejecutar un subprograma se requiere
invocarlo (llamarlo) desde un programa u
otro subprograma.
Distinguir declaración de subprogramas y
llamada o invocación a
éstos.
29
Declaración. Tienen estructura similar a
la de los programas ¬ tres zonas:
1. Encabezamiento.
2. Zona de Declaración.
3. Zona de Desarrollo.
Se pueden declarar dentro
de la zona de declaración
de un programa o la de
otro subprograma.
//Encabezado.

//Zona de Desarrollo.
begin
. . . . .
INSTRUCCIONES;
. . . . .
end;
//Zona de Declaraciones.
PROCEDIMIENTOS Y
FUNCIONES
30
PROCEDIMIENTOS Y
FUNCIONES
Encabezamiento. Inicia la declaración del
subprograma.
Permite identificar el procedimiento o
función, darle nombre.
Consta de una sola línea de programa.
Sintaxis. Para procedimientos :
Procedure nombre_proc(lista_paramF);
Para funciones:
Function nombre_proc(lista_paramF):Tipo;
31
PROCEDIMIENTOS Y
FUNCIONES
Lista_paramF = DeclParamF_1; DeclParamF_2; . . . ;
DeclParamF_N
DeclParamF_N = [Var ]ListaParamF : TipoDato
Zona de Declaración. Aquí se declaran
todos los elementos a utilizar en el
procedimiento o función (subprograma).
Se declaran los mismos elementos que
para un programa, excepto unidades
llamadas a uso.
32
PROCEDIMIENTOS Y
FUNCIONES
No se puede declarar el mismo nombre
dos veces.
¬ No puede existir dos unidades, tipos
de datos, constantes, variables o
subprogramas que tengan el mismo
nombre.
¬ No puede ocurrir que el programa,
una unidad, tipo de dato, constante,
variable y/o un subprograma tengan
el mismo nombre.
33
PROCEDIMIENTOS
Y FUNCIONES
Ambito o Visibilidad. Lugar donde un
elementos tiene significado o vigencia. El
Ambito puede ser Global o Local.
 Elementos declarados en un programa
se usan en sus subprogramas y los
subprogramas de éstos (Globales).
 Los declarados en un subprograma
solo se usan en él y sus subprogramas
(Locales a él y Globales a sus
subprogramas). No en el programa u
otros subprogramas. No están
vigentes.
34
PROCEDIMIENTOS Y
FUNCIONES
Ambito o Visibilidad.
Es posible declarar el mismo nombre en
diferentes ámbitos.
Durante la ejecución el elemento más
global es ignorado ¬ el más local está
vigente.
35
PROCEDIMIENTOS Y
FUNCIONES
Zona de Desarrollo. Similar a la de un
programa, luego se pueden distinguir
las mismas tres partes: Entrada de
Datos, Proceso y Salida de resultados.
Comienza con la instrucción begin, pero
a diferencia de los programas, en los
subprogramas termina con la
instrucción end;.
36
INVOCACIÓN DE
SUBPROGRAMAS
La invocación de procedimientos y
funciones transfiere temporalmente el
control de ejecución del programa al
subprograma.
Sus instrucciones se ejecutan y al
terminar el control retorna al programa
justo después del punto de invocación.
Para invocar un subprograma, escribir
su nombre junto a la lista de parámetros
que requiere, en cualquier lugar de la
zona de desarrollo de un programa o
subprograma.
37
INVOCACIÓN DE
SUBPROGRAMAS
El subprograma invocado debe haber
sido declarado antes.
Invocación de Procedimientos.
Es una instrucción ¬ termina en ; . La
sintaxis utilizada para el efecto es:
nombre_proc(Lista_paramR);
38
INVOCACIÓN DE
SUBPROGRAMAS
Invocación de Funciones.
No es una instrucción, pero puede
formar parte de una.
La función se comporta como un valor
(el valor de retorno) ¬ podemos
efectuar cualquier operación.
Si el valor de la función se asigna a X, la
sintaxis será:
X := nombre_func(Lista_paramR);
39
INVOCACIÓN DE
SUBPROGRAMAS
Lista_paramR = Param_1, Param_2, . . . ,
Param_N
Param_N → Valor/variable ; Paso de
parámetros sea por valor/variable.
Naturaleza de los Parámetros.
Parámetros = Canales de comunicación
para transferencia de información entre
programa - subprograma o entre dos
subprogramas. Pueden ser:
 Parámetros de Entrada.
 Parámetros de Entrada/Salida.
40
INVOCACIÓN DE
SUBPROGRAMAS
Parámetros de ENTRADA. Paso por Valor.
A través de los éstos el subprograma
recibe la información a procesar.
Cualquier cambio de valor no repercute
en el programa o subprograma invocador.
Canales de comunicación de una sola
dirección.
En la invocación los parámetros reales
enviados deben ser valores.
41
INVOCACIÓN DE
SUBPROGRAMAS
Parámetros de SALIDA – Entrada/Salida.
Paso por Variable o por Referencia.
A través de los cuales el subprograma
recibe y devuelve información al
programa o subprograma invocador.
Canales de comunicación bidireccionales.
Un cambio de su valor repercute en el
programa o subprograma que los invoco.
En la invocación los parámetros reales
deben ser necesariamente variables.
42
INVOCACIÓN DE
SUBPROGRAMAS
Manejo de Información en Memoria.
 Cuando se ejecuta un programa se
reserva memoria, para todas las cttes.
y variables globales.
 Cuando se invoca a un Proc. o Func.,
se reserva espacio para las cttes. y
variables locales al subprograma y al
terminar se libera dicho espacio. Estos
elementos de programa dejan de estar
vigentes.
43
INVOCACIÓN DE
SUBPROGRAMAS
Manejo de Información en Memoria.
 Al invocar a un subprograma, copia los
parámetros por valor y los guarda en
una nueva ubicación de memoria. Al
terminar libera también este espacio.
 Parámetros por referencia no se
copian a una nueva ubicación de
memoria, sino se guarda (comunica) la
dirección de memoria donde están
almacenados ¬ al terminar no se libera
ese espacio y siguen vigentes.
44
INVOCACIÓN DE
SUBPROGRAMAS
Manejo de Información en Memoria.
Sólo se libera el espacio de memoria
reservado para el subprograma.
MEMORIA



Cttes. y Var. del Prog. Cttes., Var. y Parám. de Subprog. Libre

45
PROCEDIMIENTOS Y
FUNCIONES
DIFERENCIAS.
Formal.
La palabra reservada utilizada en su
declaración, Procedure / Function.
Fundamental.
Las funciones devuelven un valor.
Los procedimientos no, solo ejecutan
tareas.
46
PROCEDIMIENTOS Y
FUNCIONES
DIFERENCIAS.
Otras. De la anterior y por su invocación
se concluye:
 La invocación de Procedimientos es
una instrucción, la de una Función
más bien forma parte de una.
 Con funciones se puede realizar
operaciones, ya que tiene un valor
(valor de retorno), mientras que con
un procedimiento no.
47
CONSTANTES, FUNCIONES Y
PROCEDIMIENTOS PREDEFINIDOS
Igual que con Tipos de Datos, existen
Constantes, Funciones y Procedimientos
predefinidos, en las bibliotecas de Pascal,
que no requieren ser declarados.
Entre las Constantes tenemos:
MaxInt = 32,767. El mayor valor entero.
MaxLongInt = 2,147,483,647. El
máximo valor entero largo admisible.
Los valores lógicos TRUE y FALSE.
48
CONSTANTES, FUNCIONES Y
PROCEDIMIENTOS PREDEFINIDOS
Algunos Procedimientos y Funciones Estándar,
quizás los más utilizados son:
Nº Rutina Tipo Descripción - Devuelve
I Rutinas Matemáticas
1
ROUND(Num)
Func.
Entero más próximo a Num
2
TRUNC(Real)
Func.
Parte entera de Real
3
ABS(Num)
Func.
Valor absoluto de Num (Entero o real). Sin signo
4
FRAC(Real)
Func.
Parte decimal de Real
5
INT(Real)
Func.
Parte entera de Real
6
PI
Func. valor del número t = 3.14159265358979323
7
LN(Num)
Func.
Logaritmo natural de Num.
8
SQRT(Real)
Func.
Raíz cuadrada de Real.
9
SQR(Real)
Func.
Cuadrado de Real.
49
CONSTANTES, FUNCIONES Y
PROCEDIMIENTOS PREDEFINIDOS
Nº Rutina Tipo Descripción - Devuelve
I Rutinas Matemáticas (Cont.)
10
SIN(Angulo)
Func.
Seno de Angulo (Radianes).
11
COS(Angulo)
Func.
Coseno de Angulo (Radianes).
12
ARCTAN(X)
Func.
Arco tangente (Radianes) de X.
Algunos Procedimientos y Funciones estándar,
quizás los más utilizados son (Cont.):
50
CONSTANTES, FUNCIONES Y
PROCEDIMIENTOS PREDEFINIDOS
Nº Rutina Tipo Descripción - Devuelve
II Rutinas Ordinales
1
INC(Var[,N])
Proc.
Incrementa Var en N. Corchetes indican que es
opcional. Por defecto N = 1.
2
DEC(Var[,N])
Proc.
Decrementa Var en N. Por defecto N = 1.
3
ORD(X)
Func.
Devuelve la posición Ordinal de X. En el caso de
caracteres devuelve su código ASCII.
4
CHR(Num)
Func. Carácter correspondiente al código ASCII dado
por Num, argumento de tipo Byte.
5
Pred(Ordinal)
Func.
Elemento predecesor o anterior a Ordinal.
6
Succ(Ordinal)
Func.
Elemento sucesor o siguiente a Ordinal.
Algunos Procedimientos y Funciones estándar,
quizás los más utilizados son (Cont.):
51
CONSTANTES, FUNCIONES Y
PROCEDIMIENTOS PREDEFINIDOS
Nº Rutina Tipo Descripción - Devuelve
III Rutinas de Pantalla y Teclado
1
CLRSCR
Proc. Borra, limpia la pantalla.
2
CLREOL
Proc. Borra, limpia hasta el final de la línea.
3
DELLINE
Proc. Elimina la línea actual.
4
INSLINE
Proc. Inserta una línea debajo de la actual.
5
GOTOXY(col,fil)
Proc.
Sitúa el cursor en la posición (col, fil) de
la pantalla.
6
READKEY
Func. Lee un carácter del teclado.
7
KEYPRESSED
Func.
TRUE (Verdadero) si está presionada una
tecla, sino FALSE (Falso).
Algunos Procedimientos y Funciones estándar,
quizás los más utilizados son (Cont.):
52
CONSTANTES, FUNCIONES Y
PROCEDIMIENTOS PREDEFINIDOS
Nº Rutina Tipo Descripción - Devuelve
IV Rutinas de Varias
1
ODD(Entero)
Func.
TRUE (Verdadero) si Entero es impar y
FALSE (Falso) si es par o cero.
2
RANDOMIZE
Proc. Establece un punto de inicio arbitrario para
la generación de números aleatorios.
3
Random([N])
Func. Devuelve un numero aleatorio A, tal que:
0 s A < N. N es opcional, por defecto N = 1.
Algunos Procedimientos y Funciones estándar,
quizás los más utilizados son (Cont.):
53
ESTRUCTURA ALGORÍTMICA
BÁSICA – LA SECUENCIA
La Estructura Básica de Control es la
Secuencia de Instrucciones o Estructura
Secuencial.
Las instrucciones se ejecutan en orden y
una después de otra.
Todo programa es una Secuencia de
Instrucciones que comunican a la Comp.
un algoritmo para resolver un problema.
Es la Estructura de Control más sencilla.
54
LA SECUENCIA
Formada por:
 Instrucciones atómicas de lectura,
escritura y procesamiento de
información (Asignación).
 Invocación a procesos predefinidos
(subprogramas).
El programa más sencillo es una
secuencia de instrucciones formada sólo
por instrucciones de entrada, salida y
asignación.
55
LA SECUENCIA
ALGORITMO DIAGRAMA DE FLUJO
Leer Inf_1
Instrucción_2
Proc_3
Instrucción_4
. . . . .
Instrucción_k
. . . . .
Mostrar Inf_F
INICIO
Instrucción_2
Instrucción_4
. . . . .
Instrucción_k
. . . . .
FIN
Proc_3
Inf_F
Inf_1
56
INSTRUCCIONES DE
ENTRADA (LECTURA DE INF.)
Permiten comunicar a la computadora la
información conocida.
Algoritmo
Leer Inf_E
Diagrama de Flujo
Entrada / Salida Lectura
Estándar Desde Cinta Desde Disco Desde Teclado
Inf_E
LEER
Inf_E
LEER
Inf_E
LEER
Inf_E
57
INSTRUCCIONES DE
ENTRADA
Código en Pascal
Dos procedimientos estándar. Su sintaxis
es:
Read (Lista_Variables);
ReadLn [(Lista_Variables)];
Lista_Variables. Una lista de variables
locales o globales, de diversos tipos,
donde se recibirán los datos.
58
INSTRUCCIONES DE
ENTRADA
Código en Pascal
Esperan un valor desde el teclado y al
presionar ENTER, asignan el valor a la
variable correspondiente, y esperan el
siguiente valor.
El valor introducido y la variable deben
ser del mismo tipo sino ocurre un error y
se aborta la ejecución del programa.
Se puede introducir varios valores a la
vez, separados por espacios (no otro
separador).
59
INSTRUCCIONES DE
ENTRADA
Código en Pascal
Diferencia.
Read, no cambia de posición el cursor.
ReadLn, sitúa el cursor en la primera
columna de la siguiente fila, equivale a
hacer un retorno de carro.
ReadLn; (sin argumentos), detiene el
programa hasta que se presione ENTER.
60
INSTRUCCIONES DE SALIDA
(ESCRITURA O DESPLIEGUE)
Permiten que la computadora, comunique al
usuario la información calculada o buscada,
los resultados.
Algoritmo
Mostrar Inf_S
Diagrama de Flujo
Entrada / Salida Mostrar Imprimir
Estándar En Cinta En Disco En Pantalla En Impresora
MOSTRAR
Inf_S
GRABAR
Inf_S
GRABAR
Inf_S
Inf_S
Inf_S
61
INSTRUCCIONES DE SALIDA
Código en Pascal
Dos procedimientos estándar. Su sintaxis
es:
Write (Lista_Valores);
WriteLn [(Lista_Valores)];
Lista_valores. Una lista de valores,
constantes o variables (locales o
globales) con la información a desplegar.
Pueden ser expresiones. Los valores, a
desplegar, pueden ser de diversos tipos.
62
INSTRUCCIONES DE SALIDA
Código en Pascal
Dos procedimientos estándar. Su sintaxis
es:
Write (Lista_Valores);
WriteLn [(Lista_Valores)];
Lista_valores. Una lista de valores,
constantes o variables (locales o
globales) con la información a desplegar.
Pueden ser expresiones. Los valores, a
desplegar, pueden ser de diversos tipos.
63
INSTRUCCIONES DE
ENTRADA
Código en Pascal
Diferencia.
Write, no cambia de posición el cursor.
WriteLn, sitúa el cursor en la primera
columna de la siguiente fila, equivale a
hacer un retorno de carro.
WriteLn; (sin argumentos), deja una línea
en blanco y efectua el retorno de carro.
64
INSTRUCCIONES DE SALIDA
Código en Pascal
Se puede dar formato a la información de
salida, de la siguiente manera:
Enteros y texto. Valor : Ancho
Valores reales. Valor : Ancho : Ndecimales
Ancho. Establece el espacio a ocupar. Si
es insuficiente, utiliza el requerido. Si es
suficiente, completa con espacios por
delante.
Ndecimales. Indica decimales a mostrar.
65
INSTRUCCIÓN DE
ASIGNACIÓN
Quizás la más importante.
Permite dar valor a una variable, que
puede ser resultado de una expresión.
Ubica un valor en una dirección de
memoria asociada o referenciada por
una variable.
Representa proceso de información, por
instrucciones atómicas.
66
ASIGNACIÓN
Algoritmo
Calcular concepto, Var ← expresión
Diagrama de Flujo


Código en Pascal
Var := Expresión;
:= Operador de Asignación. La variable
y la expresión deben ser del mismo
tipo o de tipos compatibles.
Var ← Expresión
67
ASIGNACIÓN
Código en Pascal
Var := Expresión;
Var. nombre de variable, global o local,
declarado previamente.
Expresión. Valor, constante, variable,
función o una combinación de estas
(operandos) con operadores adecuados.
Operandos. Valores sobre los cuales actúa
un operador ¬ valores con los cuales se
realiza una operación.
68
ASIGNACIÓN
Código en Pascal
Operadores. Símbolos que determinan la
operación o relación que se aplicará a
uno o más operandos. Pueden ser:
1. Aritméticos. Efectuan operaciones o
cálculos aritméticos. Operandos
numéricos. Resultados numéricos.
2. Relacionales. Relacionan, comparan
dos valores. Operandos numéricos,
alfanuméricos o lógicos, pero del
mismo tipo. Resultados lógicos.
69
ASIGNACIÓN
Operadores
3. Lógicos. Efectuan operaciones
lógicas que combinan expresiones
relacionales y lógicas y producen
resultados lógicos.
A continuación se muestra una tabla
tabla con los operadores disponibles, las
operaciones que realizan, el número y
tipo de operandos que manejan y el tipo
de resultados que producen.
70
OPERADORES
OPERADOR OPERACIÓN OPERANDO Nº / Tipo RESULTADO
Operadores Aritméticos
+
Suma 2 / Reales o Enteros Entero si
ambos enteros,
sino Real. -
Resta
*
Multiplicación
/
División Real
DIV
División entera 2 / Enteros Entero
MOD
Residuo
^
Potencia 2 / Reales o Enteros Real
71
OPERADORES
OPERADOR OPERACIÓN OPERANDO Nº / Tipo RESULTADO
Operadores Relacionales
=
Igual a 2 / Cualquier tipo.
Ambos deben ser del
mismo tipo
Lógico. TRUE
(Verdadero) o
FALSE (Falso) <
Menor que
>
Mayor que
<=
Menor o igual que
>=
Mayor o igual que
<>
Distinto a
72
OPERADORES
OPERADOR OPERACIÓN OPERANDO
Nº / Tipo
RESULTADO
Operadores Lógicos
NOT
Negación
(NO)
1 / Lógico Lógico.
TRUE si operador = FALSE.
FALSE si operador = TRUE.
AND
Conjunción
(Y)
2 / Lógicos Lógico.
TRUE si ambos son TRUE. En
otro caso FALSE.
OR
Disyunción
(O)
Lógico.
TRUE si al menos uno es
TRUE. Sino FALSE.
XOR
Disyunción
Exclusiva
(O/Solo)
Lógico.
TRUE si uno es TRUE y otro
FALSE.
FALSE si ambos son TRUE o
ambos son FALSE.
73
- (Cambio de signo) Alta
^, NOT
*, /, DIV, AND
+, -, MOD, OR, XOR
=, <, >, <=, >=, <> Baja
PRIORIDAD DE LOS
OPERADORES
74
Calcular el cuadrado de un número
dado.
MML
Cuadrado: c = x
2
= x * x
ALGORITMO
1. Leer número, x
2. Calcular cuadrado, c ← x * x
3. Mostrar cuadrado, c
EJEMPLO
75
DIAGRAMA DE FLUJO
EJEMPLO
INICIO
c ← x * x
FIN
c
n
76
CÓDIGO EN PASCAL
program cuadrado;
uses wincrt;
var
x, c: Integer;
begin
write(‘Introduzca un número entero: ’);
readln(x);
c := x * x;
write(‘El cuadrado de ’, x, ‘es: ’, c );
end.
EJEMPLO
77
Dada la Ec. Gral. de una Cf., calcular
coordenadas del centro, radio, perímetro
y área de la Cf., y volumen y área
exterior de una Esf. del mismo radio.
DETERMINACIÓN DEL PROBLEMA
Ec. Gral. Cf. : x
2
+ y
2
+ D x + E y + F = 0.
Se conoce coeficientes Ec.: D, E y F.
Se busca:
 (h, k), r, P y A Cf.
 V y S Esf. del mismo radio.
EJEMPLO
78
DETERMINACIÓN DEL PROBLEMA
Especificación.
Dados Coef. Ec. Gral. de una Cf.,
calcular las coordenadas del centro,
radio, perímetro y área de la Cf., y
volumen y área exterior de una Esf. del
mismo radio.
EJEMPLO
79
DETERMINACIÓN DEL PROBLEMA
Objetivo.
Hacer un programa que lea Coef de la
Ec. Gral. de una Cf. y calcule
coordenadas del centro, radio, perímetro
y área de la Cf., además calcule volumen
y área exterior de una Esf. del mismo
radio.
EJEMPLO
80
MML
Ec. Gral. Cf.: x
2
+ y
2
+ D x + E y + F = 0
Llevamos a forma normal completando
trinomios:


que se puede escribir:

÷
EJEMPLO
4
E
4
D
F
2
E
Ey y
2
D
Dx x
2 2
2
2
2
2
+ + ÷ =
|
.
|

\
|
+ + +
|
.
|

\
|
+ +
4
F 4 E D
2
E
y
2
D
x
2 2
2 2
÷ +
= |
.
|

\
|
+ + |
.
|

\
|
+
( ) ( )
2
2 2
r k y h x = ÷ + ÷
81
MML
¬ Para la Cf. las Coord. del centro serán:


El radio:

El perímetro: p = 2 π r (4)
El área: A = π r
2
(5)
Para la Esf. el área exterior y el volumen
serán:
S = 4 π r
2
= 4 A (6)
EJEMPLO
(1)
2
D
h ÷ = (2)
2
E
k ÷ =
(3)
4
F 4 E D
r
2 2
÷ +
=
(7) r
3
S
r
3
4
V
3
= = t
82
MML
Para resolver el problema utilizar Ecs.
(1) – (7) en el mismo orden.
ALGORITMO
A. Geometria
1. Leer Ecuación, Leer_Ec(d,e,f)
2. Calc. centro, Calc_Centro(d,e;h;k)
3. Calc. radio y guardar en r,
r ← Radio(d,e,f)
4. Calc. Perímetro Cf., p ← 2 * π * r
EJEMPLO
83
ALGORITMO
A. Geometria
5. Calc. Área Cf., A ← π * r
2
6. Calc. área externa Esf., S ← 4 * A
7. Calc. volumen Esf., V ← S * r / 3
8. Mostrar_resultados,
Mostrar(h,k,r,p,A,S,V)
B. Leer_Ec(d,e,f)
1. Leer coeficiente de x, D
2. Leer coeficiente de y, E
3. Leer término independiente, F
EJEMPLO
84
ALGORITMO
C. Mostar(h,k,r,p,A,S,V)
1. Mostrar coord. x, h
2. Mostrar coord. y, k
3. Mostrar radio, r
4. Mostrar perímetro, p
5. Mostrar área cf., A
6. Mostrar área esfera, S
7. Mostrar volumen esfera, V
EJEMPLO
85
ALGORITMO
D. Calc_centro(d,e;h,k)
1. Calc. coord. x, h ← - D/2
2. Calc. coord. y, k ← - E/2
E. Radio(d,e,f)
1. Calc. discriminante,
r ← (D
2
+ E
2
– 4*F)/4
2. Calcular radio cf., Radio ← r
EJEMPLO
86
Diagrama de Flujo
EJEMPLO
Geometria
Leer_Ec (d,e,f)
r ← Radio(d,e,f)
p ← 2 * π * r
V ← S * r / 3
Mostrar (h,k,r,p,A,S,V )
FIN
Calc_Centro (d,e;h,k)
A ← π * r
2

S ← 4 * A
Leer_Ec(a,b,c)
FIN
a
b
c
87
Diagrama de Flujo
EJEMPLO
Mostrar(h,k,r,p,A,S,V)
FIN
h
k
r
p
A
S
V
Calc_Centro(a,b;x,y)
x ← - a/2
FIN
y ← - b/2
Radio(d,e,f)
r ← (d
2
+ e
2
– 4*f)/4
FIN
Radio ←
r
88
Código en Pascal
Program Geometria;
Uses wincrt;
Var d, e, f, h, k, r, p, a, s, v : Real;
procedure Leer_Ec (var a, b, c : Real);
begin
write(‘Coef. termino en x: ’);
ReadLn(a);
write(‘Coef. termino en y: ’);
ReadLn(b);
write(‘Coef. termino indep.: ’);
ReadLn(c);
end;
EJEMPLO
89
Código en Pascal
procedure Mostrar(h, k, r, p, a, s, v : Real);
begin
writeLn(‘Coord. centro en x: ’, h);
writeLn(‘Coord. centro en y: ’, k);
writeLn(‘Radio: ’, r);
writeLn(‘Perímetro de la Cf.: ’, p);
writeLn(‘Área de la Cf.: ’, a);
writeLn(‘Área exterior de la Esf.: ’, s);
writeLn(‘Volumen de la Esf.: ’, v);
end;
EJEMPLO
90
Código en Pascal
procedure Calc_Centro(a, b : Real ;
var x, y : Real);
begin
x := - a/2;
y := - b/2;
end;
function radio(d, e, f : Real);
var r : Real;
begin
r := (sqr(d) + sqr(e) – 4 * f) / 4;
radio := sqrt(r);
end;
EJEMPLO
91
Código en Pascal
begin
Leer_Ec(d, e, f);
Calc_Centro(d, e, f, h, k);
r := radio(d, e, f);
p := 2 * PI * r;
a := PI * sqr(r);
s := 4 * a;
v := s * r / 3;
Mostrar(h, k, r, p, a, s, v);
end.
EJEMPLO
92
ESTRUCTURA GRAL. DE UN PROG.
Program Programa0;
//Zona de Desarrollo de Programa0.
begin
. . . . .
end.
//Zona de Declaraciones de Programa0.
Procedure Proc1.
Function Func2.
Procedure Proc3.
. . . . . //Zona de Declaraciones de Proc3
begin
. . . . . //Zona de Desarrollo de Proc3.
end;
//Zona de Desarrollo de Func2.
begin
. . . . .
end;
//Zona de Declaraciones de Func2.
Procedure Proc2_1.
. . . . .
//Zona de Desarrollo de Proc1.
begin
. . . . .
end;
//Zona de Declaraciones de Proc1.
Function Func1_1.
. . . . .
Procedure Proc1_2
. . . . .