Definiciones básicas
Algoritmo.Tipos de datos informáticos
Análisis del Problema, ejemplos
Diseño del algoritmo, ejemplos.
Medios de Expresión de un algoritmo
Diagramas de Flujo, ejemplos, Pseudocódigo., ejemplos
Estructuras de control
Estructuras secuenciales
Estructuras selectivas
Selectiva doble (alternativa)
Selectiva múltiple
Selectiva múltiple-Casos
Estructuras iterativas
Bucle mientra Bucle repetir
Bucle hacer Bucle para
Bucle para cada
Algoritmos de búsqueda, ejemplos
Algoritmos de ordenación, ejemplos
2. Algoritmo
El algoritmo se trata de una serie de instrucciones o reglas establecidas que, por
medio de una sucesión de pasos, permiten arribar a un resultado o solución.
Tipos De Datos
Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple
carácter, tal como ‘b’, un valor entero tal como 35. El tipo de dato determina la
naturaleza del conjunto de valores que puede tomar una variable siend estos:
Datos Numéricos: Permiten representar valores escalares de forma numérica, esto
incluye a los números enteros y los reales. Este tipo de datos permiten realizar
operaciones aritméticas comunes.
Datos Lógicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya
que representan el resultado de una comparación entre otros datos (numéricos o
alfanuméricos).
Datos Alfanuméricos (String): Es una secuencia de caracteres alfanuméricos que
permiten representar valores identificables de forma descriptiva, esto incluye nombres
de personas, direcciones, etc. Es posible representar números como alfanuméricos,
pero estos pierden su propiedad matemática, es decir no es posible hacer operaciones
con ellos. Este tipo de datos se representan encerrados entre comillas.
Analisis del problema
Este Consiste en el proceso que a partir de la descripción de un problema,
expresado habitualmente en lenguaje natural y en términos propios del dominio del
problema, permite desarrollar un programa que resuelva dicho problema.
Los dos primeros pasos son los más difíciles del proceso. Una vez analizado el
problema y obtenido un algoritmo que lo resuelva, su transformación a un programa de
ordenador es una tarea de mera traducción al lenguaje de programación deseado.
Diseño del algoritmo
Ya sabemos lo que es un algoritmo, pero para poder diseñar algoritmos es
necesario disponer de una notación, que llamaremos ‘notación algorítmica’, que
permita:
Describir las operaciones puestas en juego (acciones, instrucciones,
comandos,...)
Describir los objetos manipulados por el algoritmo (datos/informaciones)
Controlar la realización de las acciones descritas, indicando la forma en que
estas se organizan en el tiempo
Para poder describir cualquier tipo de acción de las que intervienen en un algoritmo,
diversos autores proponen el uso de un conjunto de construcciones lógicas
(secuencia, decisión e iteración) con las que es posible escribir cualquier programa. Lo
que sigue a continuación es la descripción de las diferentes construcciones disponibles
para el diseño de algoritmos.
3. MEDIOS DE EXPRESIÓN DE UN ALGORITMO
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje
natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros.
Las descripciones en lenguaje natural tienden a ser ambiguas y extensas.
DIAGRAMAS DE FLUJO
Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos
conectados con flechas para indicar la secuencia de instrucciones y están regidos por
ISO.
Pseudocódigo
Es una descripción de alto nivel de un algoritmo que emplea una mezcla de
lenguaje natural con algunas convenciones sintácticas propias de lenguajes de
programación, como asignaciones, ciclos y condicionales, aunque no está regido por
ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones
científicas, y como producto intermedio durante el desarrollo de un algoritmo, como los
diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los
algoritmos descritos en pseudocódigo requieren menos espacio para representar
instrucciones complejas.
Ejemplos:
Estructuras de control
En programación, las estructuras de control permiten modificar el flujo de ejecución
de las instrucciones de un programa.
Con las estructuras de control se puede:
De acuerdo con una condición, ejecutar un grupo u otro de sentencias (If-Then-
Else)
De acuerdo con el valor de una variable, ejecutar un grupo u otro de sentencias
(Select-Case)
Ejecutar un grupo de sentencias mientras se cumpla una condición (Do-While)
Ejecutar un grupo de sentencias hasta que se cumpla una condición (Do-Until)
Ejecutar un grupo de sentencias un número determinado de veces (For-Next)
4. Estructura secuencial.
La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra
en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada
de la siguiente y así sucesivamente hasta el fin del proceso.
Estructuras Selectivas
La especificación formal de algoritmos es realmente útil cuando se requiere una
descripción más complicada que una lista sencilla de instrucciones. Este es el caso
cuando existen un número de posibles alternativas resultantes de la evaluación de una
determinada condición.
Tipos de estructura selectiva
Simples
Las estructuras selectivas simples o condicionales están compuesta únicamente de
una sola condición si es verdadera ejecutara la acción o acciones si la condición es
falsa no hará nada.
Dobles
Las estructuras selectivas dobles están compuesta únicamente de una sola
condición, si es verdadera ejecutara la acción o acciones y si la condición es falsa
ejecutara las acciones para la condición falsa. Esta estructura selectiva solo se debe
utilizar únicamente cuando existen dos condiciones, si hubieran mas de dos
condiciones se puede utilizar varias selectivas simples o una selectiva múltiple.
Múltiples
Las estructuras selectivas múltiples o anidadas están compuesta múltiples
selectivas simples que están unidas por el comando elsif el resultado que se obtiene
con una selectiva multiple se puede obtener con varias selectivas simples, entonces,
¿cual es la diferencia? el codigo es mas pequeño, aunque, yo recomiendo que cuando
recien se esta aprendiendo a programar es recomendable que al principio se trabaje
con selectivas simples, a medida que se va aprendiendo y ganando destreza se puede
comenzar a utilizar las selectivas multiples en los casos que ellos crean conveniente y
necesarios.
Estructuras de Control Iterativas
En la vida diaria existen situaciones que frecuentemente se resuelven realizando
una determinada secuencia de pasos que puede repetirse muchas veces, ejemplo:
1. El proceso que seguimos para comer, mientras no se termine la comida.
2. El proceso de insertar monedas, hasta que se abone la cantidad necesaria.
3. Las operaciones que realizamos para llamar por teléfono, mientras no se logre
la comunicación.
Como se puede observar estos son algoritmos que se hacen cotidianamente, pero
tienen la particularidad de que la ejecución de alguno de sus pasos puede repetirse
muchas veces, mientras no se logre la meta trazada. A este tipo de algoritmo se le
conoce como algoritmos iterativos o repetitivos.
5. BUCLES
Los bucles, iteraciones o sentencias repetitivas modifican el flujo secuencial de un
programa permitiendo la ejecución reiterada de una sentencia o sentencias. En Java
hay tres tipos diferentes de bucles: for, while y do-while
Algoritmos de Búsqueda
Para encontrar un dato dentro de un arreglo, para ello existen diversos algoritmos
que varían en complejidad, eficiencia, tamaño del dominio de búsqueda.
Búsqueda Secuencial: Consiste en ir comparando el elemento que se busca con
cada elemento del arreglo hasta cuando se encuentra.
Búsqueda Binaria: La Búsqueda Binaria, compara si el valor buscado está en la
mitad superior o inferior. En la que esté, subdivido nuevamente, y así sucesivamente
hasta encontrar el valor.
Algoritmo de ordenacion
Ordenamiento Ascendente : Existen numerosos algoritmos para ordenar. A
continuación se verán algunos algoritmos de ordenamiento.
Ordenamiento Burbuja (bublesort): Idea: vamos comparando elementos
adyacentes y empujamos los valores más livianos hacia arriba (los más pesados van
quedando abajo). Idea de la burbuja que asciende, por lo liviana que es.