Está en la página 1de 69

Programa de Desarrollo Humano

Programación 1 – Pascal

Introducción
a Pascal

Capítulo 3 – P.54. Capítulo 3, Pág. de la 54 a la 99


Haydeé Méndez
Estructura de un Programa

Cabecera

Sección de declaraciones

Código de programa

Haydeé Méndez Progra 1 2


Estructura de un Programa

Cabecera del • PROGRAM Identificador (*nombre programa*)


• USES identificadores (*Uso de unidades*)
programa
• Const (*Definición de constantes*)
• Type (*Declaración tipos de datos def. por usuario*)
Declaracione • Var (*Declaración de variables*)
s • Procedure (*Definiciones de procedimientos*)
• Function (*Definición de funciones*)

• BEGIN (*Cuerpo del programa*)


Programa • Sentencias y expresiones
Principal • END. (*final del programa principal*)

Haydeé Méndez Progra 1 3


Sentencia program

Nombre • Línea de código seguida de un nombre identificador que le


da el usuario de acuerdo al tipo de programa que sé este
del realizando, cabe destacar de que al igual que otros lenguajes
program no se permiten el uso de palabras reservadas porque sé
producirán errores de compilación.
a

• Program factorial;
Ejemplo • Program nomina_empleados;
• Program NominaEmpleados;

Haydeé Méndez Progra 1 4


Identificadores

Representan los objetos de un programa (constantes, variables, tipos


de datos, procedimientos, funciones, unidades, programas y campos
de registros).

Es una secuencia de caracteres que puede ser de cualquier longitud,


pero solo los 63 primeros caracteres son significativos.

Turbo Pascal no distingue las letras mayúsculas de las minúsculas en


los identificadores, ej:
Cantidad = CANTIDAD = cantidad
son identificadores válidos e idénticos
Haydeé Méndez Progra 1 5
Identificadores
Reglas que caracterizan a los identificadores:
Debe comenzar con una letra (A a Z, mayúsculas o minúsculas) y no puede
contener blancos.

Letras, dígitos y caracteres subrayados (_) están permitidos después del


primer carácter.

No se puede utilizar una palabra reservada como identificador, sin


embargo, los identificadores estándar se pueden definir.

Ejemplo:
Type
integer = char;

Haydeé Méndez Progra 1 6


Identificadores

Identificadores Válidos: Identificadores no Válidos:


♣ Nombre ♣ Fox&Horas (contiene un
♣ Letras1 carácter no válido, &)
♣ Cont ♣ F Bar (contiene un blanco)
♣ PesetasKilo ♣ La@Luna (@ es valido solo
♣ Impuesto_IVA al principio)
♣ A_B_C ♣ Begin (es una palabra
reservada)

Haydeé Méndez Progra 1 7


Palabras Reservadas
Tienen significado especial, no se pueden utilizar para otros
propósitos, ni como identificadores
absolute downto goto mod record type
and else if nil repeat unit
array end implementation not set until
begin external in of shl uses
casi file inline or shr var
const for interface packed string while
div fordward interrupt procedure then with
do function label program to xor

Haydeé Méndez Progra 1 8


Etiquetas

Identificador que se
compone de una
secuencia de letras
y dígitos y que a Se utilizan con las Su uso no está
diferencia del sentencias goto. recomendado.
identificador clásico,
puede comenzar
con dígitos.

Haydeé Méndez Progra 1 9


Identificadores Estándar

Son identificadores conocidos del lenguaje Pascal

tipos integer real byte


procedimientos write writeln readln reset read
funciones sin cos ord chr eoln

Haydeé Méndez Progra 1 10


Diagrama de sintaxis

Son reglas de gramática, determinan si la secuencia de


caracteres se pueden traducir por el compilador a código
máquina. Diagrama de sintaxis de un identificador:

Haydeé Méndez Progra 1 11


