Unidad II Algoritmos

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 8

Instituto Tecnológico Superior de Huatusco

Asignatura: Fundamentos de Programación

UNIDAD II ALGORITMOS

COMPETENCIA ESPECIFICA A DESARROLLAR: Analizar problemas y representar su solucioó n


mediante 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.

El conjunto formado por la representacioó n de datos utilizada y el algoritmo en síó, se conoce


usualmente con el nombre de programa1.

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.

Durante la etapa de anaó lisis se identifican algunos elementos de programacioó n como:

 Abstracciones.- Es una representacioó n mental de un entre (cosa).

 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.

La 2da. Fase para resolver un problema algoríótmico corresponde al disenñ o de la solucioó n en la


cual se plantea la forma de coó mo llegar a la solucioó n. La forma de coó mo se expresa la solucioó n
algoríótmica puede ser variada dependiendo de la herramienta empleada para ello.

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

Representación de algoritmos: gráfica y pseudocódigo.

Existen varias formas de representar a los algoritmos de las cuales encontramos:

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.

Pseudocódigo.- Es una herramienta basada en el lenguaje natural que aporta mayor


estructuracioó n a las soluciones planteadas; representa una equivalencia de un lenguaje de
programacioó n y utiliza estructuras de un control similares. Un ejemplo seria: Disenñ ar un
algoritmo que lea cuatro variables y calcule e imprima su producto, suma y media aritmeó tica.

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ímbolos utilizados en los Diagramas de Flujo

Representación Explicación del Símbolo


del Símbolo

Síómbolo utilizado para marcar el inicio y el fin del diagrama de flujo.

Síómbolo utilizado para introducir los datos de entrada. Expresa lectura.

Síómbolo utilizado para representar un proceso. En su interior se expresan


asignaciones, operaciones aritmeó ticas, cambios de valor de celdas en
memoria, etc.

No Síómbolo utilizado para representar una decisioó n. En su interior se


almacena una condicioó n, y dependiendo del resultado de la evaluacioó n de
Si la misma se sigue algunas de las ramas alternativas.

No Si Síómbolo utilizado para representar la estructura selectiva doble si


entonces/sino. En su interior se almacena una condicioó n. Si el resultado es
verdadero se continuó a por la izquierda sino por el camino de la derecha.

Síómbolo utilizado para representar una decisioó n muó ltiple. En su interior


se almacena un selector, y dependiendo del valor de dicho selector se
sigue por una de las ramas o caminos alternativos.

Síómbolo utilizado para representar la impresioó n de un resultado. Expresa


escritura.

Síómbolos utilizados para expresar la direccioó n del flujo del diagrama.

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

Símbolos utilizados en los Diagramas de Flujo

Representación Explicación del Símbolo


del Símbolo

Síómbolo utilizado para expresar conexioó n entre paó ginas diferentes.

Síómbolo utilizado para expresar un moó dulo de un problema. En realidad


expresa que para continuar con el flujo normal del diagrama debemos
primero resolver el subproblema que enuncia en su interior.

Debemos tomar en cuenta un conjunto de reglas que permiten la construccioó n de diagramas de


flujo.

1.- Todo diagrama de flujo debe tener un inicio y un fin.

Inicio

Fin

2.- Las líóneas utilizadas para indicar la direccioó n del flujo del diagrama deben ser rectas,
verticales y horizontales.

No deben ser inclinadas

Tampoco debemos cruzarlas

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.

8.- No puede llegar maó s de una líónea a un síómbolo.

No valido Valido

No valido Valido

Diseño de algoritmos aplicados a problemas.


5
Instituto Tecnológico Superior de Huatusco
Asignatura: Fundamentos de Programación

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.

 Un algoritmo repetitivo o cíclico es aquel en el que el programador establece un rango de


repeticioó n para una accioó n dada, o en el que se determina que una accioó n se repita de forma
cíóclica mientras se cumpla alguna condicioó n. En los lenguajes de programacioó n se usan las
sentencias while y for para llevar a cabo este tipo de algoritmos.

7
Instituto Tecnológico Superior de Huatusco
Asignatura: Fundamentos de Programación

Diseño algorítmico de funciones.

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.

También podría gustarte