Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCIN A LA PROGRAMACIN Y ALGORITMOS Y ESTRUCTURAS DE DATOS I PRCTICA 2 ESTRUCTURA BSICA DE UN PROGRAMA. DECLARACIONES Y LISTA DE INSTRUCCIONES.
(Sesiones de laboratorio = 3, Total = 6 horas. Curso 2000/01) ndice.
1.- Objetivos. 2.- Introduccin. 3.- Estructura general de un programa. 3.1.- Cabecera, declaraciones y Cuerpo del programa. 3.2.- Identificadores. Palabras reservadas e identificadores predefinidos 4.- Declaraciones bsicas. 4.1.- Tipos predefinidos. Valores y operaciones. 4.2.- Definicin de constantes y variables. 5.- Declaraciones de nuevos tipos. 5.1.- Definicin de nuevos tipos elementales. 5.1.1.- Tipo Enumerado. 5.1.2.- Tipo Subrango. 5.2.- Definicin de tipos compuestos. 5.2.1.- Tipos Heterogneos. El tipo tupla. 5.2.2.- Tipos Homogneos. El tipo vector. 6.- Cuerpo del Programa. 6.1.- Instrucciones de asignacin y compuesta. 6.2.- Instrucciones de entrada/salida (lectura/escritura). 6.3.- Instrucciones condicionales. 6.3.1.- Condicional binaria (if....then....else). 6.3.2.- Condicional n-aria (case...of). 7.- Documentacin interna de un programa. 7.1.- Importancia de la documentacin interna. 7.2.- Eleccin de nombres significativos. 7.3.- Comentarios. 7.4.- Indentacin. 7.5.- Descripcin de precondiciones y postcondicones mediante comentarios. 8.- Desarrollo de la prctica. 9.- Ampliaciones de la prctica. 10.- Bibliografa.
1.- Objetivos.
Empezar a conocer el lenguaje Pascal. Conocer las caractersticas de los tipos de datos elementales predefinidos en Pascal. Saber evaluar expresiones simples (tanto aritmticas como lgicas) correctamente. Conocer y saber utilizar las instrucciones: vaca, de asignacin y de entrada/salida. Conocer el soporte del PASCAL para la definicin de nuevos tipos elementales, mediante la enumeracin de valores o la restriccin de los mismos. Ver el soporte del lenguaje para construir tipos compuestos (tuplas, vectores). Conocer la expresin, en PASCAL, de las formas de composicin imperativas. Apreciar la necesidad de la documentacin exhaustiva de los programas que se implementen, conociendo algunos criterios adicionales de documentacin. Saber disear correctamente la solucin de algunos ejemplos simples, pero no triviales, expresando y documentando los mismos en PASCAL.
2.- Introduccin.
En esta prctica se abordan los conceptos fundamentales del lenguaje de programacin PASCAL, por lo tanto se darn las pautas para el desarrollo de la fase de codificacin, esto es para poder traducir los algoritmos diseados a travs de la notacin algortmica al lenguaje de programacin PASCAL. Pese a que se comentarn las principales caractersticas del PASCAL, el objetivo es dar una primera visin del lenguaje, que obviamente se debe complementar con la bibliografa (apartado 10). En primer lugar, se estudia la estructura general de un programa en PASCAL. Dicha estructura est dividida en cabecera, parte de declaraciones y lista de instrucciones o cuerpo del programa. Para cada una de estas partes, se da una caracterizacin sintctica y una breve descripcin de su finalidad. A continuacin se abordan los problemas de nominamiento, con la definicin de identificadores vlidos y repaso de las palabras reservadas e identificadores predefinidos del lenguaje. En segundo lugar, en el apartado 4 de la prctica, se profundiza en las caractersticas de la parte de declaraciones de un programa. Para ello se estudian los tipos elementales ofrecidos por el lenguaje, describiendo sus valores permitidos y operaciones aplicables a cada uno de ellos. En el punto 5 se avanza en el estudio de la parte de declaraciones de un programa, viendo los mtodos para definir nuevos tipos elementales, mediante la enumeracin de valores (tipo
enumerado) o mediante la restriccin de valores de tipos previamente definidos (tipo subrango). A continuacin, se estudia la declaracin de los tipos compuestos, tupla y vector. En el apartado 6, se estudia la instruccin de asignacin y la compuesta, haciendo hincapi en el problema de la concordancia de tipos. A continuacin, se presentan las instrucciones de entrada/salida. Para acabar este punto, se introduce la traduccin de las formas condicionales, vistas en la clase de teora, al PASCAL, viendo las limitaciones que tienen estas formas en dicho lenguaje. En el apartado 7, se estudian criterios referentes al estilo de codificacin, haciendo hincapi en la documentacin de programas y el uso de comentarios para denotar estados que deben satisfacerse en el proceso de ejecucin.
PROGRAM nombre (INPUT,OUTPUT); CONST (*Declaracin de constantes*) TYPE (*Declaracin de tipos de usuario*) VAR (*Declaracin intermedios*) de variables: datos,
CABECERA
DECLARACIONES
resultados
resultados
PROCEDURE nombre_proc1 .... (*Declaracin de procedimientos y funciones*) FUNCTION nombre_funct1 .... BEGIN (*Comienzo de instrucciones*) END. (*Fin del programa*)
CUERPO
La cabecera del programa es obligatoria y es donde se indica el nombre del programa en cuestin. La cabecera siempre empieza con la palabra PROGRAM.
La parte de declaraciones y definiciones es la zona del programa donde se definen y declaran todos los elementos (constantes, tipos, variables, funciones y procedimientos) con los que va a trabajar el programa. Se trata de una parte opcional (puede no existir) pero, si existe, debe de aparecer al principio del programa, justo tras la cabecera del mismo y en el orden apropiado. El cuerpo del programa es la zona donde se encuentran las instrucciones ejecutables. El cuerpo del programa siempre empieza con la palabra 'BEGIN' y acaba con 'END.'. De esta forma, un programa en PASCAL, ha de tener, como mnimo, un encabezamiento y un bloque o cuerpo con al menos una instruccin, por ejemplo:
P R O G B E G I w ( r i ( t C e * E N D .
El ; es el carcter separador de sentencias o declaraciones sucesivas. Las sentencias o instrucciones tienen formato libre, por lo que pueden aparecer en cualquier lugar de una lnea. Lo que no se puede dividir entre lneas son los nmeros ni los nombres constantes, variables, procedimientos etc. Ntese que BEGIN nunca va seguido de ; y que todo programa debe terminar con un . despus del END final. Un ejemplo sencillo de programa:
P S V A R B E G I N r ( re (B) e A ) a ; d a d ; C : = A + B ; w (C) r i t e END . { CM A R G O { D } E R LC { C C EA
A I ; , N B T , E G C E :
Un identificador puede tener cualquier nmero de caracteres, pero debe empezar con un carcter alfabtico y, a continuacin, cualquier nmero de caracteres alfanumricos . Los identificadores que pueden ser utilizados en los programas no podrn coincidir con un conjunto de palabras del lenguaje con un significado especial o palabras reservadas (como por ejemplo AND, FOR, PACKED, WHILE, ARRAY, FUNCTION, PROCEDURE, WITH, BEGIN, PROGRAM, CASE, IF, RECORD, FALSE, TRUE, MAXINT, BOOLEAN, CHAR, INTEGER, ...) Un identificador se debe separar con un blanco (o salto de lnea) de las palabras reservadas y de las constantes numricas.
+ - * div mod
Operaciones sobre
INTEGER
Procedimientos
Tipo REAL.
Subconjunto finito de los nmeros reales comprendido entre: MAXREAL .. MINREAL, 0, MINREAL .. MAXREAL. Tambin se llaman nmeros de punto o coma flotante.
+ - * /
Operaciones sobre
REAL
Funciones
ABS(), SQR(), SQRT(), SIN(), COS(), ARCTAN(), LN(), EXP(), TRUNC(), ...
Procedimientos
Existen dos formas de escribir o especificar los nmeros reales: Forma normal. En este formato, los nmeros deben de tener un punto decimal con, al menos, un dgito a la izquierda del punto.
Forma exponencial o cientfica. En este formato, para escribir el nmero real, se escribe la mantisa, a continuacin la letra 'E' y el exponente en base 10 (ste debe de ser un nmero entero).
Ejemplos de nmero reales: Correctos: incorrectos: 2.5 E20 0.0 .1 3.4E-5 5. 5.0E2 7E0.5
La forma exponencial es conveniente para trabajar con nmeros muy grandes o muy pequeos.
Tipo CHAR.
El tipo char tiene 256 posibles valores (caracteres) que corresponden al cdigo ASCII (American Standard Code for Infomation Interchange) de los cuales algunos son caracteres de control que no es posible imprimir. Algunas de las operaciones que se pueden realizar sobre el conjunto de caracteres son las siguientes: ORD(x) indica la posicin dentro del cdigo ASCII del carcter x CHR(pos) indica el carcter que hay en la posicin pos del cdigo ASCII. WRITE(x) y READ(x), son las operaciones de lectura y escritura de caracteres.
En PASCAL, los caracteres se representan siempre entre apstrofes: 'A', '+', '7' ,etc., y expresiones del tipo 'AB' no son de tipo carcter, sino de tipo STRING (una cadena o tira de caracteres, este tipo se estudiar en prximas prcticas).
Tipo BOOLEAN.
El tipo BOOLEAN slo consta de dos valores: FALSE y TRUE. Las operaciones sobre los valores del tipo slo son las operaciones lgicas (AND, OR, NOT) y las operaciones relacionales.
Ejemplos:
C O N S T p i = 3 . 1 e =
Una variable es cualquier identificador de cualquier tipo que puede asumir diferentes valores durante la ejecucin de un programa. Una variable se declara dentro de la zona de declaracin identificada por VAR de la siguiente forma:
V A i d de e n t i n , 1 f i t
Ejemplos:
V a , b , c d f : R E : I : B E L O O i , t A
El tipo de cada variable determina los valores que sta puede tomar y las operaciones que se podrn realizar sobre dicha variable.
T Y d = 0 e c i le ' at ' .
num ser considerada como una variable de tipo entero (en cuanto a las operaciones posibles sobre ella) y l como una variable de tipo carcter.
Con estos tipos de datos se puede representar en los programas informacin ms compleja que la meramente numrica, alfabtica, etc., que permita describir los tipos simples. Por ejemplo si queremos utilizar en un programa nmeros complejos, con los que deseamos realizar cierto conjunto de operaciones. La definicin de un nmero complejo, parte real y parte imaginaria, en PASCAL, podra ser:
T Y P c R o E C O r { p e: ; l a e R i { : p ml a e R E ; N D
Si estamos resolviendo un problema que trabaje con el concepto planeta, del que se requiere la siguiente informacin: Su cdigo (un nmero entero). Si es visible desde la tierra con el ojo humano. Su dimetro (un nmero real). El radio de su rbita (un real).
Un componente de una tupla es seleccionado usando tanto el nombre de la variable tupla como el nombre del campo, separando ambos nombres por un punto, as siguiendo los ejemplos anteriores se tiene:
c m a r t e . d i t e m a e r . es
Estos nombres se llaman selectores de tupla y son usados en un programa de la misma forma que las variables del mismo tipo (real en este caso). Los nombres de los componentes, dentro de una tupla, deben de ser nicos. No podramos usar "cdigo" otra vez en la definicin de planeta, pero lo podramos usar para denotar una variable o un componente de otro tipo tupla. Las tuplas no se pueden usar como operandos de ninguna operacin predefinida, sin embargo, el valor de una tupla puede ser asignado a otra tupla haciendo uso de la sentencia de asignacin (que se ver en el siguiente apartado), as la sentencia:
marte:= jupiter;
e t i p u j i pu j
marte.radiorbita := jupiter.radiorbita;
no siendo posible su modificacin posterior, por ello se dice que el vector es un tipo de datos esttico. El siguiente ejemplo muestra la definicin de una variable, denominada pluviosidad, formada por 100 componentes individuales, cada una de ellas de tipo real:
VA R A p l u vi : d a d i s o
Efectuada la declaracin anterior en un programa en Pascal, es posible en las instrucciones de dicho programa acceder (para determinar o modificar cada valor) a cada uno de los 100 elementos de tipo real que constituyen la variable pluviosidad, En Pascal la palabra reservada que se utiliza para definir un vector es la palabra "Array", como es habitual en este lenguaje de programacin la definicin de variables de tipo vector puede efectuarse directamente, como en el ejemplo anterior, en la seccin de declaracin de variables; o puede definirse previamente un nuevo tipo, en la seccin de definicin de tipos y, a continuacin, definir cualquier nmero de nuevas variables pertenecientes a dicho tipo. La forma general que adopta una declaracin de un nuevo tipo vector en Pascal es la siguiente:
T Y P E N A = [ o R m R b A r e T Y i o p
Pudindose, tras la declaracin anterior, definir nuevas variables de dicho tipo, como se efecta a continuacin:
VAR N . . o m 1, , 2m o N
En la declaracin del tipo anterior distinguimos: La declaracin del tipo base (TipoBase), que es el tipo de cada uno de los elementos individuales del vector. En el ejemplo inicial (pluviosidad) dicho tipo era el Real.
La definicin de un ndice (Indice), que puede ser cualquier tipo subrango o enumerado. Dicha declaracin establece el nmero de elementos del vector, as como el tipo que debern tener las expresiones que se utilizarn en la referenciacin individual de cada componente.
En general, el TipoBase del vector puede ser cualquier otro tipo vlido en Pascal, siendo posible que dicho tipo base sea, a su vez, estructurado. As, es posible definir vectores de tuplas, e incluso vectores cuyos componentes son tambin vectores. A los vectores cuyas componentes son, a su vez, otros vectores, se les denomina multidimensionales. Por lo contrario, a los vectores cuyas componentes no son otros vectores se les denomina unidimensionales.
Ntese que el tipo VecFechas permite la declaracin de variables como VFecha1 y VFecha2, con 127 componentes elementales, tales que cada una de ellas es de tipo fecha. Dichas componentes se encuentran numeradas desde -3 hasta 123. As mismo, el tipo VecLetras1 permite la declaracin de variables como VLetras1 con 26 componentes elementales, de tipo entero cada una de ellas, siendo los posibles valores del ndice los caracteres maysculas comprendidos entre la 'A' y la 'Z'. Ntese que dicho ndice que no es un subrango de los enteros, sino de los caracteres. Por ltimo, el tipo VecLetras2 permite la declaracin de variables como VLetras2, con 100 componentes, perteneciendo cada componente individual al tipo Letras, y siendo el ndice del vector en este caso el subrango de los enteros comprendidos entre 1 y 100. Adicionalmente, cabe sealar que las variables VFecha1 y VFecha2 son exactamente del mismo tipo, al declararse ambas como pertenecientes al tipo denominado VecFechas. Cada componente individual de una variable de tipo vector es por s misma una variable cuyo tipo es el del tipo base del vector y, por lo tanto, es posible efectuar con las mismas cualquier operacin vlida sobre variables de dicho tipo base.
El acceso a una componente individual se efecta poniendo el nombre de la variable vector, seguido de una expresin entre corchetes que especifica la componente individual a ser accedida. Naturalmente la expresin usada para acceder a una componente individual debe devolver un valor del tipo ndice definido para dicha variable. Por ejemplo:
p l
Si i est comprendido entre los lmites del vector entonces corresponde al valor real de la i-sima componente del vector pluviosidad.
Por ltimo, hay que destacar la restriccin en Pascal estndar relativa al manejo de vectores que dice que no se permite efectuar la lectura mediante el teclado o escritura en la terminal, de una variable de tipo vector utilizando los procedimientos estndar read(ln) o write(ln) ( que se vern en el siguiente apartado). Por lo que si se desea realizar alguna de estas operaciones ser necesario efectuar dicha lectura o escritura elemento a elemento, utilizando algn tipo de iteracin para ello.
Se evala la expresin de la derecha y el resultado se "asigna" a la variable que aparece a la izquierda del ":=". Ha de existir una consistencia de tipos entre la expresin y la variable a la que se le asigna. Por lo tanto su significado es exactamente igual al estudiado en la notacin algortmica. Dada la siguiente declaracin de variables:
V A R i I : , nt j e g e a , c :
Una sentencia compuesta es un grupo de instrucciones simples que se agrupan en una sola instruccin, encuadrndolas con "Begin" y "End". Las instrucciones se ejecutan o realizan en el orden especificado entre ellas. Ejemplo:
B E G I N | | | | | | | | E N D ( cu d p e r * l e r p o B E G I N | | | | | E N D s u B E G I N | | | E N D x : = 3 ; y : = 4 ; z : =
Las instrucciones de entrada y salida de datos se usan en casi todos los programas, al menos las de salida. Desde el punto de vista fsico, estas instrucciones van a servir para intercambiar datos con los perifricos (pantallas, impresoras, teclados,...). As tenemos: Instruccin de entrada: READ, lee datos del teclado (por defecto). Instruccin de salida: WRITE, visualiza los datos por pantalla (por defecto). Como se indic en la prctica anterior, el sistema operativo estructura toda la informacin a travs del concepto de fichero. Por ello tanto el teclado como la pantalla son entendidos como ficheros, en este caso el fichero input representa el teclado y el fichero output la pantalla, que son la entrada y salida estndar. Tras el nombre del programa se indican los ficheros de dnde se van a leer los datos y a dnde se van a escribir. De momento slo utilizaremos la entrada y salida estndar. Por ejemplo:
P R O G R A
lo que significa que las variables van a tomar valores del teclado (fichero input)y los resultados se visualizarn en la pantalla (fichero output).
Instrucciones de entrada.
READ y READLN, son las dos instrucciones que vamos a utilizar para realizar la entrada de los datos. Estas instrucciones leen los datos del fichero de entrada (input) y los asigna a las variables que tengan como argumentos. Su sintaxis es la siguiente:
R E R
Veamos dos ejemplos para entender su funcionamiento y las diferencias entre ellas. Dado el siguiente programa
V A R B E G I N r e a a d ( d ; ) b , a ( E N D a : I , b , n
Si ante la ejecucin de este programa, el usuario introduce por teclado la secuencia de datos: el nmero uno, el carcter blanco, el nmero dos, el carcter blanco, el nmero cuatro, el carcter salto de lnea, el nmero veinte, el carcter blanco y el nmero cincuenta. Los valores de las variables quedan: a <--1, b <--2, c <--4, d <--20 Si en vez de instrucciones read las instrucciones fueran readln, ante la misma secuencia de datos los valores que tomarn las variables sern:
a <--1. b <--2, c <--20, d <--50 La interpretacin de esta situacin se basa en el hecho que la instruccin readln requiere que se escriba por teclado un salto de lnea y la siguiente instruccin read o readln ignora todo lo que se haya escrito anteriormente.
Instrucciones de salida
WRITE y WRITELN escriben valores a un fichero de salida, en nuestro caso la pantalla (fichero output). Una instruccin de salida puede imprimir: Comentarios o cadenas de caracteres entre apstrofes. Por ejemplo Write(hola) Constantes, valores de variables, resultados de expresiones y funciones. WRITELN obliga a la pantalla (fichero output) a pasar al inicio de la lnea siguiente tras realizar la impresin de los argumentos que tiene entre parntesis. Algunas veces se necesita una salida de datos tabulada en vez de el formato de salida que ofrece el PASCAL por defecto. Para obtener una salida formateada, cada valor a imprimir o escribir puede ir seguido de ":" y un entero mayor que 0 (valor o expresin). Este entero indica la anchura de campo o el nmero de posiciones mnimas para escribir el valor a imprimir. Si dicho valor necesita menos posiciones, se rellena con blancos a la izquierda y si necesita ms se har caso omiso del entero mayor que 0 y se usarn tantas posiciones como sean necesarias. Adems, si el valor a escribir es un nmero real, se puede especificar otro carcter ":" y otro entero mayor que 0, en este caso, el nmero real se escribir en notacin de punto fijo y ste segundo campo especificar el nmero de dgitos a escribir, si se puede, tras el punto decimal. Ejemplo 1:
P R O G R A V A R i : R : a e a l ; C : c h a r ; d : B E G I N i :
Suponiendo que el programa se ha compilado y que durante su ejecucin el usuario ha introducido por el teclado los siguientes caracteres: a, b, c, salto de lnea, d, y salto de lnea en la pantalla aparecern los siguientes caracteres: a bd
OPCION ...FOPCIN SI...FSI En Pascal las instrucciones condicionales son las siguientes: La sentencia IF , que es practicamente equivalente a la sentencia SI..FSI. La sentencia CASE entendida como un caso especial de condicional. CASE permite al proceso ejecutar una de entre varias acciones de acuerdo con el valor de una expresin de tipo escalar o subrango. Por lo tanto no es equivalente a la sentencia OPCION ...FOPCIN.
Si el valor de la condicin o expresin lgica es TRUE (verdadero), se ejecuta la sentencia que sigue a THEN (entonces), y si ese valor es FALSE (falso), se ejecuta la sentencia que sigue a ELSE (si no). Sentencia, puede ser una sentencia simple, una sentencia compuesta (entre Begin y End) o incluso otra condicional.
Ejemplo: V A R p r i g B E G I N . I T p F H E p .... I T F H mayor B c { E in G I N s t r u c i n menor
En la instruccin IF, la clusula ELSE es opcional y puede ser omitida, en tal caso, si la condicin se evala y resulta FALSE, no se har ninguna accin. Si en la instruccin IF no esta omita la clusula ELSE, la ltima instruccin de la sentencia asociada al IF no debe de llevar punto y coma ; Como ya hemos dicho, la sentencia que sigue a THEN o a ELSE podra ser, a su vez, una sentencia IF, en este caso, a la sentencia se le llama IF compuesto o anidado. Por ejemplo:
I m T a B {m > E G a I N oy m a y o r men o r E N D E {mayor L S E <= menor} I T H mayor iguales = menor :=e tru r E : t { c u = m ru a y o e c F : : N E F H
Slo se ejecutar una de las tres sentencias en funcin de la relacin entre mayor y menor. En este caso, la clusula ELSE de la sentencia IF es, a su vez, una sentencia IF. Tambin podramos tener una sentencia IF en la clusula THEN. Cuando aparecen varias sentencias IF anidadas, se pueden producir ambigedades, dado que la clusula ELSE es opcional, veamos el caso:
I T c H I T c s F H E s L S E F
A que IF pertenece la clusula ELSE?. La sintaxis de PASCAL indica que la clusula ELSE pertenece al IF ms prximo que se encuentra para el que no existe una clusula ELSE. Esto resuelve la confusin del ltimo ejemplo, aclarando que la clusula ELSE pertenece al segundo IF.
Las listas de valores pueden presentarse mostrando explcitamente los valores separados por comas o por comprensin, igual que en el tipo subrango (Ej. 1..5 1,2,3,4,5 ). Las sentencias asociadas a cada lista de valores sern, a su vez, sentencias simples, compuestas (entre BEGIN y END) o nuevas condicionales. Por ltimo cabe resaltar que la sentencia OPCION..FOPCION, no es equivalente al CASE del lenguaje de programacin PASCAL. Para traducir una instruccin OPCION..FOPCION al PASCAL, se realizar a travs de IF aninados.
La primera de las sentencias es ms concisa, pero la segunda aporta mucha ms informacin al lector de la misma.
El nombre de los identificadores debe elegirse de forma que no deje lugar a duda sobre su objetivo o el significado del valor que va a contener.
7.3.- Comentarios.
La posibilidad de expresar comentarios en lenguaje natural como parte del listado del cdigo fuente es algo que aparece en todos los lenguajes de programacin. Los comentarios permiten al programador comunicarse con otros lectores del cdigo, resultando una clara gua de comprensin durante las etapas de mantenimiento. Se pueden distinguir, bsicamente, dos tipos de comentarios: Iniciales o de prlogo y descriptivos. Los comentarios de prlogo deben aparecer al principio de cada programa o subprograma. Un posible formato para los mismos es: Una frase que indique la funcin bsica del programa o subprograma. Una lista de las rutinas subordinadas y, en caso de subprogramas o rutinas, una descripcin de sus argumentos. Una descripcin de los datos pertinentes, generalmente tipos, constantes y variables importantes, as como su uso, restricciones,... Una historia del desarrollo del programa, incluyendo el nombre de los autores, revisadores, as como fechas de creacin y modificacin. Los comentarios descriptivos se incluyen en el cuerpo del cdigo fuente, usndose para describir los bloques diferenciados del mismo. En PASCAL, los comentarios pueden aparecer en cualquier parte del programa y, cara al compilador, son equivalentes a un carcter blanco. En este lenguaje, los comentarios, se encierran entre llaves o entre secuencias de parntesis y asterisco: {esto es comentario de ayuda} (* y esto es otro *)
7.4.- Indentacin.
La forma en que el cdigo fuente aparece en el listado supone una importante contribucin a la legibilidad del mismo. La indentacin o sangrado del cdigo realza las construcciones lgicas y los bloques del cdigo. PASCAL es un lenguaje cuyas instrucciones pueden aparecer en cualquier lugar de la lnea, pero conforme vayamos avanzando en el conocimiento del lenguaje, se irn viendo las
reglas (no obligatorias) de indentacin para que los programas resultantes sean legibles ms fcilmente.
Para realizar ejercicio, previamente se ha de hacer la especificacin formal del problema (anlisis) y el algoritmo de cada una de las versiones.
Las horas que exceden de 35 se consideran horas extra y se pagan a 1.5 veces mas de la tarifa fija. Los impuestos a deducir de los trabajadores varan en funcin de su sueldo mensual. Si el sueldo es inferior a 20000 esta libre de impuestos, en caso contrario todo lo que exceda de las 20000 conlleva un impuesto del 20%. Estas ampliaciones se han de resolver de la misma manera que la prctica propuesta (haciendo el anlisis o especificacin primero).
10.- Bibliografa.
- Rodnay Zaks. "Introduccin al PASCAL". Ed. Marcombo. Captulos 1 a 5. - Peter Grogono. "Programming in PASCAL". Ed. Addison-wesley. Captulos 1 y 2.