Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Introducción a la sintaxis del lenguaje Pascal: tipos de datos y operadores, Resúmenes de Humanidades y Ciencias Sociales

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

2021/2022

Subido el 14/07/2022

sebastian-garcia-diana
sebastian-garcia-diana 🇵🇪

1 documento

1 / 6

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
TEMA IV CONCEPTOS ELEMENTALES DE PROGRAMACIÓN
1. Codificación: elementos
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.
1.1. Léxico y sintaxis
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
<letramayú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
<letraminú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:
<letra> ::= <letra mayúscula> | <letra minúscula>
Los símbolos de llave { y } encierran en la parte de descripción elementos que pueden aparecer
una serie de veces o ninguna:
<entero positivo> ::= <dígito>{<dígito>}
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
1
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Introducción a la sintaxis del lenguaje Pascal: tipos de datos y operadores y más Resúmenes en PDF de Humanidades y Ciencias Sociales solo en Docsity!

TEMA IV CONCEPTOS ELEMENTALES DE PROGRAMACIÓN

1. Codificación: elementos

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.

1.1. Léxico y sintaxis

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:

::= <letra mayúscula> | <letra minúscula>

Los símbolos de llave { y } encierran en la parte de descripción elementos que pueden aparecer una serie de veces o ninguna:

::= <dígito>{<dígito>}

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:

::= {||<dígito>}

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>{} <fracción opt.> ::= .<dígitos> | ::= + | - | ::= e <dígitos> | E <dígitos> | <número sin signo>::= <dígitos><fracción opt.>

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> ::= := <expresión>

bien mediante una lectura del valor que proporcione en ese momento el usuario:

::= readln ()

(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.

1.5. Tipo de datos

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).

1.6. Entrada y salida

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.

::= read (, ) | readln (, ) | readln ()

Si la vía de entrada es el fichero input, éste puede omitirse, y la sintaxis se reduce a:

::= read () | readln () | readln

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.