Dato
Un dato es la representación de un objeto mediante
símbolos manejables por el computador
Su uso es común en programación
Un tipo de dato se caracteriza por:
Dominio: conjunto de valores que puede tomar.
Operaciones y funciones definidas sobre ellos.

Haydeé Méndez Progra 1 12


Tipos de Datos

Datos Estáticos Datos Dinámicos

Tipos Simples Tipos Cadena Tipos Estructurados Tipos Tipos Puntero


(arrays) Procedimiento
(procesos)
Array
Ordinales: Registro
♪ Integer Conjunto
♪ Boolean V-F Archivo
♪ Char Designación:
♪ Enumerado ♪ Visualizable: #65 = chr(65)
♪ Subrango ♪ No visualizable: ^G =
♪ real: 6b pitido sonoro
♪ single: 4b
No Ordinales: ♪ double: 8b
♪ Reales ♪ extended: 10b
♪ comp: 8 b

Haydeé Méndez Progra 1 13


Tipos ordinales

Son todos los tipos simples distintos de los tipos reales


Integer

Predefinidos Char
Tipos Boolean
Ordinales
Definidos por el Enumerados
usuario
Subrango

Haydeé Méndez Progra 1 14


Tipos enteros

Tipo Rango Formato

byte 0..255 8 bits sin signo


integer -32768..32767 16 bits con signo
longint -217483648..2147483647 32 bits con signo
shortint -128..127  8 bits con signo
word 0..65535 16 bits sin signo

Haydeé Méndez Progra 1 15


Byte
♣Se almacenan en memoria como 1 byte (8 bits).
♣Al nivel del lenguaje máquina, byte y char son exactamente lo
mismo, la única diferencia reside en cómo los gestiona el
compilador.
♣Un tipo byte, al no ser nunca negativo, no está destinado a
cálculos, sino a la manipulación del byte u octeto.
♣Si se intenta asignar una constante negativa a una variable de
tipo byte, se obtiene el mensaje: Error 76: Constant out of range
bit7 bit0

Byte (1 bytes)

Haydeé Méndez Progra 1 16


Integer
Se almacenan en memoria como 2 bytes.
No pueden tener parte decimal.
El bit de mayor peso (orden) de los 2 bytes en memoria es el bit
de signo (positivo o negativo).
Si el bit es 1, el entero es negativo.
Si el bit es 0, el entero es positivo.
En Turbo Pascal existe una constante predefinida maxint, que
contiene el mayor valor que un entero puede tomar: 32767
Integer (2 bytes)

Haydeé Méndez Progra 1 17


Longint (enteros largos)
Ocupan 4 bytes de memoria.
Existe una constante predefinida de tipo longint,
denominada maxlongint, cuyo valor es 2.147.483.647

Longint (4 bytes)
0 1 2 3

Haydeé Méndez Progra 1 18


Shortint (enteros cortos)
Ocupan 1 byte de memoria.
En ciertos casos puede ser práctico disponer de valores
enteros positivos y negativos cuyo alcance sea mas
restringido que el de los tipos enteros.

Shortint (1 byte)

Bit de signo

Haydeé Méndez Progra 1 19


Word
Ocupa 2 bytes en memoria, pero solo puede recibir valores
positivos.
Word quiere decir palabra o palabra de memoria.
Se utilizan para acceder desde un programa hasta una
dirección de memoria.

Integer (2 bytes)

Haydeé Méndez Progra 1 20


Tipos reales
Representan al conjunto de los números reales.
Cualquier número se puede representar como real, todos
los datos se representan en memoria como series binarias
(cadenas de ceros y unos)
El numero 15 se representa en binario como 1111
Los números reales se representan así:

Formato entero Formato real


Número binario Mantisa Exponente
Haydeé Méndez Progra 1 21
Notación Científica o de Coma Flotante
El área ocupada por un numero real se divide en dos
zonas:
Mantisa:
 fracción binaria entre 0.5 y 1.0
 para segmentos negativos: -0.5 y -1.0
