Unidad II Algoritmos
Unidad II Algoritmos
Unidad II Algoritmos
UNIDAD II ALGORITMOS
Un algoritmo es una serie de operaciones detalladas y no ambiguas, a ejecutar paso a paso, y que
conducen a la resolucioó n de un problema. En otras palabras es un gran conjunto de reglas para
resolver un problema o una forma de describir la solucioó n de este.
Para describir algoritmos de computadoras se han disenñ ado lenguajes de programacioó n. Cada
una de las acciones en las que consta un algoritmo se llamaraó sentencia y estas deben ser escritas
en teó rminos de cierto lenguaje comprensible para el ejecutor (maó quina), que es el lenguaje de
programacioó n.
Análisis de Problemas
Al considerar un problema algoríótmico lo primero que debemos hacer es identificarlo, ya que esta
es la primera fase necesaria para iniciar la solucioó n del mismo y a la que denominaremos análisis
del problema; esta incluye su compresioó n y asimilacioó n, asíó como conocer su funcionamiento y
determinar las relaciones que existen entre cada uno de sus elementos, igualmente se estipula el
valor o funcionamiento de cada parte que afecta a las demaó s.
Constantes.- Es un valor que no cambia. Puede representarse en forma simboó lica o literal.
Variables.- Es un síómbolo que tiene asociado un valor que puede cambiar, se representa en
forma simboó lica.
Paraó metros.- Son valores (variables, constantes o expresiones) que se le pasan a una
funcioó n2.
1
Es un conjunto de instrucciones que una vez ejecutadas realizaraó n una o varias tareas en una computadora.
2
Es un grupo de instrucciones con un objetivo en particular.
1
Instituto Tecnológico Superior de Huatusco
Asignatura: Fundamentos de Programación
Lenguaje natural.- Se utiliza como alternativa para dar solucioó n a problemas algoríótmicos. Sin
embargo no refleja el detalle que se requiere a un nivel bajo (del computador); su ventaja
principal es su amplio poder de expresioó n.
Para emplear el lenguaje natural, suele hacerse una reduccioó n significativa del vocabulario y
utilizando solo las palabras maó s necesarias.
Inicio
Leer (a, b, c, d)
Producto <-- (a * b * c * d)
Suma <-- (a + b + c + d)
Media <-- (a + b + c + d) / 4
Escribir (producto, suma, media)
Fin
Reglas:
Las reglas del pseudocoó digo se relacionan con la utilizacioó n de las convenciones de los
lenguajes de programacioó n. Por ejemplo: el coó mo expresar en centíómetros y pulgadas una
cantidad dada en metros. Y en estos casos utilizan la siguiente forma para escribirlo en
pseudocoó digo:
INICIO
// Declara las variables M, C y P
REAL M, C, P
// Solicita el ingreso de la cantidad en metros
LEER M
// Calcula la cantidad en centíómetros y lo asigna a la variable C
C = M*100
// Calcula la cantidad en pulgadas y lo asigna a la variable P
P = C/2.54
// Muestra los valores de las variables C y P
IMPRIMIR C, P
2
Instituto Tecnológico Superior de Huatusco
Asignatura: Fundamentos de Programación
FIN
Diagramación.- Es una herramienta grafica basada en síómbolos cada uno con un significado o
funcioó n especíófica asociada. Los diagramas de flujo de datos pueden ser de diferentes niveles
ya sea como diagramas de flujo de datos o como diagramas de flujo de datos a nivel detallada.
Existen diversas notaciones que pueden emplearse para dibujar los diagramas.
Síómbolo utilizado para expresar conexioó n dentro de una misma paó gina.
3
Instituto Tecnológico Superior de Huatusco
Asignatura: Fundamentos de Programación
Inicio
Fin
2.- Las líóneas utilizadas para indicar la direccioó n del flujo del diagrama deben ser rectas,
verticales y horizontales.
4
Instituto Tecnológico Superior de Huatusco
Asignatura: Fundamentos de Programación
3.- Todas las líóneas utilizadas para indicar la direccioó n del flujo del diagrama deben estar
conectadas. La conexioó n puede ser a un síómbolo que exprese lectura, proceso, decisioó n,
impresioó n, conexioó n o fin de diagrama.
4.- El diagrama de flujo debe ser construido de arriba hacia abajo (top-down) y de izquierda a
derecha (right to left).
5.- La notacioó n utilizada en el diagrama de flujo debe ser independiente del lenguaje de
programacioó n. La solucioó n presentada en el diagrama puede escribirse posteriormente y
faó cilmente en diferentes lenguajes de programacioó n.
6.- Es conveniente cuando realizamos una tarea compleja poner comentarios que expresen o
ayuden a entender lo que hicimos.
7.- Si el diagrama de flujo requiriera maó s de una hoja para su construccioó n, debemos utilizar los
conectores adecuados y enumerar las paó ginas convenientemente.
No valido Valido
No valido Valido
Los algoritmos no se implementan soó lo como programas, algunas veces en una red neuronal
bioloó gica (por ejemplo, el cerebro humano implementa la aritmeó tica), tambieó n en circuitos
eleó ctricos, en instalaciones industriales o maquinaria pesada. Se puede decir en pocas palabras
que nuestra vida es un ejemplo de algoritmo, pues al desarrollar diversas actividades diarias
desarrollamos una serie de pasos ordenados, asíó podremos quedar satisfechos con los resultados.
El ingreso de la notacioó n algebraica en el desarrollo de algoritmos logroó un gran avance para los
programadores ya que fue una forma maó s tangible de desarrollar sus programas, por medio de la
loó gica.
Un algoritmo puede adoptar una de las estructuras siguientes o combinaciones de ellas: lineal o
secuencial, alternativa o selectiva y repetitiva o cíóclica.
Un algoritmo secuencial es aquel en el que se necesita que un paso anterior haya concluido
para continuar con otro. De esta forma, en este tipo de algoritmos se requiere de datos de la
etapa anterior, como una cadena o secuencia de informacioó n. Un ejemplo de esta estructura es
el algoritmo para calcular la densidad de un cuerpo a partir de los datos de masa y volumen,
mostrada a continuacioó n a traveó s de un diagrama de flujo:
6
Instituto Tecnológico Superior de Huatusco
Asignatura: Fundamentos de Programación
Un algoritmo selectivo es aquel en el que se establecen condiciones para poder realizar una
accioó n especíófica, en los lenguajes de programacioó n se implementan las sentencias if o select
case para llevar a cabo este tipo de algoritmos.
7
Instituto Tecnológico Superior de Huatusco
Asignatura: Fundamentos de Programación
A los segmentos de coó digo que implementan el comportamiento de los objetos se les denomina
de diferentes maneras, dependiendo del lenguaje de programacioó n que se utilice para hacer la
implementacioó n. Por ejemplo, en C++ se les conoce como funciones miembro, en Java y C# como
meó todos.
La ejecucioó n de los meó todos se basa en el disenñ o algoríótmico, y en este caso no se trata de
algoritmos que resuelven completamente un problema dado, sino de algoritmos que realizan una
tarea especíófica, la cual representa el comportamiento que manifestaraó el objeto, cuando reciba el
mensaje correspondiente.
El disenñ o algoríótmico de cualquier funcioó n implica como se hace o realiza la tarea (problema)
solicitado a resolver. La resolucioó n de un problema complejo, se divide en varios sub- problemas y
seguidamente se vuelven a dividir los sub-problemas en otros maó s sencillos, hasta que puedan
implementarse en la computadora.
Esta caracteríóstica define lo que se entiende como disenñ o descendente o disenñ o modular.
Cada problema se resuelve mediante un moó dulo (subprograma) y tiene un solo punto de entrada
y un solo punto de salida.
Un programa bien disenñ ado consta de un programa principal (moó dulo de nivel maó s alto) que
llama a subprogramas (moó dulos de nivel maó s bajo), que a su vez pueden llamar otros sub-
programas.
Los programas que se estructuran de esta forma, se dicen que tienen disenñ o modular y el meó todo
de romper el programa en modos pequenñ os se llama programacioó n modular.