You are on page 1of 14

Ing.

Computacion

Pascal
Fue desarrollado por el profesor suizo Nicklaus Wirth, en el ao de 1968 sali una versin preliminar; pero fue sino hasta a finales de 1970 cuando sali el compilador completo. En principio, Pascal fue pensado para que los estudiantes aprendiesen a programar de forma estructurada, aunque esta muy poco desarrollado para facilitar la compilacin pero es muy usado por la mayora de los estudiantes a pesar de que Pascal ofreca unas normas complicadas para su programacin. Pascal admite los siguientes tipos de Datos: Tipos de datos Lgico: Boolean (True/False).- solo puede tener 2 variables verdadero o falso Tipos de datos Numricos: o Byte.-El valor de una variable de este tipo oscila entre 0 y 255. o Integer.- Su rango est entre MAXINT y MAXINT1, y siempre dentro de los nmeros enteros. o LongInt.-Funciona igual que los datos de tipo Integer pero con mayor rango. Este abarca desde el nmero -2.147.483.648 al +2.147.483.647. o ShortInt.-Son enteros cortos, su rango abarca del -127 al +128. o Real.-Estos datos comprenden los nmeros reales, su rango oscila entre 2.9E-39 y 1.7E+38. o Word.- es como un tipo de byte largo. Su rango oscila entre 0 y 65.535. tambin son enteros. o Doubl.-un nuevo tipo de datos reales ms amplios. Su rango se encuentra entre 5.0E-324 y 1.7E+308. o Extended.- es el tipo de datos que aade ms potencia al sistema. Su enorme rango de actuacin oscila entre 3.4E-1932 y 1.1E+4932. o Single.- Tiene un rango comprendido entre 1.5E-45 y 3.4E+38. Es muy poco usado ps se diferencia muy poco del Real. o Comp.- -9.2E18 a 9.2E18. Es el rango de este ltimo de tipo de datos reales. Tipos de datos Carcter: o Char.- Es un dato que solo admite un carcter. o String.- Es un tipo de dato que admite ms de un carcter, pero como mximo 255. Y sus datos se indican entre comillas. Tipos de datos Especiales: o Enumerados. o Subrango.- Estos funcionan seleccionando una parte de un tipo de datos.

Roberto Avia Ruiz

Pgina 1

Ing. Computacion

Roberto Avia Ruiz

Pgina 2

Ing. Computacion

Declaracin De Variables
Las constantes se declaran justo despus de las constantes. Para ello se escribe el identificador Var, y a continuacin la lista de variables que sern utilizadas por el programa. EJ. Var <Nombre > : <Tipo>;

Que es una expresin en pascal?


Una expresin es un conjunto de datos o funciones unidos por operadores aritmticos. La siguiente tabla recoge los operadores aritmticos soportados por Pascal que permiten realizar operaciones en expresiones aritmticas: Operador + * / Div Mod Shl Shr Significado Suma Resta Multiplicacin Divisin Divisin Entera Modulo Desplazamiento a Izquierda Desplazamiento a derecha Ejemplo A+B AB A*B A/B A div B A mod B A shl B A shr B Resultado Suma de a y b Diferencia de a y b Producto de a por b Cociente de a por b Cociente entero de a por b Resto de a por b Desplazar a izquierda b bits Desplazar a derecha b bits

Como se utiliza una expresin en pascal?

Roberto Avia Ruiz

Pgina 3

Ing. Computacion

Estructura de un programa en Pascal


Un programa en PASCAL se caracteriza por tener las siguientes partes que definen su estructura:

PROGRAM <Identificador> ; { Zona de Encabezamiento } USES <declaracin de unidades>; LABEL<declaracin de etiquetas> CONST <definicin de constantes> TYPE <declaracin de tipos> VAR <Declaracin de variables> < Declaracin del procedimiento> <Declaracin de la funcin> BEGIN clrscr ...... { cuerpo del programa } { Instrucciones del Programa } ...... END.

Roberto Avia Ruiz

Pgina 4

Ing. Computacion

Sentencias de control en Pascal


SENTENCIA CONCEPTO FUNCION SINTAXIS La sentencia if-then, if {condicin} then ejecuta instrucciones {sentencia en el caso slo si se cumple una verdadero}; condicin. Si la condicin es falsa, no se hace nada. EJEMPLO Read(nota); if nota >= 60 then WriteLn('Felicitaciones'); DIAGRAMA