Exponente:
 potencia de 10

Haydeé Méndez Progra 1 22


Notación Científica o de Coma Flotante
Esta notación se utiliza para representar números muy
grandes o muy pequeños.
En notación decimal los números se escriben en notación E
(E de exponente, y significa multiplicar por 10 la potencia que
sigue).

n = número decimal (con o sin signo + o -)


dd = exponente entero (positivo, negativo o cero)

Ejemplos:

Haydeé Méndez Progra 1 23


Notación en Coma Fija
Es expresar el número real con un punto decimal (no con
comas).
Ejemplo: 3.141592 0.0056 -18.8

El tipo real se representa en memoria con 6 bytes y en un


rango de
Los números reales están siempre disponibles en TP.
•Los enteros ocupan menos memoria que los reales.
•Las operaciones con enteros son siempre precisas.
•Normalmente las operaciones con enteros son más rápidas que
con números reales.
Haydeé Méndez Progra 1 24
Tipos carácter (char)
Puede contener un solo carácter y se almacena en memoria como un
solo byte.
Es un tipo ordinal, significa que tiene un número fijo de posibles valores
expresados gracias al código ASCII.
Se debe encerrar entre simples apóstrofos.
‘A’‘b’ ‘*’ ‘5’ ‘ ‘
Ejemplo:
Donde cada carácter representa una posición en una serie ordenada
(de 0 a 255). El orden de la letra A es 65. La función predefinida chr(65)
equivale a la letra A que es igual a #65
El carácter blanco se escribe en un programa como el literal ‘ ‘ y se
introduce en memoria pulsando la barra espaciadora
Haydeé Méndez Progra 1 25
Tipos lógicos (boolean)

Ocupa sólo un byte en memoria


Pueden tomar solo dos valores predefinidos:
True: verdadero
False: falso
Se utiliza en tareas de control de bucles y selecciones
Al igual que el tipo char, el tipo boolean es un tipo ordinal
que significa que tiene un número fijo de posibles valores
que existen en un orden definido.

Haydeé Méndez Progra 1 26


Tipos lógicos (boolean)

Tabla de verdad

A B A and B A or B Not A
True True True True False
True False False True False
False True False true True
False False False False True

Haydeé Méndez Progra 1 27


Tipos definidos por el usuario
 Enumerado
Se pueden crear Escalares
 Subrango

estructuras de Procedi-
datos a partir de miento Registros

Tipos de
datos simples, datos
aumentan la Puntero
definidos
legibilidad de (apuntador)
por el
usuario
Arrays

los programas,
simplifican su Archivo Conjunto
mantenimiento. (file) (set)

Haydeé Méndez Progra 1 28


Tipo cadena (string)
Es una secuencia de caracteres de cero a más caracteres
correspondientes al código ASCII, escrito en una línea sobre
el programa y encerrado entre apóstrofos.
Ejemplos:
‘Turbo’ ‘estas de acuerdo’ ‘;’ #13#10 ‘ ‘

•Una cadena sin nada entre los apóstrofes se llama cadena nula
o cadena vacía.
•La longitud de una cadena es el numero de caracteres
encerrados entre los apostrofes.
Haydeé Méndez Progra 1 29
Const
Constantes:
Sirven para establecer valores que no cambiaran durante la
ejecución del programa, siempre van precedidas de la palabra
reservada CONST, luego se coloca el identificador o nombre, un
igual (=) y el valor al cual se quiere asignar la constante.

Ventaja:
Facilitan el
mantenimiento

Haydeé Méndez Progra 1 30


