Diferencia entre revisiones de «Programación en Pascal»

De Wikiversidad
Contenido eliminado Contenido añadido
Línea 321: Línea 321:


'''''Texto en negrita''[[
'''''Texto en negrita''[[

== Título del enlace ==
[[Imagen:[[Media:Ejemplo.jpg]]<math><nowiki>Escriba aquí una fórmula</nowiki>--~~~~
----
</math>]]]]'''== Selecciones: If y Case ==


== Procedimientos y funciones ==
== Procedimientos y funciones ==

Revisión del 02:24 23 jun 2008

Introducción

El lenguaje de programación Pascal fue desarrollado por el profesor suizo Niklaus Wirth a finales de los años 60. El objetivo de este lenguaje era facilitar el aprendizaje del lenguaje de la programación a sus alumnos.

Palabras reservadas

Algunas de las palabras reservadas en Pascal son:

Palabra Uso Palabra Uso
ABSOLUTE AND Conjunción lógica
ARRAY Definición de variables (arrays) ASM
BEGIN Inicio de procedimiento CASE Salto condicional SWITCH - CASE - END
CONST Definición de constantes CONSTRUCTOR
DESTRUCTOR EXTERNAL
DIV División entera DO Bucle FOR - TO/DOWNTO - DO - END
DOWNTO Bucle FOR - TO/DOWNTO - DO - END ELSE Salto condicional IF - THEN - ELSE - END
END Término de saltos condicionales y bucles FILE
FOR Bucle FOR - TO/DOWNTO - DO - END FORWARD
FUNCTION Definición de función GOTO Salto incondicional
IF Salto condicional IF - THEN - ELSE - END IMPLEMENTATION
IN Inclusión de conjuntos INLINE
INTERFACE INTERRUPT
LABEL MOD Resto de división entera
NIL NOT Negación lógica
OBJECT OF Definición de variables
OR Disyunción lógica inclusiva PACKED
PRIVATE PROCEDURE Definición de procedimiento
PROGRAM RECORD Definición de variables (registros)
REPEAT Bucle REPEAT - UNTIL SET Definición de variables (conjuntos)
SHL SHR
STRING THEN Salto condicional IF - THEN - ELSE - END
TO Bucle FOR - TO/DOWNTO - DO - END TYPE Definición de tipos
UNIT UNTIL Bucle REPEAT - UNTIL
USES VAR Definición de variables
VIRTUAL WHILE Bucle WHILE - DO - END
WITH XOR Disyunción lógica exclusiva

También pasarán a ser reservadas las palabras que usemos para llamar a procedimientos o funciones implementados por nosotros en el programa.

Instrucciones basicas

- Asignacion:

La asignacion se usa para dar valores a variables. La estructura de la instruccion es la siguiente:

a := b;

donde a y b se entienden que son variables correctamente definidas y del mismo tipo.

- Muestreo por pantalla:

Para poder imprimir datos por pantalla usaremos la instruccion write. Su estructura es:

write(a);

donde a es una variable con datos guardados previamente.

En caso de que deseemos imprimir por pantalla cierto texto, deberemos escribir:

write("Texto que desea mostrar");

- Rececpcion de valores

Para que el programa trabaje con datos introducidos por el usuario debemos usar la instruccion read. Su estructura es:

read (a);

donde a es una variable definida para recibir unos datos de un tipo determinado.

Si queremos recibir varios valores seguidos, sera:

read(a,b,c,...,n);

El usuario debera introducir los valores separados por espacio, o por intro.


Tambien tenemos la posibilidad de mostrar por pantalla (equivalentemente introducir datos) en lineas distintas. Para ello, usaremos la palabra reservada writeln (eq. readln):

program prueba;

begin
 writeln('Esto es una prueba de la instruccion writeln');
 writeln('Esta es la segunda linea de escritura');
end.

Y por pantalla se mostraria:

Esto es una prueba de la instruccion writeln
Esta es la segunda linea de escritura


- Comentarios

Los comentarios en nuestros programas seran de gran utilidad para poder aclarar la funcion de una variable, procedimiento, etc. En Pascal, tenemos dos maneras de crear comentarios: mediante el uso de "{" y "}" o "(*" y "*)". Todo lo que escribamos entre ambas partes, formara parte de los comentarios de nuestro programa y en ningun momento seran compilados.

Nuestro primer programa: Hello World

Estudiemos este sencillo codigo:

program helloWorld;

BEGIN
writeln("Hello World!");
END.

Todo programa en Pascal comenzara con una cabecera del estilo program seguido del nombre del programa. Este nombre no podra incluir numeros, signos o espacios para separar palabras.

Tras la cabecera, deberemos declarar los tipos, constantes, procedimientos, funciones y variables. Una vez hecho, comenzaremos el codigo de nuestro programa. Este debera comenzar con la palabra reservada begin.

Ahora escribiremos las instrucciones de nuestro programa. Todas las lineas deberan terminar con un punto y coma (;). Para indicar que hemos terminado con nuestro programa, escribiremos end. Destacar que tras el end, ira ".", no ";".

Ciclos iterativos: While, For y Repeat

- While

La instruccion while estudia primero la condicion y, en caso de que se cumpla, procedera a ejecutar la(s) instruccion(es) deseada(s).

Su estructura es:

while (condicion) do
 instruccion;

En caso de que haya mas de una instruccion a realizar, escribiremos:

while (condicion) do
 begin
  instrucciones;
 end;

- For


El ciclo for realiza la(s) instruccion(es) deseada(s) durante un numero de vueltas predeterminadas. Este numero de vueltas no podra ser modificado NUNCA dentro del bucle, por lo que debemos tener cuidado en no tocar la variable indice (la que controla el numero de vueltas). Un ejemplo:

program pruebaFor;
CONST
 N = 10; { numero de vueltas que dara el bucle}
VAR
 i: integer; { variable que contara el numero de vueltas que llevamos}
BEGIN
 for i:=1 to N do
  writeln(i);
END.

Y se mostraria por pantalla:

1
2
3
4
5
6
7
8
9
10

En caso de que tengamos que ejecutar mas instrucciones dentro del bucle, escribiriamos:

for (contador) do
 BEGIN
  instrucciones;
 END;

Un ejemplo de esto:

program pruebaForDos;
CONST
 N=10;
VAR
 i,j : integer; {Una nueva manera de declarar las variables. En caso de tener varias del mismo tipo,podemos separarlas por ","}
BEGIN
 j:=0;
 for i:=1 to N do
  begin
   writeln(i);
   j:=j+3;        {Con esta instruccion, a la variable j la sumamos durante N veces 3}
  end;
  write('j = ',j); {Cuando vamos a escribir varias cosas seguidas, podemos enviar la instruccion de esta manera}
END.

Y en pantalla se imprimiria:

1
2
3
4
5
6
7
8
9
10
j = 30

En los ciclos For, podemos seguir dos tipos de direccion. Ascendente (de 1 hasta N) o descendente (de N hasta 1). Esto lo deberemos indicar en el contador del siguiente modo (usaremos el ejemplo anterior):

Ascendente

for i:=1 TO N do
...

Descendente

for i:=N DOWNTO 1 do
...

- Repeat


El bucle Repeat realiza una serie de instrucciones y, una vez hechas, comprueba una condicion. En caso de cumplirse, no volvera a repetir dichas instrucciones, y en caso contrario las ejecutara. Su estructura es:

repeat
 instruccion(es);
until (condicion);

- Aclaraciones


Observese que los 3 ciclos, bien implementados, son equivalentes entre si.

Hay que tener especial cuidado en el ciclo que se desea usar: · Si se desea hacer un numero de vueltas FIJO, podemos usar cualquiera de los 3. · Si las vueltas dependen de una condicion que se modifica dentro del bucle, solo podemos usar los ciclos WHILE y REPEAT. · Si queremos comprobar una condicion antes de realizar ciertas instrucciones, debemos usar el WHILE.

Texto en negrita[[


Procedimientos y funciones