Tipos de datos
- INTEGER -100
Rango: (-32768,32768-1) 2 bytes - REAL 3.14e-04
Rango: (-2.9E-38,2.9E-38)U(-1.7E+38,1.7E+38) 6 bytes - CHAR ‘A’
1 carácter ASCII, 1 byte - BOOLEAN TRUE
1 bit - STRING ‘CADENA’
1 cadena ASCII, - WORD
- DOUBLE
- EXTENDED
- LONGINT
- SINGLE
Declaraciones
La especificación de los identificadores en EBNF es la siguiente:
CONST
CONSTANTE1 = .35E-1
CONSTANTE2 = ‘A’
VARIABLES
VAR
X,Y,Z : INTEGER;
MATRICES
TYPE
Matriz = ARRAY [1..5,0..7] OF Tipo1;
Estructura de un programa básico
PROGRAM NombrePrograma;
USES Archivo;
VAR
{----}
CONST
{----}
TYPE
{----}
FUNCTION A(--------)
FUNCTION N(--------)
PROCEDURE A(-------)
PROCEDURE N(-------)
{COMENTARIOS DE REQUISITOS DEL }
{PROGRAMA}
{COMENTARIOS DEL © Y FECHA}
{COMENTARIOS DE IDEAS}
BEGIN
{CÓDIGO DEL PROGRAMA}
END.
Operadores
BÁSICOS
FUNCIONES MATEMÁTICAS := ASIGNACIÓN
ABS() |x|
ArcTan() Atn(x) COMPARACION
Cos() Cos(x) <=
Exp() ex <
Ln() ln x >=
Round() Redondea x >
Sin() Sen (x) = IGUAL
Sqr() X2 <> DISTINTO
Sqrt() RaizCuadrada x
Trunc() ###.####
MATEMATICOS
Frac()###.####
+
SUMA
Int()
- RESTA
Pi Π * PRODUCTO
Random 0.0<= x <1.0 / DIVISION REAL
Random(n) 0 <= x < n DIV DIVISION ENTERA
MOD RESTO
OPERADORES LOGICOS
AND Y CONVERSION DE VARIABLES
OR O INT() INTEGER
NOT NO SIN() SINGLE
STR() STRING
OPERADORES CON CADENAS VAR() VARIANT
CHR
ORD CODIGO ASC
PRED PREDECESSOR
SUCC SUCESOR
ODD 1 SI ES IMPAR
FUNCIONES MATEMÁTICAS := ASIGNACIÓN
ABS() |x|
ArcTan() Atn(x) COMPARACION
Cos() Cos(x) <=
Exp() ex <
Ln() ln x >=
Round() Redondea x >
Sin() Sen (x) = IGUAL
Sqr() X2 <> DISTINTO
Sqrt() RaizCuadrada x
Trunc() ###.
Frac()
Int()
- RESTA
Pi Π * PRODUCTO
Random 0.0<= x <1.0 / DIVISION REAL
Random(n) 0 <= x < n DIV DIVISION ENTERA
MOD RESTO
OPERADORES LOGICOS
AND Y CONVERSION DE VARIABLES
OR O INT() INTEGER
NOT NO SIN() SINGLE
STR() STRING
OPERADORES CON CADENAS VAR() VARIANT
CHR
ORD CODIGO ASC
PRED PREDECESSOR
SUCC SUCESOR
ODD 1 SI ES IMPAR
Prioridad de operadores
- Paréntesis, NOT
- *,/,DIV, MOD
- +,-
- Operaciones de izquierda a derecha
- <, <=, >, >=, =, <>
Funciones intrínsecas del compilador
I/O
WriteLn(‘dds’,var)
Escribe una
linea
Write(‘dds’,var)
Escribe los
caracteres indicados
ReadLn(var1,
var2)
Asigna
valores por teclado a varN
*SALIDA CON
FORMATO
Var1:4
Var1:4:2 0042,51
Var1:len
var:len:dec
ENTORNO DE
DESARROLLO
*COMENTARIOS
ENTRE LLAVES:
{}
Bucles
FOR
FOR Variable := {Inicio} TO {Final} DO
BEGIN
{CODIGO}
END;
WHILE
WHILE {Condición} DO
BEGIN
{CODIGO}
{MODIFICADOR DE LA CONDICIÓN}
END;
REPEAT
REPEAT
{CODIGO}
{MODIFICADOR DE LA CONDICION}
UNTIL {Condición};
WITH
WITH {Variable de tipo RECORD} DO
BEGIN
{CODIGO}
END;
Control del flujo de programa
IF
IF {Condición} THEN
BEGIN
{CODIGO}
END
ELSE IF {Condición} THEN
BEGIN
{CODIGO}
END
.
.
.
ELSE
BEGIN
{CODIGO}
END;
CASE
CASE {Variable} OF
A,B,C : {CÓDIGO}
D,E,F : {CÓDIGO}
A..X : {CÓDIGO}
ELSE
BEGIN
{CÓDIGO}
END;
Programación modular
LLAMADA A UNA FUNCIÓN
A:= NombreFuncion (a,b,c...{resto de argumentos})
Nota: Una función siempre devuelve un valor.
DECLARAR UNA FUNCIÓN
DECLARAR UNA FUNCIÓN
FUNCTION NombreFuncion(Var A,B,C,D:Tipo1; E,F:Tipo2):Tipo3;
{DECLARACION D OTRAS VARIABLES Y CONSTANTES}
BEGIN
{CODIGO DE LA FUNCION}
END;
DECLARAR UN PROCEDIMIENTO
PROCEDURE NombreProcedimiento (Var A,B,C,D:Tipo1; E,F,G:Tipo2);
{DECLARACION DE OTRAS VARIABLES Y CONSTANTES}
BEGIN
{CODIGO DEL PROCEDIMIENTO}
END;
UTILIZAR FUNCIONES RECURSIVAS
FUNCTION NombreFuncRec(Var1,Var2:Tipo1):Tipo1;
{DECLARACIÓN DE OTRAS VARIABLES Y CONSTANTES}
BEGIN
IF ______ THEN
NombreFuncRec:= VarX
ELSE
NombreFuncRec:= NombreFuncRec * ....
END;