Palabras reservadas de Pascal

and

else

mod

real

array

end

nil

set

begin

file

not

then

boolean

for

of

to

case

function

or

type

const

goto

packed

until

char

if

procedure

var

div

in

program

while

do

integer

record

with

downto

label

repeat

 

Tipos de datos

byte

boolean

longint

char

single

double

integer

string

 

real

word

 

 

constantes

basicamente Pascal maneja dos tipos de constantes : de caracteres string y numericas

De caracteres string que se hallan encerrados o delimitados por el carácter comillas . El tamaño de su longitud depende del compilador. Cualquier carácter puede puede formar parte de la constante

numericas : En Pascal estamdar estan conformadas por digitos, el punto decimal y un signo . los dos ultimos componentes dependen del tipo de constante.

La declaracion de variables presenta el siguiente prototipo :

const

variable=valor ;

un ejemplo de esto podria ser :

const

pi=3.14 ; radio = 20.8 ; titulo = ‘codigo’ ;

 

Identificadores

Las reglas para los identificadores en Pascal Son :

 

Operadores

* Multiplicacion

/ Division real

div division entera

mod residuo de division entera

+ adicion, union de conjuntos

- substraccion, diferencia de conjuntos

= igual

< > no igual

< menor

> mayor

< = menor o igual

> = mayor o igual

in mienbro de conjunto

not negacion logica

or disyuncion logica

and conjuncion logica

(de mayor a menor)

Precedencia

operadores

4

not

3

* / div mod and

2

+ - or

1

= <> > >= <=

Las reglas de evaluacion de una expresion es :

Control de flujo

Secuencias

En Pascal una secuencia en un numero finito de sentencias.

Sentencias condicionales

En Pascal las sentencias condicionales son el if y case (similar con el swicht en C/C++)

if

La sintaxis en pascal de esta sentencia es la siguiente :

if condicion then instrucción 1

else instrucción 2 ;

La condicion debe ser de tipo buleano, si el resultado es verdadero se ejecuta la instrucción 1, si es falso se ejecutara la instrucción 2 . Si es requerido ejecutar mas de una instrucción, se debera hacer el uso de una instrucción compuesta. Para satisfacer los requerimientos de sintaxis.

Por ejemplo :

if z=2

then begin

z :=k*t ;

y :=m

end 

else begin

b := a ;

z :=k+b

end ;

case

Permite seleccionar de un cojunto de alternativas una de ellas, en base al valor de una variable de tipo enumerado.

Iteraciones

En pascal estan tres sentencias de iteracion : while, repeat y for

repeat

esta sentencia consta de dos partes :

La sintaxis de la instrucción es la siguiente :

repeat

instruccion1 ;

instruccion2 ;

..........

until condicion ;

while

su forma general es :

while condicion do begin

instruccio1 ;

instrucción 2 ;

instruccion

end ;

for

Su forma general es :

for variable de control

{ := valor inicial to valor final}

{ := valor inicial downto valor final}

do instrucción ;

La sentencia for con las opciones to downto implican en su orden, un aumento o disminucion de uno con respecto a su valor inicial. El limite de la iteracion del bloque de instrucciones vendra dado por el valor final

Los valres inicial y/o final podrian ser expresiones cuyo resultado sea un entero.

La opcion to, el valor inicial tiene que ser menor o a lo sumo igual a su valor final.

Com la opcion downto , el valor inicial debe ser mayor o a lo sumo igual que el final

Por ejemplo ;

N :=20 ;

J=10 ;

For I := J to N do A :A+1 ;

 

Variables

Las variables en Pascal se deben definir siempre al principio del programa, en una parte destinada a esto..

Por ejemplo :

Program hola ;

type

.........

var

i,j,k :integer ;

x,y :real ;

Pascal posee variables globales y son accesibles por cualquier modulo del programa, su ciclo de vida es todo el programa.

Tambien existen variables locales al procedimiento o funcion, tienen existencia propia, cuando el modulo , procedimiento o funcion es invocado y permanecen con vida hasta su terminacion, su visibilidad es unicamente para ese modulo.en la cual la variable existe.

Estructuras

Son manejadas con la misma logica de otros lenguajes.

