



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Este documento ofrece una introducción básica a la sintaxis del lenguaje Pascal, enfocándose en los tipos de datos y los operadores. El texto explica los conceptos básicos de identificadores, constantes, variables, tipos de datos y operadores aritméticos y relacionales. Además, se incluyen ejemplos para ilustrar la sintaxis y el uso de estos conceptos.
Tipo: Resúmenes
1 / 6
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




Una vez diseñado el algoritmo sobre estructuras de datos adecuadas, se realiza la co-di-ficación en el lenguaje elegido. En este tema se comenzará a estudiar la codificación en Pascal.
El alfabeto sobre el que se construyen los programas Pascal está constituído por letras, dígitos y algunos otros signos, que se organizan según una forma estricta. Con objeto de describirla se emplean métodos específicos, como la notación Backus-Naur o los gráficos de Conway. En el primer caso, lo que se define aparece a la izquierda de los símbolos ::= y a la derecha la descripción o las descripciones posibles separadas por un símbolo |. Los términos que tengan que ser utilizados literalmente aparecerán en letra normal, y los que se usen para describir, en itálica o entre <>. Por ejemplo:
<dígito> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 <letra mayúscula> ::= A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z <letra minúscula> ::= a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z
En la descripción pueden usarse términos ya descritos:
Los símbolos de llave { y } encierran en la parte de descripción elementos que pueden aparecer una serie de veces o ninguna:
Los gráficos de Conway realizan la descripción mediante el recorrido de un grafo:
Con los símbolos del alfabeto se construyen palabras (también llamadas componentes léxicos o “token”). El conjunto de palabras constituye el léxico del lenguaje. El léxico del Pascal está constituído por:
palabras reservadas: tienen un significado especial para el compilador, de forma que no pueden ser usadas en más contexto que en el de su significado, y son exactamente:
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
además de las 24 siguientes, formadas por uno o varios caracteres especiales
comentarios: están constituídos por cualquier sucesión de símbolos que no contenga } encerra- dos entre llaves { y }. En casi todos los sistemas, las palabras (* y *) cumplen el mismo papel que las llaves. Los comentarios pueden ponerse en cualquier lugar en el que pueda ponerse un espacio, y el compilador los ignora, de forma que se usan para documentar el programa de forma que sea más claro y legible.
identificadores: son nombres que asigna el programador a determinados elementos, como el propio programa, subprogramas (procedimientos y funciones), variables, constantes y tipos. Su sintaxis es:
En teoría pueden ser de cualquier longitud, aunque en la práctica, normalmente los sistemas la limitan a un número, que será igual o superior a 8 si se respeta el “estándar”.
identificadores predefinidos: para ciertas funciones, constantes, etc. que pueden redefinirse si es necesario. Por ejemplo: integer, real, boolean, read, readln, sin, cos, TRUE...
números: para ellos se emplea la notación decimal, admitiendo la letra E o e como factor de escala, con el significado “por 10 elevado a”.
<dígitos> ::= <dígito>{
Por ejemplo: 123 123.23 1.2312E-
cadenas literales: cualquier sucesión de símbolos que no contenga la comilla simple (’) ence- rrada entre comillas simples (si se quiere que aparezca una comilla, se duplica). Por ejemplo: ’Resolver ecuación ax^2 + bx + c = 0 con a no nulo’ ’Esto es un ejemplo de cadena con una comilla ’’ simple’
separadores: los espacio, avances de línea y comentarios, o varios de ellos son con-si-derados simplemente como separadores de palabras.
Salvo para el caso de las cadenas literales, no se distingue entre mayúsculas y minúsculas. Con estos elementos se contruyen las frases (sentencias o intrucciones), constituyendo la sinta- xis. El símbolo ; separa una sentencia de la siguiente. Normalmente, para facilitar la legibilidad, se escribe cada sentencia en una línea, pero esto no es obligatorio. La sintaxis completa del Pascal puede encontrarse en varias referencias (por ejemplo en la página web de la asignatura). El Pascal que se definió inicialmente se conoce como Pascal estándar , y puede encontrarse en el documento “PASCAL. Manual del usuario e informe” de Jensen y Wirth (1975). Las implantaciones prácticas (compiladores) pueden ampliar el léxico y la sintaxis pero deben respetar las especifica- ciones de dicho estándar.
<declaración de variables> ::= var
La asignación se realiza bien mediante una sentencia de asignación:
<sentencia de asignación> ::=
bien mediante una lectura del valor que proporcione en ese momento el usuario:
(hay algunos otros modos, que se verán más adelante). En el primer caso, la expresión está compuesta por constantes y variables previamente definidas, ligadas por operadores adecuados. En el segundo, el usuario debe proporcionar valores de los tipos de las variables a las que se asignarán. El valor de una variable puede cambiar a lo largo de la ejecución (de ahí el nombre de variable ). Una variable se usa en general para formar parte de una expresión (cuyo valor pro-ba-blemente se asignará a otra variable). Cuando se usa, significa el valor que tiene en ese momento. Una expresión tiene un tipo (determinado por sus operadores y operandos) y un valor (es una excepción de la necesidad de nombre, tipo y valor). Una constante es un valor, que también se almacena en algún lugar. Puede tener nombre (como el caso de PI en el ejemplo) o no tenerlo (como el caso del 2.5 del ejemplo, otra excepción de la necesidad de nombre, tipo y valor). Pero tal valor no cambia en la ejecución (de ahí el llamarla constante ). Las constantes sin nombre pueden usarse sin declarar, puesto que el valor es lo que se usa directamente, y el tipo está determinado por dicho valor. La definición de constantes con nombre se realiza mediante una sentencia
<definición de constantes> ::= const
En el uso, al igual que en el de las variables, significan su valor. Existen a veces constantes predefinidas. En Pascal, por ejemplo, MAXINT es una constante entera cuyo valor depende de la implantación y es el del mayor número entero positivo representable (al menos 32767 = 2^15 − 1 ). En este segundo ejemplo, el programa es algo más útil: se le pide al usuario el valor del radio.
program SegundoEjemplo (input, output); (* Área de un círculo de radio dado por el usuario*) const PI = 3.141592; var radio, area : real ; BEGIN writeln (’Escriba un valor para el radio de un círculo’); readln (radio); writeln (’Considerando el valor de PI como ’, PI); area := PI * radio * radio; writeln (’el área de un círculo de radio’, radio, ’ es ’, area) END.
Tanto las variables como las constantes y las expresiones tienen un tipo. Un tipo viene caracte- rizado por
un conjunto de valores (posibles)
un conjunto de operaciones que se pueden realizar con ellos
De algún modo, un tipo es una forma del lugar de almacenamiento, que determina las operacio- nes realizables con los datos que pueda contener. Por ejemplo, se pueden sumar enteros, pero no se pueden sumar caracteres. En los lenguajes existe una serie de tipos predefinidos, y normalmente una forma de permitir que el programador defina los suyos propios. Entre los tipos predefinidos habrá números enteros, reales, caracteres, cadenas de caracteres, etc. Por ejemplo, en Pascal, el tipo entero está predefinido, caracterizado por su nombre: integer, el conjunto de valores posibles: los números enteros de un intervalo dado, normalmente [-(MAXINT+1), MAXINT], y un conjunto de operaciones que incluyen la suma (+), la diferencia y cambio de signo (-), el producto (*), la división entera (DIV) y el resto de dicha división (MOD).
La entrada y la salida de datos se realizan mediante procedimientos predefinidos. En el caso del Pascal, llamados read y readln para lectura y write y writeln para escritura.
1.6.1. Lectura
Es una asignación en tiempo de ejecución, a una serie de variables que se indican, de unos valores que proporciona el usuario en ese momento, por la vía que se le especifique. La vía más sencilla es el dispositivo (fichero) input, que suele estar asignado al teclado. Si un programa utiliza esta vía, se debe especificar en la cabecera del programa entre la lista de dispositivos.
Si la vía de entrada es el fichero input, éste puede omitirse, y la sintaxis se reduce a:
El programa esperará a que el usuario escriba valores suficientes para asignarlos a las variables según el orden. La separación entre los valores se hace mediante espacios en blanco o avances de línea (return). El control de la ejecución está en manos del usuario hasta que éste pulse la tecla de avance de línea. Si hay más valores en la entrada de los requeridos, quedarán almacenados en una zona de me- moria intermedia para posteriores lecturas. Es responsabilidad del usuario proporcionar datos de los tipos que se esperan. En caso contrario, no está especificado en el estándar qué se hará. Por ello es siempre recomendable que antes de las lecturas, se informe al usuario claramente de lo que se espera. En el caso de la instrucción readln, una vez satisfechas las asignaciones, se omiten todos los datos que aparezcan en la línea de entrada, de forma que los siguientes accesos para lectura se harán en la línea siguiente. La instrucción readln sin lista de variables esperará hasta que el usuario pulse un avance de línea (si es que no estaba almacenada tal pulsación en la zona de memoria intermedia de entrada). Suele usarse para forzar una pausa controlada por el usuario.
1.6.2. Escritura
Es una acción (procedimiento) que evalúa una serie de expresiones y las muestra por el dispo- sitivo especificado. El más sencillo es el llamado output que suele estar asignado a la pantalla.