Tipos de constantes
Es un valor de cualquier tipo que se utiliza como tal, ej:
AreaTriangulo := (Base * H) / 2
Literales donde 2 es una constante literal de valor 2
Un signo ($) delante de un literal numérico, significa que el compilador interpretará el literal como número
hexadecimal.
Se identifican por un nombre y valor asignado.
Sintaxis:
Con
Const identificador = valor;
nombre o
declaradas Ejemplo:
Const pi = 3.141592;
nombre = ‘Haydeé Méndez’;
Constante con nombre a la que se le asigna un valor que es una expresión, que se evalúa en tiempo de
compilación.
Expresión, Sintaxis:
solo Const identificador = expresión;
versión Ejemplo:
5.0 Const min = 0;
suma = (2.5 + 40) / (12.5 + 3.2);
Ventaja: reconfiguración y documentación.

Haydeé Méndez Progra 1 31


Var
Variables:
Objetos del programa cuyo valor puede cambiar mediante sentencias
ejecutables durante la ejecución del mismo. El nombre o identificador
se llama: nombre variable y el valor almacenado: valor variable.
Sintaxis:
Var
NombreVariable = tipo de dato; Nota:
Todas las variables de un
Ejemplo:
programa Pascal deben ser
Var
declaradas antes de ser
Edad: integer;
utilizadas

Haydeé Méndez Progra 1 32


Ejemplo
program esfera:
Escribir un uses
programa en crt;
var
Pascal que calcule radio, esfera: real;
el volumen de begin
clrscr;
una esfera: writeln (este programa calcula el volumen de una esfera’);
Fórmula: write ('para calcular el volumen de la esfera escriba el radio: ')
readln (radio);
volumen := (4/3) * 3.1416 * (radio * radio * radio);
write ('el volumen de la esfera es:');
write(volumen:5:2);
readln;
end.

Haydeé Méndez Progra 1 33


Sentencias

Describen las acciones algorítmicas que pueden ser


ejecutadas.
Clasificación general

Ejecutables No ejecutables
No realizan acciones
Especifican operaciones concretas, ayudan a la
de cálculos aritméticos y legibilidad del programa
entradas/salidas de datos pero no afectan la
ejecución
Haydeé Méndez Progra 1 34
Sentencias
Clasificación según tipo y número
Simples Estructuradas
Sentencias compuestas de otras
No contiene ninguna otra sentencia
sentencias que se ejecutan en secuencia
Compuestas
Asignación Procedure goto
Condicional
Especiales:
Repetitiva
Contador
With
Acumulador
Haydeé Méndez Progra 1 35
Sentencia de Asignación
Se utiliza para asignar (almacenar) valores o variables. Es una
operación que sitúa un valor determinado en una posición de
memoria.
El operador de asignación utilizado es :=
Sintáxis: Variable := expresión
En donde el valor de expresión se asigna a la variable. El tipo de
expresión debe ser del mismo tipo que el de la variable.
Ejemplos:
A := 16; {16 se asigna a la variable A}
N1 := N1 + 5; {el valor de N1 se incrementa en 5}
Haydeé Méndez Progra 1 36
Sentencia de Asignación
Reglas:
Una variable en el lado derecho de una sentencia de asignación debe
tener un valor antes de que la sentencia de asignación se ejecute.
Y := x + 1; {si x no tiene valor se produce un error lógico}
En la izquierda de una sentencia de asignación sólo pueden existir
variables.
SalBruto – Desc := 34015; {produce error}
El símbolo de igualdad “=“, solo se utiliza para operaciones matemáticas
lógicas de igualdad, nunca de asignación.
If precio = 20
then write (‘correcto’);
Haydeé Méndez Progra 1 37
Sentencia de Asignación
La operación de asignación es una operación destructiva, debido
a que el valor almacenado en una variable se pierde o destruye y
se sustituye por el nuevo valor en la sentencia de asignación.
Ejemplo:
A := 16;
A:= –25;
A:= 10;
Los valores 16 y –25 de la variable A se han destruido
sucesivamente y ha tomado finalmente el valor de 10.

Haydeé Méndez Progra 1 38


