Subir arriba

jueves, 16 de julio de 2015

Bienvenidos


Bienvenidos



Este es nuestro blog oficial de Algoritmos Computacionales. Esperamos que el contenido sea enriquecedor para su aprendizaje durante el desarrollo de esta asignatura.




En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son el algoritmo de multiplicación, para calcular el producto, el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Elucides para obtener el máximo común divisor de dos enteros positivos.


Frases

Todo progreso está basado en el deseo universal e innato por parte de cada organismo de vivir por encima de sus posibilidades.
  Steve Jobs





El dolor es el grito de angustia y el grito de auxilio de la naturaleza amenazada. Esto se aplica, lo mismo que al organismo físico, también al organismo moral, y lo que para los médicos es la patología del organismo humano, es la patología del sentimiento del derecho para el jurista y el filósofo del derecho.


La misma agitación de su organismo prestaba al deseo el lenguaje del amor verdadero.














Pascal




Free Pascal 


El Free Pascal es un compilador Pascal portable, libre y de código abierto, que representa una alternativa a los productos comerciales Turbo Pascal y Delphi.


Introducción


Free Pascal es un compilador tanto de 32 como de 64 bits para múltiples arquitecturas de CPU y múltiples sistemas operativos. El compilador implementa los dialectos de Pascal de Borland Turbo Pascal y Delphi, además de algunas construcciones deMacPascal. Está disponible para la mayoría de los sistemas operativos populares.
Free Pascal se conocía inicialmente como FPK Pascal. Debido a que FPK son las iniciales del autor, Florian Paul Klämpfl, el FPK Pascal nunca significó "Free Pascal Kompiler", aunque mucha gente pensaba eso; de todos modos, escribir el "Compilador" con "K" es infrecuente en Alemania. A finales de 1997, el nombre del proyecto fue cambiado a Free Pascal Compiler (FPC) (Compilador Free Pascal) para evitar esta confusión y por la cantidad cada vez mayor de gente que contribuía.
FPC es un proyecto razonablemente bien documentado, con manuales que alcanzan las 1.800 páginas en total.
Las partes visuales de las bibliotecas de Delphi (el VCL) y la creación de un IDE y un RAD visuales son parte de un proyecto separado, denominado Lazarus.
La distribución de Free Pascal incluye un IDE en modo de texto semejante al de Turbo Pascal. Aunque este IDE se estuvo deteriorando por algún tiempo debido a una falta de mantenimiento, en un esfuerzo común la mayoría de los bugs fueron corregidos, así que ahora está en una muy buena forma.
De manera similar a Turbo Pascal y Delphi, Free Pascal tiene excelente soporte para la integración del lenguaje ensamblador en el código Pascal. Además, soporta múltiples arquitecturas y notaciones. También se llamaba Tubipascal




Puedes descargar el software en los siguientes enlaces.

miércoles, 15 de julio de 2015

Programa de Clases

Algoritmos Computacionales





Unidad de Competencia I
Identifica tipos de Algoritmos. Elabora Diagrama de Flujos

Temas a Tratar

  • Algoritmo 
          Concepto
  • Tipos
  • Características 
  • Partes
  • Algoritmo narrado
  • Diagramas de Flujos
          Conceptos.
  • Símbolos y tipos
  • Instrucciones
  • Expresiones
  • Free DFD
          Concepto
          Utilidad

  • Raptor
          Concepto
          Utilidad

  • Ejercicios y problemáticas


Unidad de Competencia II
Aplica Sintaxis Básicas a Algoritmos

Temas a Tratar

  • Conceptos 
          Programación
          Variable
          Constante
          Pascal

  • Partes de un programa en pascal. 
  • Zona de encabezamiento 
  • Zona de declaraciones 
  • Declaraciones de Unidades 
  • Declaraciones de constantes
  • Declaraciones de variables
  • Tipos de Variables 
          Variable Integer
          Variable Longint
          Variable Real
          Variable Char
          Variable String
          Variable Boolean

  • Sintaxis Read
  • Sintaxis Readln
  • Sintaxis Write
  • Sintaxis Writeln
  • Ejemplos
  • Operadores Aritméticos
          Suma
          Resta
          Multiplicación
          División
          Mod
          Div
          Jerarquía de operadores
  • Funciones
  • Expresión Lógica
  • Operadores de Relación
  • Operadores Lógicos
  • Prioridad de operadores


