ALGORITMOS Un Algoritmo es una serie ordenada de instrucciones

1.- ALGORITMOS
Un Algoritmo es una serie ordenada de instrucciones, pasos o procesos que llevan a la
solución de un determinado problema. Los hay tan sencillos y cotidianos como seguir la
receta del médico, abrir una puerta, lavarse las manos, entre otros, hasta los que conducen a
la solución de problemas muy complejos. Un algoritmo es un método para resolver un
problema, debe presentarse como una secuencia lógica y ordenada de instrucciones que se
ejecutan en un tiempo finito y con una cantidad de esfuerzo también finito. En un algoritmo
siempre debe haber un punto de inicio y un punto de terminación, estos deben ser únicos y
deben ser fácilmente identificables.
1.1.- CARACTERÍSTICAS DE UN ALGORITMO
Todo algoritmo debe cumplir las siguientes características o propiedades:

Debe ser Preciso: Esto es, debe especificar sin ambigüedad el orden en que se deben
ejecutar las instrucciones.

Debe estar Definido: Esto es, debe producir los mismos resultados para las mismas
condiciones de entrada.

Debe ser Finito: Esto es, siempre que sea adecuado se realizarán un número finito de
instrucciones, en un tiempo finito y requiriendo una cantidad finita de esfuerzo.

Debe ser General: Debe estar orientado a la resolución de problemas generales más
bien que problemas específicos, ósea, que sea aplicable a diferentes casos con datos
diversos del mismo problema.

Debe poseer tres partes básicas: Entrada: que es la lectura de los datos, Proceso: se
refiere a todas las operaciones que se deben realizar sobre los datos. Salida: esta
relacionad con la escritura de los resultados y/o datos.
1.2.- PASOS A SEGUIR PARA LA RESOLUCIÓN DE UN PROBLEMA
Las siguientes son las etapas que se deben cumplir para resolver con éxito un
problema de programación:

Definición del problema: Entender la naturaleza del problema, es decir, ¿Qué es lo
que piden?

Selección de la mejor alternativa: Analizado el problema, posiblemente se tenga
varias formas de resolverlo; lo importante es determinar cuál es la mejor alternativa: la
que produce los resultados esperados en el menor tiempo y al menor costo. ¿Cómo se
resuelve?

Análisis del problema: Entendido el problema, para resolverlo es preciso determinar
los requerimientos de entrada y salida. ¿Qué entra y que sale?

Diagramación: Una vez que sabemos cómo resolver el problema, pasamos a construir
el algoritmo.

Codificación: Una vez que hayamos verificado el algoritmo codificamos el programa
en el lenguaje Fortran para obtener el denominado Programa Fuente.

Prueba: Probar el programa y corregir los errores.
1.3.- INSTRUCCIONES BASICAS EN UN ALGORITMO
Existen cuatro tipos básicos de instrucciones:
Instrucciones de Asignación: Mediante estas instrucciones se indica la ejecución de
operaciones matemáticas, literales o lógicas y que el resultado final de las mismas sea
asignado a cierta entidad.
Obedecen a la siguiente forma general:
Variable = Expresión
Instrucciones de Entrada – Salida: Son instrucciones de transferencia de
información de algún dispositivo externo a la computadora (Entrada) o viceversa (Salida).
Instrucciones de Selección (ó Decisión): Permite la elección de un camino de
solución entre varias alternativas posibles en base a la evaluación de ciertas consideraciones.
Instrucciones Repetitivas: Estas instrucciones permiten la ejecución repetida de un
conjunto de instrucciones un número determinado o indeterminado de veces.
1.4.- TECNICAS DE REPREENTACION DE ALGORITMOS:
Son técnicas para la representación de los algoritmos en donde a través de
convenciones y el empleo de símbolos estandarizados se expresa en forma clara y sencilla el
proceso establecido en el algoritmo.
Hay varias técnicas de representación de los algoritmos:

Diagrama de Flujo (DF):
Representa la esquematización gráfica de un algoritmo, el cual muestra mediante
símbolos o figuras geométricas, los pasos o procesos a seguir para alcanzar la
solución de un problema. Su correcta construcción es sumamente importante
porque, a partir del mismo se escribe un programa en algún Lenguaje de
Programación. Si el Diagrama de Flujo está completo y correcto, el paso del
mismo a un Lenguaje de Programación es relativamente simple y directo.
Simbología utilizada en los Diagramas de Flujo:
Nombre Símbolo
Significado
TERMINADOR
Inicio / Fin
ENTRADA
Lectura por teclado
PROCESO
Operaciones a realizar
SALIDA
Escritura por pantalla
DECISION
Estructura de selección
REPETICION
Estructura cíclica
FLECHAS
Orden lógico
Símbolo

