domingo, 7 de noviembre de 2010

LENGUAJES IMPERATIVOS - Generalidades PASCAL

Laboratorio de Lenguajes de Programación - Semana 8

Pascal es un lenguaje de programación desarrollado por el profesor suizo Niklaus Wirth entre los años 1968/9 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos. Sin embargo con el tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación de aplicaciones de todo tipo.

Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipificado. Esto implica que:

1. El código está dividido en porciones fácilmente legibles llamadas funciones o procedimientos. De esta forma Pascal facilita la utilización de la programación estructurada en oposición al antiguo estilo de programación monolítica.
2. El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado.

El nombre de Pascal fue escogido en honor al matemático Blaise Pascal.

A diferencia de lenguajes de programación descendientes de C, Pascal utiliza el símbolo ":=" para la asignación en vez de "=". Si bien el segundo es más conocido, la práctica ha demostrado que muchos usuarios utilizan el símbolo de igualdad para comparar valores en lugar del comparador de C que es el símbolo ==. Esta sintaxis conduce a muchos errores o bugs difíciles de rastrear en código C. Dado que Pascal no permite asignaciones dentro de expresiones y utiliza sintaxis distintas para asignaciones y comparaciones, no sufre estos errores.

FUENTE: http://es.wikipedia.org/wiki/Pascal_%28lenguaje_de_programaci%C3%B3n%29


COMPILADOR

Pascal necesita un compilador para generar ejecutables útiles, asi que lo primero que vamos a hacer es instalarlo.
Primero abrimos nuestra terminal, para escribir la siguiente orden:

sudo apt-get install fp-compiler


Nos aparecera en la terminal un mensaje de confirmación, aceptamos y dejamos que prosiga la instalación.

Una vez terminados todos los procesos podemos teclear fpc para llamar al compilador, nos saldrán varias pantallas con información del compilador (dando varias veces ENTER salimos).
La extension de los archivos fuente escritos en Pascal es *.pas


VARIABLES Y DATOS

La asignación de unidades de memoria para el ejecución del programa se realiza con la declaración de variables, las cuales pueden ser lógicas, numericas, cadenas de caractéres.


la declaración de variables se hace con esta sintaxis:
var
   nom_var: type;


para inicializarlas se hace en el siguiente bloque con la sintaxis:
begin
   nom_var := value;


por ejemplo:
var
   i: Integer;
   s: String;
   b: Boolean;
 
begin
   i := -3;
   s := 'Hello';
   b := True;


Podemos realizar varias operaciones aritméticas con las variables declaradas:



por ejemplo en el siguiente programita:
program Ejemplo;
 
var
   X, Y, S, R, M, D: Integer;
 
begin
   X := 5;
   Y := 10
   S := X + Y;
   R := Y - X;
   M := X * Y;
   D := Y / X;
end.

(se que falta imprimir resultados, es solo ejemplo)

Las constantes de declaran con la siguiente sintaxis, dentro de su propio bloque de datos:
const
   nom_const: Type = value;


Por ejemplo:
const
   pi: Real = 3.14;


ENTRADA Y SALIDA DE DATOS

Para leer datos desde el teclado se utilizan las funciones Readln y ReadKey, ReadKey lee un solo caractér, mientras que Readln lee numeros y cadenas de caractéres, ambos funcionan de distinta forma:
program Ejemplo2;
 
uses crt;
 
var
   i: Integer;
   s: String;
   c: Char;
 
begin
   Readln(i);
   Readln(s);
   c := ReadKey;
end.


Para imprimir mensajes en pantalla o los resultados de una operación se utilizan la funciones Writeln() y Write() , lo que se imprime va dentro del paréntesis, y cada dato se separa por comas, por ejemplo:
program Ejemplo3;
 
var
   i: Integer;
   s: String;
begin
   i := 24;
   s := 'Hello';
   Writeln(i);
   Writeln(s,' world');
end. 


SECUENCIAS DE CONTROL



CICLO IF... ELSE
program Si o no;
 
var
   i: Integer;
 
begin
   Writeln('Dame un valor');
   Readln(i);
   if i > 5 then
      Writeln('Mayor que 5')
   else
      Writeln('Menor que 5');
end. 


DECISIONES "CASE"
program Decisiones;
 
uses
   crt;
 
var
   Choice: Char;
 
begin
   Writeln('Elige la que mas te gusta');
   Writeln('a - Manzana:');
   Writeln('b - Platano:');
   Writeln('c - Zanahoria:');
   Choice := ReadKey;
   case Choice of
      'a': Writeln('Te gustan las manzanas');
      'b': Writeln('Te gustan los platanos');
      'c': Writeln('Te gustan las zanahorias');
   else
      Writeln('No te gusta nada de aqui');
   end;
end. 

CICLO FOR
program ciclo;
 
var
   i: Integer;
 
begin
   for i := 1 to 10 do
      Writeln('Hola, otra vez!!!');
end. 

CICLO WHILE
program Ciclos2;
 
var
   i: Integer;
 
begin
   i := 0;
   while i <= 10
      begin
         i := i + 1;
         Writeln('Hola, una vez mas.');
      end;
end. 

CICLO WHILE... UNTIL...
program Ciclos3;
 
var
   i: Integer;
   s: String;
 
begin
   i := 0;
   repeat
      i := i + 1;
      Write('Dame un valor: ');
      Readln(s);
   until (i = 10) or (s = 0);
end. 


EJEMPLO

Para terminar, teclearemos un ejemplo donde les mostrare la sintaxis de Pascal y practicaremos lo aprendido.
Un programa que me calcule el área de diversas figuras geometricas.
Abirmos la terminal y tecleamos:

emacs -nw areas.pas

Acto seguido, tecleamos el siguiente codigo:
program areas;

uses
   crt;

const
   pi: Real = 3.14159;
 
var
   Choice     : Char;
   X, Y, Area : Real;
   
begin
   Area := 0;
   Writeln('Calcular el area de: ');
   Writeln('a - Cuadrado');
   Writeln('b - Circulo');
   Writeln('c - Triangulo');
   Choice := ReadKey;
   case Choice of
     'a' : begin
         Writeln('Dame la longitud del lado');
         Readln(X);
         Area := X*X;
         Writeln('El area del cuadrado es: ', Area);
     end;   
     'b' : begin
         Writeln('Dame la longitud del radio');
         Readln(X);
         Area := pi*X*X;
         Writeln('El area del circulo es: ', Area);
     end;
     'c' : begin
         Writeln('Dame la longitud de la base');
         Readln(X);
         Writeln('Dame la altura: ');
         Readln(Y);
         Area := (X * Y) / 2;
         Writeln('El area del triangulo es: ', Area);
     end;
   end; { case }
end.

Despues que lo escribimos, lo guardamos y lo compilamos con la orden:

fpc areas.pas

Se generarán 2 archivos, un archivo objeto *.o y un ejecutable sin extensión "areas", para correrlo tecleamos: ./areas


Espero les haya gustado la entrada, en la seccion Recursos les deje el tutorial correspondiente a este lenguaje, donde ademas podran aprender como declarar arreglos, estructuras, punteros, etc.

SALUDOS!!! ^_^

1 comentario: