PROGRAMACION EN PASCAL

Anuncio
UNIVERSIDAD NACIONAL EXPERIMENTAL
FRANCISCO DE MIRANDA
COMPLEJO DOCENTE EL SABINO
CATEDRA: INFORMATICA
PROGRAMACION EN PASCAL
ELEMENTOS DE UN PROGRAMA EN PASCAL
Un programa en Pascal consta de una serie de elementos que se combinan entre sí, de acuerdo a las
reglas de sintaxis del lenguaje Pascal. Los elementos básicos de un programa son: caracteres de
lenguaje, palabras reservadas, identificadores, identificadores estándar, comentarios, etc.
Palabras Reservadas:
Las Palabras reservadas tienen un significado específico para el compilador y que no puede cambiarse.
and
array
begin
case
const
div
do
downto
else
end
file
for
function
goto
if
in
label
mod
Nil
not
of
or
packed
procedure
program
record
repeat
set
then
to
type
until
var
while
with
Identificadores Estándar:
Los identificadores estándar representan constantes, variables, tipos de datos, procedimientos,
funciones, etc. Se diferencian de las palabras reservadas en que pueden ser redefinidos por el usuario
aunque esta práctica no es recomendable, identificadores estándar típicos son: integer, real, byte, sin,
ord, chr, round.
Identificadores definidos por el usuario:
Los identificadores definidos por el usuario designan los distintos elementos del programa: tipos de
datos, constantes, variables, procedimientos, funciones, etc. Están formados por secuencias de
caracteres alfabéticos y dígitos de cualquier longitud (hasta 127) siendo significativo sólo los 63 primeros
y construido de acuerdo a las siguientes reglas:
1. Comienzan obligatoriamente por una letra. Excepcionalmente se admiten el carácter subrayado
(_) como componente de un identificador.
2. Los identificadores no pueden ser palabras reservadas.
3. En Pascal no existen diferencias entre mayúsculas y minúsculas en el nombre de un
identificador.
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 1/25
Símbolos y Caracteres:
Turbo
ser:
1.
2.
3.
Pascal acepta cualquier carácter del código ASCII de datos. Una manera de clasificarlos puede
Letras mayúsculas y minúsculas (A..Z, a..z)
Los dígitos del 0..9
Símbolos especiales
Significado de Algunos Caracteres en Turbo Pascal
*
Multiplicación
‘
/
+
:=
.
=
<
>
<=
>=
;
(* *)
{ }
División
Suma
Resta o signo menos
asignación
Delimitador
(separador)
fin
del
programa
Separador final de sentencias
Comentario o directiva del compilador
Comentario o directiva del compilador
..
Rango de valores
@
<>
[ ]
( )
Comienzo y final de una cadena de
caracteres.
Igualdad
Menor que
Mayor que
Menor o igual que
Mayor o igual que
Distinto
Limites de dimensiones de arrays
Lista de parámetros en proced. y
funciones.
Dirección de un operando
Comentarios:
Un comentario es un texto situado en el código fuente y que tiene por objeto aclarar el papel o función
que determinadas sentencias desempeñan en el programa. Los comentarios no generan código
ejecutable por el compilador. En Pascal existen dos formas de especificar comentarios: colocar el texto
entre los caracteres ‘(*’ y ‘*)’ o bien entre llaves ‘{‘ y ‘}’. Pueden introducirse comentario en cualquier parte
de programa.
Variables y constantes
Los tipos de datos que manejaremos en nuestro programa pueden ser de dos clases: variables o
constantes.
Como su nombre lo indica las variables pueden cambiar a lo largo de la ejecución de un
programa, en cambio las constantes serán valores fijos durante todo el proceso.
Un ejemplo de una variable es cuando vamos a sumar dos números que serán introducidos por el
usuario del programa, éste puede introducir dos valores cualesquiera y no sería nada útil restringirlo a
dos valores predefinidos, así que dejamos que use los valores que el necesite sumar.
Ahora, si nuestro programa de operaciones matemáticas va a utilizar el valor de PI para algunos
cálculos podemos definir un identificador PI con el valor de 3.1415926 constante, de tal forma que PI no
pueda cambiar de valor, ahora en lugar de escribir todo el número cada vez que se necesite en nuestro
programa, solo tenemos que escribir PI.
Las variables y constantes pueden ser de todos los tipos vistos anteriormente: numéricos tanto
enteros como reales, caracteres, cadenas de caracteres, etc.
ESTRUCTURA DE LOS PROGRAMAS
El lenguaje utilizado en Turbo Pascal es estructurado, lo que significa que cada programa
requiere una forma específica de escritura para que sea entendido por el compilador.
Todo programa cuenta con algunas partes o módulos los cuales son:
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 2/25
Cabecera
Declaraciones
Programa
La cabecera del programa únicamente lleva el nombre del programa. En la sección de
declaraciones se le indica al compilador todos los identificadores y unidades que se utilizarán durante la
ejecución del programa. En la sección del programa se escribe el código de instrucciones que se llevarán
a cabo.
Cabecera de Programa
Declaración
de Unidades
Declaración de
Etiquetas
Declaración de
Constantes
Sección de
Declaraciones
Program Ejemplo;
Uses
Crt;
Label
Cerrar, 1;
Const
Secreto = ‘ R2D2 ‘
Declaración
de Tipos
Type
Formato = string[12]
Declaración de
Variables
Var
Respuesta: Formato;
Numero: integer;
Declaraciones de
procedimientos y/o
funciones
Cuerpo del Programa
Procedure Ejemplo;
Begin
{Cuerpo del procedimiento}
end;
....
Begin
{Cuerpo del procedimiento}
end.
Sentencia PROGRAM
La sentencia PROGRAM es la declaración del nombre del programa.
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 3/25
Consta de tres partes: la palabra reservada PROGRAM, a continuación un identificador utilizado
como el nombre del programa y al final un punto y coma ";". Por ejemplo:
PROGRAM suma_dos_numeros ;
Esta declaración es siempre la primer línea en cualquier programa de Turbo Pascal.
Declaración de unidades
Las unidades son módulos independientes del programa que, aunque no son ejecutables por si
mismos, pueden ser utilizados por el programa principal sin necesidad de rescribir el código que
contienen. Para la utilización de estos "subprogramas" es necesaria su declaración.
La palabra reservada USES cumple el propósito de declarar las unidades en el formato siguiente:
USES crt, dos;
Esta línea declara y habilita para su uso a la unidad crt y a la unidad dos
Cada unidad que se declara deberá estar separada de la siguiente por una coma. Al final de
todas las unidades declaradas se deberá colocar un punto y coma ";".
Declaración de constantes y variables
Para declarar las constantes se utiliza la palabra reservada CONST seguida de un identificador al
que se le dará un valor determinado, un signo de igual "=", el valor que recibirá el identificador y al final
un punto y coma ";". Ejemplo:
CONST pi = 3.1415926;
De esta forma el identificador pi recibirá el valor de 3.1415926 y no será posible cambiarlo en el
transcurso del programa.
Es posible declarar varias constantes sucesivamente, puede ser una por renglón o varias en un
solo renglón. Cuando se hace esto, la palabra CONST solo se pone una sola vez como cabecera y a
continuación todas las constantes por definir. Ejemplo:
CONST
PI = 3.1415926;
Nombre = 'Juan Gutiérrez';
Unidad = 1;
Otra forma de escribir lo mismo es así:
CONST PI = 3.1415926; Nombre = 'Juan Gutiérrez'; Unidad = 1;
Pero por cuestiones de legibilidad es preferible la primera opción.
La declaración de variables se lleva a cabo de la misma forma, solo que en lugar de la palabra
CONS utilizamos la palabra VAR, y en lugar de "= valor;", utilizamos : tipo , sustituyendo "tipo" por
alguna clase válida de datos en Turbo Pascal. Ejemplo:
VAR Num_entero : Integer;
Nombre : String;
Programa principal
Después de haber realizado todas las declaraciones se puede iniciar con el programa principal.
(Es posible, antes del programa, declarar las funciones y procedimientos, pero eso se analizará
posteriormente).
El programa principal inicia con la palabra reservada BEGIN y termina con la palabra END., esta
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 4/25
última con un punto al final.
Cada línea de código, enunciado, sentencia o instrucción completa que se escriba deberá
terminar con un punto y coma ";".
Solo se omitirá el punto y coma cuando se utiliza la palabra reservada ELSE. Aunque puede
también omitirse si la siguiente expresión es END o UNTIL.
Ya conociendo la estructura es posible escribir un primer programa:
PROGRAM Primera_Prueba;
VAR
Entero : Integer;
CONST
Mensaje = 'Introduce un valor entero: ';
Respuesta = 'El valor es: ';
BEGIN
Write(Mensaje);
{Escribe en pantalla el mensaje definido como constante}
ReadLn(Entero);
{Lee un valor de teclado y lo almacena en la variable Entero}
WriteLn(Respuesta, Entero);
{Escribe en pantalla el contenido de Respuesta y el valor que se ingresó de teclado}
END.
Como podrá apreciarse, no es importante el orden en el que se declaran las variables y
constantes (aplicable solo al Turbo Pascal), es decir, pueden declararse primero las variables y luego las
constantes y viceversa:
PROGRAM Primera_Prueba;
CONST
Mensaje = 'Introduce un valor entero: ';
Respuesta = 'El valor es: ';
VAR
Entero : Integer;
BEGIN
Write(Mensaje);
{Escribe en pantalla el mensaje definido como constante}
ReadLn(Entero);
{Lee un valor de teclado y lo almacena en la variable Entero}
WriteLn(Respuesta, Entero);
{Escribe en pantalla el contenido de Respuesta y el valor que se
ingresó de teclado}
END.
COMPILACIÓN Y EJECUCIÓN EN MEMORIA
La compilación de un programa es el paso mediante el cual traducimos dicho programa al
lenguaje maquina entendible por la computadora.
Para lograr la compilación en el entorno integrado de desarrollo de Turbo Pascal se utiliza la
opción Compile del menú del mismo nombre. Para acceder al menú se utiliza la secuencia de teclas:
[ALT] + [C], y luego se escoge la opción Compile.
Otra forma de realizar la compilación es con la secuencia de teclas: [ALT] + [F9].
Es posible compilarlo y ejecutarlo automáticamente utilizando la secuencia: [CONTROL] + [F9]
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 5/25
COMPILACIÓN AL DISCO
Para poder ejecutar un programa sin necesidad de llamar al entorno integrado de desarrollo de
Turbo Pascal es necesario compilar el programa al disco.
Para hacer esto es necesario activar la opción Destination a Disk, esto se hace entrando al
menú Compile, se selecciona la opción Destination y se presiona [Enter], de esta forma se cambia el
destino de compilación de memoria a disco o viceversa (Dependiendo de la opción seleccionada
actualmente).
Una vez compilado un programa en el disco es posible ejecutarlo directamente desde el sistema
operativo.
ASIGNACIÓN O IGUALACIÓN
La operación de asignación es una de las más utilizadas en Turbo Pascal ya que nos permite
darle un valor determinado a las variables que declaramos en el programa o lo que es lo mismo, igualarla
a algún valor determinado.
El símbolo utilizado para la operación es los dos puntos seguidos por un signo de igual :=, a la
izquierda de dicho símbolo se coloca el identificador al que se le asignará un nuevo valor y a la derecha
se colocará un identificador o algún valor directo que se almacenará en el primer identificador. Ejemplo:
Nombre := 'Juan Pérez';
{Nombre guardará la cadena "Juan Pérez"}
Resta := Numero1 - Numero2;
{Resta gurdará el resultado de la resta de Numero2 a Numero1}
Area := (Base*Altura)/2;
{Obtiene el area de un triangulo y la guarda en el identificador Area}
Es indispensable para todo programa que cuente con la capacidad de manejar entradas y salidas
de información, ya que sin estas capacidades sería un programa inútil.
ENTRADAS Y SALIDAS BASICA:
Salida de datos a la pantalla
Las instrucciones que permiten mostrar datos en la pantalla de la computadora son: Write y
WriteLn. Aunque ya se hizo uso de ellas en los pequeños programas anteriores de ejemplo, aqui se
describirán a fondo.
La sintaxis de los procedimientos es la siguiente:
Write (indentificadores);
WriteLn (indentificadores);
Donde los identificadores son aquellos que contienen la información que se desea mandar a la
pantalla. Es posible utilizar varios de ellos por cada instrucción Write o WriteLn, unicamente se separan
unos de otros por comas ",". Ejemplo:
Write (Nombre, ApellidoP, ApellidoM);
Esta línea de código desplegará consecutivamente los contenidos de los identificadores Nombre,
ApellidoP y ApellidoM. En caso de que la variable Nombre almacenara el valor 'Rodrigo ', la variable
ApellidoP 'González ' y la variable ApellidoM 'García', el resultado en pantalla sería:
Rodrigo González García
Podemos obtener el mismo resultado si utilizamos la siguiente estructura:
Write (Nombre);
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 6/25
Write (ApellidoP);
Write (ApellidoM);
Si en lugar de utilizar la instrucción Write hacemos uso de WriteLn con la misma sintaxis del
ejemplo anterior:
WriteLn (Nombre);
WriteLn (ApellidoP);
WriteLn (ApellidoM);
lo que obtendríamos sería:
Rodrigo
González
García
De este ejemplo es posible concluir que la diferencia entre las instrucciones Write y WriteLn es
que esta última imprime el contenido de los identificadores y cambia el cursor al siguiente renglón de la
pantalla, y la primera solo escribe el contenido y deja el cursor al final del dato escrito.
Entrada de datos desde teclado
Las instrucciones estandar de Turbo Pascal para obtener datos desde el teclado son Read y
ReadLn. La sintaxis de estas instrucciones es muy parecida a la de Write y WriteLn:
Read (Identificador);
El identificador puede ser cualquier variable definida previamente, NO puede ser una constante.
Puede ser también un conjunto de variables, separadas entre comas, en este caso se guardara el primer
valor dado antes del [Enter] en el primer identificador proporcionado, luego el segundo y así
sucesivamente hasta el último identificador.
La diferencia en el uso de la instrucción Read con respecto a ReadLn es que en la primera, si se
le dan mas datos de los que se introducirán se guardan en un buffer y se usarán en la siguiente
instrucción Read o ReadLn del programa, en cambio ReadLn ignora todo dato posterior a los que estén
definidos en la instrucción.
En caso de que se le indique a Read o ReadLn que lea un tipo específico de valor, y se le
proporcione otro diferente se generará un error y se detendrá la ejecución del programa.
TIPOS DE DATOS
El manejo de la información en Turbo Pascal se realiza mediante diferentes clases de datos. En
este apartado se tratarán los principales tipos y conforme se vayan necesitando se explicaran los demás.
Integer
Char
Boolean
Real
String
Números enteros sin parte decimal.
Caracteres del código ASCII
Pueden contener los valores de falso o verdadero
Números que pueden incluir una parte decimal
En una secuencia de caracteres que se trata como un solo dato.
Un programa debe ser capaz de manejar diferentes tipo de datos, como pueden ser números
enteros, reales, caracteres, cadenas de caracteres, etc. Para lograr el manejo de toda esta información
Turbo Pascal provee diferentes tipos de datos para los identificadores que se utilizarán. Algunos de los
más importantes se citan en seguida:
Tipos enteros
En esta categoría Turbo Pascal cuenta con 5 tipos diferentes, cada uno abarca un rango
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 7/25
específico de valores y utilizan una diferente cantidad de memoria dependiendo de ese rango.
Naturalmente el trabajar con rangos menores nos ofrece una mayor velocidad y menor espacio en
memoria, pero si se utilizan enteros largos se cuenta con mayor precisión. Los tipos de enteros en Turbo
Pascal son:
Tipo
Integer
Word
ShortInt
Byte
LongInt
Rango de valores que acepta
-32,768 a 32,767
0 a 65535
-128 a 127
0 a 255
-2,147,483,648 a 2,147,483,648
Al utilizar los tipos enteros es posible representar en el programa un número en formato
hexadecimal, para hacer esto solo se le antepone el símbolo "$" al valor hexadecimal, al momento de
visualizar dicho valor, o utilizarlo en alguna operación será como decimal. Por ejemplo:
Cantidad := $10;
El valor que se guarda en "Cantidad" es 16.
Tipos reales
Los números reales son aquellos que cuentan con una parte decimal. En Turbo Pascal contamos
con varios tipos de datos reales, pero no se puede utilizar, mas que el tipo real, en máquinas que no
cuenten con un coprocesador matemático. Los tipos de datos reales son:
Tipo
Real
Single
Double
Extended
Comp
Rango de valores que acepta
2.9E-39 a 1.7E38
1.5E-45 a 3.4E38
5.0E-324 a 1.7E308
1.9E-4851 a 1.1E4932
-9.2E18 a 9.2E18
Los números reales deben llevar por fuerza al menos un dígito de cada lado del punto decimal
así sea éste un cero. Como ejemplo, el número 5 debe representarse como: 5.0, el .5 como 0.5 , etc.
En este tipo de datos se utiliza la notación científica, que es igual a la de las calculadoras, el
dígito que se encuentra a continuación de la E representa la potencia a la que se elevará el número 10
para multiplicarlo por la cantidad a la izquierda de dicha E:
3.0E5 = 3.0 * 10^5 = 3.0 * 100000 = 300000
1.5E-4 = 1.5 * 10^-4 = 1.5 * 0.0001 = 0.00015
Tipos carácter
Los caracteres son cada uno de los símbolos que forman el código ASCII, el tipo estándar de
Pascal para estos datos es Char. Los caracteres se especifican entre apostrofes:
'a'
'B'
'2'
'#'
El tipo Char es un tipo ordinal de Pascal, ésto quiere decir que sus elementos válidos siguen una
secuencia ordenada de valores individuales. La secuencia de caracteres para este tipo corresponden al
número del código ASCII, del 0 al 255.
Es posible acceder a cada uno de los caracteres utilizando un signo # antes de su valor
correspondiente, por ejemplo, la letra A puede ser representada como #65, el retorno de carro, o enter,
se representa como #13, y así cualquier carácter.
Tipo cadena
Las cadenas son secuencias de caracteres o arreglos que tienen una longitud máxima de 255
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 8/25
caracteres. Se definen entre apostrofes. El tipo de Pascal para las cadenas es String.
PROGRAM Cadena;
VAR
Nombre : String;
BEGIN
Nombre := 'Ernesto Chávez';
WriteLn (Nombre);
END.
Este programa guarda la cadena 'Ernesto Chávez' en la variable definida como tipo string, y la
visualiza en la pantalla por medio de la instrucción WriteLn.
El tamaño por defecto para un tipo string es de 255 caracteres, pero es posible definir uno mas
pequeño utilizando el siguiente formato:
Variable : String[Tamaño];
Donde Variable es la variable a definir y Tamaño es el número máximo de caracteres que podrá
contener esa variable (naturalmente mayor a 0 y menor a 256).
Es posible acceder a un solo carácter de una cadena utilizando inmediatamente después del
nombre de la misma la posición del carácter encerrada entre corchetes. Por ejemplo:
PROGRAM Cadena01;
VAR
Nombre : String[30];
{Permite un máximo de 30 caracteres en la variable}
BEGIN
Nombre := 'Ernesto Chávez';
WriteLn (Nombre[5]);
{Visualiza el 5to caracter de la cadena}
END.
Tipos lógicos
Este tipo de datos tienen la peculiaridad de que solo pueden tomar dos tipos de datos: verdadero
o falso, el verdadero puede ser representado por su nombre en inglés: True y el falso por False; también
se representan por 1 y por 0 respectivamente.
El tipo está definido como Boolean.
Los datos lógicos tienen una enorme aplicación en la evaluación de ciertos procesos, así como
en el control de flujo de los programas.
OPERADORES Y EXPRESIONES
Operadores Aritméticos:
Operador
Operación
+
*
/
Suma
Resta
multiplicación
división
Tipos de
operandos
Integer o real
Integer o real
Integer o real
Integer o real
Tipos de resultados
Integer o real
Integer o real
Integer o real
Integer o real
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 9/25
div
mod
división entera
modulo resto de la división
Integer
Integer
Integer
Integer
Operaciones básicas
Las operaciones básicas en Turbo Pascal están formadas por dos partes: el operador y los
operandos.
Un operador es el símbolo que le indica al programa que operación realizará y los operandos son
los datos sobre los cuales se efectuará la operación.
Los operadores básicos de Turbo Pascal son: (+,-,*,/)
El tipo de datos que pascal regresa como resultado de una operación dependerá del tipo de
datos usados como operandos. Por ejemplo, la suma de dos enteros da como resultado otro entero, y la
suma de dos números reales da como resultado otro número real.
Operadores DIV y MOD
La división de dos números, sin importar su tipo, dará como resultado un número real, así que
para dividir dos enteros, y obtener el resultado como entero, Turbo Pascal ofrece el operador DIV, el cual
da el resultado entero de una división entre enteros, y el operador MOD que regresa el residuo de una
división de enteros.
Su sintaxis es:
entero := dividendo DIV divisor
entero := dividendo MOD divisor
El siguiente programa es un ejemplo del uso de los operadores aritméticos:
PROGRAM Operaciones_Básicas;
VAR
Suma, Resta, Multiplicacion, Division : Real;
Cociente_Entero, Residuo_Entero : Integer;
BEGIN
Suma := 12 + 8;
Resta := 12 - 8;
Multiplicacion := 12 * 8;
Division := 12/8;
Cociente_Entero := 12 DIV 8;
Residuo_Entero := 12 MOD 8;
WriteLn ('La suma de 12 + 8 es igual a: ',Suma);
WriteLn ('La resta de 12 - 8 es igual a: ',Resta);
WriteLn ('La multiplicación de 12 * 8 es igual a: ',Multiplicacion);
WriteLn ('La división de 12 / 8 es igual a: ',Division);
WriteLn ('La división entera de 12 / 8 es igual a:
',Cociente_Entero);
WriteLn ('El residuo de la división entera de 12 / 8 es:
',Residuo_Entero);
END.
Operadores Relaciónales:
Operador
=
<>
<=
Operación
igualdad
distinto
menor o igual que
Tipos de operandos
simple, puntero, conjunto, cadena
simple, puntero, conjunto, cadena
simple o cadena
Tipos de resultados
Boolean
Boolean
Boolean
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 10/25
>=
mayor o igual que
>
mayor que
<
menor que
Operadores Lógicos:
Operador
not
and
or
Operación
Negación
Conjunción
Disyunción
simple o cadena
simple o cadena
simple o cadena
Tipos de operandos
boolean
boolean
boolean
Boolean
Boolean
Boolean
Tipos de resultados
Boolean
Boolean
Boolean
Prioridad de operadores
Cuando se utilizan en alguna expresión mas de un operador, éstos se evalúan conforme a una
prioridad establecida por Turbo Pascal. Es necesario conocer el orden de evaluación para evitar errores
en nuestros programas.
El orden en que se ejecutan las operaciones es el siguiente:




NOT
/, *, AND
-, +, OR
>,<=, <,>=, =, <>,
En caso de existir paréntesis en la expresión se evaluará primero el contenido de los paréntesis
antes que otros operadores.
Si existen dos operadores de igual prioridad se evaluará de izquierda a derecha.
Para observar la importancia de la evaluación correcta de los operadores se expone el siguiente
ejemplo:
PROGRAM Operadores;
VAR
Resultado_Uno, Resultado_Dos : Real;
BEGIN
Resultado_Uno := 3 + 5 * 7;
Resultado_Dos := (3 + 5) * 7;
WriteLn ('El resultado de la operación 3 + 5 * 7 es: ',Resultado_Uno);
WriteLn ('El resultado de la operación (3 + 5) * 7 es: ',Resultado_Dos);
END.
Como se podrá observar en la primera operación se ejecutará primero la operación 5*7 y al
resultado se le sumarán 3,en cambio, en la segunda operación se realizará primero la suma 3+5 para
multiplicarle al resultado 7.
USO DE LAS CONSTANTES VARIABLES
Cuando se declaran las variables en Turbo Pascal no se inicializan con algún valor en especial,
esto quiere decir que una variable que no ha sido igualada a cierto valor llevará un contenido
imprevisible, cosa no deseable en la mayoría de los programas, para evitar resultados indeseables es
posible asignarle a cada variable un valor "por defecto", que se guarde al iniciar el programa.
Estas variables inicializadas son llamadas constantes variables, ya que se declaran en la sección
de constantes, pero es posible cambiar su valor.
La sintaxis para su declaración es la siguiente:
Identificador : tipo_de_datos = valor;
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 11/25
Ejemplo:
PROGRAM Constantes_Variables;
CONST
Valor_Inicializado : Integer = 23;
Texto_Inicializado : String = 'Buenos Dias!';
VAR
Texto : String;
Entero : Integer;
BEGIN
WriteLn ('Cadena inicializada: ',Texto_Inicializado);
WriteLn ('Cadena sin inicializar: ',Texto);
WriteLn ('Entero inicializado: ',Valor_Inicializado);
WriteLn ('Entero sin inicializar: ',Entero);
END.
Uso de las expresiones como constantes
Es posible declarar constantes con base en otras constantes ya declaradas en el programa
utilizando alguna expresión para este fin, por ejemplo:
CONST
Columnas = 80;
Filas = 24;
Total_de_espacios = Columnas * Filas;
Solo es posible utilizar constantes en las expresiones de este tipo, si se usa alguna variable
ocurrirá un error al momento de compilar el programa.
SENTENCIAS COMPUESTAS
Las sentencias compuestas son grupos de sentencias, separadas cada una por un punto y coma
";" que son tratadas como una sola sentencia.
Para identificar una sentencia compuesta de un grupo sucesivo de sentencias se encierran entre
las palabras reservadas BEGIN y END. Uno de los ejemplos más claros de una sentencia compuesta es
el cuerpo de un programa principal en Turbo Pascal, el lenguaje toma todo lo que existe entre estas dos
sentencias como un solo elemento a ejecutarse aún cuando contenga varias instrucciones o sentencias:
PROGRAM Prueba;
BEGIN
WriteLn('Primera línea de una sentencia compuesta');
WriteLn('Segunda línea de una sentencia compuesta');
WriteLn('Tercera línea de una sentencia compuesta');
END.
El punto y coma que se encuentra antes de la palabra reservada END puede ser suprimido sin
afectar a la compilación. En ocasiones es necesario repetir un determinado número de veces la ejecución
de una sentencia, ya sea sencilla o compuesta, para realizar esta tarea Turbo Pascal cuenta con
instrucciones específicas para el tipo de repetición que se requiera.
ESTRUCTURAS DE CONTROL.
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 12/25
Las estructuras de control indican en términos de programación el orden, alternancia y repetición de las
distintas instrucciones que componen un programa. Cualquier programa se desarrolla mediante la
utilización de las estructuras secuenciales, alternativas o de selección y repetitivas.
Dicho esto es bueno acotar que cualquier programa se desarrolla mediante la utilización de las
estructuras secuenciales, alternativas o de selección y repetitivas.
Estructuras de Control Secuenciales
Se denominan así porque la acción representada por ellas se ejecuta una vez. Un programa elaborado
haciendo el uso de la estructura secuencial es donde se maneja un nivel de complejidad muy bajo ya que
solo esta representado por puntos o aspecto que ya hemos tratado este texto, como son:




La operación asignación
La lectura
La escritura
Comienzo y fin.
Siguiendo Este orden de ideas, a continuación se presentan algunos ejemplos:
1.- Escriba un programa para calcular la longitud de la circunferencia y el área del circulo para un
radio introducido por el teclado.
CODIFICACION
Program circulo;
Const
Pi=3.141592;
Dos=2;
Título=‘Introduzca valor de radio: ’;
Var
Radio,
Longitud,
Superficie: Real;
Begin
Write (Titulo);
ReadLn (Radio);
Longitud := Dos * Pi * Radio;
Superficie :=Pi * Radio * Radio;
WriteLn (‘Longitud =’, Longitud : 12: 4);
ReadLn (‘Superficie =’, Superficie : 12: 4);
ReadLn;
end.
2.- Teniendo como datos de entrada el radio y la altura de un cilindro queremos calcular: el área
lateral y el volumen del cilindro.
CODIFICACIÓN
Program Cilindro;
Const
Pi = 3.14159
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 13/25
Var
Radio,
Altura,
Long_base,
Area_base,
Area_lat,
Volumen : Real;
Begin
{ Entrada de datos}
Write (‘Introduce Radio y Altura del cilindro: ‘);
ReadLn (Radio, Altura);
{ Calculo de los datos intermedios }
Long_base :=2 * Pi * Radio;
Area_base :=Pi * Radio * Radio;
{ Calculo de los datos pedidos }
Area_lat := Long_base * Altura;
Volumen := Area_base * Altura;
{ Salida de datos }
Writel(‘El area de la pared lateral:’, Area_lat:8:2 );
Writeln;
Writeln(‘El volumen del cilindro :’, Volumen:8:2 );
Readln
end.
EJECUCION
Introduce Radio y Altura del cilindro: 10 25
El area de la pared lateral: 1570.79
El volumen del cilindro : 7853.97
3.- Un Vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas el vendedor
desea saber cuanto dinero obtendrá por concepto de comisiones por las tres ventas que realiza
en el mes y el total que recibirá ene l mes tomando en cuenta su sueldo base y comisiones.
CODIFICACIÓN
Program Comisiones;
Var
Venta1,
Venta2,
Venta3,
sueldo_base,
total_comisiones,
total_mes : Real;
Begin
{ Entrada de datos}
Write (‘Introduce el Sueldo Base del vendedor: ‘);
ReadLn (sueldo_base);
Write (‘Introduzca las tres ventas: ‘);
ReadLn(comision1, comision2, comision3);
{ Calculo de los datos pedidos }
total_comisione := (venta1+ venta2 + venta3) * 0.10;
total_mes := sueldo_base + total_comisiones ;
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 14/25
{ Salida de datos }
Writel(‘Las comisiones del vendedor son:’, total_comisiones:8:2 );
Writeln;
Writeln(‘El sueldo de mes del vendedor es :’, total_mes:8:2 );
Readln
end.
EJECUCION
Introduce el Sueldo Base del vendedor:
Introduzca las tres ventas:
Las comisiones del vendedor son:
El sueldo de mes del vendedor es :
Ejercicios propuestos de estructuras de control secuenciales:
(Elabore: Pseudocódigo, Diagrama de Flujo y Programa codificados en Pascal para cada
ejercicio)
1.
Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber
cuanto deberá pagar finalmente por su compra.
2.
Teniendo como datos de entrada el radio y la altura de un cilindro queremos calcular: el área lateral
y el volumen del cilindro.
3.
Calcular el área de un triangulo mediante la formula:
Area = (p(p – a) (p – b) (p – c))1/2 ,
donde p es el semiperímetro, p = (a*b*c)/2,
siendo a,b,c los tres lados del triángulo.
4.
Escribimos un programa en el que se introducen como datos de entrada la longitud del perímetro
de un terreno, expresada con tres números enteros que representan hectómetros, decámetros y
metros respectivamente. Se ha de describir, con un rotulo representativo, la longitud en decímetros.
5.
Escribir un programa que transforme grados Celsius en grados Fahrenheit.
El problema se reduce simplemente a emplear la ecuación que nos permite realizar el cambio de
escalas termométricas. Fahrenheit = Celsius * (9/5) + 32
6.
Construir un programa para obtener la hipotenusa y los ángulos agudos de un triangulo rectángulo
a partir de las longitudes de los catetos.
Estructuras de Control Alternativas
CONDICIONALES: Son aquellas que bifurcan o dirigen la ejecución de un programa hacia un grupo de
sentencias u otro dependiendo del resultado de una condición

SENTENCIA ALTERNATIVA SIMPLE
IF - THEN - ELSE (SI - ENTONCES - EN CASO CONTRARIO)
El funcionamiento de esta estructura es evaluando el resultado de la expresión, si es verdadero
entonces se ejecuta la sentencia siguiente a la palabra reservada THEN, en caso contrario, se ejecuta
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 15/25
la sentencia a continuación del ELSE. La cláusula ELSE es opcional (puede no existir), sin embargo, toda
estructura IF debe tener una palabra THEN asociada a ella. El formato general que adopta la estructura
se muestra seguidamente:
IF <expression lógica o booleana> THEN
<sentencia simple>
ELSE
<sentencia simple>;
IF <expression logica o booleana> THEN
BEGIN
<sentencia 1>; {compuesta}
<sentencia 2>;
.......
<sentencia N>
END
ELSE
BEGIN
<sentencia 1>; {compuesta}
<sentencia 2>;
.......
<sentencia N>
END;
Precaución:
No puede existir un punto y coma inmediatamente antes de una palabra ELSE ya que este punto y coma
sería interpretado por el compilador como final de la estructura IF y en este caso se produciría un error de
sintaxis en el momento de la compilación del programa, ya que la cláusula ELSE de ir siempre precedida
por la cláusula THEN
Ejemplo: El programa número detecta si un valor es positivo o negativo, donde el valor es un número
introducido por el usuario.
program numero;
var
n: integer;
begin
write(‘Introduzca el número:’);
readln(n);
if n>0 then
writeln(‘El número es positivo’)
else
writeln(‘El número es negativo o cero’);
writeln(‘Presione Enter para Continuar …’);
readln
end.

SENTENCIA ALTERNATIVA MÚLTIPLE
CASE OF
Se utiliza para los distintos valores de una variable o expresión existen distintos conjuntos de
sentencias a ejecutar, por eso recibe el nombre de sentencia alternativa múltiple. El formato general que
adopta la estructura se muestra seguidamente:
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 16/25
CASE <expression o variable> OF
<lista de constantes 1>:<sentencia 1>;
<lista de constantes 2>: <sentencia 2>;
<lista de constantes 3>: <sentencia 3>;
......
<lista de constantes N>: <sentencia N>;
ELSE <sentencia>;
…….
END;
CASE <expression o variable> OF
<lista de constantes 1>: BEGIN
<sentencia 1.1>;
<sentencia 1.2>;
<sentencia 1.3>;
.....
<sentencia 1N>
END;
<lista de constantes 2>: <sentencia 2>;
<lista de constantes 3>: <sentencia 3>;
......
<lista de constantes N>: <sentencia N>;
ELSE
BEGIN
<sentencia 1>;
<sentencia 2>;
<sentencia 3>;
……
<sentencia N>
END
END;
Cada una de las listas de constantes, deben ser del mismo tipo que la variable o expresión. Si el
valor de una de las constantes de las lista coincide con el valor actual de la expresión, se ejecuta la
sentencia asociada a esa lista de constante: si el valor que toma la expresión o variable no está
contenido en ninguna de las lista de constantes entonces se ejecuta la sentencia correspondiente a la
cláusula ELSE. Cuando termina la ejecución de la sentencia el control salta a la sentencia siguiente al
final dela estructura (sentencia END;).
Las reglas para utilizar CASE son:
 Una constante no puede aparecer en dos listas de constantes distintas.
 La cláusula ELSE, se reserva para cuando hay que ejecutar sentencias si el selector de la
sentencia case no toma ninguno de los valores contenidos en las listas de constantes. Si no hay
que ejecutar ninguna sentencia la cláusula ELSE no se utiliza.
Ejemplo:
El programa menú solicita un número introducido por el usuario el cual corresponde a un día de la
semana y el programa muestra a que día corresponde el número.
Program menu;
var
numero_dia: integer;
begin
write(‘Introduzca un número del 1 al 7: ’);
readln(numero_dia);
write(‘Hoy es: ’)
case numero_dia of
1: writeln (‘Lunes’);
2: writeln (‘Martes’);
3: writeln (‘Miercoles’);
4: writeln (‘Jueves’);
5: writeln (‘Viernes’);
6: writeln (‘Sabado’);
7: writeln (‘Domingo’)
else
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 17/25
Writeln(‘Número fuera del rango de días de la semana’);
end;
writeln(‘Presione Enter para Continuar …’);
readln
end.
INCONDICIONALES

SENTENCIA GOTO
La sentencia GOTO transfiere el control del programa a la sentencia siguiente a la etiqueta
marcada en GOTO, pudiendo ser el salto adelante o atrás en el código. La sentencia GOTO requiere de
una declaración de etiquetas LABEL. Para transferir el control a una sentencia etiquetada, se debe
utilizar la sentencia GOTO etiqueta. Cada etiqueta sólo puede marcar una sentencia dento de un
programa. La sentencia GOTO tiene el siguiente formato:
etiqueta: <sentencia>
.
...
goto etiqueta
La sentencia GOTO debe ser evitada y su uso restringido al máximo por no decir prohibido. No obstante
en caso de necesidad jamás se debe saltar al interior de un bucle FOR, WHILE o REPEAT.
Ejemplo:
El programa muestra un ejemplo del uso de la instrucción GOTO
program uso_del_goto;
var
nombre:string[15];
label
practica;
begin
writeln('Cuál es tu nombre:’);
writeln('Hola amigo ’,nombre);
goto practica;
writeln('esta línea no se escribirá');
practica:
writeln(nombre, ' se efectuó el brinco');
end.
Ejercicios propuestos de estructuras de control alternativas:
(Elabore: Pseudocódigo, Diagrama de Flujo y Programa codificados en Pascal para cada
ejercicio)
1. En un almacén se hace un 20% de descuento a los clientes cuya compra supere los 20.000 Bs.
¿Cuál será la cantidad que pagará una persona por su compra?
2. Un obrero necesita calcular su salario semanal, el cual se obtiene de la siguiente manera:
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 18/25
a. Si trabaja 30 horas o menos se le paga 1.000 Bs. Por hora.
b. Si trabaja más de 30 horas se le paga 1.000 Bs. Por cada una de las primeras 30 horas
y 1.600 por cada hora extra.
3. Realice un programa que lea dos números y los imprima en forma ascendente.
4. Realice un programa que calcule el total a pagar por la compra de camisas. Si se compran tres
camisas o más se aplica un descuento del 20% sobre el total de la compra y si son menos de
tres camisas un descuento del 10%.
5. Codificar un programa que escriba la calificación correspondiente a una nota, de acuerdo con el
siguiente criterio:
a.
b.
c.
d.
Si la nota esta entre 0 y 9,4
Si la nota esta entre 9,5 y 15,4
Si la nota esta entre 15,5 y 18,4
Si la nota esta entre 18,5 y 20
Reprobado
Aprobado
Sobresaliente
Excelente
6. Leer dos números; si son iguales que los multiplique, si el primero es mayor que el segundo que
los reste y si no que los sume.
7. Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras
trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto
se consideran horas extras y que estas se pagan al doble de una hora normal cuando no
exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se
pagan las horas normales y el resto al triple.
8. Elabore un programa que solicite dos números por teclado y pregunte que operación se desea
realizar con los dos números (+, -, *, /) y de el resultado de la operación seleccionada.
9. Dados tres valores A, B y C que representan longitudes en centímetros (cm.), se desea
determinar si esas tres longitudes:
a. Forman un triangulo isósceles. (dos lados iguales).
b. Forman un triangulo equilátero (tres lados iguales).
c. Ninguno de los anteriores.
Estructuras de Control Repetitivas

SENTENCIA WHILE (HAGA MIENTRAS)
La sentencia WHILE indica a la computadora que se ejecutan una o más sentencias mientras que
se cumpla una determinada condición. La condición viene determinada por una variable o expresión
booleana. El formato general que adopta la estructura se muestra seguidamente:
WHILE condición DO
BEGIN
<sentencia 1>;
<sentencia 2>;
.......
<sentencia N>;
END
WHILE condición DO
<sentencia 1>;
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 19/25
Funcionamiento:
La sentencia WHILE comprueba inicialmente si la condición es verdadera. Si la condición es
verdadera se ejecutan las sentencias mientras la condición de su enunciado se verdadera y finaliza
cuando la condición es falsa. Si la condición es falsa se saltan las sentencias del bucle, continuando
la ejecución, del programa en la siguiente sentencia al mismo. Dado que la expresión o la variable
pueden ser falsas inicialmente, es decir, antes de comenzar el bucle, habrá casos en que el bucle no
se ejecute.
Ejemplo:
El programa escribe_enteros: escribe los n primeros números naturales, donde n es un valor
introducido por el usuario.
program escribe_enteros;
var
n, contador: integer;
begin
write(‘Introduzca número máximo de enteros:’);
readln(n);
contador:=1;
while contador<=n do
begin
write(contador:5);
contador:=contador+1
end;
writeln;
readln
end.

SENTENCIA REPEAT-UNTIL (REPITA HASTA)
La sentencia REPEAT-UNTIL o bucle REPEAT ejecuta las sentencias comprendidas entre las
palabras reservadas REPEAT y UNTIL, hasta que la expresión o variable sea verdadera. El formato
general que adopta la estructura se muestra seguidamente:
REPEAT
<sentencia 1>;
<sentencia 2>;
.......
UNTIL condición;
Características del bucle REPEAT:
 Los bucles REPEAT se ejecutan siempre una vez, por lo menos.
 La terminación del bucle se produce cuando el valor de la expresión lógica o condición de salida
es (verdadera).
 El bucle REPEAT se ejecuta hasta que la expresión lógica es verdadera, es decir, se ejecuta
mientras la expresión o variable toma el valor de falso.
Ejemplo:
El programa escribe_enteros: escribe los n primeros números naturales, donde n es un valor
introducido por el usuario.
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 20/25
program escribe_enteros;
var
n, contador: integer;
begin
write(‘Introduzca número máximo de enteros:’);
readln(n);
contador:=0;
repeat
contador:=contador+1;
write(contador:5);
until contador=n
writeln;
readln
end.

SENTENCIA FOR (HAGA DESDE - HASTA)
La sentencia o estructura FOR repite la ejecución de una o varias sentencias un número fijo de
veces, previamente establecido. Al igual que WHILE y REPEAT necesita una variable de control del
bucle. La sentencia FOR tiene los siguientes formatos:
FOR VariableCOntrol:= ValorInicial TO ValorFinal DO
<sentencia>;
Y
FOR VariableCOntrol:= ValorInicial DOWNTO ValorFinal DO
<sentencia>;
Donde <sentencia> puede ser una sentencia simple o bien una sentencia compuesta.
El primer formato de la sentencia se denomina FOR ascendente y el segundo FOR
descendente.
Ejemplo:
El programa escribe_enteros: escribe los n primeros números naturales, donde n es un valor
introducido por el usuario.
program escribe_enteros;
var
n, contador: integer;
begin
write(‘Introduzca número máximo de enteros:’);
readln(n);
for contador:=1 to n do
write(contador:5);
contador:=contador+1
writeln;
readln
end.
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 21/25
¿ Cuàndo utilizar while / repeat / for ?



Utilizar la sentencia o estructura FOR cuando se conozca el número de iteraciones.
Utilizar la estructura REPEAT-UNTIL, cuando el bucle se realice por lo menos una vez.
En todos los demás casos utilizar la sentencia WHILE.
Ejercicios propuestos de estructuras de control repetitivas:
(Elabore: Pseudocódigo, Diagrama de Flujo y Programa codificados en Pascal para cada
ejercicio)
1. Realice un programa que lea 10 números. Obtener de cada uno de ellos su cuadrado y su cubo.
2. Leer 20 números e imprimir cuantos son negativos, cuantos positivos y cuantos neutros.
3. Calcular la suma de una serie de números leídos por teclado.
4. Calcular e imprimir la tabla de multiplicar de un número cualquiera. Imprimir el multiplicando, el
multiplicador y el producto.
5. Calcular la suma de la serie de 1/1 + 1/2 + 1/3 + .... 1/n, donde n es un numero introducido por
teclado.
6. En un equipo de basketball integrado por doce personas, se decide que el nombre del equipo
debe estar compuesto por las iniciales del primer nombre de cada integrante. Realizar un
programa que genere este nombre.
7. Calcular el factorial de un número entero leído desde el teclado utilizando las sentencias WHILE,
REPEAT y FOR.
8. Se esta realizando el proceso de elección entre dos candidatos A y B, al votante se le da una
tarjeta donde debe colocar:1 si su candidato es A y 2 si su candidato es B, se considera como
voto nulo todas aquellas tarjetas que contengan un número diferente a los previamente
señalados. Determinar cuantos votos obtuvo A, cuantos obtuvo B, cuantos fueron nulos y cual
fue el candidato ganador de un total de N votantes.
9. Escribir un programa que calcule y visualice el más grande, el más pequeño y la media de n
números. El valor de N se solicitará al principio del programa y los números serán introducidos
por el usuario.
10. Encontrar el número mayor de una serie de datos.
LA ESTRUCTURA ARRAY
Un array (matriz, vector, vector, arreglo, etc..) es una estructura homogénea de datos, de tamaño
constante accediendo a cada uno de sus elementos mediante un identificador común y uno o varios
índices. Según la definición podemos ver:



Todos los elementos del array son del mismo tipo.
El número de ellos no varia durante la ejecución del programa.
Accedemos a un elemento de la estructura mediante un identificador común, el nombre del array,
y con el valor que toman uno ovarios indices. Al número de índices necesarios para designar un
elemento del array se le denomina dimensión el array.
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 22/25

El número máximo de valores posibles que puede tomar cada índice se denomina rango de esa
dimensión o índice. Los valores han de ser consecutivos.
Podemos concluir, por tanto, que un array es una estructura homogénea de datos, estática y de acceso
directo a sus componentes por posición. La posición la determina los valores de uno o varios índices. El
tamaño ocupado por cada uno de los componentes sería el mismo que el que ocuparía si se declara
como variable independiente.
Ejemplos:
Arreglos unidimensionales:
1.- Elabore un programa que permita cargar una lista de 20 elementos y luego imprimir todos
aquellos elementos mayores de 15 y el subíndice o posición que ocupa en la lista.
program mayor;
var
lista:array [1..20] of integer;
i:integer;
begin
for i:=1 to 20 do
begin
write('numero [',i,']:');
readln(lista[i]);
end;
for i:=1 to 20 do
begin
if num[i]>15 then
writeln('el numero ',lista[i], ' en la posición ', i);
end;
writeln('presione cualquier tecla para terminar');
readln
end.
2.- Elabore un programa que permita cargar una lista de 5 nombres y luego imprimirlos con el
subíndice o posición que ocupa en la lista.
program nombres;
var
nomb:array [1..5] of string[20];
i:integer;
begin
for i:=1 to 5 do
begin
write('nombre [',i,']:');
readln(nomb[i]);
end;
for i:=1 to 5 do
writeln('el nombre ',nomb[i], ' esta en la posicion ', i);
writeln('presione cualquier tecla para terminar');
readln
end.
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 23/25
Arreglos bidimensionales:
1.- Cargar una matriz cuadrada de orden 4, de la siguiente forma cada elemento debe ser la suma
del numero de su fila y del numero de su columna.
program matriz_4;
var
matriz: array [1..4,1..4 ] of integer;
j,i:integer;
begin
writeln('
programa que calcula una matriz cuadrada de orden 4 especial');
writeln;
for i:=1 to 4 do
for j:=1 to 4 do
matriz[i,j]:= i+j;
for i:=1 to 4 do
for j:=1 to 4 do
writeln('en la posicion ', '[',i, ',',j,']', ' el valor es: ', matriz[i,j]);
writeln('presione cualquier tecla para terminar');
readln
end.
FUNCIONES PREDEFINIDAS:
Las funciones predefinidas resultan imprescindibles para la resolución de problemas sencillos. Las más
utilizadas son:
Abs(x).
ArcTan(x).
Chr(x).
Cos(x).
Exp(x).
Frac(x).
Int(x).
Ln(x).
Odd(x).
Ord(x).
Pred(x).
Round(x).
Succ(x).
Sin(x).
Sqr(x)
Sqrt(x).
Trunc(x).
Algunas Funciones predefinidas
Proporciona el valor absoluto de una variable numérica x.
Proporciona el arco cuya tangente es x.
Devuelve el carácter ASCII de un entero entre 0 y 255.
Proporciona el coseno de x.
x
Proporciona la exponencial de x(e ).
Devuelve la parte decimal de x.
Devuelve la parte entera de x.
Devuelve el logaritmo neperiano de x.
Devuelve true si x es impar, y false sí en par.
Devuelve el ordinal de una variable de tipo ordinal x.
Devuelve el ordinal anterior a la variable ordinal x.
Devuelve el entero más próximo al valor x.
Devuelve el ordinal siguiente a la variable ordinal x.
Devuelve el seno de x.
Devuelve el cuadrado de x.
Devuelve la raíz cuadrada de x, para x>=0.
Devuelve la parte entera de x.
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 24/25
REGLAS PARA ESCRIBIR UN PROGRAMA EN PASCAL
1. Todo programa en pascal comienza con la palabra Program seguido del nombre del programa y
termina con un punto y coma ( ; )
2. Los programas en pascal no guardan márgenes.
3. Para construir el nombre de datos, bien sea, nombre de programa, nombre de variable, nombre
lógico de archivo, constantes, funciones o procedimientos se deben seguir las siguientes
recomendaciones:
a. El nombre no puede ser mas largo de 12 caracteres.
b. El nombre puede ir compuesto de letras, números y guiones.
c. Es obligatorio que el nombre comience por letras.
d. El nombre de un dato no puede estar repetido.
e. En toda instrucción debe terminar la línea en punto y coma ( ; ) excepto en las llamadas
sentencias: cont, type, var, repeat, begin, else, of, then, do, etc.
4. Nota: se denomina sentencia aquella palabra reservada que cierra una o más instrucciones.
5. Nota: la línea que va antes de un end o else no leva punto y coma ( ; ).
6. Siempre se debe tener en cuenta que:
a. El símbolo igual (=) se utiliza para declarar constantes o para expresiones de
comparación.
b. El símbolo dos punto igual (:=) se utiliza en una asignación de variables, en un calculo o
en un ciclo for.
c. El símbolo dos punto (:) se utiliza para declarar datos en la sección de var.
7. Las constantes se declaran en la sección Const. Se debe tener en cuenta que una constante puede
estar en un programa con algún fin de calculo o asignación y nunca se debe intentar cambiar la
misma dentro del programa.
8. En un programa los valores de tipo carácter y string deben ir encerrados entre comillas simples (‘
‘).
9. De acuerdo a la sentencia del bloque las mismas ejecutan una sola instrucción a excepción de que
se utilice un begin y end para indicar que una sentencia ejecutara mas de una instrucción.
10. Todo programa debe o puede tener N cantidades de begin teniendo en cuenta que la cantidad de end
tiene que ser igual a la cantidad de begin.
a. En un programa debe haber un begin principal y end final.
b. Todos los end terminan con punto y coma ( ; ) a excepción del end final que termina con
un punto ( . ) ubicando el fin del programa que sé esta realizando.
11. En un programa se pueden anidar tantas sentencias como se requiera teniendo en cuenta que cada
vez que se coloca un end es atribuido a la sentencia interna inmediata al mismo.
12. Para construir condiciones con If, While, Repeat o expresiones se debe tener en cuenta el uso de
paréntesis ( ), en el caso que las condiciones sean múltiple y lógicas.
13. Para hacer comentarios en un programa se deben encerrar dichos comentarios entre llaves { } ó
entre paréntesis y asteriscos (* *).
_________________________________________________________________________________________________________
Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina
Pág. 25/25
Descargar