TEMA 1: Composición de Algoritmos 

        Los algoritmos están compuestos  por diferentes partes, unas
relacionadas  íntimamente con  las otras,  de tal  forma que  muchas
veces la no existencia de una  provocaría una confusión en el mismo.
Por ello  es muy importante el  saber las partes principales  en las
que se divide los algoritmos y  saber cuales son esenciales y cuales
no.

1.1 Cabecera (nombre del Algoritmo).

        Al comenzar cualquier algoritmo, este debe ser bautizado, de
tal forma  que tan solo  leer la cabecera  sepamos cual va  a ser su
propósito.

Ejemplo:

+-Algoritmo Factorial    <- Cabecera
|
|   Variable entera a,b,c
|   Escribir "Introduzca el número a factorizar."
|   Leer a
|   b = 1
| +-Para c desde 2 hasta a hacer
| ³   b=b*c
| À-FinPara
|   Escribir "El factorial es: ",b
+-Final

1.2 Sección de datos (declaración de variables).

        Esta parte es esencial  para cualquier algoritmo que trabaje
con  variables. En  esta sección  se va  a declarar  cuales son  las
variables con las que vamos a trabajar y cuales son sus tipos.

1.2.1 Tipos.

        El  tipo de  una variables  define el  contenido de ésta, es
decir, indica cual va a ser el propósito de la variable.

        Los tipos de datos estándar son:

- Enteras   (Su contenido será un número entero)
- Reales    (Su contenido será un número  real)
- Carácter  (Su contenido será un carácter alfanumérico)
- Cadena    (Su contenido será un un conjunto de caracteres)
- Lógicas   (Su valor indica un hecho cierto o falso)

        Existen  otros tipos  de  variables  tales como  byte, word,
dbyte,  dword,   etc.  Que  son  variables   más  encaminadas  a  la
programación profesional.

        Las variables se caracterizan pues poseen una jerarquía  que
viene  definida por el número de bytes que se asignan para cada una.
Así un carácter posee un longitud  de un byte, (donde se almacena un
número al que se le ha asociado mediante la norma ASCII) sin embargo
un entero posee dos byte.  Sería  lógico  pensar  que  una  variable
entera  contuviera  a un carácter y de hecho esto puede ser así, sin
embargo  el  mezclar  tipos   de   variables   es  impropio  de  una
programación ordenada y elegante.  Es  decir,  no  se  debe  mezclar
tipos  de variables a no ser que se produzca a través de una función
de  conversión  de  tipos  (convertir  un  entero  a  una  cadena  y
viceversa).

        En  el  programa  anterior  se  observa  la  declaración  de
variables después de la cabecera, que  es el orden que debe seguirse
en la elaboración de un algoritmo y en un programa informático.

1.2.2 Variables y Constantes.

        La principal diferencia entre  variables y constantes es que
las primeras pueden variar a lo  largo de la ejecución del programa,
mientras  que  las  segundas   permanecen  constantes  siempre.  Las
constantes  se  declaran  después  de  la  cabecera  y  antes de las
variables.

Ejemplo:

+-Algoritmo Circunferencia
|
|   Constante real PI=3.1416
|   Variable real r,c
|
|   Escribir "Introduzca el radio de la circunferencia"
|   Leer r
|   c=2*Pi*r
|   Escribir "Su longitud es: ",c
|
+-Final

        Se define  Vector como una  variable cuya estructura  es una
sucesión de elementos del mismo tipo.  Así una variable de cadena es
un vector  de caracteres, ya  que esta formado  por una sucesión  de
variables  del   tipo  carácter.  Así  podemos   crear  vectores  de
diferentes tipos.

Ejemplo: Producto  escalar  de dos vectores en una base ortonormal.

+-Algoritmo Producto_Escalar
|
|   Vector entero a[1..3], b[1..3]
|   Variable entera c
|
|   Escribir "Introduzca el vector A (x,y,z)"
|   Leer a[1],a[2],a[3]
|   Escribir "Introduzca el vector B (x,y,z)"
|   Leer b[1],b[2],b[3]
|
|   c=a[1]*b[1]+a[2]*b[2]+a[3]*b[3]
|
|   Escribir "El producto escalar es: ",c
|
+-Final


        De  igual  forma  tenemos  que  una  matriz  es un vector de
vectores que se define como:

       ¦ matriz entera Rotacional [1..3,1..3]

        Hay que decir que el  concepto de [Columnas,Filas] o [Filas,
Columnas] es más bien arbitrario,  ya que podemos adoptar el formato
que  queramos,  siempre  y  cuando  lo  mantengamos  a  lo largo del
programa.