Su prototipo es :

type

nombre del tipo de registro = record

v1,v2 tipo v ;

v3 tipo w ;

end ;

var

variable :registro ;

En esta declaracion se especifica en la parte var si hay variables de tipo estructurado.

Un ejemplo de una estructura podria ser :

type

registro = record

codigo : integer ;

nombre : array[1..35] of char

end ;

var

estudiante :registro ;

Para que la estructura estudiante pueda accesar a alguno de sus componentes se escribe :

estudiante. variable que se halla en la estructura.

Otro tipo de estructura en Pascal son los conjuntos. Hay que tener en cuenta que en los conjuntos se tiene que trabajar con la logica de estos.

Un conjunto se define como una colección de objetos que pertenecen a un mismo tipo base asociado al conjunto.

Un ejemplo puede ser :

type

frutas=(Pera,Lulo) ;

f=set of frutas ;

var

b :f ;

Tipos definidos por el usuario

Tipo enumerado

Es u tipo de dato enumerado no estandar y definido por el programador, el cual esta constituido por una serie de valores a los que el sistema de Pascal les asigna un ordenamiento lineal, para asi poderlos identificar internamente.

Las variables asociadas a un tipo enumerado solo pueden almacenar valores que conforman el tipo.

El protoyipo para un tupo enumerado es :

type

te = (valor1,valor2...,valorn)

var

v1 :te ;

Procedimientos y funciones

Procedimientos

un procedimiento es un programa que puede entregar mas de un valor al procedimiento, funcion o programa que lo activa.

Un procedimiento en Pascal se define de la siguiente forma :

procedure nombre del procedimiento (lista de parametros formales que necesita) ;

declaracion de variables locales al procedimiento si lo requiere

begin

Instruccines del procedimiento

end ;

Si el procedimiento no declara variables locales , significa que va a trabajarcon variables globales, que son definidas en cualquier bloque externo que lo contenga.

La llamada a un procedimiento es :

nombre del procedimiento (parametros actuales si los requiere) ;

Funciones

Una funcion es un programa que solo entrega un valor al programa , funcion o procedimiento que la invoca.

La declaracion de una funcion es :

function nombre de la funcion (parametros formales si los requiere) : tipo resultante ;

var

declaracion de variables  locales si lo requiere;

begin

instrucciones

end ;

La llamada a una funcion se hace en la siguiente forma :

identificador := (parametros actuales si los tiene) ;

El identificador y el nombre de la funcion deben ser de tipos compatibles.

Sustitucion por valor

Este tipo de sustitucion de parametros se representa cuando en la definicion de los parametros formales no se antepone la palabra var a la definicion del parametro. Cuando este tipo de sustitucion se presenta, el valor del parametro actual es evaluado y colocado en el parametro formal, o sea que se asegura que el valor almacenado en el parametro formal no sea cambiado durante la ejecucion de la rutina.

Ejemplo :

.......

procedura a (i,j,k :integer) ;

.......

end ;

.......

a (5,w,t) ;

.......

Es bueno recalcar entonces que todo cambio efectuado en los parametro formales en el procedimiento no afectara a ninguna variable que lo invoca, o esa que dichos parametros formales son variables locales al procedimiento.

Sustitucion por referencia

Este tipo de sustitucion de parametros se presenta cuando en la definicion de parametros formales en la rutina, se le antepone al parametro la palabra var. Cuando se presenta este tipo de sustitucion el parametro actual le envia su direccion al parametro formal, luego el contenido del parametro actual puede ser modificado si su correspondiente parametro formal es modificaf\do en la rutina.

Ejemplo :

...........

procedure B (var t,w : integer) ;

.....

end ;

begin (*principal*)

......

B (l,m) ;

Las variables l,m podran ser alteradas en su contenido en el procedimiento B.

Entrada y salida

Las instrucciones read y write son las instrucciones de entrada y salida asociadas con los medio estandar del instema : Input y output (entrada y salida ) los cuales dependiendo del equipo, se asociarian a dispositivos como : terminal, un archivo local , impresora, etc.

La instrucción de entrada posee la siguiente sintaxis :

read (input,lista de identificadores) ;

que es lo mismo que

