1. Introducción Reglas Sintácticas

Anuncio
Tema 3. – Elementos básicos de un lenguaje
de programación. Turbo Pascal
1. Introducción
1. Introducción
¾Sintaxis y semántica de los lenguajes:
2. Tipos de datos básicos
¾Sintaxis: conjunto de normas para la escritura de
3. Otros tipos
4. Constantes y variables
sentencias.
5. Expresiones: tipos y operadores
¾Mediante diagramas sintácticos
6. Instrucción de asignación
¾Mediante reglas BNF
7. Funciones predefinidas
8. Funciones de E/S
¾Semántica: significado de las sentencias
9. Estructura de un programa en Pascal
1
Reglas Sintácticas
Diagramas Sintácticos
Reglas BNF
¾ Cada diagrama sintáctico define la sintaxis de
una sentencia
sent_mientras ::= while <condición> do <sentencia> ;
sentencia
2
::= <sentencia_simple>
| <sentencia_compuesta>
¾ Se interpreta seleccionando cualquier camino
(siguiendo el sentido de las flechas) desde la
entrada a la salida del diagrama y teniendo en
cuenta todo lo que forma parte del camino
Diagramas sintácticos
while
do
condición
sentencia
¾ Existen diagramas sintácticos para todo el
lenguaje Turbo Pascal
;
3
Diagramas Sintácticos
Sintaxis de Turbo Pascal
¾ Ejemplo:
¾ Las palabras y secuencias de palabras que se
pueden utilizar en un programa Turbo Pascal se
clasifican en:
letra
a ...
z
A
...
4
Z
¾ Literales
digito
¾ Identificadores
0
1
...
8
9
¾ Palabras reservadas
¾ Comentarios
hexadecimal
a ...
f
A
...
F
digito
5
6
Literales
Identificadores
¾ Los literales se utilizan para expresar valores
¾ Los identificadores son nombres que se utilizan para
expresar constantes, variables, tipos de datos, nombres
constantes:
¾ Literales enteros: 0
1
60
¾ Literales reales: 2.9E-39
1.0
¾ Caracteres: ‘H’
‘‘
‘:’
¾ Cadenas (strings): ‘Hora: ‘
‘#!?’
de procedimientos y funciones, etc.
-32767
¾ Tipos:
3.1416
‘‘’’
¾ estándares: integer, real, byte, ord, chr, round,...
‘3’
¾ definidos por el usuario:
¾ 127 caracteres como máximo
¾ no pueden ser palabras reservadas
¾ no se diferencian mayúsculas y minúsculas
‘321’
identificador
letra
-
letra
digito
-
7
8
Palabras reservadas
Comentarios
¾ Las palabras reservadas son palabras que tienen
¾ Los comentarios son texto que se inserta dentro del
un significado especial para el compilador. No se
código fuente, por ejemplo, para explicar partes de
pueden cambiar.
código. No generan código ejecutable.
¾ Ejemplo:
¾ (* Esto es un comentario *)
and, array, asm, begin, case, const, constructor
div, do, downto, else, end, file, for, function, goto
if , implementation, in, inline, interface, label, mod
nil, not, object, of, or, packed, procedure, program
record, repeat, set, shl, shr, string, then, to, type
unit, until, uses, var, while, with, xor
¾ {Esto es otro comentario}
9
10
2. Tipos de Datos Básicos
Estilo de programación
¾ La mayoría de los programas son leídos por otros
programadores, distintos del propio autor.
¾ Todos los lectores deben poder identificar fácilmente el
funcionamiento del programa, localizar y corregir posibles
errores y/o modificar el código original.
¾ La lectura de un programa escrito con un estilo inapropiado
resulta desagradable incluso para su autor.
¾ Se recomienda la utilización de comentarios para explicar el
funcionamiento de cada porción de código.
¾ Deben seleccionarse identificadores lo más descriptivos
posibles y atenerse siempre a los mismos criterios (uso de
mayúsculas o minúsculas, ‘_’, etc.).
11
¾ Lenguajes tipados : datos son de un tipo concreto
¾ Lenguajes soportan múltiples tipos
¾ Distintos lenguajes, distintos tipos
¾ La mayoría soportan los tipos básicos:
¾ Naturales
¾ Enteros
¾ Reales
¾ Caracteres
¾ Booleanos (tipos lógicos)
12
Clasificación de Tipos
Tipo Entero
¾ Ordinales: aquellos en los que tiene sentido el
concepto ‘siguiente’:
¾ Se usa para representar datos naturales y enteros
¾ Tipos:
¾ Enteros
¾ Caracteres
¾ Booleanos
¾ Byte Æ naturales < 256
¾ Shortint Æ enteros entre –128 y 127
¾ Reales: aquellos en los que no tiene sentido el
concepto ‘siguiente’:
¾ Integer Æ enteros entre –32768 y 32767
¾ Word Æ naturales menores de 65536
¾ Reales
¾ Longint Æ enteros entre –2147483648 y 2147483647
13
14
Tipo Caracter y Tipo Booleano
Tipo Real
¾ Tipo caracter:
¾ Se utiliza para representar datos numéricos reales
¾ Se usa para representar letras del abecedario (1 letra)
¾ Interesa conocer rango de valores y precisión
¾ Char
¾ Tipos:
¾ Tipo booleano:
¾ Real. 11-12 dígitos significativos Æ 2.9x10-3 – 1.7x1038
¾ Se usa para representar los valores ‘verdadero’ y ‘falso’
¾ Single. 7-8 dígitos significativos Æ 1.5x10-45 – 3.4x1038
¾ Boolean
¾ Double . 15-16 dígitos significativos Æ 5x10-324 – 1.7x10308
¾ Extended. 19-20 dígitos significativos Æ 3.4x10-4932 – 1.1x104932
¾ Comp. 19-20 dígitos significativos Æ -9.2x10-18 – 9.2x1018
15
16
3. Otros Tipos
Otros Tipos
¾ Tipo Enumerado
¾ Tipo Subrango
¾ Definido por el usuario
¾ Definido por el usuario
¾ Contiene una enumeración
¾ Contiene una parte de los elementos de una lista
¾ Es un tipo ordinal
(
¾ Es un tipo ordinal
identificador
)
constante
..
constante
,
¾ Ejemplo:
¾ Ejemplo:
¾ (Lunes, Martes, Miércoles, Jueves, Viernes, Sábado, Domingo)
¾ Lunes .. Viernes
17
18
4. Constantes y Variables
Constantes
¾ Constante entera:
Constante
Variable
Nombre
Fijo
Fijo
¾ 21, -21, +21
Tipo
Fijo
Fijo
¾ Constante real:
Variable
¾ Ejemplos:
Valor
Fijo
digito
¾ Ejemplos:
+
-
¾ +34.45, -23.12e34, 12E-23
• Constante: dato que no se puede modificar en toda
la ejecución del programa
digito
.
digito
E
+
• Variable: dato cuyo valor va cambiando a medida
que se ejecuta el programa
e
-
-
19
Constantes
¾ Constante tipo caracter:
¾ ‘Hola?’
20
Constantes
‘
¾ Ejemplos:
digito
+
‘
¾ Declaración: informar al compilador de que se va a usar un
‘
carácter
determinado nombre para referirse a una constante
‘
¾ Diagrama:
¾ ‘456’
¾ ‘ ’’ ’
CONST
¾ Constante booleana:
identificador
=
constante
;
¾ Ejemplo:
¾ Ejemplos:
CONST
¾ TRUE
pi = 3.141596;
¾ FALSE
nombre = ‘Pepe’;
21
22
Variables
5. Expresiones: Tipos y operadores
¾ Declaración: informar al compilador para que sepa cuál es el
¾ Expresión: cálculo que se realiza sobre un conjunto
tamaño que le corresponde a cada variable (en memoria)
de variables y constantes
¾ Diagrama:
VAR
¾ Operadores: indican el tipo de cálculo que se realiza
identificador
¾ Ejemplo:
:
tipo
¾ Tipos de Operadores:
;
¾ Unarios: se aplican sobre una única variable/constante
,
¾ Binarios: se aplican sobre parejas de variables/constantes
VAR
a, b : integer;
dia: (Lunes, Martes, Miércoles, Jueves, Viernes, Sábado, Domingo);
finde: Sabado..Domingo;
23
24
Operadores en Pascal
Operadores en Pascal
¾+
¾*
¾ Op. binario suma
¾ Op. binario producto
¾ Enteros, reales, etc.
¾ Enteros, reales, etc.
¾ Admite operandos de tipos distintos
¾ Admite operandos de tipos distintos
¾-
¾ DIV
¾ Op. binario resta
¾ Op. binario división entera
¾ Enteros, reales, etc.
¾ Se aplica sobre enteros
¾ Admite operandos de tipos diferentes
¾ Da como resultado enteros
25
26
Operadores en Pascal
Operadores en Pascal
NOT
¾ NOT
¾ MOD
¾ Operador unario negación
¾ Op. binario resto
T
F
F
T
¾ Devuelve ‘verdadero’ si se aplica sobre falso y viceversa
¾ Se aplica sobre enteros
¾ AND
¾ Da como resultado enteros
¾ Operador binario ‘y’
¾/
AND
T
F
T
T
F
F
F
F
¾ Devuelve ‘verdadero’ si los dos operandos son verdaderos y falso en
caso contrario
¾ Op. binario división real
¾ OR
¾ Admite operandos de cualquier tipo
¾ Operador binario ‘o’
¾ Da como resultado un real o un extended
OR
T
F
T
T
T
F
T
F
¾ Devuelve ‘verdadero’ si uno de los dos operandos es verdadero y
¾ Si alguno de los operandos es 0 da error
falso en caso contrario
27
28
Operadores en Pascal
Prioridades de los Operadores
¾ Prioridades de ejecución entre los operadores
¾ Operadores relacionales
¾ Operan con operandos compatibles ( de igual tipo / entero vs. real)
Prioridad Operador
¾ Devuelven siempre un booleano
+
¾ = (igual que)
1
(expresión)
NOT
2
*, /, DIV, MOD
3
+, - (unarios y binarios), OR, AND
4
=, <>, <, <=, >, >=
¾ > (mayor que)
¾ < (menor que)
¾ >= (mayor o igual que)
¾ <= (menor o igual que)
-
¾ <> (distinto que)
29
30
6. Instrucción Asignación
7. Funciones Predefinidas
¾ Sirve para asignar un valor a una variable
¾ Tienen un nombre
¾ En Pascal se utiliza el símbolo ‘:=‘
¾ Hay que indicar sobre qué valor se van a calcular
¾ Variable := expresión
¾ Pueden aparecer como parte de una expresión
¾ La expresión debe poder calcularse
¾ Tienen prioridad de cálculo dentro de la expresión
¾ La variable debe estar declarada
¾ Trabajan con valores de un tipo concreto y
¾ El tipo que devuelve la expresión debe ser compatible
devuelven un valor de un tipo determinado
con el tipo de la variable
¾ La expresión se calcula antes de realizar la asignación
31
Funciones Predefinidas
32
Funciones Predefinidas
¾ Tipos Reales:
¾ Tipos Ordinales:
¾ ord(x): devuelve el número de orden de x dentro del tipo. Ej. Semana:
(lu,ma,mi,ju,vi,sa,do)
¾ abs (x): devuelve el valor absoluto de x
¾ arctan (x): devuelve el arcotangente de x
¾ cos (x): devuelve el coseno de x
ord(ju) Æ 3
¾ exp (x): devuleve el valor de ex
¾ succ(x): devuelve el sgte. elemento a x en el tipo
¾ frac (x): devuelve la parte decimal de x
Ej. letra: char; letra:=‘m’;
¾ int (x): devuelve la parte entera de x
succ(letra) Æ ‘n’
¾ ln (x): devuelve el logaritmo neperiano (o natural) de x
¾ pred(x): devuelve el anterior elemento a x en el tipo
¾ round (x): devuelve el entero más próximo a x (longint)
Ej. num: integer; num:=-4;
¾ sqr (x): devuelve el cuadrado de x
pred(num) Æ -5
¾ sqrt (x): devuelve la raíz cuadrada de x
33
Funciones Predefinidas
¾ trunc (x): devuelve la parte entera de x (longint)
34
8. Funciones de E/S
¾ Tipos caracter:
¾ Los periféricos por defecto en TP son el teclado
¾ chr (x): devuelve un tipo char que es el que le corresponde
a x en la tabla ASCII. x es de tipo byte
(entrada/input) y la pantalla (salida/output)
¾ Sentencias de entrada:
¾ upcase (x): si x está en el rango ‘a’..’z’, devuelve la
mayúscula correspondiente, si no, devuelve x. x es de tipo
char
¾ read (nombre_var1, nombre_var2,...);
¾ readln (nombre_var1, nombre_var2,...);
¾ Sentencias de salida:
¾ write (nombre_var1, nombre_var2,...);
¾ writeln (nombre_var1, nombre_var2,...);
¾ -ln significa salto de línea
35
36
Funciones de E/S
9. Estructura de un programa Pascal
¾Ejemplo:
¾ Cabecera del programa
Xuban Arrieta Goia 18 ↵
23 ↵
readln(Nombre, Apellido);
readln(Edad);
writeln(Apellido, ’, ’ ,Edad);
program nombre_programa (parámetros);
¾ Sección de declaraciones
≡
const ...
var ...
type ...
write(Apellido, ‘, ’);
writeln(Edad);
¾ Cuerpo del programa
writeln(Nombre);
begin
Arrieta, 23
Xuban
end.
instrucciones;
37
Ejemplo
Program potencia_de_2;
var a,b : integer;
begin
writeln (‘Dame un número’);
readln (a);
b := sqr (a);
writeln (‘El cuadrado de ‘, a, ‘es ’,b);
end.
CABECERA
DECLARACIONES
CUERPO
39
38
Descargar