Seudolenguaje (SL):
No es realmente un código sino una imitación y una versión abreviada de
instrucciones reales para las computadoras. Es una técnica para diseño de
programas que permite definir las estructuras de datos, las operaciones que se
aplicarán a los datos y la lógica que tendrá el programa de computadora para
solucionar un determinado problema. Utiliza un Seudolenguaje (términos o
palabras) muy parecido a nuestro idioma, pero que respeta las directrices y los
elementos de los lenguajes de programación. Se concibió para superar las dos
principales desventajas de los flujogramas: lento de crear y difícil de modificar sin
un nuevo redibujo.
El pseudocódigo también va a utilizar una serie de palabras claves o palabras
especiales que van indicando lo que significa el algoritmo.
1. INICIO / FIN:
Para indicar dónde empieza y/o termina el algoritmo.
2. LEER:
Para darle entrada a los valores de las variables
3. ESCRIBIR:
Para mostrar o visualizar los datos y/o salidas.
4. SÍ (Condición) ENTONCES …..
Estructura selectiva
5. MIENTRAS (condición) …..
PARA
Estructura repetitiva
1.5.- TIPOS DE DATOS
Los datos a procesar por una computadora pueden clasificarse en:

Simples:
La principal característica de los datos simples es que ocupan solo una casilla de
memoria, por lo tanto, una variable simple hace referencia a un único valor a la
vez. Dentro de este grupo de datos se encuentran: enteros, reales, caracteres y
booleanos.

Estructurados:
Los datos estructurados se caracterizan por el hecho de hacer referencia con un
nombre a un grupo de casillas de memoria, es decir, un dato estructurado tiene
varios componentes. Cada uno de los componentes puede ser a su vez un dato
simple o estructurado. Sin embargo, los componentes básicos de cualquier tipo
estructurado son datos simples. Dentro de este grupo de datos se encuentran:
arreglos, cadenas de caracteres, registros y conjuntos.
1.6.- IDENTIFICADORES, CONSTANTES, VARIABLES Y EXPRESIONES

Identificadores:
Los datos a procesar por una computadora, ya sean simples o estructurados, deben
almacenarse en casillas o celdas de memoria para su posterior utilización. Es un
identificador conformado por uno o más caracteres alfanuméricos, el primero de
los cuales es usualmente una letra.

Constantes:
Se refiere a una posición de memoria cuyo valor permanece inalterable durante la
ejecución de un programa y está asociado a cierto tipo de datos. Se identifica por
el valor mismo. Existen tipos de constantes como tipo de dato, por lo tanto puede
haber constantes enteras, reales, carácter, booleanas, etc.

Variable:
Se refiere a una posición de memoria cuyo valor puede cambiar durante la
ejecución de un programa y está asociada a cierto tipo de datos. Se identifica a
través de un identificador. En el curso de la ejecución de un programa el valor
actual de una variable es el último que le ha sido asignado.

Expresión:
Es una combinación de variables, constantes, operadores y referencias a funciones
que expresan cálculos aritméticos, literales y / o lógicos a ser realizados. En su
forma más simple una expresión está constituida por una variable o constante.
1.7.- TIPOS DE OPERADORES:
Operadores:
Son elementos que relacionan de forma diferente, los valores de una o más variables
y/o constantes. Es decir, los operadores nos permiten manipular valores.
Existen tres tipos de operadores:

Relacionales:
Se utilizan para establecer una relación entre dos valores. Luego compara estos
valores entre si y esta comparación produce un resultado de certeza o falsedad
(verdadero o falso).Los operadores relacionales comparan valores del mismo tipo
(numéricos o cadenas). Estos tienen el mismo nivel de prioridad en su evaluación.
Los operadores relaciónales tiene menor prioridad que los aritméticos.
Los operadores relacionales son:

