1. ESTRUCTURAS BASICAS DE UN ALGORITMO
Un problema se puede dividir en acciones elementales o instrucciones, usando un
número limitado de estructuras de control (básicas) y sus combinaciones que
pueden servir para resolver dicho problema.
Las estructuras de control de un lenguaje de programación son métodos de
especificar el orden en que las instrucciones de un algoritmo se ejecutarán. Estas
son por consiguiente fundamentales en los lenguajes de programación y en los
diseños de algoritmos. Se les llama de control debido a que controlan el modo de
ejecución del programa.
Estructuras Secuenciales
Son problemas en los que, para su solución se emplea una serie de acciones
ejecutadas invariablemente en un orden secuencial.
Las tareas suceden de tal modo que la salida de una es la entrada de la siguiente
y así sucesivamente hasta el fin del proceso.
Dentro de este tipo podemos encontrar operaciones de inicio/fin, inicialización de
variables, operaciones de asignación, cálculo, sumarización, etc.
Este tipo de estructura se basa en las 5 fases de que consta todo algoritmo o
programa:
Definición de variables (Declaración)
Inicialización de variables.
Lectura de datos
Cálculos
Salida
REPRESENTACIÓN GRÁFICA.
2. Estructura Condicionales
Las estructuras condicionales comparan una variable contra otro(s) valor (es),
para que en base al resultado de esta comparación, se siga un curso de acción
dentro del programa. Cabe mencionar que la comparación se puede hacer contra
otra variable o contra una constante, según se necesite. Existen tres tipos básicos,
las simples, las dobles y las múltiples.
Simples:
Las estructuras condicionales simples se les conocen como Tomas de decisión.
Estas tomas de decisión tienen la siguiente forma:
Pseudocódigo: Diagrama de flujo:
Dobles:
Las estructuras condicionales dobles permiten elegir entre dos opciones o
alternativas posibles en función del cumplimiento o no de una determinada
condición. Se representa de la siguiente forma:
Pseudocódigo: Diagrama de flujo:
Dónde:
Si: Indica el comando de comparación
Condición: Indica la condición a evaluar
Entonces: Precede a las acciones a realizar cuando se cumple la condición
Instrucción(es): Son las acciones a realizar cuando se cumple o no la condición
si no: Precede a las acciones a realizar cuando no se cumple la condición
Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o más
acciones.
3. Múltiples:
Las estructuras de comparación múltiples, son tomas de decisión especializada
que permiten comparar unas variables contras distintas posibles resultadas,
ejecutando para cada caso una serie de instrucciones específicas. La forma
común es la siguiente:
Pseudocódigo: Diagrama de flujo:
Múltiples (En caso de):
Las estructuras de comparación múltiples, es una toma de decisión especializada
que permiten evaluar una variable con distintos posibles resultados, ejecutando
para cada caso una serie de instrucciones específicas. La forma es la siguiente:
Pseudocódigo: Diagrama de flujo:
4. Contadores
Un contador es una variable cuyo valor se incrementa o decrementa en una
cantidad fija en cada iteración. Se utilizan en los siguientes casos:
Para contabilizar el número de veces que es necesario repetir una acción
(variable de control de un bucle)
Para contar un suceso particular solicitado por el enunciado del problema
(asociado a un bucle independiente)
Representa la variable de control del ciclo.
Toma un valor inicial (generalmente 0 ó 1) y se incrementa en la mayoría de
los casos.
Toma un valor inicial y se compara con el valor final.
Los contadores se utilizan con la finalidad de contar sucesos o acciones internas
de un bucle; deben realizar una operación de inicialización y posteriormente las
sucesivas de incremento o decremento del mismo. La inicialización consiste en
asignarle al contador un valor. Se situará antes y fuera del bucle.
Representación:
<nombre del contador> ß <nombre del contador> + <valor constante>
Si en vez de incremento es decremento se coloca un menos en lugar del más.
Ejemplo: i = i + 1 (incremento)
i = i – 1 (decremento)
Acumuladores
Un acumulador es un campo de memoria que suma sobre sí misma un conjunto
de valores para de esta manera tener la suma de todos ellos en una sola variable.
Se utiliza en aquellos casos en que se desea obtener el total acumulado de un
conjunto de cantidades, siendo preciso inicializarlo con el valor cero. Además en
las situaciones en que hay que obtener un total como producto de distintas
cantidades se utiliza un acumulador, debiéndose inicializar con el valor.
La diferencia entre un contador y un acumulador es que mientras el primero va
aumentando de uno en uno en un valor constante, el acumulador va aumentando
en una cantidad variable.
Representación:
<Nombre del acumulador> ß <nombre del acumulador> + <valor variable>
5. Ciclos
El bucle, ciclo o lazo, es un segmento de un algoritmo o programa cuyas
instrucciones se repiten un número determinado de veces, mientras se cumple
una determinada condición específica (existe o es verdadera la condición). Un
ciclo tiene las siguientes características:
a. El conjunto de instrucciones debe ser finito
b. La cantidad de veces que se repita dicho conjunto de instrucciones también
debe ser finita. En algunos casos esta cantidad de veces va a depender de una
condición explícita y en otros casos va a depender de una condición implícita. Una
condición es explícita cuando depende solamente de la misma ejecución del
programa sin que sea importante la participación del usuario.
Asimismo una condición es implícita cuando depende solamente de la voluntad del
usuario y por lo tanto la cantidad de iteraciones o repeticiones del ciclo podría
llegar a ser diferente cada vez pues sería posible que cambiara con cada usuario.
c. Deben estar claramente demarcados el inicio y el fin del ciclo. En los casos en
los cuales solo exista una instrucción a iterar, no serán necesarias dichas marcas.
d. Dentro de un ciclo podrá ir cualquiera de las otras estructuras que se han
estudiado incluyendo otros ciclos.
Un bucle consta de tres partes:
Decisión
Cuerpo del bucle
Salida del bucle
6. Arreglos
Un arreglo (array) es una colección de datos del mismo tipo, que se almacenan en
posiciones consecutivas de memoria y reciben un nombre común. Para referirse a
un determinado elemento de un array se deberá utilizar un índice, que especifique
su posición relativa en el array.
Un arreglo es una colección finita, homogénea y ordenada de elementos.
Finita: Todo arreglo tiene un límite; es decir, debe determinarse cuál será el
número máximo de elementos que podrán formar parte del arreglo.
Homogénea: Esto significa que todos los elementos del arreglo deben ser
del mismo tipo. (Todos enteros, todos reales, todos booleanos, etc.)
Ordenada: Se puede determinar cuál es el primer elemento, el segundo, el
tercero,.... y el n-ésimo elemento.
También el orden es significativo, el orden viene dado por el subíndice de un
vector
Modularidad
Respecto a las cualidades deseables de todo algoritmo bien diseñado, la
modularidad hace referencia a que nunca hay que olvidarse del hecho de que un
algoritmo puede formar parte de la solución a un problema mayor. Pero, a su vez,
dicho algoritmo debe descomponerse en otros, siempre y cuando, esto favorezca
a la claridad del mismo.