Unidad de Competencia III
Desarrolla sentencias Condicionales y Ciclos Repetitivos

Temas a Tratar
    
  • Sintaxis IF-Then-Else
  • Sentencias Compuestas
  • If Anidados
  • Sentencias Case
  • Definición de ciclos
  • Instrucción While
  • Ejercicios propuestos
  • Instrucción Repeat
  • Ejercicios propuestos
  • Instrucción For
  • Ejercicios propuestos
  • Ejercicios Propuestos 
  • Problemáticas a desarrollar. 




Unidad de Competencia IV

Utiliza Funciones y Procedimientos


Temas a Tratar


  • Parámetros
  • Estructura, declaración y empleo de un procedimiento
  • Ejemplos
  • Concepto y clasificación de estructuras.
  • La estructura Array
  • Declaración y tipos de Array
  • Operaciones con cadenas.
  • Ejercicios propuestos















Unidad 4

Unidad de Competencia IV

Utiliza Funciones y Procedimientos




Al terminar la semana, el estudiante estará en capacidad de aplicar procedimientos y funciones en el desarrollo de cualquier algoritmo.

implementar las listas y tablas en un algoritmo.
utilizar operaciones y tratamiento de cadenas en los algoritmos.


Temas a Tratar




Pascal ofrece dos herramientas básicas para realizar programación descendente: los procedimientos (procedure) y las funciones (function), a los que nos referiremos genéricamente con el término de subprogramas. Turbo pascal incorpora además el concepto de unidad (unit), que permite aprovechar módulos independientes ya compilados.

Los parámetros

Los parámetros son canales de comunicación para pasar datos ente programas y subprogramas en ambos sentidos. Los parámetros van asociados a variables. constantes, expresiones, etc., y por tanto, se indican mediante los correspondientes identificadores o expresiones. Los parámetros que se utilizan en la llamada o invocación al subprograma se denominan parámetros actuales, reales o argumentos, y son los que entregan la información al subprograma. Los parámetros que la reciben en el subprograma se denominan parámetros formales o ficticios y se declaran en la cabecera del subprograma.

En una llamada a un subprograma tiene que verificarse que:
1. El número de parámetros formales debe ser igual al de actuales.
2. Los parámetros que ocupen el mismo orden en cada una de las Listas deben ser compatibles en tipo.


Estructura, declaración y empleo de un procedimiento

Se declaran inmediatamente después de las variables del programa principal, teniendo la precaución de que si un subprograma referencia o llama a otro, el referenciado debe declararse primero.

Declaración de procedimientos.

Cabecera: procedure nombreproced (lista de parámetros);
Declaraciones 
Locales
const
Type...
Var...
<declaración de otros procedimientos y funciones>

Cuerpo: 
begin
end; (*obseiwar; final de procedimiento*)


Declaración de parámetros formales.



Se declaran encerrados entre paréntesis, indicando el identificador y el tipo correspondiente asociado a cada uno, separados por ':', y terminando en ';'. La palabra reservada VAR precediendo a un identificador de parámetro formal indica al compilador que el paso del parámetro es pro VARiable. Su ausencia u omisión indica que el paso de parámetro se realiza por VALOR.

Ejem.Procedure Identificador (PF1:tipol; PF2:típo2; var PW:tipo3);
PFl y PF2 se pasan por valor.
PF3 se pasa por variable.


Llamada a un procedimiento.


Se realiza desde el programa principal indicando el identificador del procedimiento seguido de la lista de parámetros actuales encerrados entre paréntesis y separados por comas.
Ejem.Identificador (PAl, PA2, PA3)
Ejemplo.
Procedimiento para intercambiar los valores de dos variables.
Procedure intercambio (var pfl, p12: integer);
Var
Aux:integer; (variable local uso exclusivo en procedimiento}
Begin
Aux:=pfl;
Pfl:pf2;
Pfl: aux
End;
{La llamada a este procedimiento se haría ...}
{... por ejemplo desde el siguiente programa:}

