Sie sind auf Seite 1von 5

PROGRAMAS SIMPLES EN PASCAL EJEMPLOS

Programa en PASCAL Algoritmo para el cálculo del beneficio


programa cabecera de programa (* Entrada: Variables TarifaServicio,
CosteUnidad, Instalaciones, MetrosCable
declaraciones instrucciones .
Objetivo: Calcular el beneficio obtenido por la
instalación de un cierto numero de metros de
cabecera de programa PROGRAM
cable en un determinado numero de lugares. Por
Identificador ( lista parametros ); cada instalacion hay una tarifa minima de
servicio y una tarifa adicional por cada pie de
cable
declaraciones etiquetas
Salida: Beneficio obtenido *)
constantes
1. Introducir las variables TarifaServicio,
tipos
CosteUnidad, Instalaciones, MetrosCable
variables
2. Calcular
subprogramas Beneficio = Instalaciones * TarifaServicio +
CosteUnidad * MetrosCable

instrucciones BEGIN 3. Visualizar Beneficio

instruccion END

Tema 2. Elementos básicos de la programación imperativa Tema 2. Elementos básicos de la programación imperativa
Profesor: Isabel Pita Andreu -1- Profesor: Isabel Pita Andreu -2-

Programa Programa

PROGRAM CalcularBeneficio (input,Output); PROGRAM Suma (input,Output);


VAR VAR
Instalaciones, {numero de instalaciones} X,Y, {dos numeros dados}
MetrosCable: integer; {metros de cable } Suma: integer; {suma de los numeros}
TarifaServicio ,
CosteUnidad, {coste por metro de cable} BEGIN
Beneficio: real; {beneficio obtenido} X := 214;
Y := 2057;
BEGIN Suma := X + Y;
writeln(‘Introduzca la tarifa de servicio, el coste writeln(‘La suma de ‘, X , Y, ‘es ’, Suma)
por metro de cable, el numero de instalaciones, END.
y los metros de cable usados:’);
readln(TarifaServicio, CosteUnidad, Ejemplo de ejecución
Instalaciones, MetrosCable);
La suma de 214 y 2057 es 2271
Beneficio := TarifaServicio * Instalaciones +
CosteUnidad * PiesCable;
writeln(‘Beneficio obtenido = ‘Beneficio : 7:2)
END.

Ejemplo de ejecución
Introduzca la tarifa de servicio, el coste por
metro de cable, el numero de instalaciones y los
metros de cable usados:
25 2 27 263
Beneficio obtenido = 1211.00

Tema 2. Elementos básicos de la programación imperativa Tema 2. Elementos básicos de la programación imperativa
Profesor: Isabel Pita Andreu -3- Profesor: Isabel Pita Andreu -4-
CONSTANTES CONSTANTES
Constante de tipo carácter : un único carácter
Cantidades cuyos valores no cambian durante la
encerrado entre comillas simples.
ejecución del programa
Ejemplos: ‘A’, ‘+’, ‘3’, ‘;’, ‘’’’
Constante entera : cadena de dígitos. Las cadenas
enteras negativas deben ir precedidas de un signo Constate de tipo cadena de caracteres: cadena de
menos, en los enteros no negativos el signo más es caracteres encerrada entre comillas simples.
opcional. Ejemplo: ‘Hola mundo’, ‘M-4435-PK’
Ejemplos: 0
137 Constante de tipo booleano: solo hay dos valores
-2578 true y false
+456
Constantes reales con representación decimal : IDENTIFICADORES
• Deben incluir un punto decimal
• Debe haber al menos un dígito antes del punto Nombres dados a los programas, constantes,
decimal y un dígito después de él. variables, y otras entidades del programa.
• Las constantes reales negativas deben estar
precedidas de un signo menos, en los reales no • Deben empezar por una letra, seguida de cualquier
negativos el signo es opcional número de letras o dígitos.
Ejemplos: 1.233 • No pueden ser palabras reservadas
-0.3675 • No conviene que sean identificadores con
+457.0 significado predefinido.
Const. reales con representación exponencial : • No se hace distinción entre mayúsculas y
Constante entera o real en forma decimal, seguida minúsculas
por la letra E, seguida por una constante entera, que • Práctica a seguir en este curso:
se interpreta como exponente de la base 10. • Las palabras reservadas en mayúsculas
Ejemplos: 3.37456E2 • Idenificadores predefinidos en minúsculas
0.337456E3 • Identificadores definidos por programador,
337.456E0 primera letra de cada palabra en mayúsculas
33745.6E-2
Tema 2. Elementos básicos de la programación imperativa Tema 2. Elementos básicos de la programación imperativa
Profesor: Isabel Pita Andreu -5- Profesor: Isabel Pita Andreu -6-

