Vous êtes sur la page 1sur 18

2.

1- Lxico

Conjunto de smbolos que se pueden usar en un lenguaje.

Estos smbolos o elementos bsicos del lenguaje, podrn ser de los siguientes:

Identificadores: nombres simblicos que se darn a ciertos elementos de

Programacin (p.e. nombres de variables, tipos, mdulos, etc.).

Constantes: datos que no cambiarn su valor a lo largo del programa.

Operadores: smbolos que representarn operaciones entre variables y

constantes.

Instrucciones: smbolos especiales que representarn estructuras de

procesamiento, y de definicin de elementos de programacin.

Comentarios: texto que se usar para documentar los programas


Sintaxis
Consta de unas definiciones, denominadas reglas sintcticas o producciones que

especifican la secuencia de smbolos que forman una frase del lenguaje. Estas reglas

dicen si una frase est bien escrita o no.

Las reglas sintcticas pueden contener dos tipos de elementos:

Elementos Terminales ( Vocabulario)

Elementos no Terminales, que son construcciones intermedias de la gramtica.

Existen diversas formas de especificar las reglas, pero nicamente vamos a ver dos de

ellas:

Notacin BNF (Backus-Naur Form). Es de las primeras notaciones que se empez a

utilizar para especificar lenguajes de programacin.

Notacin BNF: <elemento no terminal>::= Definicin1 | Definicin2 | ...

Los elementos terminales, o sea, que pertenecen al vocabulario, se escriben tal cual.

Los elementos no terminales se escriben entre los smbolos <>.

Ejemplo: Descripcin sintctica de una expresin matemtica en notacin BNF:

---> 4*(3+1)

<expresin> ::= <numero> | (<expresin>) | <expresin><operador><expresin>

<operador> ::= + | - | * | /

<numero> ::= <digito> | <numero><digito>

<digito> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0

Diagramas sintcticos. Es una representacin grfica de la sintaxis. Tiene la ventaja

de ser ms intuitivo.
Los elementos terminales se inscriben en una elipse. Los elementos no terminales se

inscriben en un rectngulo.

2.2 variables y constantes

a constante es un dato cuyo valor no puede cambiar durante la ejecucin del


programa. Recibe un valor en el momento de la compilacin y este permanece
inalterado durante todo el programa.

Como ya se ha comentado en el tema sobre las partes de un programa, las


constantes se declaran en una seccin que comienza con la palabra
reservada const. Despus de declarar una constante ya puedes usarla en el cuerpo
principal del programa. Tienen varios usos: ser miembro en una expresion, en
una comparacin, asignar su valor a una variable, etc.

En el siguiente ejemplo se contemplan varios casos:

const
Min = 0;
Max = 100;
Sep = 10;
var
i : integer;

begin
i := Min;
while i < Max do begin
writeln(i);
i := i + Sep
end
end.

En este ejemplo se declaran tres constantes (Min, Max y Sep). En la primera lnea
del cuerpo del programa se asigna una constante a una variable. En la siguiente,
se usa una constante en una comparacin. Y en la cuarta, la
constante Sep interviene en una expresin que se asigna a una variable.
El resultado de ejecutar este programa sera una impresin en pantalla de los
nmeros: 0, 10, 20, 30, 40, 50, 60, 70, 80 y 90.
Se puede hacer una divisin de las constantes en tres clases:

constantes literales (sin nombre)


constantes declaradas (con nombre)
constantes expresin

Constantes literales
Son valores de cualquier tipo que se utilizan directamente, no se declaran ya
que no tienen nombre. En el siguiente ejemplo tienes un par de constantes
literales (el 3, el 4, y el 3.1416):

VolumenEsfera := 4/3 * 3.1416 * Radio


* Radio * Radio;

Constantes declaradas
Tambin llamadas constantes con nombre, son las que se declaran en la
seccin const asignndoles un valor directamente. Por ejemplo:

const
Pi = 3.141592; (* valor real *)
Min = 0; (* entero *)
Max = 99; (* entero *)
Saludo = 'Hola'; (* cadena caract. *)

Constantes expresin
Tambin se declaran en la seccin const, pero a estas no se les asigna un valor
directamente, sino que se les asigna una expresin. Esta expresin se evala en
tiempo de compilacin y el resultado se le asigna a la constante. Ejemplo:

const
Min = 0;
Max = 100;
Intervalo = 10;
N = (Max - Min) div Intervalo;
Centro = (Max - Min) div 2;
Variables
def: Una variable es un nombre asociado a un elemento de datos que est
situado en posiciones contiguas de la memoria principal, y su valor puede
cambiar durante la ejecucin de un programa.