if-then

if-then-else

La sentencia if-then-else, if {condicin} then decide qu instrucciones {sentencia en el caso ejecutar dependiendo si verdadero} una condicin es else verdadera o falsa. {sentencia en el caso falso};

Read(year); if (year mod 4 = 0) and ((year mod 100 <> 0) or (year mod 400 = 0)) then WriteLn(year, ' tiene ', 366, ' dias') else WriteLn(year, ' tiene ', 365, ' dias');

Roberto Avia Ruiz

Pgina 5

Ing. Computacion

case-of

La sentencia case-of, decide qu instrucciones ejecutar dependiendo del valor de una expresin. Es una manera abreviada de escribir varios ifs uno despus del otro.

case {expresin} do {valor1}: {sentencia}; {valor2}: {sentencia}; ... end while {condicin} do {sentencia};

Read(n); case n mod 2 of 0: WriteLn('par'); 1: WriteLn('impar'); end; Read(n); while n > 1 do begin if n mod 2 = 0 then n := n div 2 else n := 3 * n + 1; WriteLn(n); end;

N/A

El ciclo while (mientras) ejecuta una secuencia de while instrucciones mientras una condicin sea verdadera.

Roberto Avia Ruiz

Pgina 6

Ing. Computacion

repeat-until

El ciclo repeat-until, ejecuta una secuencia de instrucciones hasta que se cumpla la condicin de trmino.

repeat {sentencia}; until {condicin};

for

El ciclo for, ejecuta una secuencia de instrucciones un nmero predeterminado de veces. Un ciclo for utiliza una variable de control que toma diferentes valores en cada iteracin.

for {variable} := {valor inicial} to {valor final} do {sentencia};

suma := 0; for i := 1 to 10 do suma := suma + i;

Roberto Avia Ruiz

Pgina 7

Ing. Computacion

Arreglos
El arreglo es un tipo estructurado de datos, y representa, en un ambiente de programacin, a las entidades matemticas denominadas vectores y matrices. Sin lugar a dudas, es la estructura de datos ms empleada por los programadores; y en algunos lenguajes de programacin suele ser la nica estructura explicita disponible. Se entiende por estructura de datos, la accin de agrupar elementos primitivos en cierta forma. La forma ms simple es agrupar componentes de igual tipo y asociarle un nmero de orden a cada componente; este es el caso del arreglo.

Arreglos unidimensionales
En Pascal puede anotarse, la definicin del nuevo tipo A segn: type A = array [I] of C; I se denomina tipo del ndice, y debe ser un tipo ordinal. C es el tipo del contenido, o de las componentes. Tambin suele llamarse tipo base. Importa insistir en que todas las componentes deben ser de igual tipo. El tipo estructurado A queda completamente definido, si estn previamente definidos los tipos I y C. Es preciso definir como denotar, o accesar, a una componente del arreglo. Una visin esquemtica til del arreglo es la siguiente, asumiendo declarada una variable vector v de tipo A. var v:A

Es decir, visualizar un objeto de tipo A como un vector rengln. Para denotar la componente de orden j se emplea el nombre de la variable, y luego encerrado entre parntesis cuadrados el ndice j.

Ejemplos de Definicin de tipo arreglo.


Type vector = array [1...10] of real; Bitvector = array [1...32] of boolean; Linea = array [1...80] of char; Tabla = array [1...n] of integer; Roberto Avia Ruiz Pgina 8

Ing. Computacion

Arreglos Bidimensionales
Si en el arreglo unidimensional o vector, definido antes, se escogen las componentes tal que stas, a su vez, sean de tipo arreglo unidimensional se tendr: type matriz = array [R] of array [C] of T; Donde R es dominio de los renglones y C el dominio de las columnas. T es el tipo de las componentes o tipo base. Con: var m : matriz; Se tendr que una componente puede anotarse: m[i][j] Para simplificar la notacin se acepta: Type matriz = array [R, C] of T; Y puede accesarse a una componente segn: m[i,j] Ejemplo: Dos matrices, m y n, de 100 por 100 de valores enteros puede declararse: const dimension = 100; type matriz = array [1..dimension,1..dimension] of integer; var m, n: matriz;