readln (lista de identifiadores).

Un ejemplo de esto podria ser :

readln(a,c,d,...,n) ;

La instrucción de salida posee la siguiente sintaxis :

write (output lista de variables)

que es lo mismo que

writeln (lista de variables) ;

Un ejemplo de esto podria ser :

writeln(a,c,d,...,n) ;

Cabe la pena recordar que en las instrucciones read y write aunque estan asociadas a un input y a un output estandar, estos pueden ser asignados a otros dispositivos, según las necesidades del programador.

 

Lenguaje C (turboC/C++3.1)

Tokens

Palabras claves ( reservadas) de C

Las 32 palabras clave definidas por el estándar ANSI

auto

double

int

struct

break

else

long

switch

case

enum

register

typedef

char

extern

return

union

const

float

short

unsigned

continue

for

signed

void

default

goto

sizeof

volatile

do

if

static

while

 

 

Tipos de datos

Tipos de datos básicos

Tipo

Tamaño en bits

Rango

char

8

0 a 255

int

16

-32768 a 32767

float

32

3.4E-38 a 3.4E+38

double

64

1.7E-308 a 1.7E+308

void

0

sin valor

A excepción del tipo void , los tipos de datos básicos pueden ser precedidos por varios modificadores. Un modificador altera el significado del tipo base para que se ajuste más a cada necesidad. Los modificadores son :

signed

unsigned

long

short

Los modificadores signed, short, long y unsigned se pueden aplicar a los tipos base entero y carácter . Sin embargo , long también se pude aplicar a double.

Todas las combinaciones posibles de los tipos básicos y los modificadores de C

Tipo

Tamaño en bits

Rango

char

8

-128a 255

unsigned char

8

0 a 255

signed char

8

-128 a 127

int

16

-32768 a 32767

unsigned int

16

0 a 65535

signed int

16

-32768 a 32767

short int

16

-32768 a 32767

unsigned short int

16

0 a 65535

signed short int

16

-32768 a 32767

long int

32

-2147483648 a 2147483647

unsigned long int

32

0 a 4294967295

signed long int

32

-2147483648 a 2147482647

float

32

3.4E-38 a 3.4E+38

double

64

1.7E-308 a 1.7E+308

long double

64

1.7E-308 a 1.7E+308

 

Constantes

Las constantes en C se refieren a valores fijos que no pueden ser alterados por el programa . Pueden ser de cualquier tipo de datos.

C admite otro tipo de constante, además de los tipos de datos predefinidos . Se trata de la cadena. Una constante de cadena siempre está encerrada entre comillas dobles.

 

Identificadores

La longitud de un identificador en C puede variar entre uno y 32 caracteres. El primer carácter debe ser una letra o un símbolo de subrayado y los caracteres siguientes pueden ser letras, números o símbolos de subrayado . C permite también usar el símbolo $ en un nombre de un identificador , pero no se trata de algo estándar, siendo recomendable no hacerlo.

En C las minúsculas y las mayúsculas se tratan como distintas. Por ejemplo hola, Hola y HOLA son tres identificadores distintos. Un identificador no puede ser igual que una palabra clave de C y no debe tener el mismo nombre que alguna función ya escrita o que se encuentre en la biblioteca de C

 

Operadores

En C hay tres clases generales de operadores : aritméticos, relacionales y lógicos

Operadores aritméticos

operador

acción

-

resta, también menos monario

+

suma

*

multiplicación

/

división

%

División en módulo

--

decremento

++

incremento

 

Es de recordar que cuando se aplica una división a un entero o a un carácter , cualquier resto es suprimido. Por ejemplo 10/3 el resultado será 3 en división entera.

El operador % proporciona el resto de una división entera. Por ello no puede aplicarse a tipos de coma flotante

Incremento y decremento

El operador "++" (incremento) añade 1 a su operando y "--" (decremento) le resta 1. Por lo tanto las siguientes operaciones son equivalentes :

x=x+1 ;

es lo mismo que

++x ;

También

x = x-1 ;

es lo mismo que

--x :

En estas operaciones es lo mismo poner ++x ; y x++ ; (para el decremento ) y es lo mismo --x ; y x-- ; (para el decremento)

