UNIVERSIDAD NACIONAL EXPERIMENTAL FRANCISCO DE MIRANDA COMPLEJO DOCENTE EL SABINO CATEDRA: INFORMATICA PROGRAMACION EN PASCAL ELEMENTOS DE UN PROGRAMA EN PASCAL Un programa en Pascal consta de una serie de elementos que se combinan entre sí, de acuerdo a las reglas de sintaxis del lenguaje Pascal. Los elementos básicos de un programa son: caracteres de lenguaje, palabras reservadas, identificadores, identificadores estándar, comentarios, etc. Palabras Reservadas: Las Palabras reservadas tienen un significado específico para el compilador y que no puede cambiarse. and array begin case const div do downto else end file for function goto if in label mod Nil not of or packed procedure program record repeat set then to type until var while with Identificadores Estándar: Los identificadores estándar representan constantes, variables, tipos de datos, procedimientos, funciones, etc. Se diferencian de las palabras reservadas en que pueden ser redefinidos por el usuario aunque esta práctica no es recomendable, identificadores estándar típicos son: integer, real, byte, sin, ord, chr, round. Identificadores definidos por el usuario: Los identificadores definidos por el usuario designan los distintos elementos del programa: tipos de datos, constantes, variables, procedimientos, funciones, etc. Están formados por secuencias de caracteres alfabéticos y dígitos de cualquier longitud (hasta 127) siendo significativo sólo los 63 primeros y construido de acuerdo a las siguientes reglas: 1. Comienzan obligatoriamente por una letra. Excepcionalmente se admiten el carácter subrayado (_) como componente de un identificador. 2. Los identificadores no pueden ser palabras reservadas. 3. En Pascal no existen diferencias entre mayúsculas y minúsculas en el nombre de un identificador. _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 1/25 Símbolos y Caracteres: Turbo ser: 1. 2. 3. Pascal acepta cualquier carácter del código ASCII de datos. Una manera de clasificarlos puede Letras mayúsculas y minúsculas (A..Z, a..z) Los dígitos del 0..9 Símbolos especiales Significado de Algunos Caracteres en Turbo Pascal * Multiplicación ‘ / + := . = < > <= >= ; (* *) { } División Suma Resta o signo menos asignación Delimitador (separador) fin del programa Separador final de sentencias Comentario o directiva del compilador Comentario o directiva del compilador .. Rango de valores @ <> [ ] ( ) Comienzo y final de una cadena de caracteres. Igualdad Menor que Mayor que Menor o igual que Mayor o igual que Distinto Limites de dimensiones de arrays Lista de parámetros en proced. y funciones. Dirección de un operando Comentarios: Un comentario es un texto situado en el código fuente y que tiene por objeto aclarar el papel o función que determinadas sentencias desempeñan en el programa. Los comentarios no generan código ejecutable por el compilador. En Pascal existen dos formas de especificar comentarios: colocar el texto entre los caracteres ‘(*’ y ‘*)’ o bien entre llaves ‘{‘ y ‘}’. Pueden introducirse comentario en cualquier parte de programa. Variables y constantes Los tipos de datos que manejaremos en nuestro programa pueden ser de dos clases: variables o constantes. Como su nombre lo indica las variables pueden cambiar a lo largo de la ejecución de un programa, en cambio las constantes serán valores fijos durante todo el proceso. Un ejemplo de una variable es cuando vamos a sumar dos números que serán introducidos por el usuario del programa, éste puede introducir dos valores cualesquiera y no sería nada útil restringirlo a dos valores predefinidos, así que dejamos que use los valores que el necesite sumar. Ahora, si nuestro programa de operaciones matemáticas va a utilizar el valor de PI para algunos cálculos podemos definir un identificador PI con el valor de 3.1415926 constante, de tal forma que PI no pueda cambiar de valor, ahora en lugar de escribir todo el número cada vez que se necesite en nuestro programa, solo tenemos que escribir PI. Las variables y constantes pueden ser de todos los tipos vistos anteriormente: numéricos tanto enteros como reales, caracteres, cadenas de caracteres, etc. ESTRUCTURA DE LOS PROGRAMAS El lenguaje utilizado en Turbo Pascal es estructurado, lo que significa que cada programa requiere una forma específica de escritura para que sea entendido por el compilador. Todo programa cuenta con algunas partes o módulos los cuales son: _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 2/25 Cabecera Declaraciones Programa La cabecera del programa únicamente lleva el nombre del programa. En la sección de declaraciones se le indica al compilador todos los identificadores y unidades que se utilizarán durante la ejecución del programa. En la sección del programa se escribe el código de instrucciones que se llevarán a cabo. Cabecera de Programa Declaración de Unidades Declaración de Etiquetas Declaración de Constantes Sección de Declaraciones Program Ejemplo; Uses Crt; Label Cerrar, 1; Const Secreto = ‘ R2D2 ‘ Declaración de Tipos Type Formato = string[12] Declaración de Variables Var Respuesta: Formato; Numero: integer; Declaraciones de procedimientos y/o funciones Cuerpo del Programa Procedure Ejemplo; Begin {Cuerpo del procedimiento} end; .... Begin {Cuerpo del procedimiento} end. Sentencia PROGRAM La sentencia PROGRAM es la declaración del nombre del programa. _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 3/25 Consta de tres partes: la palabra reservada PROGRAM, a continuación un identificador utilizado como el nombre del programa y al final un punto y coma ";". Por ejemplo: PROGRAM suma_dos_numeros ; Esta declaración es siempre la primer línea en cualquier programa de Turbo Pascal. Declaración de unidades Las unidades son módulos independientes del programa que, aunque no son ejecutables por si mismos, pueden ser utilizados por el programa principal sin necesidad de rescribir el código que contienen. Para la utilización de estos "subprogramas" es necesaria su declaración. La palabra reservada USES cumple el propósito de declarar las unidades en el formato siguiente: USES crt, dos; Esta línea declara y habilita para su uso a la unidad crt y a la unidad dos Cada unidad que se declara deberá estar separada de la siguiente por una coma. Al final de todas las unidades declaradas se deberá colocar un punto y coma ";". Declaración de constantes y variables Para declarar las constantes se utiliza la palabra reservada CONST seguida de un identificador al que se le dará un valor determinado, un signo de igual "=", el valor que recibirá el identificador y al final un punto y coma ";". Ejemplo: CONST pi = 3.1415926; De esta forma el identificador pi recibirá el valor de 3.1415926 y no será posible cambiarlo en el transcurso del programa. Es posible declarar varias constantes sucesivamente, puede ser una por renglón o varias en un solo renglón. Cuando se hace esto, la palabra CONST solo se pone una sola vez como cabecera y a continuación todas las constantes por definir. Ejemplo: CONST PI = 3.1415926; Nombre = 'Juan Gutiérrez'; Unidad = 1; Otra forma de escribir lo mismo es así: CONST PI = 3.1415926; Nombre = 'Juan Gutiérrez'; Unidad = 1; Pero por cuestiones de legibilidad es preferible la primera opción. La declaración de variables se lleva a cabo de la misma forma, solo que en lugar de la palabra CONS utilizamos la palabra VAR, y en lugar de "= valor;", utilizamos : tipo , sustituyendo "tipo" por alguna clase válida de datos en Turbo Pascal. Ejemplo: VAR Num_entero : Integer; Nombre : String; Programa principal Después de haber realizado todas las declaraciones se puede iniciar con el programa principal. (Es posible, antes del programa, declarar las funciones y procedimientos, pero eso se analizará posteriormente). El programa principal inicia con la palabra reservada BEGIN y termina con la palabra END., esta _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 4/25 última con un punto al final. Cada línea de código, enunciado, sentencia o instrucción completa que se escriba deberá terminar con un punto y coma ";". Solo se omitirá el punto y coma cuando se utiliza la palabra reservada ELSE. Aunque puede también omitirse si la siguiente expresión es END o UNTIL. Ya conociendo la estructura es posible escribir un primer programa: PROGRAM Primera_Prueba; VAR Entero : Integer; CONST Mensaje = 'Introduce un valor entero: '; Respuesta = 'El valor es: '; BEGIN Write(Mensaje); {Escribe en pantalla el mensaje definido como constante} ReadLn(Entero); {Lee un valor de teclado y lo almacena en la variable Entero} WriteLn(Respuesta, Entero); {Escribe en pantalla el contenido de Respuesta y el valor que se ingresó de teclado} END. Como podrá apreciarse, no es importante el orden en el que se declaran las variables y constantes (aplicable solo al Turbo Pascal), es decir, pueden declararse primero las variables y luego las constantes y viceversa: PROGRAM Primera_Prueba; CONST Mensaje = 'Introduce un valor entero: '; Respuesta = 'El valor es: '; VAR Entero : Integer; BEGIN Write(Mensaje); {Escribe en pantalla el mensaje definido como constante} ReadLn(Entero); {Lee un valor de teclado y lo almacena en la variable Entero} WriteLn(Respuesta, Entero); {Escribe en pantalla el contenido de Respuesta y el valor que se ingresó de teclado} END. COMPILACIÓN Y EJECUCIÓN EN MEMORIA La compilación de un programa es el paso mediante el cual traducimos dicho programa al lenguaje maquina entendible por la computadora. Para lograr la compilación en el entorno integrado de desarrollo de Turbo Pascal se utiliza la opción Compile del menú del mismo nombre. Para acceder al menú se utiliza la secuencia de teclas: [ALT] + [C], y luego se escoge la opción Compile. Otra forma de realizar la compilación es con la secuencia de teclas: [ALT] + [F9]. Es posible compilarlo y ejecutarlo automáticamente utilizando la secuencia: [CONTROL] + [F9] _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 5/25 COMPILACIÓN AL DISCO Para poder ejecutar un programa sin necesidad de llamar al entorno integrado de desarrollo de Turbo Pascal es necesario compilar el programa al disco. Para hacer esto es necesario activar la opción Destination a Disk, esto se hace entrando al menú Compile, se selecciona la opción Destination y se presiona [Enter], de esta forma se cambia el destino de compilación de memoria a disco o viceversa (Dependiendo de la opción seleccionada actualmente). Una vez compilado un programa en el disco es posible ejecutarlo directamente desde el sistema operativo. ASIGNACIÓN O IGUALACIÓN La operación de asignación es una de las más utilizadas en Turbo Pascal ya que nos permite darle un valor determinado a las variables que declaramos en el programa o lo que es lo mismo, igualarla a algún valor determinado. El símbolo utilizado para la operación es los dos puntos seguidos por un signo de igual :=, a la izquierda de dicho símbolo se coloca el identificador al que se le asignará un nuevo valor y a la derecha se colocará un identificador o algún valor directo que se almacenará en el primer identificador. Ejemplo: Nombre := 'Juan Pérez'; {Nombre guardará la cadena "Juan Pérez"} Resta := Numero1 - Numero2; {Resta gurdará el resultado de la resta de Numero2 a Numero1} Area := (Base*Altura)/2; {Obtiene el area de un triangulo y la guarda en el identificador Area} Es indispensable para todo programa que cuente con la capacidad de manejar entradas y salidas de información, ya que sin estas capacidades sería un programa inútil. ENTRADAS Y SALIDAS BASICA: Salida de datos a la pantalla Las instrucciones que permiten mostrar datos en la pantalla de la computadora son: Write y WriteLn. Aunque ya se hizo uso de ellas en los pequeños programas anteriores de ejemplo, aqui se describirán a fondo. La sintaxis de los procedimientos es la siguiente: Write (indentificadores); WriteLn (indentificadores); Donde los identificadores son aquellos que contienen la información que se desea mandar a la pantalla. Es posible utilizar varios de ellos por cada instrucción Write o WriteLn, unicamente se separan unos de otros por comas ",". Ejemplo: Write (Nombre, ApellidoP, ApellidoM); Esta línea de código desplegará consecutivamente los contenidos de los identificadores Nombre, ApellidoP y ApellidoM. En caso de que la variable Nombre almacenara el valor 'Rodrigo ', la variable ApellidoP 'González ' y la variable ApellidoM 'García', el resultado en pantalla sería: Rodrigo González García Podemos obtener el mismo resultado si utilizamos la siguiente estructura: Write (Nombre); _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 6/25 Write (ApellidoP); Write (ApellidoM); Si en lugar de utilizar la instrucción Write hacemos uso de WriteLn con la misma sintaxis del ejemplo anterior: WriteLn (Nombre); WriteLn (ApellidoP); WriteLn (ApellidoM); lo que obtendríamos sería: Rodrigo González García De este ejemplo es posible concluir que la diferencia entre las instrucciones Write y WriteLn es que esta última imprime el contenido de los identificadores y cambia el cursor al siguiente renglón de la pantalla, y la primera solo escribe el contenido y deja el cursor al final del dato escrito. Entrada de datos desde teclado Las instrucciones estandar de Turbo Pascal para obtener datos desde el teclado son Read y ReadLn. La sintaxis de estas instrucciones es muy parecida a la de Write y WriteLn: Read (Identificador); El identificador puede ser cualquier variable definida previamente, NO puede ser una constante. Puede ser también un conjunto de variables, separadas entre comas, en este caso se guardara el primer valor dado antes del [Enter] en el primer identificador proporcionado, luego el segundo y así sucesivamente hasta el último identificador. La diferencia en el uso de la instrucción Read con respecto a ReadLn es que en la primera, si se le dan mas datos de los que se introducirán se guardan en un buffer y se usarán en la siguiente instrucción Read o ReadLn del programa, en cambio ReadLn ignora todo dato posterior a los que estén definidos en la instrucción. En caso de que se le indique a Read o ReadLn que lea un tipo específico de valor, y se le proporcione otro diferente se generará un error y se detendrá la ejecución del programa. TIPOS DE DATOS El manejo de la información en Turbo Pascal se realiza mediante diferentes clases de datos. En este apartado se tratarán los principales tipos y conforme se vayan necesitando se explicaran los demás. Integer Char Boolean Real String Números enteros sin parte decimal. Caracteres del código ASCII Pueden contener los valores de falso o verdadero Números que pueden incluir una parte decimal En una secuencia de caracteres que se trata como un solo dato. Un programa debe ser capaz de manejar diferentes tipo de datos, como pueden ser números enteros, reales, caracteres, cadenas de caracteres, etc. Para lograr el manejo de toda esta información Turbo Pascal provee diferentes tipos de datos para los identificadores que se utilizarán. Algunos de los más importantes se citan en seguida: Tipos enteros En esta categoría Turbo Pascal cuenta con 5 tipos diferentes, cada uno abarca un rango _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 7/25 específico de valores y utilizan una diferente cantidad de memoria dependiendo de ese rango. Naturalmente el trabajar con rangos menores nos ofrece una mayor velocidad y menor espacio en memoria, pero si se utilizan enteros largos se cuenta con mayor precisión. Los tipos de enteros en Turbo Pascal son: Tipo Integer Word ShortInt Byte LongInt Rango de valores que acepta -32,768 a 32,767 0 a 65535 -128 a 127 0 a 255 -2,147,483,648 a 2,147,483,648 Al utilizar los tipos enteros es posible representar en el programa un número en formato hexadecimal, para hacer esto solo se le antepone el símbolo "$" al valor hexadecimal, al momento de visualizar dicho valor, o utilizarlo en alguna operación será como decimal. Por ejemplo: Cantidad := $10; El valor que se guarda en "Cantidad" es 16. Tipos reales Los números reales son aquellos que cuentan con una parte decimal. En Turbo Pascal contamos con varios tipos de datos reales, pero no se puede utilizar, mas que el tipo real, en máquinas que no cuenten con un coprocesador matemático. Los tipos de datos reales son: Tipo Real Single Double Extended Comp Rango de valores que acepta 2.9E-39 a 1.7E38 1.5E-45 a 3.4E38 5.0E-324 a 1.7E308 1.9E-4851 a 1.1E4932 -9.2E18 a 9.2E18 Los números reales deben llevar por fuerza al menos un dígito de cada lado del punto decimal así sea éste un cero. Como ejemplo, el número 5 debe representarse como: 5.0, el .5 como 0.5 , etc. En este tipo de datos se utiliza la notación científica, que es igual a la de las calculadoras, el dígito que se encuentra a continuación de la E representa la potencia a la que se elevará el número 10 para multiplicarlo por la cantidad a la izquierda de dicha E: 3.0E5 = 3.0 * 10^5 = 3.0 * 100000 = 300000 1.5E-4 = 1.5 * 10^-4 = 1.5 * 0.0001 = 0.00015 Tipos carácter Los caracteres son cada uno de los símbolos que forman el código ASCII, el tipo estándar de Pascal para estos datos es Char. Los caracteres se especifican entre apostrofes: 'a' 'B' '2' '#' El tipo Char es un tipo ordinal de Pascal, ésto quiere decir que sus elementos válidos siguen una secuencia ordenada de valores individuales. La secuencia de caracteres para este tipo corresponden al número del código ASCII, del 0 al 255. Es posible acceder a cada uno de los caracteres utilizando un signo # antes de su valor correspondiente, por ejemplo, la letra A puede ser representada como #65, el retorno de carro, o enter, se representa como #13, y así cualquier carácter. Tipo cadena Las cadenas son secuencias de caracteres o arreglos que tienen una longitud máxima de 255 _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 8/25 caracteres. Se definen entre apostrofes. El tipo de Pascal para las cadenas es String. PROGRAM Cadena; VAR Nombre : String; BEGIN Nombre := 'Ernesto Chávez'; WriteLn (Nombre); END. Este programa guarda la cadena 'Ernesto Chávez' en la variable definida como tipo string, y la visualiza en la pantalla por medio de la instrucción WriteLn. El tamaño por defecto para un tipo string es de 255 caracteres, pero es posible definir uno mas pequeño utilizando el siguiente formato: Variable : String[Tamaño]; Donde Variable es la variable a definir y Tamaño es el número máximo de caracteres que podrá contener esa variable (naturalmente mayor a 0 y menor a 256). Es posible acceder a un solo carácter de una cadena utilizando inmediatamente después del nombre de la misma la posición del carácter encerrada entre corchetes. Por ejemplo: PROGRAM Cadena01; VAR Nombre : String[30]; {Permite un máximo de 30 caracteres en la variable} BEGIN Nombre := 'Ernesto Chávez'; WriteLn (Nombre[5]); {Visualiza el 5to caracter de la cadena} END. Tipos lógicos Este tipo de datos tienen la peculiaridad de que solo pueden tomar dos tipos de datos: verdadero o falso, el verdadero puede ser representado por su nombre en inglés: True y el falso por False; también se representan por 1 y por 0 respectivamente. El tipo está definido como Boolean. Los datos lógicos tienen una enorme aplicación en la evaluación de ciertos procesos, así como en el control de flujo de los programas. OPERADORES Y EXPRESIONES Operadores Aritméticos: Operador Operación + * / Suma Resta multiplicación división Tipos de operandos Integer o real Integer o real Integer o real Integer o real Tipos de resultados Integer o real Integer o real Integer o real Integer o real _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 9/25 div mod división entera modulo resto de la división Integer Integer Integer Integer Operaciones básicas Las operaciones básicas en Turbo Pascal están formadas por dos partes: el operador y los operandos. Un operador es el símbolo que le indica al programa que operación realizará y los operandos son los datos sobre los cuales se efectuará la operación. Los operadores básicos de Turbo Pascal son: (+,-,*,/) El tipo de datos que pascal regresa como resultado de una operación dependerá del tipo de datos usados como operandos. Por ejemplo, la suma de dos enteros da como resultado otro entero, y la suma de dos números reales da como resultado otro número real. Operadores DIV y MOD La división de dos números, sin importar su tipo, dará como resultado un número real, así que para dividir dos enteros, y obtener el resultado como entero, Turbo Pascal ofrece el operador DIV, el cual da el resultado entero de una división entre enteros, y el operador MOD que regresa el residuo de una división de enteros. Su sintaxis es: entero := dividendo DIV divisor entero := dividendo MOD divisor El siguiente programa es un ejemplo del uso de los operadores aritméticos: PROGRAM Operaciones_Básicas; VAR Suma, Resta, Multiplicacion, Division : Real; Cociente_Entero, Residuo_Entero : Integer; BEGIN Suma := 12 + 8; Resta := 12 - 8; Multiplicacion := 12 * 8; Division := 12/8; Cociente_Entero := 12 DIV 8; Residuo_Entero := 12 MOD 8; WriteLn ('La suma de 12 + 8 es igual a: ',Suma); WriteLn ('La resta de 12 - 8 es igual a: ',Resta); WriteLn ('La multiplicación de 12 * 8 es igual a: ',Multiplicacion); WriteLn ('La división de 12 / 8 es igual a: ',Division); WriteLn ('La división entera de 12 / 8 es igual a: ',Cociente_Entero); WriteLn ('El residuo de la división entera de 12 / 8 es: ',Residuo_Entero); END. Operadores Relaciónales: Operador = <> <= Operación igualdad distinto menor o igual que Tipos de operandos simple, puntero, conjunto, cadena simple, puntero, conjunto, cadena simple o cadena Tipos de resultados Boolean Boolean Boolean _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 10/25 >= mayor o igual que > mayor que < menor que Operadores Lógicos: Operador not and or Operación Negación Conjunción Disyunción simple o cadena simple o cadena simple o cadena Tipos de operandos boolean boolean boolean Boolean Boolean Boolean Tipos de resultados Boolean Boolean Boolean Prioridad de operadores Cuando se utilizan en alguna expresión mas de un operador, éstos se evalúan conforme a una prioridad establecida por Turbo Pascal. Es necesario conocer el orden de evaluación para evitar errores en nuestros programas. El orden en que se ejecutan las operaciones es el siguiente: NOT /, *, AND -, +, OR >,<=, <,>=, =, <>, En caso de existir paréntesis en la expresión se evaluará primero el contenido de los paréntesis antes que otros operadores. Si existen dos operadores de igual prioridad se evaluará de izquierda a derecha. Para observar la importancia de la evaluación correcta de los operadores se expone el siguiente ejemplo: PROGRAM Operadores; VAR Resultado_Uno, Resultado_Dos : Real; BEGIN Resultado_Uno := 3 + 5 * 7; Resultado_Dos := (3 + 5) * 7; WriteLn ('El resultado de la operación 3 + 5 * 7 es: ',Resultado_Uno); WriteLn ('El resultado de la operación (3 + 5) * 7 es: ',Resultado_Dos); END. Como se podrá observar en la primera operación se ejecutará primero la operación 5*7 y al resultado se le sumarán 3,en cambio, en la segunda operación se realizará primero la suma 3+5 para multiplicarle al resultado 7. USO DE LAS CONSTANTES VARIABLES Cuando se declaran las variables en Turbo Pascal no se inicializan con algún valor en especial, esto quiere decir que una variable que no ha sido igualada a cierto valor llevará un contenido imprevisible, cosa no deseable en la mayoría de los programas, para evitar resultados indeseables es posible asignarle a cada variable un valor "por defecto", que se guarde al iniciar el programa. Estas variables inicializadas son llamadas constantes variables, ya que se declaran en la sección de constantes, pero es posible cambiar su valor. La sintaxis para su declaración es la siguiente: Identificador : tipo_de_datos = valor; _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 11/25 Ejemplo: PROGRAM Constantes_Variables; CONST Valor_Inicializado : Integer = 23; Texto_Inicializado : String = 'Buenos Dias!'; VAR Texto : String; Entero : Integer; BEGIN WriteLn ('Cadena inicializada: ',Texto_Inicializado); WriteLn ('Cadena sin inicializar: ',Texto); WriteLn ('Entero inicializado: ',Valor_Inicializado); WriteLn ('Entero sin inicializar: ',Entero); END. Uso de las expresiones como constantes Es posible declarar constantes con base en otras constantes ya declaradas en el programa utilizando alguna expresión para este fin, por ejemplo: CONST Columnas = 80; Filas = 24; Total_de_espacios = Columnas * Filas; Solo es posible utilizar constantes en las expresiones de este tipo, si se usa alguna variable ocurrirá un error al momento de compilar el programa. SENTENCIAS COMPUESTAS Las sentencias compuestas son grupos de sentencias, separadas cada una por un punto y coma ";" que son tratadas como una sola sentencia. Para identificar una sentencia compuesta de un grupo sucesivo de sentencias se encierran entre las palabras reservadas BEGIN y END. Uno de los ejemplos más claros de una sentencia compuesta es el cuerpo de un programa principal en Turbo Pascal, el lenguaje toma todo lo que existe entre estas dos sentencias como un solo elemento a ejecutarse aún cuando contenga varias instrucciones o sentencias: PROGRAM Prueba; BEGIN WriteLn('Primera línea de una sentencia compuesta'); WriteLn('Segunda línea de una sentencia compuesta'); WriteLn('Tercera línea de una sentencia compuesta'); END. El punto y coma que se encuentra antes de la palabra reservada END puede ser suprimido sin afectar a la compilación. En ocasiones es necesario repetir un determinado número de veces la ejecución de una sentencia, ya sea sencilla o compuesta, para realizar esta tarea Turbo Pascal cuenta con instrucciones específicas para el tipo de repetición que se requiera. ESTRUCTURAS DE CONTROL. _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 12/25 Las estructuras de control indican en términos de programación el orden, alternancia y repetición de las distintas instrucciones que componen un programa. Cualquier programa se desarrolla mediante la utilización de las estructuras secuenciales, alternativas o de selección y repetitivas. Dicho esto es bueno acotar que cualquier programa se desarrolla mediante la utilización de las estructuras secuenciales, alternativas o de selección y repetitivas. Estructuras de Control Secuenciales Se denominan así porque la acción representada por ellas se ejecuta una vez. Un programa elaborado haciendo el uso de la estructura secuencial es donde se maneja un nivel de complejidad muy bajo ya que solo esta representado por puntos o aspecto que ya hemos tratado este texto, como son: La operación asignación La lectura La escritura Comienzo y fin. Siguiendo Este orden de ideas, a continuación se presentan algunos ejemplos: 1.- Escriba un programa para calcular la longitud de la circunferencia y el área del circulo para un radio introducido por el teclado. CODIFICACION Program circulo; Const Pi=3.141592; Dos=2; Título=‘Introduzca valor de radio: ’; Var Radio, Longitud, Superficie: Real; Begin Write (Titulo); ReadLn (Radio); Longitud := Dos * Pi * Radio; Superficie :=Pi * Radio * Radio; WriteLn (‘Longitud =’, Longitud : 12: 4); ReadLn (‘Superficie =’, Superficie : 12: 4); ReadLn; end. 2.- Teniendo como datos de entrada el radio y la altura de un cilindro queremos calcular: el área lateral y el volumen del cilindro. CODIFICACIÓN Program Cilindro; Const Pi = 3.14159 _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 13/25 Var Radio, Altura, Long_base, Area_base, Area_lat, Volumen : Real; Begin { Entrada de datos} Write (‘Introduce Radio y Altura del cilindro: ‘); ReadLn (Radio, Altura); { Calculo de los datos intermedios } Long_base :=2 * Pi * Radio; Area_base :=Pi * Radio * Radio; { Calculo de los datos pedidos } Area_lat := Long_base * Altura; Volumen := Area_base * Altura; { Salida de datos } Writel(‘El area de la pared lateral:’, Area_lat:8:2 ); Writeln; Writeln(‘El volumen del cilindro :’, Volumen:8:2 ); Readln end. EJECUCION Introduce Radio y Altura del cilindro: 10 25 El area de la pared lateral: 1570.79 El volumen del cilindro : 7853.97 3.- Un Vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas el vendedor desea saber cuanto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibirá ene l mes tomando en cuenta su sueldo base y comisiones. CODIFICACIÓN Program Comisiones; Var Venta1, Venta2, Venta3, sueldo_base, total_comisiones, total_mes : Real; Begin { Entrada de datos} Write (‘Introduce el Sueldo Base del vendedor: ‘); ReadLn (sueldo_base); Write (‘Introduzca las tres ventas: ‘); ReadLn(comision1, comision2, comision3); { Calculo de los datos pedidos } total_comisione := (venta1+ venta2 + venta3) * 0.10; total_mes := sueldo_base + total_comisiones ; _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 14/25 { Salida de datos } Writel(‘Las comisiones del vendedor son:’, total_comisiones:8:2 ); Writeln; Writeln(‘El sueldo de mes del vendedor es :’, total_mes:8:2 ); Readln end. EJECUCION Introduce el Sueldo Base del vendedor: Introduzca las tres ventas: Las comisiones del vendedor son: El sueldo de mes del vendedor es : Ejercicios propuestos de estructuras de control secuenciales: (Elabore: Pseudocódigo, Diagrama de Flujo y Programa codificados en Pascal para cada ejercicio) 1. Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cuanto deberá pagar finalmente por su compra. 2. Teniendo como datos de entrada el radio y la altura de un cilindro queremos calcular: el área lateral y el volumen del cilindro. 3. Calcular el área de un triangulo mediante la formula: Area = (p(p – a) (p – b) (p – c))1/2 , donde p es el semiperímetro, p = (a*b*c)/2, siendo a,b,c los tres lados del triángulo. 4. Escribimos un programa en el que se introducen como datos de entrada la longitud del perímetro de un terreno, expresada con tres números enteros que representan hectómetros, decámetros y metros respectivamente. Se ha de describir, con un rotulo representativo, la longitud en decímetros. 5. Escribir un programa que transforme grados Celsius en grados Fahrenheit. El problema se reduce simplemente a emplear la ecuación que nos permite realizar el cambio de escalas termométricas. Fahrenheit = Celsius * (9/5) + 32 6. Construir un programa para obtener la hipotenusa y los ángulos agudos de un triangulo rectángulo a partir de las longitudes de los catetos. Estructuras de Control Alternativas CONDICIONALES: Son aquellas que bifurcan o dirigen la ejecución de un programa hacia un grupo de sentencias u otro dependiendo del resultado de una condición SENTENCIA ALTERNATIVA SIMPLE IF - THEN - ELSE (SI - ENTONCES - EN CASO CONTRARIO) El funcionamiento de esta estructura es evaluando el resultado de la expresión, si es verdadero entonces se ejecuta la sentencia siguiente a la palabra reservada THEN, en caso contrario, se ejecuta _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 15/25 la sentencia a continuación del ELSE. La cláusula ELSE es opcional (puede no existir), sin embargo, toda estructura IF debe tener una palabra THEN asociada a ella. El formato general que adopta la estructura se muestra seguidamente: IF <expression lógica o booleana> THEN <sentencia simple> ELSE <sentencia simple>; IF <expression logica o booleana> THEN BEGIN <sentencia 1>; {compuesta} <sentencia 2>; ....... <sentencia N> END ELSE BEGIN <sentencia 1>; {compuesta} <sentencia 2>; ....... <sentencia N> END; Precaución: No puede existir un punto y coma inmediatamente antes de una palabra ELSE ya que este punto y coma sería interpretado por el compilador como final de la estructura IF y en este caso se produciría un error de sintaxis en el momento de la compilación del programa, ya que la cláusula ELSE de ir siempre precedida por la cláusula THEN Ejemplo: El programa número detecta si un valor es positivo o negativo, donde el valor es un número introducido por el usuario. program numero; var n: integer; begin write(‘Introduzca el número:’); readln(n); if n>0 then writeln(‘El número es positivo’) else writeln(‘El número es negativo o cero’); writeln(‘Presione Enter para Continuar …’); readln end. SENTENCIA ALTERNATIVA MÚLTIPLE CASE OF Se utiliza para los distintos valores de una variable o expresión existen distintos conjuntos de sentencias a ejecutar, por eso recibe el nombre de sentencia alternativa múltiple. El formato general que adopta la estructura se muestra seguidamente: _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 16/25 CASE <expression o variable> OF <lista de constantes 1>:<sentencia 1>; <lista de constantes 2>: <sentencia 2>; <lista de constantes 3>: <sentencia 3>; ...... <lista de constantes N>: <sentencia N>; ELSE <sentencia>; ……. END; CASE <expression o variable> OF <lista de constantes 1>: BEGIN <sentencia 1.1>; <sentencia 1.2>; <sentencia 1.3>; ..... <sentencia 1N> END; <lista de constantes 2>: <sentencia 2>; <lista de constantes 3>: <sentencia 3>; ...... <lista de constantes N>: <sentencia N>; ELSE BEGIN <sentencia 1>; <sentencia 2>; <sentencia 3>; …… <sentencia N> END END; Cada una de las listas de constantes, deben ser del mismo tipo que la variable o expresión. Si el valor de una de las constantes de las lista coincide con el valor actual de la expresión, se ejecuta la sentencia asociada a esa lista de constante: si el valor que toma la expresión o variable no está contenido en ninguna de las lista de constantes entonces se ejecuta la sentencia correspondiente a la cláusula ELSE. Cuando termina la ejecución de la sentencia el control salta a la sentencia siguiente al final dela estructura (sentencia END;). Las reglas para utilizar CASE son: Una constante no puede aparecer en dos listas de constantes distintas. La cláusula ELSE, se reserva para cuando hay que ejecutar sentencias si el selector de la sentencia case no toma ninguno de los valores contenidos en las listas de constantes. Si no hay que ejecutar ninguna sentencia la cláusula ELSE no se utiliza. Ejemplo: El programa menú solicita un número introducido por el usuario el cual corresponde a un día de la semana y el programa muestra a que día corresponde el número. Program menu; var numero_dia: integer; begin write(‘Introduzca un número del 1 al 7: ’); readln(numero_dia); write(‘Hoy es: ’) case numero_dia of 1: writeln (‘Lunes’); 2: writeln (‘Martes’); 3: writeln (‘Miercoles’); 4: writeln (‘Jueves’); 5: writeln (‘Viernes’); 6: writeln (‘Sabado’); 7: writeln (‘Domingo’) else _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 17/25 Writeln(‘Número fuera del rango de días de la semana’); end; writeln(‘Presione Enter para Continuar …’); readln end. INCONDICIONALES SENTENCIA GOTO La sentencia GOTO transfiere el control del programa a la sentencia siguiente a la etiqueta marcada en GOTO, pudiendo ser el salto adelante o atrás en el código. La sentencia GOTO requiere de una declaración de etiquetas LABEL. Para transferir el control a una sentencia etiquetada, se debe utilizar la sentencia GOTO etiqueta. Cada etiqueta sólo puede marcar una sentencia dento de un programa. La sentencia GOTO tiene el siguiente formato: etiqueta: <sentencia> . ... goto etiqueta La sentencia GOTO debe ser evitada y su uso restringido al máximo por no decir prohibido. No obstante en caso de necesidad jamás se debe saltar al interior de un bucle FOR, WHILE o REPEAT. Ejemplo: El programa muestra un ejemplo del uso de la instrucción GOTO program uso_del_goto; var nombre:string[15]; label practica; begin writeln('Cuál es tu nombre:’); writeln('Hola amigo ’,nombre); goto practica; writeln('esta línea no se escribirá'); practica: writeln(nombre, ' se efectuó el brinco'); end. Ejercicios propuestos de estructuras de control alternativas: (Elabore: Pseudocódigo, Diagrama de Flujo y Programa codificados en Pascal para cada ejercicio) 1. En un almacén se hace un 20% de descuento a los clientes cuya compra supere los 20.000 Bs. ¿Cuál será la cantidad que pagará una persona por su compra? 2. Un obrero necesita calcular su salario semanal, el cual se obtiene de la siguiente manera: _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 18/25 a. Si trabaja 30 horas o menos se le paga 1.000 Bs. Por hora. b. Si trabaja más de 30 horas se le paga 1.000 Bs. Por cada una de las primeras 30 horas y 1.600 por cada hora extra. 3. Realice un programa que lea dos números y los imprima en forma ascendente. 4. Realice un programa que calcule el total a pagar por la compra de camisas. Si se compran tres camisas o más se aplica un descuento del 20% sobre el total de la compra y si son menos de tres camisas un descuento del 10%. 5. Codificar un programa que escriba la calificación correspondiente a una nota, de acuerdo con el siguiente criterio: a. b. c. d. Si la nota esta entre 0 y 9,4 Si la nota esta entre 9,5 y 15,4 Si la nota esta entre 15,5 y 18,4 Si la nota esta entre 18,5 y 20 Reprobado Aprobado Sobresaliente Excelente 6. Leer dos números; si son iguales que los multiplique, si el primero es mayor que el segundo que los reste y si no que los sume. 7. Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se consideran horas extras y que estas se pagan al doble de una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se pagan las horas normales y el resto al triple. 8. Elabore un programa que solicite dos números por teclado y pregunte que operación se desea realizar con los dos números (+, -, *, /) y de el resultado de la operación seleccionada. 9. Dados tres valores A, B y C que representan longitudes en centímetros (cm.), se desea determinar si esas tres longitudes: a. Forman un triangulo isósceles. (dos lados iguales). b. Forman un triangulo equilátero (tres lados iguales). c. Ninguno de los anteriores. Estructuras de Control Repetitivas SENTENCIA WHILE (HAGA MIENTRAS) La sentencia WHILE indica a la computadora que se ejecutan una o más sentencias mientras que se cumpla una determinada condición. La condición viene determinada por una variable o expresión booleana. El formato general que adopta la estructura se muestra seguidamente: WHILE condición DO BEGIN <sentencia 1>; <sentencia 2>; ....... <sentencia N>; END WHILE condición DO <sentencia 1>; _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 19/25 Funcionamiento: La sentencia WHILE comprueba inicialmente si la condición es verdadera. Si la condición es verdadera se ejecutan las sentencias mientras la condición de su enunciado se verdadera y finaliza cuando la condición es falsa. Si la condición es falsa se saltan las sentencias del bucle, continuando la ejecución, del programa en la siguiente sentencia al mismo. Dado que la expresión o la variable pueden ser falsas inicialmente, es decir, antes de comenzar el bucle, habrá casos en que el bucle no se ejecute. Ejemplo: El programa escribe_enteros: escribe los n primeros números naturales, donde n es un valor introducido por el usuario. program escribe_enteros; var n, contador: integer; begin write(‘Introduzca número máximo de enteros:’); readln(n); contador:=1; while contador<=n do begin write(contador:5); contador:=contador+1 end; writeln; readln end. SENTENCIA REPEAT-UNTIL (REPITA HASTA) La sentencia REPEAT-UNTIL o bucle REPEAT ejecuta las sentencias comprendidas entre las palabras reservadas REPEAT y UNTIL, hasta que la expresión o variable sea verdadera. El formato general que adopta la estructura se muestra seguidamente: REPEAT <sentencia 1>; <sentencia 2>; ....... UNTIL condición; Características del bucle REPEAT: Los bucles REPEAT se ejecutan siempre una vez, por lo menos. La terminación del bucle se produce cuando el valor de la expresión lógica o condición de salida es (verdadera). El bucle REPEAT se ejecuta hasta que la expresión lógica es verdadera, es decir, se ejecuta mientras la expresión o variable toma el valor de falso. Ejemplo: El programa escribe_enteros: escribe los n primeros números naturales, donde n es un valor introducido por el usuario. _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 20/25 program escribe_enteros; var n, contador: integer; begin write(‘Introduzca número máximo de enteros:’); readln(n); contador:=0; repeat contador:=contador+1; write(contador:5); until contador=n writeln; readln end. SENTENCIA FOR (HAGA DESDE - HASTA) La sentencia o estructura FOR repite la ejecución de una o varias sentencias un número fijo de veces, previamente establecido. Al igual que WHILE y REPEAT necesita una variable de control del bucle. La sentencia FOR tiene los siguientes formatos: FOR VariableCOntrol:= ValorInicial TO ValorFinal DO <sentencia>; Y FOR VariableCOntrol:= ValorInicial DOWNTO ValorFinal DO <sentencia>; Donde <sentencia> puede ser una sentencia simple o bien una sentencia compuesta. El primer formato de la sentencia se denomina FOR ascendente y el segundo FOR descendente. Ejemplo: El programa escribe_enteros: escribe los n primeros números naturales, donde n es un valor introducido por el usuario. program escribe_enteros; var n, contador: integer; begin write(‘Introduzca número máximo de enteros:’); readln(n); for contador:=1 to n do write(contador:5); contador:=contador+1 writeln; readln end. _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 21/25 ¿ Cuàndo utilizar while / repeat / for ? Utilizar la sentencia o estructura FOR cuando se conozca el número de iteraciones. Utilizar la estructura REPEAT-UNTIL, cuando el bucle se realice por lo menos una vez. En todos los demás casos utilizar la sentencia WHILE. Ejercicios propuestos de estructuras de control repetitivas: (Elabore: Pseudocódigo, Diagrama de Flujo y Programa codificados en Pascal para cada ejercicio) 1. Realice un programa que lea 10 números. Obtener de cada uno de ellos su cuadrado y su cubo. 2. Leer 20 números e imprimir cuantos son negativos, cuantos positivos y cuantos neutros. 3. Calcular la suma de una serie de números leídos por teclado. 4. Calcular e imprimir la tabla de multiplicar de un número cualquiera. Imprimir el multiplicando, el multiplicador y el producto. 5. Calcular la suma de la serie de 1/1 + 1/2 + 1/3 + .... 1/n, donde n es un numero introducido por teclado. 6. En un equipo de basketball integrado por doce personas, se decide que el nombre del equipo debe estar compuesto por las iniciales del primer nombre de cada integrante. Realizar un programa que genere este nombre. 7. Calcular el factorial de un número entero leído desde el teclado utilizando las sentencias WHILE, REPEAT y FOR. 8. Se esta realizando el proceso de elección entre dos candidatos A y B, al votante se le da una tarjeta donde debe colocar:1 si su candidato es A y 2 si su candidato es B, se considera como voto nulo todas aquellas tarjetas que contengan un número diferente a los previamente señalados. Determinar cuantos votos obtuvo A, cuantos obtuvo B, cuantos fueron nulos y cual fue el candidato ganador de un total de N votantes. 9. Escribir un programa que calcule y visualice el más grande, el más pequeño y la media de n números. El valor de N se solicitará al principio del programa y los números serán introducidos por el usuario. 10. Encontrar el número mayor de una serie de datos. LA ESTRUCTURA ARRAY Un array (matriz, vector, vector, arreglo, etc..) es una estructura homogénea de datos, de tamaño constante accediendo a cada uno de sus elementos mediante un identificador común y uno o varios índices. Según la definición podemos ver: Todos los elementos del array son del mismo tipo. El número de ellos no varia durante la ejecución del programa. Accedemos a un elemento de la estructura mediante un identificador común, el nombre del array, y con el valor que toman uno ovarios indices. Al número de índices necesarios para designar un elemento del array se le denomina dimensión el array. _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 22/25 El número máximo de valores posibles que puede tomar cada índice se denomina rango de esa dimensión o índice. Los valores han de ser consecutivos. Podemos concluir, por tanto, que un array es una estructura homogénea de datos, estática y de acceso directo a sus componentes por posición. La posición la determina los valores de uno o varios índices. El tamaño ocupado por cada uno de los componentes sería el mismo que el que ocuparía si se declara como variable independiente. Ejemplos: Arreglos unidimensionales: 1.- Elabore un programa que permita cargar una lista de 20 elementos y luego imprimir todos aquellos elementos mayores de 15 y el subíndice o posición que ocupa en la lista. program mayor; var lista:array [1..20] of integer; i:integer; begin for i:=1 to 20 do begin write('numero [',i,']:'); readln(lista[i]); end; for i:=1 to 20 do begin if num[i]>15 then writeln('el numero ',lista[i], ' en la posición ', i); end; writeln('presione cualquier tecla para terminar'); readln end. 2.- Elabore un programa que permita cargar una lista de 5 nombres y luego imprimirlos con el subíndice o posición que ocupa en la lista. program nombres; var nomb:array [1..5] of string[20]; i:integer; begin for i:=1 to 5 do begin write('nombre [',i,']:'); readln(nomb[i]); end; for i:=1 to 5 do writeln('el nombre ',nomb[i], ' esta en la posicion ', i); writeln('presione cualquier tecla para terminar'); readln end. _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 23/25 Arreglos bidimensionales: 1.- Cargar una matriz cuadrada de orden 4, de la siguiente forma cada elemento debe ser la suma del numero de su fila y del numero de su columna. program matriz_4; var matriz: array [1..4,1..4 ] of integer; j,i:integer; begin writeln(' programa que calcula una matriz cuadrada de orden 4 especial'); writeln; for i:=1 to 4 do for j:=1 to 4 do matriz[i,j]:= i+j; for i:=1 to 4 do for j:=1 to 4 do writeln('en la posicion ', '[',i, ',',j,']', ' el valor es: ', matriz[i,j]); writeln('presione cualquier tecla para terminar'); readln end. FUNCIONES PREDEFINIDAS: Las funciones predefinidas resultan imprescindibles para la resolución de problemas sencillos. Las más utilizadas son: Abs(x). ArcTan(x). Chr(x). Cos(x). Exp(x). Frac(x). Int(x). Ln(x). Odd(x). Ord(x). Pred(x). Round(x). Succ(x). Sin(x). Sqr(x) Sqrt(x). Trunc(x). Algunas Funciones predefinidas Proporciona el valor absoluto de una variable numérica x. Proporciona el arco cuya tangente es x. Devuelve el carácter ASCII de un entero entre 0 y 255. Proporciona el coseno de x. x Proporciona la exponencial de x(e ). Devuelve la parte decimal de x. Devuelve la parte entera de x. Devuelve el logaritmo neperiano de x. Devuelve true si x es impar, y false sí en par. Devuelve el ordinal de una variable de tipo ordinal x. Devuelve el ordinal anterior a la variable ordinal x. Devuelve el entero más próximo al valor x. Devuelve el ordinal siguiente a la variable ordinal x. Devuelve el seno de x. Devuelve el cuadrado de x. Devuelve la raíz cuadrada de x, para x>=0. Devuelve la parte entera de x. _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 24/25 REGLAS PARA ESCRIBIR UN PROGRAMA EN PASCAL 1. Todo programa en pascal comienza con la palabra Program seguido del nombre del programa y termina con un punto y coma ( ; ) 2. Los programas en pascal no guardan márgenes. 3. Para construir el nombre de datos, bien sea, nombre de programa, nombre de variable, nombre lógico de archivo, constantes, funciones o procedimientos se deben seguir las siguientes recomendaciones: a. El nombre no puede ser mas largo de 12 caracteres. b. El nombre puede ir compuesto de letras, números y guiones. c. Es obligatorio que el nombre comience por letras. d. El nombre de un dato no puede estar repetido. e. En toda instrucción debe terminar la línea en punto y coma ( ; ) excepto en las llamadas sentencias: cont, type, var, repeat, begin, else, of, then, do, etc. 4. Nota: se denomina sentencia aquella palabra reservada que cierra una o más instrucciones. 5. Nota: la línea que va antes de un end o else no leva punto y coma ( ; ). 6. Siempre se debe tener en cuenta que: a. El símbolo igual (=) se utiliza para declarar constantes o para expresiones de comparación. b. El símbolo dos punto igual (:=) se utiliza en una asignación de variables, en un calculo o en un ciclo for. c. El símbolo dos punto (:) se utiliza para declarar datos en la sección de var. 7. Las constantes se declaran en la sección Const. Se debe tener en cuenta que una constante puede estar en un programa con algún fin de calculo o asignación y nunca se debe intentar cambiar la misma dentro del programa. 8. En un programa los valores de tipo carácter y string deben ir encerrados entre comillas simples (‘ ‘). 9. De acuerdo a la sentencia del bloque las mismas ejecutan una sola instrucción a excepción de que se utilice un begin y end para indicar que una sentencia ejecutara mas de una instrucción. 10. Todo programa debe o puede tener N cantidades de begin teniendo en cuenta que la cantidad de end tiene que ser igual a la cantidad de begin. a. En un programa debe haber un begin principal y end final. b. Todos los end terminan con punto y coma ( ; ) a excepción del end final que termina con un punto ( . ) ubicando el fin del programa que sé esta realizando. 11. En un programa se pueden anidar tantas sentencias como se requiera teniendo en cuenta que cada vez que se coloca un end es atribuido a la sentencia interna inmediata al mismo. 12. Para construir condiciones con If, While, Repeat o expresiones se debe tener en cuenta el uso de paréntesis ( ), en el caso que las condiciones sean múltiple y lógicas. 13. Para hacer comentarios en un programa se deben encerrar dichos comentarios entre llaves { } ó entre paréntesis y asteriscos (* *). _________________________________________________________________________________________________________ Elaborada por: Ing. Belén Díaz y Lic. Rayflor Medina Pág. 25/25