CONSTANTES CON NOMBRE


VARIABLES
En la sección de declaración de constantes se
asignan identificadores a las constantes del
Identificador asociado a una posición de memoria.
programa.
Se caracterizan por su tipo, y su valor en un
momento determinado.
constantes CONST
variables VAR
identificador = constante ;
lista variables : tipo ;
Ejemplo:
CONST
Pi = 3.1415; identificador
lista variables
MenosPi = -Pi;
MiNombre = ‘Isabel’;
Anno = 2000; ,
Identificadores de constante predefinidos:
• maxint : mayor entero que puede
Tipos predefinidos : integer, real, boolean, char
representarse en la computadora
text.
• true y false. Ejemplo:
VAR
NumeroEmp : integer;
CodioDept : char ;
Residente : boolean ;
Horas, Tarifa, Salario : real ;
Entada, Salida : text;

Deben utilizarse identificadores significativos para


las variables
Tema 2. Elementos básicos de la programación imperativa Tema 2. Elementos básicos de la programación imperativa
Profesor: Isabel Pita Andreu -7- Profesor: Isabel Pita Andreu -8-
OPERACIONES ARITMÉTICAS
Operador Operación Operandos Resultado
+ Suma integer o real integer o real

el del argumento

el del argumento
- Resta integer o real integer o real
* Multiplicación integer o real integer o real

Resultado
/ División real integer o real real

FUNCIONES ARITMÉTICAS PREDEFINIDAS

integer
integer
DIV División entera integer (j<>0) integer

real
real
real
real

real

real
MOD Módulo integer (j>0) integer

Tipo parámerto
Ejemplos:

integer o real

integer o real

integer o real
integer o real
integer o real

integer o real
integer o real
integer o real
2+3=5 2 + 3.0 = 5.0
7 / 2 = 3.5 7.0 / 2 = 3.5 12 / 4 = 3.0
7 DIV 2 = 3 4 DIV 5 = 0 (-8) DIV 3 = -2
7 MOD 2 = 1 4 MOD 5 = 4 0 MOD 5 = 0

real
real
Niveles de prioridad :

redondeo al entero más próximo


Arcotangente de x (en radianes)
• Operadores de alta prioridad : * / DIV MOD

truncamiento a la parte entera


• Operadores de baja prioridad : + -

Coseno de x (en radianes)

logaritmo neperiano de x
Reglas :

seno de x (en radianes)


• Los operadores de alta prioridad se ejecutan antes

función exponencial
Valor absoluto de x

Tema 2. Elementos básicos de la programación imperativa


raiz cuadrada de x
que los de baja

- 10 -
• Los operadores con igual prioridad se ejecutan de

cuadrado de x
izquierda a derecha

Descipción
• Las expresiones entre paréntesis se evaluan
primero
• No se permite la aparición de dos operadores

Profesor: Isabel Pita Andreu


seguidos (Atención operadores unarios +,-)

arctan(x)

round(x)
Ejemplo:

Función

trunc(x)
sqrt(x)
exp(x)
abs(x)

cos(x)

sqr(x)
sin(x)
(7 * (10 – 5) MOD 3) * 4 + 9 = 17

ln(x)
Tema 2. Elementos básicos de la programación imperativa
Profesor: Isabel Pita Andreu -9-

INSTRUCCIÓN DE ASIGNACIÓN ENTRADA / SALIDA


instrucción de asignacion
Las instrucciones de entrada/salida permiten
mostrar los resultados calculados en un dispositivo
identificador expresion de salida e introducir nuevos valores durante la
:=
ejecución

Como resultado de una instrucción de asignación el Instrucciones de salida:


valor de la variable cambia al valor de la expresión • write (lista-salida) : muestra los valores de los
objetos en la lista-salida en la línea actual
Ejemplos:
X := 2 {X toma el valor 2} • writeln(lista-salida) : después de mostrar los
Y := 5 {Y toma el valor 5} valores de los objetos en lista-salida en la línea
Suma := X + Y {Suma toma valor 7} actual salta de línea
• writeln : produce un salto de línea en el
X := X+1 { X toma el valor 3} dispositivo de salida
Y := Y+X {Y toma el valor 8}
Y := sqrt(Y+1) { Y toma valor 3} Reglas :
codigo := ‘A’ • La anchura del campo para valores numéricos
encontrado := false depende del compilador
• La anchura del campo para caracteres y cadenas es
Reglas : el número de caracteres del valor
• El identificador debe estar declarado en la sección • Los valores numéricos se justifican a la derecha
de variables • Los caracteres y cadenas se justifican a la
• La expresión debe ser del mismo tipo que la izquierda
variable o de un tipo convertible • Los valores reales se muestran en notación
• El único tipo convertible en PASCAL es el tipo científica
entero a tipo real
• Las variables permanecen indefinidas hasta que se
especifica su valor