Program Uno;
Uses crt;
Var
Entero 1 ,entero2 : integer;
Procedure intercambio (var pfl, p12:integer);
...
begin
clrscr; {*borrado de pantalla*}
Write ('introduzca 2 variables enteras: ');
Readln(entero1, entero2);
Writeln ('valores de las variables antes de la llamada');
Writeln ('Entero 1 = ', enterol, 'entero 2 = ', entero2);
intercambio (enterol, entero2); {llamada al procedimiento}
Writeln ('Valor de las variables después de la llamada');
Writeln ('entero 1 = ', enterol, 'entero 2 = ', entero2);
end;

Deben utilizarse funciones cuando solo tenga que devolverse un solo valor simple al programa llamador. En todos los demás casos utilizaremos: procedimietos.



LISTAS Y TABLAS (Arrays).


Concepto y clasificación de estructuras
Las estructuras se clasifican de acuerdo a varios criterios.
  • •Respecto al número de componentes, las estructuras se clasifican en estáticas (el número de componentes es fijo) y dinámicas (el número de componentes varía durante la ejecución del programa ya que se pueden crear y destruir las variables durante el desarrollo del mismo.
  • •Respecto al tipo de componentes las estructuras suelen formarse o bien por combinación de datos de distinto tipo (registros) o bien por la repetición de datos del mismo tipo (arrays,conjuntos archivos, listas, árboles, etc.). Dentro de éstas el acceso puede hacerse por posicion, ya sea de forma secuencial o bien directa, o bien por contenido o clave.
La estructura Array.

Es una estructura homogénea de datos de tamaño constante accediendo a cada uno de sus elementos mediante un identificador comun y uno o varios índices.
  • •Todos los elementos del array son del mismo tipo.
  • El número de ellos no varía durante la ejecución del programa.
  • Accedemos a un elemento de la estructura mediante un identificador común, el nombre del array, y con el valor que toman uno o varios indices. Al número de indices necesarios para designar un elemento del array se le denomina dimensión del array.
  • El número máximo de valores posibles que puede tomar cada indice se denomina rango de esa dimensión o indice. Los valores han de ser consecutivos, por lo que el indice ha de ser de un tipo ordinal.
Declaración de tipos y variables array

La declaración más general de un array es la siguiente:
Type
Rango1 = tipoordinal1;
Rango2 = tipoordinal2;
...
rangon = tipoordinaln;
tipobase = (*cualquier predefinido o definido por el usuario*)
tipoarray = array [rango1,rango2,...,rangon] of tipobase,

Ejemplo: Array para almacenar las notas correspondiente a todos los alumnos de un colegio.
Suponiendo lo siguiente:
Numero de cursos 5
Grupos por curso 3
Numero de evaluaciones 3
Numero de asignaturas 6
Numero de alumnos por curso 20

Const
Numcurso=5;
Numasig=6;
Numalum=20;
Type
Cursos=1.. nurneurso;
Grupos='A'..'C';
Eval=(primera,segunda,tercera);
Asign=1.. numasin;
Alum=1. .numalum;
Tiponotas=array[cursos,grupos,eval,asign,alum] of real;
Var
Notas:tiponotas;
Curso:cursos;
Grupo:grupos;
Evaluacion:eval;
Materia:asign;
Alumno:alum;

Con los elementos de un array podemos realizar las mismas operaciones que el tipo base al que pertenecen.

STRING: Cadenas de caracteres

Las cadenas de caracteres son arrays especiales.
Una cadena de caracteres (string) consiste en una serie o secuencia de caracteres cuyo número (longitud) puede estar entre 0 y 255.
Se puede definir la longitud de la cadena poniendo string [n] donde n está entre 0 y 255.
  • Longitud fisica: corresponde al maximo numero de caracteres que puede almacenar.
  • Longitud lógica: corresponde al numero de caracteres que tiene en un instante determinado.






 OPERACIONES Y TRATAMIENTO DE CADENAS


Operaciones con cadenas.
Las dos operaciones basicas son comparación y concatenación.
Operador de concatenación (+)
Se utiliza para reunir varias cadenas en una sola
Ejemplo
Cad1:='esto es un ejemplo';
Cad2:='de concatenacion de cadenas';
Cadr:=cad1+cad2;
Write (cadr);

Se visualizaría esto es un ejemplo de concatenacion de cadenas
La funcion concat realiza la misma funcion que el operador de concatenacion. La sintáxis es:
Function concat (cad1,cad2,...:string): string;

La cadena vacia o nula se representa con dos caracteres apóstrofes seguidos ' '. El acceso a loselementos de una cadena individualmente se hace como si fuera un array.
Ejemplo.
Cad1:='ejemplo';
Para referirnos al primer elemento pondriamos cad1[1] que seria la letra e.
La funcion Length proporciona la longitud logica de una cadena de caracteres.
Ejemplo.
Longitud:=length(cad1);

La variable longitud tomaría el valor 7.

Funciones de Tratamiento de cadenas




Unidad 3

Unidad de Competencia III
Desarrolla sentencias Condicionales y Ciclos Repetitivos

Objetivos


Al terminar la unidad de competencia, el estudiante estará en capacidad:

1. Desarrollar la sentencia IF y Case, teniendo pendiente la correcta sintaxis de los códigos e implementándola en el cuerpo de un algoritmo.
2. Utilizar cada uno de los tipos de ciclos repetitivos en un algoritmo, tomando en cuenta la sintaxis correspondiente a cada uno de ellos.
3. Desarrollar algoritmos, comprobándolos en pascal


Sintaxis IF-Then-Else

Toma una expresión lógica y la evalúa, si el valor de verdad de la expresión lógica es verdadero entonces se ejecuta la instrucción después del THEN, en caso de que al momento de evaluar la expresión sea falso se ejecuta la instrucción después de ELSE.

SINTAXIS
IF <expresión lógica> THEN
<acción A>
ELSE
<acción B>;


EJEMPLO: Escriba un programa en PASCAL que le permita a un estudiante calcular la nota definitiva de tres notas, que tienen el mismo valor porcentual. El programa debe imprimir la nota definitiva y un mensaje adecuado que diga 'Gano la Materia', 'Perdió la materia' según que la nota sea mayor o igual que 3.0 o menor que 3.0.



PROGRAM Ejemplo;
VAR
nota1,
nota2,
nota3 :REAL ;
definitiva :REAL ;
BEGIN
WRITELN('Entre tres notas ');
READLN(nota1,nota2,nota3);
definitiva := (nota1+nota2+nota3)/3;
IF definitiva >= 3.0 THEN
WRITELN('Su nota =',definitiva:10:2,'Gano la materia')
ELSE
WRITELN('Su nota =',definitiva:10:2,'Perdió la materia');
END.

Otra versión del programa usando las instrucciones que hemos visto es:

PROGRAM Ejemplo;
CONST
gano ='Gano la materia' ;
perdió ='Perdió la materia' ;
VAR
nota1,nota2,
nota3 :REAL ;
definitiva :REAL ;
mensaje :STRING ;
BEGIN
WRITELN('Entre tres notas ');
READLN(nota1,nota2,nota3);
definitiva := (nota1+nota2+nota3)/3;
IF definitiva >= 3.0 THEN
mensaje:=gano
ELSE
mensaje := perdió ;
WRITELN('Su nota =',definitiva:10:2,mensaje:24)
END.

Sentencias Compuestas



Cuando sea necesario que después del THEN o el ELSE se ejecuten no solo una instrucción sino varias, es necesario escribir lo que llamamos una sentencia compuesta; que no es más que varias instrucciones simples encerradas entre BEGIN y END.

If Anidados

Tendremos situaciones lógicas en las cuales después de hacernos una pregunta se nos hace necesario hacer una nueva pregunta, en esos caso tenemos entonces que después del THEN y/o ELSE es necesario volver a tener una sentencia IF THEN ELSE decimos entonces que anidamos IF. 
EJEMPLO: Se requiere un programa que lea A y permita evaluar la función 
PROGRAM EJEMPLO;
VAR 
a, y :REAL;
BEGIN 
WRITE('Entre un número ');
READLN(a);
IF a<3 THEN
y := 5*A +SQR(A+1)
ELSE
IF (A>=3) AND (A<=9) THEN
y := A + 5 ‑(A + 2)/3
ELSE
y:= EXP(3*LN(A)) + 7*A;
WRITELN('y(',a:6:2,')=',y:10:2);
END.

Observe que el IF después del ELSE no se encierra entre BEGIN y END, pues IF THEN ELSE es una solo instrucción.
Observe como se construye una expresión lógica con los operadores AND, OR.

Sentencias Case

La sentencia case se utiliza para elegir entre diferentes alternativas. Una sentencia case se compone de varias sentencias simples. Cuando case se ejecuta, una (y solo una ) de las sentencias simples se selecciona y ejecuta.

EJEMPLO:   Escriba un programa que lea un número entero entre 0 y 6 si el número que se le entra es 0 imprime Domingo, si se entra 1 imprime Lunes, 2 imprime Martes, 3 imprime Miércoles, 4 imprime Jueves, 5 Viernes, 6 Sábado, si entra un número distinto imprime un mensaje de advertencia.

PROGRAM días;
VAR
dia :INTEGER;
BEGIN
WRITE('Entre el numero del Dia ');
READLN(dia);
CASE dia OF
0: WRITELN('Domingo');
1: WRITELN('Lunes');
2: WRITELN('Martes');
3: WRITELN('Miércoles');
4: WRITELN('Jueves');
5: WRITELN('Viernes');
6: WRITELN('Sábado');
ELSE
WRITELN('No clasificado');
END;{ Fin del Case }
END.


Definición de ciclos

Llamaremos ciclo repetitivo a un conjunto de instrucciones que se repiten un número finito de veces.
Para que un conjunto de instrucciones se repita es necesario que se tenga alguna condición que se satisfaga, diremos entonces que el ciclo se repite mientras se cumple una determinada condición, también existen ciclos que se repiten hasta cuando una condición deja de cumplirse, diremos que el ciclo se repita hasta que la condición fue verdadera o mientras la condición fue falsa.
Para cualquiera de los casos tenemos en PASCAL instrucciones que nos permiten simular esos procesos con un computador.

Instrucción While

Repite un conjunto de instrucciones mientras se cumple la condición.
WHILE <expresion lógica> DO 
BEGIN
Instrucciones a repetir
END 


La instrucción WHILE se comporta de la siguiente manera:
1. Si en el momento de llegar al WHILE y evaluar la expresión lógica esta es falsa entonces el computador no ejecuta las instrucciones a repetir.
2. Si la evaluación de la expresión lógica es verdadera en el momento de llegar al WHILE, se ejecutan las instrucciones que conforman el ciclo.
3. Una vez se ejecutan las instrucciones del ciclo se vuelve a ejecuta la evaluación de la condición y si es verdadera se vuelven a ejecutar la instrucciones que conforman el ciclo.
4. El proceso anterior se repite hasta que en algún momento de la la evaluación de la expresión lógica de FALSE.

PROGRAM EJEMPLO
VAR 
numero, n : INTEGER ;
BEGIN 
WRITE('Hasta que número escriba?')
READLN(N);
numero:=1; { Le doy valor 1 a número}
WHILE numero <= n DO 
BEGIN 
WRITELN(numero);
{ Incremento en 1 el número }
numero:=numero+1;
END;
END.

EJEMPLO: Escriba un programa que lea n, y calcule el factorial de n.
Recuerde que:
n!= 1*2*3*4*5*6*7*8*....*n‑1*n
PROGRAM FACTORIALES;
VAR 
n, factorial
factor :LONGINT ;
BEGIN 
WRITE('Escriba el número al que le debo calcular el factorial');
READLN(N);
factor := 1 ;
factorial:= 1 ;
WHILE factor<=n DO 
BEGIN 
factorial:=factorial*factor;
factor:=factor+1;
END;
WRITELN(n:5,'!=',factorial:7);
END.

En el programa anterior la variable numero va cambiando su valor en uno cada que el ciclo se ejecuta, logrando de esta manera generar todos los números de 1 a N.

Instrucción Repeat



La instrucción REPEAT permite definir procesos repetitivos, que se ejecutan mientras la evaluación de la expresión lógica en el UNTIL de falso.
El proceso se deja de repetir cuando la evaluación de la expresión da verdadero.
Sintaxis:
REPEAT 

Instrucciones a repetir Instrucciones a repetir
UNTIL < expresion lógica > ;

La instrucción Repeat realiza las instrucciones a repetir por lo menos una vez, y repite el proceso solo si la expresión lógica es falsa.
En el momento en que la condición se hace verdadera el computador continua la ejecución en la instrucción siguiente al UNTIL.

EJEMPLO: Escribir un programa en pascal que escriba 3 veces en pantalla el mensaje "COLOMBIA ES GRANDE".
PROGRAM EJEMPLO;
USES CRT;
CONST
MENSAJE ='COLOMBIA ES GRANDE';
VAR
contador :INTEGER;
BEGIN
contador := 0; { inicia la variable en cero }
REPEAT
WRITELN ('Colombia es grande');
Contador := Contador + 1;
UNTIL Contador = 3 ;
END

La variable de nombre contador cuenta las veces que se imprime el mensaje 'COLOMBIA ES GRANDE'.

EJEMPLO: Escribir un programa que lea un número N el cual le debe indicar al computador hasta que número queremos que nos imprima en pantalla empezando en 1 y terminando en N
PROGRAM EJEMPLO;
VAR
n, contador :INTEGER;
BEGIN
WRITE('Hasta que número escribo?');
READLN (n);
contador := 1;
REPEAT
WRITELN(contador);
Contador := Contador + 1;
UNTIL Contador = N+1 ;
END.


Instrucción For




Permite repetir un conjunto de instrucciones mientras el valor de la variable de control es menor o igual que un valor Vf.
FOR < variable de control> := Vi TO Vf DO
BEGIN
Instrucciones a repetir
END;

La variable de control es una variable que debe estar declarada de tipo CHAR, INTEGER, BOOLEAN, ENUMERADO.
El valor de la variable de control se incrementa en uno cada que se llega al END.
Si se quiere hacer un ciclo en que el valor de la variable de control decremente se reemplaza la palabra TO por DOWNTO, solo en ese caso el valor de Vi >= Vf y el valor de la variable se decrementa en uno cada que se ejecuta el ciclo.
Si la instrucción a repetir es una sola no se necesita BEGIN y END.

EJEMPLO: Use la instrucción FOR para calcular el factorial de un número n en cualquier momento.
PROGRAM FACTORIAL;
VAR
Facto,N : LONGINT ;
Factor : REAL ;
BEGIN
WRITE('Entre el N');
READLN(N);
Facto := 1
FOR Factor := 1 TO N DO
Facto:= Facto*Factor;
WRITELN(Facto:10:0);
END.






Unidad 2

Unidad de Competencia II
Aplica Sintaxis Básicas a Algoritmos


Objetivos

Al terminar la unidad de competencia, el estudiante estará en capacidad de:

1. Identificar las zonas de declaración de variables y constantes en el cuerpo de un algoritmo, tomando en cuenta el orden correspondiente para su desarrollo. 

2. Identificar los tipos de variables en Pascal, sabiendo la utilidad de cada una.

3. Escribir las sintaxis de salida y de entrada de una forma correcta y ajustándola al desarrollo de cualquier código de un algoritmo.

4. Utilizar los operadores matemáticos en cualquier tipo de algoritmo, teniendo en cuenta la escritura correcta de cada sentencia de código.

Conceptos Básicos 
Constante 
Pascal


Como hemos visto en un algoritmo describimos un conjunto de operaciones que debe realizar el computador, para que esas instrucciones las ejecute el computador debemos utilizar un lenguaje de computación que para nuestro caso vamos a ver que requerimos para escribir instrucciones básicas en PASCAL.


Partes de un programa en Pascal.
Un programa en PASCAL se caracteriza por tener las siguientes partes que definen su estructura:

            PROGRAM <Identificador> ;    {Zona de Encabezamiento}
            USES <declaración de unidades>;

            LABEL
            <declaración de etiquetas>

            CONST
            <definición de constantes>

            TYPE
            <declaración de tipos>

            VAR
            <declaración de variables>
            <declaración del procedimiento>
            <declaración de la función>
            BEGIN                                                                     
                        ......
                        { cuerpo del programa }
                        { Instrucciones del Programa }
                        ......

            END.    


Zona de encabezamiento
En ella le damos el nombre al programa. En todo programa debe haber una zona de encabeza­miento. La zona de encabezamiento se inicia con la palabra PROGRAM; seguida por el nombre con que identificamos nuestro programa.

Zona de Declaraciones
En ella se declaran los objetos con que un programa trabaja, en ella se pueden declarar: variables, tipos de datos, constantes, label, procedimientos y funciones.
Un programa en PASCAL no necesita tener todas estas partes, y al declararlas pueden ser escritas en cualquier orden; se recomienda sin embargo seguir el orden propuesto arriba.
Durante el curso veremos en detalle cada una de las partes que conforman la zona de declaraciones y su utilidad.

Declaraciones de Unidades

El Turbo PASCAL le entrega al programador unas biblioteca con funciones y procedimientos, que le permiten realizar distintos tipo de tareas, las cuales vienen en archivos llamados UNIDADES.
Cuando un usuario desea utilizar alguna función o procedimiento de alguna de esas unidades, debe declarar la unidad (biblioteca) que contiene dicha función o procedimiento antes de poder hacer uso de ella en el programa principal.
Los programadores también pueden construir sus propias unidades.
Mas adelante estudiaremos en detalle las unidades y las funciones que suministra.
Las unidades que suministra Turbo Pascal son: DOS, WINCRT, PRINTER, GRAPH, GRAPH3.



Declaraciones de Constantes
Esta zona se caracteriza por iniciar con la palabra CONST seguido por los identificadores de sitios en memoria que van almacenar datos CONSTANTES para ese programa, la zona de declaración de constantes es opcional. 


Declaraciones 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.


  • Variable Integer
  • Variable Longint
  • Variable Real 
  • Variable Char 
  • Variable String 
  • Variable Boolean

Sintaxis Read y Readln

Estos procedimientos nos permiten entrar uno o más datos desde el teclado para ser almacenadas en alguna celdas en memoria.
              SINTAXIS :
              READ(<lista de variables>);
              READLN(<lista de variables>);

Donde la lista de variables está conformada por el nombre de una o mas variables separadas por comas, para las cuales deseamos entrar datos usando el teclado.

¿Para cuáles variables debemos entrar los datos por el teclado? Para todas aquellas que en el proceso de análisis del problema, veamos que son indispensables para la realización de la tarea que el computador va a realizar y el no puede conocerlos por medios de cálculos o lectura de algún dispositivo de almacenamiento .

EJEMPLOS: Si supone, que quiere entrar los valores a las variables declaradas en un programa podría hacer lo siguiente:

              READ(a,b);
              READLN(a,b,d,e);
              READLN(f);

En un READ o READLN, no se puede leer datos para variables lógicas.

Sintaxis Write y Writeln

Permite escribir mensajes y/o valores en pantalla. Los valores deben estar almacenados en memoria en alguna variable.
SINTAXIS:
WRITE( <item(s)> );
WRITELN(<item(s) >);

Donde el ítem puede ser:
El identificador de una variable : en cuyo caso el computador escribe en pantalla el valor que contenga la variable en el momento de la ejecutar la instrucción.
Ejemplo:  WRITELN(a);           

Una cadena de caracteres encerrada entre comillas simples: en cuyo caso el computador escribe todo lo que encuentre entre las comillas, textualmente en la pantalla.
WRITELN( ´La Vida es una ruleta ´ ) ;

Una expresión matemática: escribirá el resultado de la evaluación de la expresión en la pantalla.
WRITELN(a+b);

Una combinación de los anteriores: Se escriben cada uno de los ítems, siguiendo el comportamiento descritos.
WRITELN(´La X =´, a);

Ejemplo

Supongamos que en un programa de PASCAL se tiene:

            PROGRAM Formatos;
            VAR
                               a  :INTEGER;
                               b  :REAL;
                               c  :CHAR;
                               d  :BOOLEAN;
                               e  :STRING[15];
            BEGIN
                        a:= 45;
                        b:= 1.33;
                        c:='X';
                        d:=false;
                        e:='Turbo';
                        WRITELN(a,b,c,d,e);
            END.

Escribe en la pantalla los resultados así:   

45 1.3300000000E+00XFALSETurbo



+ SUMA.
RESTA.
* MULTIPLICACION.
/ DIVISION DE REALES.
MOD OBTIENE EL RESIDUO DE UNA DIVISION.
DIV DIVISION ENTERA.


Jerarquía de operadores

Cuando el computador evalúa una expresión aritmética sigue los siguientes criterios para obtener el resultado.

1. En una operación aritmética que incluya varios operadores aritméticos, los operadores *, /, DIV, MOD son los operadores aritméticos que tienen mayor prioridad, esto significa que primero se realizan las operaciones que estén asociadas con estos operadores aritméticos.


2. En una expresión aritmética compuesta, las operaciones que están asociadas con los operadores +, ‑ se ejecutan después de haberse ejecutado todos los operadores aritméticos enunciados en la primera regla.

3. Si en una expresión existen varios operadores aritméticos que tengan la misma prioridad, estos se resuelven de izquierda a derecha.


Funciones

Las computadoras no saben realizar por si mismas operaciones complejas como calcular un logaritmo o evaluar la función seno, o tangente, por tal motivo es necesario que los lenguajes le den al programador módulos de programa que le permitan calcular valores usando dichas funciones.

Las funciones que a continuación se describen son módulos de programa que permiten a los usuarios de turbo Pascal evaluar las funciones matemáticas siguientes:

1.1 LN(X): Permite calcular el logaritmo neperiano (base e) del argumento X.
EJEMPLO: En un programa en pascal se puede presentar la siguiente instrucción así:
Y:= Ln(x) + 6;
Las variables x e y deben ser definidas tipo real previamente.
1.2 EXP(X): Permite calcular el exponencial del argumento X, es decir permite calcular x.
EJEMPLO: En un programa en pascal se puede tener que:
Y:= exp(x);
Donde x puede ser una variable definida de tipo entera (INTEGER) o REAL.
1.3 SQRT(X): Permite calcular la raíz cuadrada del argumento. El argumento debe ser mayor o igual que cero y real, el resultado es real. Se usa de igual manera que las funciones anteriores.
1.4 SQR(X): Nos devuelve el argumento elevado al cuadrado. El argumento puede ser de tipo entero o real, el resultado es real. Se usa de igual manera que las funciones anteriores.
1.5 SIN(X), COS(X): Estas dos funciones nos permiten calcular Seno y Coseno respectivamente de su argumento dado en radianes. Se usa de igual manera que las funciones anteriores.
1.6 ARCTAN(X): Esta función devuelve el ángulo en radianes en el rango entre 0 a Pi cuya tangente es el argumento. El argumento y la variable para almacenar el resultado deben ser reales.
1.7 ABS(X): Calcula el valor absoluto de un número dado. El argumento puede ser definido como de tipo INTEGER o REAL.
Más adelante veremos otras funciones en PASCAL.
1.8 PI: Retorna el valor de pi
PI=3,1415926535897932385
EJEMPLO: Si Y es de tipo REAL entonces la expresión:
Y:=3*PI
1.9 TRUNC: Trunca la parte decimal de un número de tipo real, permitiendo obtener un entero longint.
EJEMPLO: Si z vale 3.567 entonces a:=TRUNC(z) permite tener en a el entero 3
1.10 ROUND: Toma el argumento y retorna el entero más cercano.
EJEMPLO: Si en un programa en PASCAL se tiene x:=‑32.51 entonces y:=round(x) hace que y contenga ‑33.
1.11 FRAC: Retorna la parte decimal de un número real.
EJEMPLO: Si a:=5.672355 entonces z:=FRAC(a); almacena en z el decimal 0.672355, z tiene que ser de tipo real;
1.12 INT: Permite obtener la parte entera decimal de un número real.
EJEMPLO: Si a:=5.672355 entonces z:=INT(a); almacena en z el decimal 5.0, z tiene que ser de tipo real.