Toda variable pertenece a un tipo de dato concreto. En la declaracin de una


variable se debe indicar el tipo al que pertenece. As tendremos variables enteras,
reales, booleanas, etc. Por otro lado, distinguimos tres partes fundamentales en la
vida de una variable:

Declaracin
Iniciacin
Utilizacin

Declaracin de variables
Esta es la primera fase en la vida de cualquier variable. La declaracin se realiza
en la seccin que comienza con la palabra var. Si quieres ms informacin,
puedes ir al apartado que trata sobre la declaracin de variables en el
tema Estructura de un programa.

Nota: Toda variable que vaya a ser utilizada en Pascal tiene que ser
previamente declarada.

Iniciacin de variables
Esto no es ms que darle un valor inicial a una variable. As como lo primero que
se hace con una variable es declararla, lo siguiente tiene que ser iniciarla. Esto se
hace para evitar posibles errores en tiempo de ejecucin, pues una variable tiene
un valor indeterminado despus de declararla. Principalmente, existen dos
maneras de otorgar valores iniciales a variables:

Mediante una sentencia de asignacin


Mediante uno de los procedimientos de entrada de datos (read o readln)

Veamos un ejemplo que rene los dos casos:

begin
...
i:=1;
readln(n);
while i < n do begin
(* cuerpo del bucle *)
i := i + 1
end;
...
end.

Utilizacin de variables
Una vez declarada e iniciada una variable, es el momento de utilizarla. Esta es la
parte que presenta un mayor abanico de posibilidades. A continuacin tienes unas
cuantas:

Incrementar su valor:

i := i + 1

Controlar un bucle:

for i:=1 to 10 do ...

Chequear una condicin:

if i<10 then ...

Participar en una expresin:

n := (Max - Min) div i

Y otras que ya irs descubriendo

2.3 Tipos de datos fundamentales.


Todos los datos tienen un tipo asociado con ellos. Un dato puede ser tal como un simple ca
entero tal como 10. El tipo de dato determina la naturaleza del conjunto de valores que p

Tipos de datos: Simples o Estructurados.

Los simples son: numricos, lgicos, y alfanumricos.


Los estructurados son: los arreglos, registros, archivos y apuntadores.
Datos numricos:

Permiten representar valores escalares de forma numrica, esto incluye a los nmeros ent
datos permite realizar operaciones aritmticas comunes.

Dato lgico:

Son aquellos que solo pueden tener dos valores (verdadero o falso) ya que representan el r
entre otros datos.

Datos alfanumricos. (String):

Es una secuencia de caracteres alfanumricos que permiten representar valores identificab


esto incluye nombres de personas, direcciones. Este tipo de datos se representa entre co

Tipos de datos estructurados.

Arreglos:

Son un conjunto finitos de valores escalares, ordenados y consecutivos, denominados conju


arreglo es una estructura de datos que almacena bajo el mismo nombre a una coleccin de

Almacenan los elementos en posiciones continuas de memoria y tienen un mismo nombre de


todos los elementos.

El tipo de un dato es el conjunto de valores que puede tomar durante el prog


valor fuera del conjunto se producir un error.

La asignacin de tipos a los datos tiene dos objetivos principales:

o Por un lado, detectar errores en las operaciones

o Por el otro, determinar cmo ejecutar estas operaciones

De Pascal se dice que es un lenguaje fuertemente tipeado. Esto quiere decir que todos lo
declarado explcitamente, y adems que existen ciertas restricciones en las
los tipos de datosque en ellas intervienen.

Una ventaja de los lenguajes fuertemente tipeados es que se gasta mucho menos esfu
programas gracias a la gran cantidad de errores que detecta el compilador.

Los tipos de datos, como casi todos los objetos de Pascal, se pueden declarar. La declara
el tema correspondiente a la estructura de un programa.
Clasificaciones en los tipos de datos

En Pascal existen gran variedad y cantidad de tipos de datos. Pero en este tutorial sl
que puedas ir construyendo tus primeros programas.

Existen muchas clasificaciones para los tipos de datos, y dependiendo de la fuente que m
A continuacin tienes una de las posibles clasificaciones:
o Dinmicos

o Estticos

El tipo cadena
Estructurados
Simples
+ Ordinales

+ No-ordinales

2.4 4 Operadores de precedencia


