jueves, 13 de octubre de 2011

Operadores de Pascal



Este es un ejemplo de operadores

DECLARACION DE VARIABLES :
Una variable, es el objeto de un programa que puede cambiar su valor durante la ejecución.
En la realidad, una variable es una celda de memoria conformada por uno o más bytes a la cual le asignamos un nombre para identificarla y es el lugar donde durante la ejecución de un programa almacenamos un dato.
Le decimos, al computador que variables tiene el programa, declarándolas en la zona que comienza con la palabra VAR.
El computador sabe cuantos bytes conforman una variable en memoria por el tipo(dominio) de variable que se le asigna en la declaración de ella.
Todas las variables que maneja un programa deben ser declaradas.
EJEMPLO : El siguiente es un ejemplo de una zona de declaración de variables en un programa en PASCAL.

VAR
horas :INTEGER ;
sal_total :REAL ;
mensaje :STRING[30];
respues :CHAR;
Factorial :LONGINT;
Estado :BOOLEAN;
TIPOS DE VARIABLES EN PASCAL:
Los tipos de variable en PASCAL le permiten al compilador reservar el espacio en bytes necesario para almacenar un determinado dato, también le sirven para determinar durante la ejecución de un programa que datos se pueden almacenarse en dicha variable.

martes, 4 de octubre de 2011

Pascal

Definicion:
Pascal es un lenguaje de programacion desarrollado por el profesor suizo Niklaus Wirth entre los años 1968 y 1969 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos. Sin embargo con el tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación de aplicaciones de todo tipo.


Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipificado. Esto implica que:
  1. El código está dividido en porciones fácilmente legibles llamadas funciones o procedimientos. De esta forma Pascal facilita la utilización de la programación estructurada en oposición al antiguo estilo de programación monolítica.
  2. El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado.


Un programa en PASCAL es un conjunto de instrucciones o sentencias, escritas según ciertas reglas, para realizar operaciones sobre entidades de datos conocidas como constantes, variables y resultados de funciones.

Variables

Los tipos mas comunes de variables en Pascal son:

1.- Enteras.

Integer: -32768 a 32767 (más utilizado)
Word: 0 a 65535
Shortint: -128 a 127
Byte: 0 a 255
Longint: -2*10.9 a 2*10.9

Ejemplo: var entero:integer value 0;

2.- Decimales.
Real (más utilizado)
Single
Double
Extended
Comp

Ejemplo: var decimal:real value 3.45;

3.- Caracteres.
Char('c')

Ejemplo: var caracter:char value 'c';

4.- Cadena de caracteres.
String ('máx. 255 caracteres')

Ejemplo: var cadena:string value 'Cadena de caracteres';

5.- Boleanos.
Boolean que tiene dos únicos valores: True/False

Ejemplo: var booleano:boolean value true;






Otros tipos de variables:

type COLORES=(verde, rojo, amarillo);
var SEMAFORO: COLORES;

Hemos definido la variable SEMAFORO del tipo COLORES que, a su vez, se define como una extensión de valores concretos: verde, rojo y amarillo. De esta forma, a lo largo del programa la variable SEMAFORO sólo podrá tomar ésos tres colores. Los valores se asignan a la variable SEMAFORO con la sentencia de asignación que, en PASCAL, utiliza los signos :=.