Operación
Operador
Algoritmo
Programa
Igual a
=
=
.EQ.
==
Mayor que
>
>
.GT.
>
Mayor o igual que
≥
≥
.GE.
>=
Menor que
<
<
.LT.
<
Menor o igual que
≤
≤
.LE.
<=
Distinto a
≠
≠
.NE.
/=
Aritméticos:
Para realizar operaciones aritméticas se necesitan utilizar los operadores
aritméticos. Estos operadores permiten expresar operaciones aritméticas entre
operandos: números, constantes o variables. El resultado de una operación
aritmética será un número. Los operadores aritméticos pueden ser utilizados con
tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si
alguno de ellos es real, el resultado es real.
Los Operadores aritméticos son:
Operación
Operador
Algoritmo
Programa
Potencia
B**E
22 = 4
2**2 = 4
Multiplicación
*
2*2 = 4
2*2=4
División
/
4/2 = 2
4/2=2
Suma
+
2+2 = 4
2+2 = 4
Resta
-
4-2 = 2
4-2 = 2
División Modulo
Mod(Dd,Ds) = R
Mod(7,2) = 1
Mod(7,2) = 1
(Residuo)
Dd: Dividendo
Ds :Divisor
R: Residuo
Jerarquía de operadores aritméticos:
( () )
**

Paréntesis de internos a externos
Potencia
* y /
Con igual prioridad de izquierda a derecha
+ y -
Con igual prioridad de izquierda a derecha
Lógicos:
Los operadores lógicos son operadores que permiten formular condiciones
complejas a partir de condiciones simples. Los operadores lógicos son de
Conjunción que se representa (y ó
^) para el algoritmo y (.AND.) para el
programa y la Disyunción que se representa (o
(.OR.).para el programa.
ó
v ) para el algoritmo y
1.8.- FUNCIONES MATEMATICAS INTRINSECAS
Fortran tiene una serie de funciones propias intrínseca como lo son:
LOG (x)
 ln Logaritmo neperiano
LOG10 (x) 
EXP (x)

SQRT (x) 
SINH (x) 
Seno hiperbólico
Log, en base 10
COSH (x) 
Coseno hiperbólico
Exponencial
TANH (x) 
Tangente hiperbólica
Raiz cuadrada
MAX (x1, x2, ..) 
Máximo
SIN (x)

Seno
MIN (x1, x2, ..)

Mínimo
COS (x)

Coseno
MOD (x, y)

Resto de x / y
TAN (x)

Tangente
REAL (x)

Convierte x a real
ABS (x)

Valor absoluto
ASIN (x)

Arco seno
INT (x)

Trunca x a entero
ACOS (x)

Arco coseno
Redondea x a entero
ATAN (x)

Arco tangente
NINT (x) 
1.9.- USOS BASICOS DE LAS VARIABLES
Las variables pueden ser utilizadas para diversos propósitos durante el curso de las
operaciones planteadas en un algoritmo. Entre esos usos básicos se tienen:

Acumulador de Suma:
En este caso la variable contiene el resultado de sumas sucesivas de varios
términos, esta suma se define a través de la ejecución repetida de un grupo de
instrucciones en donde en cada ejecución se suma un nuevo término. Esta variable
debe ser inicializada en el elemento neutro de la suma (SUM=0), antes de ciclo
que la vaya a utilizar.
La expresión genérica para los acumuladores de suma es:
SUM = SUM + (lo que se esté sumando)

Acumulador de producto:
La variable va a contener el resultado del producto de varios términos. Este
producto se define generalmente a través de la ejecución repetida de un grupo de
instrucciones en donde en cada ejecución se multiplica lo acumulado por un nuevo
termino de los varios que van a ser multiplicados. Esta variable debe ser
inicializada en el elemento neutro del producto (PRO=1), antes de ciclo que la
vaya a utilizar.
La expresión genérica para los acumuladores de producto es:
PRO = PRO * (lo que se esté multiplicando)

Contador:
El uso de la variable en este caso es el llevar la cuenta del número de veces que
una determinada situación se presentó. Por lo general se define su valor en un
proceso en donde cada vez que se presente la ocurrencia de una determinada
situación se incrementa el valor del contador para reflejar esta ocurrencia. Esta
variable debe ser inicializada en cero (CON
=0), antes de ciclo que la vaya a utilizar.
La expresión genérica para los contadores es:
CON = CON + 1

Variable de Control:
Esta variable permite establecer el número de veces que la ejecución de un
determinado grupo de instrucciones se ve a efectuar. Este grupo de instrucciones
se ejecuta una vez para cada valor que esta variable tome a lo largo de este proceso
repetitivo.