Pero no es lo mismo cuando se usan los operadores en una expresión . Cuando un operador de incremento o decremento precede al operando, C lleva a cabo la operación de incremento o decremento antes de usar el valor del operando. Por ejemplo :

x = 4

y = ++x ;

En este caso, se pone a y en 11. Pero, si se escribe el código como

x = 10 ;

y = x++ ;

y toma el valor de 10. Es de mucha importancia tener en cuenta que en ambos casos x queda como 11 ; la diferencia está en cuándo cambia el valor.

Precedencia de los operadores aritméticos.

Mayor ++ --

-(monario)

/ %

Menor + -

 

Operadores relacionales y lógicos

El terminode operador relacional se refiere a la relación entre unos valores y otros . En el termino operador lógico la palabra lógico se refiere a las formas en que esas relaciones pueden conectaese entre sí siguiendo las reglas de la lógica formal.

En los operadores lógicos se trabaja el 0 como falso y el 1 como verdadero

 

 

 

 

 

Operadores relacionales

operador

acción

>

mayor

>=

mayor o igual

<

menor

<=

menor o igual

==

igual

!=

no igual

Operadores lógicos

operador

acción

&&

y

||

o

!

no

 

Tanto los operadores relacionales como los lógicos tienen un nivel de precedencia menor que los aritméticos. Esto significa que una expresión como 10>3+2 se evalúa como si hubiera escrito 10>(1+12)

Precedencia relativa entre los operadores relacionales y lógicos

Mayor !

>= < <=

== !=

&&

Menor ||

Como en el caso de las expresiones aritméticas , se pueden usar paréntesis para alterar el orden natural de evaluación en una expresión relacional o lógica. Por ejemplo :

!1 &&0

Es falso , porque primero se evalúa ! y luego se evalúa &&. Sin embargo cuando se usan paréntesis en la misma expresión el resultado es verdadero :

!(1&&0)

Operador ?

C contiene un operador muy conveniente para sustituir ciertas sentencias de la forma if-then-else. El operador ternario ? toma la forma general :

Exp1 ? Exp2 :Exp3 ;

donde Exp1 , Exp2 y Exp3 son expresiones.

El operador ? funciona de la siguiente forma : evalúa Exp1 . Si es cierta, evalúa Exp2 y toma ese valor para la expresión. Si Exp1 es falsa, evalúa Exp3 tomando su valor para expresión. Por ejemplo :

x=10 ;

y= x>9 ? 100 : 200

En este ejemplo, a y se le asigna el valor de 100, si x hubiera sido menor que 9, y habría recibido el valor de 200

 

Los operadores de puntero & y *

Un puntero es la dirección de memoria de una variable. Una variable puntero es una variable específicamente declarada para contener un puntero a su tipo específico.

El primer operador de punteros es &, un operador monario que devuelve la dirección de memoria del operando. Por ejemplo :

m = &cont ;

coloca en m la dirección de la memoria de la variable cont. Esta es la dirección de la posición interna en la computadora de la variable. No ! tiene nada que ver con el valor de cont.

El segundo operando de puntero es * , el complementario de &. Es un operador monario que devuelve el valor de la variable ubicada en la dirección que se especifica.

Para declarar una variable como puntero se pone :

tipo de dato *nombre de la variable

Por ejemplo : char *cadena  ;

En este ejemplo hay que aclarar que cadena no es un carácter, sino un puntero a un carácter

La coma como operador

Como operador, la coma encadena varias expresiones. La parte izquierda del operador coma siempre se evalúa como void. Esto significa que la parte derecha se convierte en el valor de la expresión total separada por coma. Por ejemplo :

x = (y=3, y+1) ;

Primero se asigna el valor de 3 a y y luego se asigna el valor de 4 a x . Los paréntesis son necesarios debido a que el operador coma tiene menor precedencia que el operador de asignación.

Los operadores . y ®

Los operadores . (punto) y ® (flecha) referencian elementos individuales de las estructuras y de las uniones. Las estructuras y las uniones son tipos de datos compuestos que se pueden referenciar bajo un solo nombre.

El operador punto se usa cuando se trabaja realmente con la estructura o la unión .