Operaciones de Asignación Especiales
Contador: variable que se incrementa cuando se ejecuta
en una unidad o en una cantidad constante.
Ejemplo: Contador := 25;
Contador := contador + 1;
1 es una constante
Acumulador: variable que se incrementa en una cantidad
variable
Ejemplo: Suma := suma + x;
x es una variable
Haydeé Méndez Progra 1 39
Expresiones
Conjunto de datos o funciones unidos por operadores
aritméticos.
Una expresión está formada por constantes, variables,
funciones aplicada a una expresión, o una operación entre
expresiones.
Las operaciones se aplican según la precedencia y
asociatividad (izqda → dcha)
Las funciones se aplican a sus parámetros entre paréntesis

Haydeé Méndez Progra 1 40


Operadores Aritméticos

Pueden ser utilizados con tipos enteros o reales.


Operador Significado Ejemplo Resultado
+ Suma a+b Suma de a y b
- Resta a-b Diferencia de a y b
* Multiplicación a*b Producto de a por b
/ División a/b Cociente de a por b
div División entera a div b Cociente entero de a por b
mod Módulo a mod b Resto de a por b
shl Desplazamiento a izquierda a shl b Desplazar a izquierda b bits
shr Desplazamiento a derecha a shr b Desplazar a derecha b bits

Haydeé Méndez Progra 1 41


Operadores Aritméticos
El operador (/) produce un 7 / 2 = 3.5
resultado real con independencia 7.0 / 2 = 3.5
del tipo de operando 7 / 2.0 = 3.5 72
7.0 / 2.0 = 3.5 6 3 Div
Los operadores div y mod solo
se pueden utilizar con números 1 Mod
enteros
Div calcula el cociente entero de Operando div operando
la división de dos números enteros 7 div 2 = 3
Mod calcula el resto de dicha Operando mod operando
división 7 mod 2 = 1
Haydeé Méndez Progra 1 42
Precedencia de Operadores

Evaluación de las expresiones, de izquierda a derecha.

Operadores Categoría Nivel de Precedencia


() Paréntesis 1 (máximo)
Not Negación 2
*, /, div, mod, and Multiplicativos 3
+, -, or Aditivos 4
=, <>, <, <=, >, >= Relacionales 5 (mínimo)

Haydeé Méndez Progra 1 43


Escritura de Fórmulas
En pascal las fórmulas matemáticas se deben escribir en
formato lineal. Esto obliga al uso frecuente de paréntesis que
indiquen el orden de evaluación correcto de los operadores.
Fórmulas Matemáticas Expresión Pascal

Haydeé Méndez Progra 1 44


Operaciones Entrada/Salida
Los datos se pueden almacenar en memoria de tres formas
diferentes:
Asociados con constantes
Asignados a una variable con una sentencia de asignación
Una sentencia de lectura
En Pascal todas las operaciones de entrada/salida se
realizan ejecutando unidades de programa especiales
denominadas procedimientos de entrada/salida que forma
parte del compilador de Pascal y sus nombres son
identificadores estándar
Haydeé Méndez Progra 1 45
Método sentencia de lectura

Es el más indicado si se desea manipular diferentes datos


cada vez que se ejecuta el problema.
La lectura de datos permite asignar valores desde
dispositivos hasta archivos externos (teclado, unidad de
disco), en memoria se denomina operación de entrada o
lectura.
A medida que se realizan cálculos en un programa, se
necesitan visualizar los resultados, esta operación se
conoce como operación de salida o de escritura.

Haydeé Méndez Progra 1 46


Escritura de Resultados (salida)
La salida toma información de la memoria y la sitúa
(almacena) en la pantalla, en un dispositivo de
almacenamiento (disco duro o flexible), o en un puerto de
E/S ()puertos serie para comunicaciones o impresoras,
normalmente paralelos.
Visualizan información en la pantalla.
Procedimientos de escritura:
WriteLn
Write

Haydeé Méndez Progra 1 47


