Está en la página 1de 9

Esquema de Programacin en Pascal

Estructuras (Registros)
Una estructura es una agrupacin de variables que hacen referencia a un mismo elemento y que por lo tanto es lgico que vayan todas juntas.

Por ejemplo, si queremos guardar los datos de una persona necesitaramos una serie de cadenas de texto para el nombre y los apellidos, otra para el DNI, un entero para la edad. Un long para el nmero de telfono.

En Pascal, esto sera: Type TipoPersona = RECORD Nombre : String[12]; Apellido1 : String[12]; Apellido2 : String[12]; DNI : String[9]; Edad : Integer; Telefono : LongInt; END;

Var Persona : TipoPersona;

Acceder a los campos de una estructura. Cuando queremos asignar valor u obtener el valor de las variables que estn dentro de la estructura se utiliza la siguiente notacin: Variable.nombreCampo

Ejemplo: Persona.Nombre := Luis ; Persona.Apellido : Perez ; Persona.Edad := 21; Writeln (Persona.Telefono);

Bucles
Repeticin un nmero finito de veces de un conjunto de instrucciones. El bucle termina cuando la condicin de parada se cumple. La condicin de parada es una variable de tipo booleano o una expresin de la que resulte un booleano (operaciones lgicas). Es importante recordar, que la condicin de parada debe ser actualizada dentro del bucle. Una condicin de parada mal definida, mal actualizada o no actualizada, puede dar lugar a un bucle infinito.

Bucles con nmero de iteraciones predefinidos

En el momento de escribir el programa, sabemos el nmero exacto de repeticiones que el bucle va a realizar. Son denominados bucles tipo for . Se utiliza una variable para llevar la cuenta de la repeticin en la que se est. Esta variable es conocida como ndice. FOR variable := inicio TO final DO action;

FOR variable := inicio DOWNTO final DO action;

Utilizando la partcula TO, el bucle se ejecutar mientras el valor de variable sea menor o igual que final . Y con la partcula DOWNTO, mientras sea mayor o igual. repeticiones := 10; FOR i := 0 TO repeticiones DO BEGIN writeln ( El ndice vale , i); i := i + 1; END;

Bucles sin nmero de iteraciones

No podemos saber al escribir el programa el nmero de repeticiones del bucle. Un ejemplo sera un bucle controlado por la opcin del usuario. El bucle no termina hasta que el usuario pulsa la tecla A y en cada iteracin se solicita que presione una tecla.

o Se ejecuta de 1 a n veces (Comprobacin al final)


Nos interesa que el contenido del bucle se ejecute por lo menos una vez. REPEAT accion1; accion2; UNTIL condicionParada;

Ejemplo: Var letra : char; ...

REPEAT write( Pulse una tecla, a para terminar ); readln(letra); writeln ( Pulso la tecla , letra); UNTIL letra = a ;

o Se ejecuta de 0 a n veces (Comprobacin al principio)


Segn el desarrollo del programa puede que no nos interese que se ejecute ese bucle:

WHILE condicioParada DO accion;

Ejemplo: Var error : boolean; numero : Integer;

...

error :=false; Randomize; WHILE error DO BEGIN write( Hola ); numero := Random(9); error := numero > 5; END;

Condicionales
Son instrucciones que evalan una condicin lgica (boolean) y en funcin del resultado ejecutan o no ejecutan una determinada porcin de cdigo.

Condicionales positivos.
Ejecutan una porcin de cdigo slo si la condicin evaluada es positiva. IF condicion THEN accion;

Ejemplo write ( Escribe un nmero de 1 a 10 );

readln (numero); IF numero = 10) THEN writeln ( Tu nmero es de dos cifras ); write ( Escribe un nmero de 2 a 20); ...

Condicionales dobles.
Ejecutan una porcin de cdigo si la condicin evaluada es positiva y otra porcin de cdigo distinta si la condicin es negativa. IF condicion THEN accion si positiva; ELSE accion si negativa;

Ejemplo write ( Escribe un nmero de 1 a 10 ); readln (numero); IF numero > 5) THEN writeln ( Tu nmero es mayor de 5 ); ELSE writeln ( Tu nmero es menor o igual de 5 ); write ( Escribe un nmero de 2 a 20); ...

Condicionales mltiples.
Son utilizadas para ejecutar distintas porciones de cdigo en funcin del valor de una variable de tipo Integer, Byte o Char. CASE variable OF valor1: accion; valor2: accion; ... ELSE accionElse; END;

La entrada ELSE no es obligatoria, pero si recomendada, ya que se ejecuta si variable no tiene ninguno de los valores definidos por valor1 , valor2 ..

Ejemplo write ( Escribe un nmero de 1 a 10 ); readln (numero); CASE numero OF 1 : writeln ( Ha escrito 1 ); 2 : BEGIN writeln ( Ha escrito 2 ); writeln ( Es un numero par); END; 3 : writeln ( Ha escrito 3 );

... 10 : writeln ( Ha escrito 10 ); ELSE writeln ( No es un valor correcto ); END;

Funciones y procedimientos
El objetivo de crear funciones (y procedimientos) es agrupar y generar mdulos que realizan una funcin muy concreta. Modularidad. Los argumentos son informacin que se le pasa a la funcin con la que realiza operaciones. Los argumentos se definen de la siguiente manera: nombreArgumento : tipo del argumento

FUNCTION Suma(a,b: Integer): Integer;

Las funciones devuelven un valor como resultado de sus operaciones. Los procedimientos no devuelven ningn valor.

PROCEDURE Suma(a,b: Integer; VAR resultado : Integer);

Existen dos mtodos de pasar argumentos, por valor o por variable. Cuando se pasa un argumento por variable se utiliza la partcula VAR . El valor de la variable cambia fuera de la funcin o procedimiento. Mientras que si se pasa por valor, cualquier cambio se descarga una vez terminado el procedimiento o funcin.

Funciones

Devuelven un valor, hay que definir un tipo de dato para el retorno. Para devolver ese nivel se realiza la siguiente accin. nombreFuncion := ValorRetorno

Procedimientos
No devuelven nada.