Tema 2. Elementos básicos de la programación imperativa Tema 2. Elementos básicos de la programación imperativa
Profesor: Isabel Pita Andreu - 11 - Profesor: Isabel Pita Andreu - 12 -
ENTRADA/SALIDA ENTRADA/SALIDA
Instrucciones de entrada
Ejemplo: • readln(lista-entrada) : lee valores del archivo
Contador := 16; entrada input y los asigna a las variables de la lista
write(Contador , ‘es par’); entrada. Después de leer los valores se avanza
write(Contador + 1, ‘es impar’); hasta una nueva línea de entrada
writeln; • read(lista-entrada) : después de leer los valores no
writeln(‘**********’); se produce el avance
writeln; • readln : da por terminada la lista de entrada actual.
writeln(2.0*Contador, ‘es real’)
Ejemplos:
Ejemplo de ejecución
16 es par 17 es impar • read(x,y,z)
********** • read(x);read(y);read(z)
• readln(x,y,z)
3.200000000E1 es real
• readln(x);readln(y);readln(z)
Descriptores de formato
Posibles entradas:
Especifican el formato de la salida • 234
• :w -> especifica que el valor que se va a mostrar • 2
en un campo consiste en w espacios. Si es 3
demasiado pequeño se agranda para valores 4
numéricos pero para caracteres, booleanos y • 23
cadenas sólo se muestran los w caracteres mas a la 4
izquierda.
• :w:d -> Solo para valores reales. w es la anchura
del campo y d el número de dígitos a mostrar al
lado derecho del punto decimal. El valor se
redondea o se llena con ceros
Tema 2. Elementos básicos de la programación imperativa Tema 2. Elementos básicos de la programación imperativa
Profesor: Isabel Pita Andreu - 13 - Profesor: Isabel Pita Andreu - 14 -

ARCHIVOS
ARCHIVOS DE TEXTO
Se utilizan para almacenar datos (información) en
memoria externa (disco duro o disquetes). Los datos Declaración : variables archivo de tipo text.
almacenados en un archivo pueden ser leídos múltiples
veces por un programa. Ejemplo
VAR ArchEmp : text;
Tipos de archivos DatosSemillas : text;
• Archivos de texto :
Los datos se almacenan con formato carácter. Asignación del nombre lógico al archivo físico
Se pueden crear con un editor de texto o con un
programa. Ejemplo
Se pueden leer mediante un programa assign(ArchEmp, "Empleados.txt")
Se pueden visualizar con un editor de texto.
La transformación del formato interno del dato al Esta instrucción es propia de turbo pascal.
formato carácter se realiza automáticamente.
Apertura de un archivo de entrada: instrucción que
• Archivos binarios : coloca el puntero de lectura al principio del archivo
Los datos se almacenan con formato binario.
Sólo se pueden crear con un programa. Ejemplo
Se pueden leer mediante un programa reset(ArchEmp);
No se pueden visualizar con un editor de texto. En
caso de hacerlo aparecerán caracteres extraños en
lugar de la información almacenada. Lectura de un archivo: instrucción que asigna el
No es necesaria transformación del formato interno al valor apuntado por el puntero de lectura a la
formato del fichero. siguiente variable de la lista y se avanza el puntero
hasta el siguiente dato. Cuando se finaliza la lista, si
la instrucción es readln se avanza el puntero hasta el
final de línea.

Ejemplo
read(ArchEmp, Nombre, Edad)
readln(ArchEmp, Nombre, Edad)
Tema 2. Elementos básicos de la programación imperativa Tema 2. Elementos básicos de la programación imperativa
Profesor: Isabel Pita Andreu - 15 - Profesor: Isabel Pita Andreu - 16 -
ARCHIVOS DE TEXTO

Apertura de un archivo para escritura: instrucción


que crea un archivo vacío y coloca el puntero de
escritura al principio del archivo. Cualquier
contenido del archivo se destruye.

Ejemplo
rewrite(ArchEmp);

Escritura de un archivo: instrucción que escribe los


valores de las expresiones de la lista en el archivo de
salida. Si la instrucción es writeln se avanza hasta la
siguiente línea del archivo.

Ejemplo
write(ArchEmp, Nombre, Edad)
writeln(ArchEmp, Nombre, Edad)
writeln(ArchEmp)

Tema 2. Elementos básicos de la programación imperativa


Profesor: Isabel Pita Andreu - 17 -