Procedimientos WriteLn
Se visualizan todos los elementos en el orden dado y en la
misma línea, al terminar, el cursor avanza al inicio de la
siguiente línea.
Ejemplo Produce
Es valido el operador de
writeLn (num1, num2); 33157
concatenación (unión) +. writeLn (num3); 909
Si se escribe sin ningún item writeLn (num1); 331
writeLn;
en su sintaxis, proporciona writeLn (num2); 57
saltos o avances de línea writeLn (‘15’ + ‘20’); 1520
(línea en blanco).
Haydeé Méndez Progra 1 48
Procedimientos Write
Deja el cursor después del último elemento en la misma
línea.
Los números reales se visualizan en notación exponencial,
si no existe un formato definido por el usuario.
Ejemplo Produce
write (‘El total es: ‘); El total es: 388
write (total);
write (‘El total es ‘, total); El total es 388

Haydeé Méndez Progra 1 49


Formatos de Salida

Pascal visualiza los números reales en notación científica.


Permite controlar, en cierta medida, las instrucciones de
salida que presentan resultados.
Es posible especificar el número de posiciones del campo
de escritura.
Para los reales es posible precisar el número de decimales
deseado.
Se pueden utilizar especificadores de formato de campo
para definir dicha anchura.
Haydeé Méndez Progra 1 50
Formatos de Salida
Formato 1:
Anchura: expresión entera (literal, constante, variable o llamada a función) que
especifica la anchura total del campo en que se escribe ítem.
Formato 2:
Dígitos: dígitos decimales de un número real.
Anchura: total de dígitos del número real contado parte entera, punto decimal
y dígitos decimales.
No. Formato Ejemplo Produce
1 writeLn (ítem:anchura…); writeLn (X:8) 14
2 writeLn (ítem:anchura:dígitos…); writeLn (X:8:4); 5.2650
2 writeLn (ítem:anchura:dígitos…); writeLn (X:8:2); 5.26

Haydeé Méndez Progra 1 51


Formatos de Salida
Formato Cadenas:
Se imprime justificando a la derecha en su campo.
Espacios en blanco preceden a una cadena si el campo en que se imprime
es mayor que la cadena.
Si el ancho del campo es demasiado pequeño para contener un valor
cadena, solo los primeros caracteres de la anchura de campo se visualizan.
Cadena Formato Salida
Cadena Formato Salida ‘MUSA’ :1 M
‘*’ :1 * ‘MUSA’ :2 MU
‘MUSA’ :3 MUS
‘*’ :2 *
‘MUSA’ :4 MUSA
‘*’ :3 * ‘MUSA’ :5 MUSA

Haydeé Méndez Progra 1 52


Impresión de Resultados (salida a impresora)

Se obtiene mediante procedimientos write y writeLn. Declarar en uses la


unidad Printer que define un archivo llamado Lst y asocia este archivo al
puerto de comunicaciones LPT1 (impresora) del DOS. Ejemplo:
Uses
printer
Para agregar salto de página, declarar:
Var
Const
Plumas : integer;
pagina = #12;
PrecUnd : logint;
writeLn (LST, pagina);
Begin
Plumas : integer;
PrecUnd : longint;
Este programa imprime: write (Lst, ‘el precio de ‘,Plumas);
writeLn (Lst, ‘plumas es ’, Plumas * PrecUnd);
El precio de 50 plumas es 90000
End.
Haydeé Méndez Progra 1 53
Entrada de Datos (lectura)
Aplica a una operación de entrada de valores provenientes de
un periférico (teclado, disco, o una línea que conecte la
computadora a otro dispositivo) y dirigidos hacia zonas de
memoria.
Permite proporcionar datos durante la ejecución de un
programa.
Los datos que se pueden leer son: enteros, reales, caracteres o cadena.
No se puede leer un boolean o un elemento de tipo enumerado.
Los datos estructurados, arrays, registros o conjuntos, no se pueden leer
globalmente y se suele recurrir a diseñar procedimientos específicos.