La precedencia de operadores es un conjunto de reglas de JScript que controla el orden
cuando se evala una expresin. Las operaciones con mayor precedencia se realizan an
la multiplicacin se realiza antes que la suma.
Una expresin est compuesta por operadores, variables y constantes. Para simplificar,
evala esta expresin es dividiendo el todo en subexpresiones. Las reglas que definen q
denominan reglas de precedencia. Aunque siempre podemos alterar dichas reglas medi
La tabla siguiente es una lista que muestra el orden de precedencia y la asociatividad d
programacin C++. Estn listados de arriba a abajo por orden de precedencia descende
misma celda (puede haber varias filas de operadores en la misma celda). La precedenc
sobrecarga.
Una tabla de precedencias, aunque adecuada, no puede resolver todos los detalles. Por
expresiones arbitrarias como operador central independientemente de la precedencia d
interpretado como a ? (b, c) : d en vez de (a ? b), (c : d). Tambin hay que tener en
una expresin de conversin en C no puede ser el operando de sizeof. Por eso sizeof (
x y no como sizeof ((int) *x).

Operador Descripcin
:: Resolucin de mbito (solo C++)

Post- incremento y decremento


++ -- Llamada a funcin
() Elemento de vector
[] Seleccin de elemento por referencia
. Seleccin de elemento con puntero (solo C++)
-> Informacin en tiempo de ejecucin
typeid()
Conversin de tipo (solo C++)
const_cast Conversin de tipo (solo C++)
dynamic_cast Conversin de tipo (solo C++)
reinterpret_cast Conversin de tipo (solo C++)
static_cast

++ -- Pre- incremento y decremento


+ - Suma y resta unitaria
! ~ NOT lgico y NOT binario
(type) Conversin de tipo
* Indireccin
& Direccin de
sizeof Tamao de
new new[] Asignacin dinmica de memoria (solo C++)
delete delete[] Desasignacin dinmica de memoria (solo C++)
.* ->* Puntero a miembro (solo C++)
* / % Multiplicacin, divisin y mdulo
+ - Suma y resta
<< >> Operaciones binarias de desplazamiento
< <= Operadores relaciones "menor que", "menor o igual que", "mayor que
> >=

== != Operadores relaciones "igual a" y "distinto de"


& AND binario
^ XOR binario
| OR binario
&& AND lgico
|| OR lgico
c?t:f Operador ternario
= Asignaciones
+= -=
*= /= %=
<<= >>=
&= ^= |=

Cuando la expresin de bsqueda consiste en una combinacin de trminos, se puede d


trminos. Si dos operadores estn en el mismo nivel en la lista, la biblioteca-e busca pr
la derecha. Ver la siguiente lista para ms informacin sobre la preferencia de operador

2.5 construccion de expresiones

.5 Construccin de expresiones.
Una expresion es una secuencia de operaciones y operandos que espe
un calculo
una expresion tal como

3*4+5

La computadora realiza primero la multiplicacion por tener el operado


prioridad mas alta y luego la suma, por tanto produc
orden en las operaciones, se deben utilizar parntes

3*(4+5)
Produce 27, ya que 4 + 5 se realiza en primer lugar.
Una expresin es una combinacin de operandos y operadores. Los op

Constantes literales o con nombre


Variables
Otras expresiones

Lo que se hace con una expresin es evaluarla para que devuelva un v

Tipos de expresiones:
Dentro de las expresiones distinguimos dos clases segn el tipo de da

Aritmticas: las que devuelven un valor numrico


Lgicas: las que devuelven true o false

Las expresiones se utilizan fundamentalmente en las asignaciones y e


sentencias if, while y repeat.
Ejemplo:

begin
i := 1;
encontrado := false;
while (i < final) and (not encontrado) do begin
(* mirar el elemento en la posicion i *)
(* si es, cambiamos "encontrado" a "true" *)
i := i + 1
2.6 2.6 Sentencias y bloques de sentencias de programa.
Las sentencias son los elementos bsicos en los que se divide el cdig
Al fin y al cabo, un programa no es ms que un conjunto de sentencia
cierta tarea. Adems, como ya habrs visto, en Pascal el signo que las

El parrafo anterior termina con una verdad a medias, ya que aunque g


seguida de un punto y coma para separarla de la siguiente, existen ca
incluirlo. Y estos casos se dan cuando despus de la sentencia hay un
delimitan de alguna forma un trozo de cdigo. Por ejemplo, end, else,

En este ejemplo podemos apreciar algunas de ellas, Ejemplo:

(* ... *)
begin
(* ... *)
if (a<>b) then
begin
aux := a ;
a := b ;
b := aux
end ;
writeln('a vale ',a,' y b vale ',b)
end .

Las sentencias como casi todas las cosas, se dividen en simples y estr

SENTENCIAS SIMPLES

Las sentencias simples se dividen en:

sentencia de salto incondicional (goto)


sentencia de llamada a procedimiento
sentencias de asignacin

La sentencia GOTO
La sentencia goto se utilizaba mucho en los primeros lenguajes de pro
manera de saltar de una instruccin del programa a otra.

La forma que tiene de trabajar es la siguiente:

Se pone al principio de una lnea una etiqueta. Es como una sea


Y se hacen llamadas a GOTO desde otras partes del cdigo indic
se quiere ejecutar a continuacin

muy importante!! Se ha comentado algo sobre el goto por curiosidad e


existe. Es una mala herramienta de programacin y se puede cambiar
repetitivas y alternativas

La sentencia de llamada a procedimiento


Esta sentencia consiste en llamar a un procedimiento, y se hace ponie
del procedimiento seguido de un punto y coma.

Mediante el uso de procedimientos facilitars la resolucin de problem


depuracin de los programas. Lo que haces es dividir un programa gra
llamarlos cuando los necesites.

La declaracin de procedimientos se suele hacer justo antes del cuerp


verla su tema correspondiente. Adems se dedica un tema completo a
procedimientos.

SENTENCIA DE ASIGNACION

Esta sentencia ya ests harto de verla a lo largo del tutorial. Aparece


ejemplos. Es una de las instrucciones ms comunes en un programa. L
valor o cambiar el valor a una variable.
Una sentencia de asignacin consta de tres partes:

La parte a la izquierda del smbolo de asignacin


El propio smbolo de asignacin
La parte de la derecha

2.7 ENTENCIAS DE ENTRADA Y SALIDA

Cuando nos referimos a entrada/salida estndar (E/S


estndar) queremos decir que los datos o bien se estn
leyendo del teclado, bien se estn escribiendo en
el monitor de video.
En el lenguaje c++ tenemos varias alternativas para
ingresar y/o mostrar datos, dependiendo de la librera
que vamos a utilizar para desarrollar el programa.

Las operaciones de entrada y salida no forman parte del


conjunto de sentencias de C++, sino que pertenecen al
conjunto de funciones y clases de la biblioteca estndar
de C++. Ellas se incluyen en los archivos de
cabecera iostream.h por lo que siempre que queramos
utilizarlas deberemos introducir la lnea
de cdigo #include <iostream.h>

Esta biblioteca es una implementacin orientada a


objetos y est basada en el concepto de flujos. A nivel
abstracto un flujo es un medio de describir la secuencia
de datos de una fuente a un destino o sumidero. As, por
ejemplo, cuando se introducen caracteres desde el
teclado, se puede pensar en caracteres que fluyen o se
trasladan desde el teclado a las estructuras de datos del
programa.

Los objetos de flujo que vienen predefinidos sern:


cin, que toma caracteres de la entrada estndar
(teclado);
cout, pone caracteres en la salida estndar
(pantalla);
cerr y clog ponen mensajes de error en la salida
estndar.

SALIDA (OUT)

El operador de insercion,
<<, inserta datos en flujo, ejemplos:

cout

<< 500; // envia el numero 500 a la


pantalla

cout

<< " esto es una cadena " ; // visualiza


Esto es una cadena

Es posible usar una serie de operadores


<< en cascada, ejemplo:
cout

<< 500
<< 600
<< 700;

visualiza 500, 600, 700.

De igual modo,

cout

<< 500
<<", "
<< 600
<< ", "
<< 700;

visualiza 500, 600, 700


C++ utiliza secuencias de escape para visualizar caracteres que
no estn representados por
simbolos tradicionales, tales como \a, \b, etc.
ejemplo:

cout << "\n" // salta a una nueva lnea

cout << "Yo estoy preocupado \n


no por el funcionamiento \n sino porla
claridad \n";

ENTRADA (CIN)

El archivo de cabecera iostream.h de la biblioteca


C++proporciona un flujo de entrada estndar cin
y un operadorde extraccin, >>, para extraer
valores del flujo yalmacenarlos en variables, la
entrada normal es el teclado.
ejemplo:

int n, n1, n2; // se declara las variables n, n1 y n2


cin >>n; // el cursor aparece en pantalla
esperando un
// date de entrada por el teclado
para ponerlo
// en la variable n.

Vous aimerez peut-être aussi