Roberto Avia Ruiz

Pgina 9

Ing. Computacion

Arreglos Multidimensionales
Pueden definirse segn: Type M = array [T1,T2,...TN] of T; Donde: T1 a TN son los tipos de los ndices. T es el tipo base. En general: <tipo arreglo>::= 'array [' {<tipo ordinal>* ',' } '] of' <tipo base> Ejemplo: Sean las declaraciones: a: array [1..3] of T; b: array [1..2] of a; Se puede interpretar grficamente las estructuras, segn:

De esta forma pueden verse los arreglos multidimensionales como rboles. Para el caso de matrices, puede representarse como es tradicional, segn:

Roberto Avia Ruiz

Pgina 10

Ing. Computacion

Arreglos Estticos
Es importante destacar que los arreglos en Pascal son estructuras estticas; es decir, el nmero de sus componentes queda determinado en el momento en que el programa es traducido a lenguaje de mquina. Esto est de acuerdo con la estrategia de diseo de Pascal, de que todos los tipos deben estar completamente especificados en el momento de la compilacin. Esto produce dificultades cuando se desea trabajar con arreglos de largo variable. En estos casos suele definirse un espacio igual al mayor largo que se desee manipular; con la consiguiente mala utilizacin de memoria para los casos en que el largo sea menor que el definido. Si el largo variable mximo no es conocido, no podr usarse esta estructura; y quiz convendra emplear un lenguaje que admitiera arreglos dinmicos. Por esta razn los valores mximos de los ndices suelen definirse como constantes. Si se tiene un programa funcionando con una determinada dimensin para un arreglo, y si se desea modificar la dimensin, deber modificarse la constante que establece la mxima dimensin, y volver a compilar.

Roberto Avia Ruiz

Pgina 11

Ing. Computacion

Programas de Ejemplo
Programa 1. Programa que pide los datos personales y los muestra al centro de la pantalla:
Program Datos_Personales; Uses dos,crt; Var nom,ape,car,fec:string; tel,cod:Integer; begin clrscr; writeln(Dame tu nombre); read(nom); writeln(Dame tu apellido); read(ape); writeln(Dame tu carrera); read(car); writeln(Dame tu codigo); read(cod); writeln(Dame tu fecha de nacimiento); read(fec); writeln(Dame tu numero de telefono); read(tel); clrscr; gotoxy(15,1);writeln(tu nombre es: ,nom, ,ape); gotoxy(15,1);writeln(estudias ,car, y tu cdigo es: ,cod); gotoxy(15,1);writeln(tu fecha de nacimiento es: ,fec); gotoxy(15,1);writeln(tu telefono es: ,tel); readkey;

Roberto Avia Ruiz

end.

Pgina 12

Ing. Computacion

Programa 2. Programa que realiza las 4 operaciones bsicas:

Program Operaciones_Basicas; Uses dos,crt; Var A,b,sum,res,divi,mul:Integer; begin clrscr; writeln(Dame el primer valor); read(a); writeln(Dame el Segundo valor); read(b); sum:=a+b; res:=a-b; divi:=a/b; mul:=a*b; clrscr; gotoxy(15,1);writeln(el resultado de la suma es: ,sum:2:2); gotoxy(15,2);writeln(el resultado de la resta es: ,res:2:2); gotoxy(15,3);writeln(el resultado de la division es: ,divi:2:2); gotoxy(15,4);writeln(el resultado de la multiplicaion es: ,mul:2:2); readkey; end.

Roberto Avia Ruiz

Pgina 13

Ing. Computacion

Bibliografas
http://www2.elo.utfsm.cl/~lsb/pascal/clases/cap17.pdf http://csrg.inf.utfsm.cl/~rbonvall/progra-utfsm-2010-1/sentenciascontrol.html http://pdf.rincondelvago.com/pascal_2.html

PROGRAMACION EN TURBO BORLAND PASCAL 7 AUTOR: LUIS JOYANES AGUILAR 3 EDICION DOMINE TURBO PASCAL PARA WINDOWS AUTOR: F.PASCUAL GONZALES

Roberto Avia Ruiz

Pgina 14