Haydeé Méndez Progra 1 54


Procedimientos de Lectura
Read: después de pulsar la tecla intro, el cursor permanece
inmediatamente después del último carácter indroducido.
ReadLn: después de pulsar la tecla intro, el cursor se envía al
principio de la siguiente línea.
La entrada de datos desde el teclado se hace un valor cada
vez. Las instrucciones ReadLn y Read esperan hasta que se
pulsa la tecla intro (return o enter) anates de asignar un valor a
la variable.
Formato: Read (var1, var2, …);
ReadLn (var1, var2, …);
Haydeé Méndez Progra 1 55
Uses
♣Uso de unidades:
♠ Son bloques de código que proporcionan funciones y
procedimientos que TURBO PASCAL trae incluidas en el archivo
TURBO.TPL (Turbo Pascal Libraries), siempre se invocan
precedidas por la palabra reservada Uses.
♣Ejemplo:
♠ Uses
Ventaja:
crt;
Reutilización
de código
Haydeé Méndez Progra 1 56
Listado de Unidades Estándar
Unidad Descripción
Crt (catode ray provee rutinas de control sobre el modo de la pantalla, códigos extendidos de
tube) teclado, colores, ventanas y sonidos
brinda las rutinas necesarias para interactuar con el sistema operativo DOS
Dos permitiendo tomar desde la hora o fecha del sistema hasta ejecutar programas o
comandos

Graph permite hacer desde una simple línea o un círculo hasta una simulación
matemática o un videojuego
permite imprimir líneas y archivos de tipo texto, si se quieren imprimir gráficos
Printer hay que recurrir a una serie de truquitos
System procedimientos y funciones de entrada/salida, cadena de caracteres, cálculos en
coma flotante, gestión de memoria, etc.
Otras definidas por el usuario

Haydeé Méndez Progra 1 57


Operaciones básicas de utilidad
Las unidades estándar incorporan un gran número de
utilidades (rutinas o procedimientos), órdenes a la
computadora, que facilitan la labor del programador.
Utilidades básicas de uso frecuente:
ClrScr: limpieza o borrado de la pantalla
GotoXY: movimiento del cursor

Haydeé Méndez Progra 1 58


ClrScr
Procedimiento
perteneciente a la unidad Program borrar;
Crt. Uses
La orden (procedimiento) Crt;
ClrScr borra (limpia) la Var
pantalla (ventana actual) y Longitud, anchura: real;
sitúa el cursor en la esquina Begin
superior izquierda: 1.1. ClrScr; {borrado de la pantalla}
Formato: .
End.
ClrScr;
Haydeé Méndez Progra 1 59
GotoXY
Procedimiento perteneciente a la unidad Crt.
La orden (procedimiento) GotoXY
Program cursor;
mueve el cursor a la posición x,y, Uses
donde x es la columna (contando Crt;
de izquierda - derecha) e y es la Begin
fila (contando de arriba - abajo) ClrScr;
Formato: GotoXY (10,15);
write (‘x’); {visualiza una x en
GotoXY (x,y);
la fila 15, columna 10}
x,y columna, fila: de tipo integer, End.
byte, word, longint o shortint.
Haydeé Méndez Progra 1 60
Medición de tiempos
El SO DOS permite fijar o establecer la hora de la
computadora, así como conocer la misma en cualquier
momento, se puede programar el reloj interno.
Órdenes o procedimientos que permiten estas
operaciones:
GetTime: leer la hora del reloj de la computadora
SetTime: poner en hora el reloj de la computadora
GetDate: leer la fecha de la computadora
SetDate: poner la fecha de la computadora

Haydeé Méndez Progra 1 61