El tipo de una constante es el tipo de su valor correspondiente. El tipo de una variable es el tipo establecido cuando se declaró y no puede modificarse en general. El tipo de una función es el del valor que devuelve.
Los valores de las variables y de las funciones pueden cambiar tantas veces como se desee durante la ejecución de un programa, pero esos valores deben permanecer siempre dentro del rango establecido por su tipo. Una variable no adopta un valor hasta que el programa le asigna uno. El valor de una función se calcula durante la ejecución de dicha funcion.
Incluye a los valores enteros positivos y negativos desde -2**31+1 hasta 2**31-1. Este
campo contiene valores que van desde -2.147.483.647 hasta 2.147.483.647. Ocupa 32 bits en
memoria.
El mayor valor posible de tipo INTEGER está asignado al identificador de constante
predefinido MAXINT.
Los valores de tipo INTEGER se representan con dígitos decimales. No se admiten ni el
punto ni la coma. Estos son valores correctos:
32
0
87314
También se pueden usar enteros negativos pero hay que tener en cuenta que un entero
negativo como -32, por ejemplo, no es una constante, es una expresión formada por el signo
(-) y el valor entero 32. El uso de enteros negativos en expresiones aritméticas complejas
puede dar lugar a resultados distintos de los esperados si no se interpreta bien esta cuestión.
Más adelante se insistirá sobre este tema.
Las operaciones de entrada (lectura) permiten suministrar el signo "más" o "menos" con
los valores enteros. En las operaciones de salida, el signo de los valores negativos se incluye
automáticamente.
El tipo CHAR
Sus valores posibles son cada uno de los elementos del conjunto de caracteres ASCII.
Ocupan ocho bits en memoria.
Para especificar un caracter constante basta con escribir cualquier caracter ASCII
imprimible entre apóstrofos. Para especificar el apóstrofo mismo hay que escribirlo dos veces
entre apóstrofos. Cada una de las siguientes es una constante de tipo CHAR válida:
'A' '.'
'Z' '''' (es el apóstrofo)
'0' '?'
Se pueden escribir cadenas de caracteres como 'BUENOS DIAS' y 'que tal está?', pero
deben ser tratados como datos estructurados tales como las tablas ( ARRAY ) de caracteres.
Al aplicar la función ORD sobre una expresión de tipo CHAR, se obtiene como
resultado el valor ordinal que indica su posición en la tabla ASCII. Por ejemplo, si la variable
"letra_A" tiene el valor 'A', entonces la expresión ORD (letra_A) devuelve el valor 65
(consultar la tabla).
Notar que en la tabla ASCII, cada uno de los conjuntos de dígitos, las letras mayúsculas
y las letras minúsculas ocupan posiciones consecutivas y que las letras mayúsculas están
antes que las minúsculas.
El tipo BOOLEAN
Los datos de tipo BOOLEAN sólo pueden tomar dos valores constantes que se
describen con los identificadores predeclarados FALSE (falso) y TRUE (verdadero). Tales
valores están ordenados de forma que FALSE es menor que TRUE.
La función ORD aplicada sobre el valor FALSE devuelve el entero 0 y aplicada sobre
TRUE devuelve el entero 1.
Al chequear la veracidad o validez de las relacciones de comparación se obtiene como
resultado un valor de tipo BOOLEAN.
Los tipos ENUMERATIVOS.
Un tipo Enumerativo es un conjunto de valores constantes ordenados representados por
identificadores.
Estos tipos no están predefinidos por el compilador. Los inventa el usuario en la declaración es donde el usuario define el tipo listando todos los identificadores en orden, separados por comas y encerrados entre paréntesis.
Sintaxis: ( { identificador }, ... )
Ejemplo: ( Primavera, Verano, Otoño, Invierno )
Los valores de un tipo enumerativo quedan ordenados según su posición en la lista de izquierda a derecha. A cada identificador le queda asignado un valor ordinal comenzando en
cero para el primero.
La función ORD puede aplicarse sobre expresiones de tipo enumerativo. Para el ejemplo propuesto, las siguientes afirmaciones son correctas:
ORD (Primavera) es menor que ORD (Verano)
ORD (Verano) es igual a 1
Los identificadores de los tipos enumerativos no pueden ser definidos para otros propósitos dentro del mismo bloque de programa.
Con el PASCAL para VAX-11, un tipo enumerativo puede tener hasta 65535 identificadores como máximo.
Otros ejemplos de estos tipos:
(agua, vino, cerveza, leche)
(cilindro, cono, esfera)
(recluta, soldado, cabo, sargento)
(fluor, cloro, bromo, yodo)
Los tipos SUBCAMPO
Con un tipo Subcampo, o Subrango, se especifica una parte limitada de otro tipo ordinal (llamado tipo base) para ser usado como un tipo distinto. Es el usuario quien lo crea.
En la sentencia donde se declara, se indican los límites que lo definen:
Sintaxis: límite inferior .. límite superior
límite inferior: expresión constante que establece el límite inferior
del subcampo.
límite superior: expresión constante que establece el límite superior
del subcampo.
Ejemplos: '0' .. '9'
'A' .. 'M'
1 .. 31
Enero .. Marzo
Un tipo subcampo está definido sólo para los límites y los valores comprendidos entre ellos.
El valor del límite superior debe ser mayor o igual al del límite inferior.
Con el símbolo de subcampo ( .. ) se separan los límites.
El tipo base puede ser cualquier tipo ordinal predefinido o enumerativo. Los valores en el tipo subcampo están en el mismo orden que en el tipo base. Así, el resultado de la función
ORD aplicada a un valor de un tipo subcampo es el ordinal que aquel valor tiene asociado por su posición relativa en el tipo base, no en el tipo subcampo.
Un tipo subcampo se puede usar en cualquier lugar de un programa donde su tipo base esté definido. Un valor de tipo subcampo se convierte a un valor de su tipo base antes de ser usado en cualquier operación. Todas las reglas que gobiernan las operaciones con un tipo ordinal son aplicables a los subcampos de este tipo.
El uso de los tipos subcampo puede mejorar la claridad de los programas. Por ejemplo:
se pueden limitar los valores admisibles para los días del año definiendo el tipo 1..366.
Los tipos REALES
El tipo REAL es el estándar para representar valores numéricos reales. El PASCAL
para VAX-11 proporciona algunos otros que permiten manejar valores reales en un rango más amplio con distinto grado de precisión. Básicamente son el tipo DOUBLE, para precisión doble; y el tipo QUADRUPLE, para precisión cuádruple.
En la tabla 3.1 se indican los rangos de valores y los grados de precisión para estos tipos de datos.
Los números reales pueden escribirse en notación decimal o en notación exponencial.
En la decimal se usan el conjunto de los dígitos decimales y el punto. Siempre debe aparecer algún dígito en cualquiera de los lados del punto.
Son ejemplos correctos: 3.14
976.251
7.0
0.0
Son incorrectos: 7.
.14
Para representar números muy grandes o muy pequeños es más conveniente utilizar la notación exponencial (o de coma flotante) que se construye con un número real o uno entero,
una letra para indicar el grado de precisión (E, D, Q) y un entero que representa al exponente y puede llevar signo.
En un programa se pueden declarar variables de tipo TEXT a voluntad, pero hay dos que están predeclaradas : INPUT, OUTPUT. Son dos ficheros que están asociados siempre a los dispositivos estándar para la entrada (lectura de datos) y la salida (escritura de resultados) ; INPUT para leer y OUTPUT para escribir. En el trabajo en régimen interactivo, los dos están asociados a la video_terminal de trabajo. Se declaran en el encabezamiento del
programa :
PROGRAM p ( INPUT, OUTPUT )
Como INPUT y OUTPUT se usan con mucha frecuencia, se ha establecido que sean los
ficheros por defecto para la entrada y la salida respectivamente. Es decir, que si no se especifica fichero (primer parámetro) en READ, se usa INPUT ; y si no se especifica en WRITE, se usa OUTPUT.

Implementaciones

Las primeras versiones del compilador de Pascal, entre ellas la más distribuida fue UCSD PascaL, traducían el lenguaje en código para una máquina virtual llamada máquina-P. La gran ventaja de este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de máquina solo hacía falta reimplementar la máquina-P. Como consecuencia de esto, solo una pequeña parte del intérprete tenía que ser reescrita hacia muchas arquitecturas.
En los años 1980, Anders Hejlsberg escribió el compilador Blue Label Pascal para la Nascom-2. Más tarde fue a trabajar para Borland y reescribió su compilador que se convirtió en Turbo Pascal para la IBM PC. Este nuevo compilador se vendió por $49, un precio orientado a la distribución masiva.
El económico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que comenzó a utilizarlo principalmente en el IBM PC. En busca de un lenguaje estructurado muchos aficionados al PC reemplazaron el BASIC por este producto. Dado que Turbo Pascal sólo estaba disponible para una arquitectura, traducía directamente hacia el código máquina del Intel 8088, logrando construir programas que se ejecutaban mucho más rápidamente que los producidos en los esquemas interpretados.
Durante los años 1990, estuvo disponible la tecnología para construir compiladores que pudieran producir código para diferentes arquitecturas de hardware. Esto permitió que los compiladores de Pascal tradujeran directamente al código de la arquitectura en que corre
Con Turbo Pascal versión 5.5, Borland agregó programación orientada a objetos a Pascal.
Sin embargo, Borland después decidió mejorar esa extensión del lenguaje introduciendo su producto Delphi, diseñado a partir de estándar Object Pascal, propuesto por Apple como base. Borland también lo llamó Object Pascal en las primeras versiones, pero cambió el nombre a 'lenguaje de programación Delphi' en sus últimas versiones.


El tipo INTEGER