El operador flecha se usa cuando es usa un puntero a una estructura o a una unión. Por ejemplo, dada la estructura :

struct empleado{

char nombre[70] ;

int edad ;

float sueldo ;

}emp ;

Se usa el siguiente código para asignar el valor 500,55 al elemento sueldo de la estructura emp

emp.sueldo = 500,55 ;

Sin embargo, la misma asignación usando un puntero a la estructura emp sería

emp® sueldo=500,55 ;

Operadores [ ] y ( )

En C , los paréntesis son operadores que aumentan la precedencia de las operaciones que la contienen.

Los corchetes sirven para la indexación de arrays.

Operador =

Es un operador binario que sirve en C para las asignaciones .

Su asociatividad a diferencias de todos los operadores binarios es de derecha a

izquierda.

Cuando el operador = es subsiguiente a un operador binario sirve para abreviar expresiones tales como :

x = x+10 ;

puede escribirse como

x+=10 ;

Asociatividad de los operadores en C

Los operadores del lenguaje C los operadores binarios a excepción del operador = poseen una asociatividad de izquierda a derecha y los operadores monarios *,& y el operador ternario ? se asocian de derecha a izquierda.

Precedencia de los operadores de C

Mayor ( ) [ ] ®

! ++ -- * &

* / %

+ -

< <= > >=

== !=

&&

||

?

= += -= *= /=

Menor ,

 

 

 

 

 

 

Control de flujo

Secuencias

Las secuencias en C, son un numero finito de sentencias. Por ejemplo :

#include <stdio.h>

void main (void){

int a=10 ;

printf("%d",a) ;

}

Decisiones

En C una prueba condicional da un resultado cierto cuando arroja un numero distinto de cero y falso cuando es cero.

C soporta dos tipos de datos condicionales : if y switch. Además , el operador ? que es una alternativa de if en ciertas ocasiones.

if

La forma general de la sentencia if es :

if (expresión) sentencia ;

else sentencia ;

Si la expresión es cierta se ejecuta la sentencia o el bloque de sentencias que es el objetivo de if ; en cualquier otro caso se ejecuta la sentencia o el bloque de sentencias que constituye el objetivo de else. Por ejemplo :

#include <stdio.h>

void main (void){
int numero=321 ;

int intento ;

printf("adivine el numero") ;

scanf("%d",&intento) ;

if(intento==numero) printf("correcto) ;

else printf("mala suerte") ;

}

operador ?

Se puede usar el operador ? para reemplazar las sentencias if/else con la forma general :

if(condición)

expresión

else

expresión

La restricción clave es que el objetivo de if y del else deben ser expresiones simples - no otra sentencia de C. La ? tiene la forma general

Exp1 ? exp2 : Exp3

Si desea ver un ejemplo de este operador se puede remitir a la parte del trabajo donde se tratan los operadores de C.

switch

Esta sentencia compara sucesivamente una variable con una lista de constantes enteras o de caracteres. Cuando se encuentra una correspondencia se ejecuta una sentencia o bloque de sentencias. La forma general de  la sentencia switch es la siguiente :

switch (variable){

case constante1 :

secuencia de sentencias

break ;

case constante2 :

secuencia de sentencias

break ;

.

.

default :

secuencia de sentencias

}

donde la sentencia default se ejecuta si no se encuentra ninguna correspondencia

Hay tres cosas importantes que se deben saber de la sentencia switch :

  1. Solo puede comprobar igualdad
  1. No puede haber 2 constantes case en el mismo switch

3 Si se utilizan Constantes de tipo carácter en la sentencia switch, se convierte automáticamente a sus

valores.

Un ejemplo de swith puede ser :

void menu (void){

char c ;

printf("1.se calculan derivadas \n") ;

printf("2. Se calculan integrales) ;

c=getche() ;

switch(c){

case ’1’ :

derivar() ;

break ;

case ‘2’ :

integrar() ;

break ;

default :

print("ninguna opción seleccionada") ;

}

}

Iteraciones

Las sentencias de iteración(bucles) son for,while y do.

For

La forma general de la sentencia for es

for(inicialización

 

 

Hosted by www.Geocities.ws

1