GetTime
Procedimiento perteneciente a la unidad Dos.
Program tiempo;
Devuelve la hora actual
Uses
del sistema operativo
Dos;
(de su máquina).
Begin
Formato: ClrScr;
GetTime (horas, minutos, .
segundos, centésimas); GetTime (h, m, s, cs);
Horas: 0..23 writeLn (‘hora actual: ’,h,‘ ‘,m,’ ‘,s,’
Minutos, segundos: 0..59 ‘,cs:2);
Centésimas: 0..99 End.
Haydeé Méndez Progra 1 62
SetTime
Procedimiento perteneciente a la unidad Dos.
Pone en hora el sistema, Program tiempo;
mediante el uso de Uses
valores en sus Dos;
parámetros. Begin
Formato: ClrScr;
SetTime (horas, minutos, .
segundos, centésimas); SetTime (h, m, s, cs);
Horas: 0..23
writeLn (‘hora actual: ‘,h,‘ ‘,m,’ ‘,s,’
Minutos, segundos: 0..59 ‘,cs:2);
Centésimas: 0..99
End.
Haydeé Méndez Progra 1 63
GetDate

Procedimiento perteneciente a la unidad Dos.


Devuelve la fecha actual del sistema operativo (de su
máquina).
Formato:
GetDate (Año, Mes, Día, DíaSemana);
Año: 1980..2099
Mes: 1..12
Día: 1..31
DíaSemana: 0..6

Haydeé Méndez Progra 1 64


SetDate

Procedimiento perteneciente a la unidad Dos.


Establece la fecha actual del sistema operativo (de su
máquina).
Formato:
SetDate (Año, Mes, Día);
Año: 1980..2099
Mes: 1..12
Día: 1..31

Haydeé Méndez Progra 1 65


Programación interactiva

Funcionamiento de
una computadora

Interactivo Por lotes (batch)

El usuario del
programa interactúa
con el programa e
introduce datos en
ejecución

Haydeé Méndez Progra 1 66


Estilo de programación – reglas
Sangrado Líneas de programa
Indentación en bloques y unidades de El editor permite líneas de hasta 126 caracteres de
programas fundamentales. longitud, en pantalla se ven 80

Comentarios Separadores
Texto explicativo situado en el programa e Alinear operaciones en líneas consecutivas
ignorado por el computador (* *), { }. cuando tienen mismo operador o separador

Identificadores Blancos
Elegir nombres significativos para var, const, Poner un espacio no significativo en cada lado
nombres de programa y subprograma de un operador.

Puntos y comas Otras reglas


Evitarlos antes de end y until, suprimir, afectan Sentencias y palabras reservadas en líneas
el funcionamiento del programa. distintas, espacios entre elementos de sentencias

Haydeé Méndez Progra 1 67


Ejemplo
program proyectil;
Escribir un programa en uses
Pascal que calcule la var
crt;

velocidad de un espacio, tiempo, proyectil: real;


begin
proyectil: clrscr;
Recorre 2 Km en 5 writeln (este programa calcula la velocidad de un proyectil’);
writeln;
minutos write ('escriba el espacio recorrido: ');
Expresar el resultado en readln (espacio)
write ('escriba el tiempo transcurrido: ');
metros/segundo (m/s) readln (tiempo);
writeln;
velocidad := (espacio*1000) / (tiempo*60);
writeln (‘la velocidad del proyectil es: ‘,velocidad:5:2,’ m/s’);
readln;
end;
Haydeé Méndez Progra 1 68
Tarea 2 – Capítulo 3
Guarde el archivo con sus apellidos, letra inicial mayúscula, sin
tildes, por ejemplo: LopezPerezT1.pas
Debe desplegar en ejecución su nombre: Primer Nombre, Primer
Apellido, por ejemplo: Elena Lopez.
Empacar el archivo generado .pas y subirlo a GES.
Un alumno desea saber cual será su calificación final en la materia
de Algoritmos. Dicha calificación se compone de los siguientes
porcentajes:
40% del promedio de sus dos calificaciones parciales.
40% de la calificación del examen final.
20% de la calificación de tareas.
Haydeé Méndez Progra 1 69

También podría gustarte