20
Unidad 4. Definición de conceptos de programación 4.1. Programación estructurada 4.2. Definición de lenguaje de programación, compilador, compilación y ejecución de un programa 4.3. Descripción de los diferentes paradigmas de programación 4.4. Definición de algoritmo 4.5. Técnicas para elaborar un algoritmo 4.6. Análisis de complejidad de un algoritmo 4.7. Análisis de algoritmos clásicos (por ejemplo, el de Euclides)

Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

Embed Size (px)

Citation preview

Page 1: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

Unidad 4. Definición de conceptos de programación

4.1. Programación estructurada

4.2. Definición de lenguaje de programación, compilador, compilación y

ejecución de un programa

4.3. Descripción de los diferentes paradigmas de programación

4.4. Definición de algoritmo

4.5. Técnicas para elaborar un algoritmo

4.6. Análisis de complejidad de un algoritmo

4.7. Análisis de algoritmos clásicos (por ejemplo, el de Euclides)

Page 2: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

Objetivos particulares de la unidad

Al culminar el aprendizaje de la unidad, lograrás hacer uso de las técnicas de

programación y algoritmos aplicados a programas de computadoras.

Page 3: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

Introducción

La solución de problemas a través de la computadora se realiza a través

de programas, un programa es una serie de instrucciones especificas que

solucionan un problema en particular. Por ejemplo: el calculo de la nomina,

la facturación, la administración de un negocio, etcétera.

Pero un paso anterior al desarrollo del programa es el desarrollo de un

algoritmo, que es una serie de pasos detallados y lógicos para solucionar

un problema. Primero se realiza un algoritmo y después se traslada a un

lenguaje de programación, para realizar el programa.

Los algoritmos y la programación han estado íntimamente ligados desde la

aparición de la computadora, Los algoritmos son utilizados hoy en día,

para la solución de problemas que pueden ser resueltos a través de un

computador.

Un buen algoritmo es capaz de implantarse en cualquier equipo de

computo, es independiente de “plataforma”, esto quiere decir, que no

importa que sistema operativo se este utilizando, que tipo de hardware se

utilice, puede ser una computadora portátil, hasta una supercomputadora,

y tampoco importa mucho el lenguaje de programación, pues debe poder

ser implantado en estos diferentes entornos.

Page 4: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

Ahora bien, un lenguaje de programación es un conjunto de símbolos e

instrucciones que le permiten a un ser humano comunicarse con la

computadora e indicarle que pasos debe seguir para resolver un problema,

existen diversos tipos de lenguajes de programación, pero en general

permiten realizar cálculos de texto, manipulación de cadenas de

caracteres y textos, realización de gráficos, almacenamiento y

recuperación de archivos.

Como ya lo viste a través de la revisión de las lecturas recomendadas, los

leguajes de programación que se verán en este curso, no son de mucha

complejidad, ya que el objetivo de la licenciatura en administración, no es

que un administrador sea un programador, pero si que tenga los

conocimientos suficientes, para entender que es un algoritmo, que es un

programa, y tener los conocimientos básicos en informática, que le

permitan interactuar con los sistemas de información que utilizan las

empresas, ya que es muy rara la empresa, que no cuenta con tecnologías

de información.

¡Suerte en tu aprendizaje!

Page 5: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

4.1 Programación estructurada Los primitivos propósitos de la programación estructurada dirigían sus esfuerzos a

buscar modos de minimizar la probabilidad de error en el proceso de

programación. El factor humano es una de las fuentes más importantes en la

comisión de errores. Uno de los objetivos de la programación estructurada es la

minimización del error humano.

La programación estructurada consiste en descomponer un problema en su mínima

expresión.

A estas expresiones se les llama bloques, cada uno de estos realizara una parte

del problema. Cuando se tenga cada parte resuelta, se agruparán y con ello el

problema se resuelve. Los resultados que se pueden obtener de la programación

estructura son programación correcta y bien pensada, cuya lógica es fácil de

seguir, tiempos de prueba y corrección corta, programas menos complejos. La

clave en esto es dividir o expresar cualquier problema por medio de tres

estructuras de control fundamentales (un cuadro de procesamiento, un símbolo de

decisión de tipo IF THEN ELSE). Véase figura 1.

(c) Secuencia cíclica

Verdadero

Falso

(a) Secuencia simple

FalsoVerdadero

(b) Secuencia IF/THEN/ELSE

Figura 1. Estructuras de control.

Page 6: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

Las estructuras de control fundamentales de la programación estructurada. Secuencia

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

estructura secuencial se representa de la siguiente forma:

Inicio

Accion1

Accion2

.

.

AccionN

Fin

Selección

Un algoritmo es ejecutado siguiendo la lista de los pasos que lo describen, dichos

pasos están determinados por los valores de ingreso, sobre los cuales se toman

decisiones sobre la serie de pasos a ejecutar.

Estos valores están contenidos en variables, sobre las cuales se evalúa una

condición y el resultado de la evaluación determina los pasos que van a ser

ejecutados.

Las condiciones de las decisiones se evalúan mediante una expresión de Boole,

cuyo resultado puede ser verdadero o falso.

Así entonces, la decisión se representa por una expresión booleana, la cual

describe una relación entre dos variables por medio de los operadores de relación

mayor que >, menor que <, igual que =, diferente de <>, mayor o igual que >= o

menor igual que <=.

Page 7: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

Como ejemplo de lo anterior tenemos el siguiente algoritmo:

Requisitos para licencia de conducir

1. Lee nombre del aspirante

2. Lee edad

3. Lee sabe_conducir

4. Lee ve_bien

5. Si edad<=18, ir al paso 9

6. Si sabe_conducir=”N”, ir al paso 9

7. Si ve_bien=”N”, ir al paso 9

8. Otorgar licencia a nombre del aspirante e ir al paso 10

9. Negar licencia al aspirante.

10. Terminar

Como puede observarse, los pasos del numero 5 al 7 contienen expresiones

booleanas en las que si la evaluación da un resultado cierto, el paso del algoritmo

a ejecutar se salta hasta el paso numero 9, en el que se niega la licencia al

aspirante para luego terminar el algoritmo y en caso de dar un resultado falso se

ejecuta el paso siguiente al que se está ejecutando. En el paso numero 8 se

otorga la licencia solo en el caso de que el aspirante tenga 18 años o más, que

sepa conducir y que tenga buena vista, para luego ejecutar el paso numero 10 en

la que se da por terminado el algoritmo.

La decisión en la programación es conocida como la estructura SI-CIERTO-

FALSO en la que se realiza en la evaluación de una condición o predicado para

obtener un resultado, el cual plantea la elección de dos alternativas Verdadero o

Falso.

Iteración Las iteraciones se definen como la ejecución repetida de un conjunto de

instrucciones mientras que se cumple una determinada condición.

Las estructuras que cumplen con esta definición son: WHILE y REPEAT-UNTIL,

las cuales se tratarán a continuación:

Page 8: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

a) WHILE La sintaxis de WHILE es la siguiente:

WHILE condición DO

Instrucciones

En esta estructura primero se evalúa la condición y si el resultado es verdadero,

entonces se ejecutan las instrucciones y se vuelve a evaluar la condición, si ésta

resulta falsa, se sale del ciclo, en caso contrario, comenzara de nuevo el

procedimiento.

Es posible que las instrucciones no se lleguen a ejecutar, si es que la condición

resulta falsa en la primera evaluación de la condición.

Una vez que se sale del ciclo, se ejecutaran las instrucciones que siguen a la

estructura WHILE.

b) REPEAT-UNTIL En REPEAT-UNTIL, el ciclo se ejecuta mientras la evaluación de la condición

resulte falsa, si el condición es verdadera, se sale del ciclo y continuara la

ejecución con la siguiente proposición del programa.

Las diferencias con WHILE es que REPEAT-UNTIL opera mientras su condición

sea falsa, mientras que en WHILE la condición debe de ser verdadera para la

ejecución de sus instrucciones; REPEAT debe ejecutar las instrucciones de su

estructura al menos una vez y WHILE puede ser que no ejecute las instrucciones

ni una sola vez, debido a que WHILE realiza al principio la prueba de evaluación

de la condición y en REPEAT ésta prueba se encuentra al final de su serie de

instrucciones, además REPEAT-UNTIL no necesita encerrar sus instrucciones

dentro de un BEGIN y END (como WHILE) ya que la prueba de condición delimita

el final de la estructura.

Page 9: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

4.2 Definición de lenguaje de programación, compilador, compilación y ejecución de un programa

Programar significa enviar instrucciones a la computadora, y para que exista

comunicación entre la máquina y el programa se utilizan lenguajes definidos.

El único lenguaje que una máquina entiende es el de máquina, sin embargo, éste

resulta algo complicado. Ante esta situación, se desarrollaron otros lenguajes más

fáciles de manejarse como el ensamblador y otros de más alto nivel. Los lenguajes

actuales permiten realizar tareas muy complejas y con el menor número de

instrucciones.

Un lenguaje de programación es un conjunto de símbolos e instrucciones que le

permiten a un ser humano comunicarse con la computadora e indicarle que pasos debe seguir para resolver un problema

Existen diversos tipos de lenguajes de programación, pero en general permiten

realizar cálculos de texto, manipulación de cadenas de caracteres y textos,

realización de gráficos, almacenamiento y recuperación de archivos.

Un compilador es un programa que traduce un texto escrito en un lenguaje de

programación “código fuente” en un lenguaje que la computadora puede entender “lenguaje maquina”. Además el compilador verifica la sintaxis del programa, en caso de errores, los muestra al programador, si el programa ya no tiene errores, entonces el compilador genera un código objeto, que la computadora ya puede.

Page 10: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

El siguiente paso es incluir en el programa todas las “bibliotecas” o programas

adicionales que necesita, para poder funcionar sin necesidad de un compilador,

técnicamente se llama “enlazar”, en este ultimo paso se obtiene un programa

“ejecutable”.

La compilación, es el proceso de traducción de programas fuente a programas

objeto.

El programa objeto obtenido de la compilación no ha sido traducido normalmente a

código máquina sino a ensamblador. Si no se contará con los compiladores,

entonces los programadores tendrían que desarrollar el programa directamente en

lenguaje de máquina, pues las instrucciones en lenguaje de máquina las que

hacen que corra el programa y que la computadora ejecute todas las

instrucciones.

El proceso de ejecución de un programa fuente es una continuidad entre

generación e interpretación. El programa directamente ejecutable binario es el

código producido por la secuencia compilación-ligado-carga interpretada por el

hardware, pero se puede tomar un camino alternativo que consiste en construir un

intérprete en software que ignora la generación de código y emula las acciones del

programa desde una etapa anterior. La ejecución de un programa se da mediante

los siguientes pasos.

Escritura del programa fuente con editor. (programa que permite a una

computadora actuar de modo similar a una máquina de escribir electrónica)

y guardarlo en un dispositivo de almacenamiento.

Introducir el programa fuente en memoria.

Compilar el programa con el compilador.

Verificar y corregir errores de compilación (listado de errores).

Page 11: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

Obtención de programa objeto.

El compilador obtiene el programa ejecutable.

Se ejecuta el programa y si no existen errores, se tendrá la salida del

programa.

4.3. Descripción de los diferentes paradigmas de programación

Paradigma, es el conjunto de reglas y disposiciones (escritas o no) que hacen dos

cosas: establecer o definir límites, e indicar como comportarse dentro de tales límites para tener éxito el cual se mide por la habilidad para “resolver problemas”.

Precisamente porque un paradigma tiene ciertas reglas para poder llegar a un

objetivo, y porque además se mide por la habilidad para resolver problemas, se

tomo para relacionarlo con un término muy utilizado en la computación como son

los algoritmos, los cuáles son de gran ayuda para llegar a la solución de algún

problema y también por ello se llegaron a establecer diferentes paradigmas de

programación. Algunos de los paradigmas básicos son.

Divide y vencerás. Consiste en dividir el problema en partes o instancias

más pequeñas, tanto como se considere conveniente, de acuerdo a la una

de las partes por separado, cuando se tengan las soluciones, se combinan

para obtener la solución del problema original completo.

Recursión. Un subprograma puede llamar a otro subprograma y este a otro

y así sucesivamente. Es decir, los algoritmos pueden operar sobre una

copia de sí mismos, pueden hablar de sí mismos y computar propiedades

de sí mismos. Existen programas que pueden operar de la misma forma

sobre su propio texto y también pueden imprimir una copia de su propio

texto.

Programación dinámica. Resuelve problemas mediante la combinación de

las soluciones a subproblemas que no son independientes.

Page 12: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

4.4. Definición de algoritmo

Metodo paso a paso para solucionar un problema que termina en un número

finito de pasos.

Cada paso en un algoritmo se expresa a través de una instrucción en el programa.

Es en parte similar a los términos procedimiento, método, técnica, proceso, rutina,

etc. Además de ser un conjunto finito de reglas que dan lugar a una secuencia de

operaciones para resolver un tipo de especifico de problema, un algoritmo debe

cumplir cinco importantes condiciones.

Finitud. un algoritmo tiene que acabar siempre tras un número finito de pasos.

Definibilidad. cada paso de un algoritmo debe definirse de modo preciso, las

acciones a realizar han de estar especificadas para cada caso rigurosamente.

Conjunto de entradas. debe existir un conjunto especificado de objetos, cada

uno de los cuales constituyen los datos iniciales de un caso particular del

problema que resuelve el algoritmo. A este conjunto se le llama conjunto de

entradas del algoritmo.

Conjunto de salidas. debe existir un conjunto especificado de objetos, cada uno

de los cuales constituye la salida o respuesta que debe tener el algoritmo para

los diferentes casos particulares del problema.

Efectividad. un algoritmo debe ser efectivo. Esto significa que todas las

operaciones a realizar en el algoritmo deben ser lo bastante básica para poder

ser efectuado de modo exacto en un lapso de tiempo finito por el procesador

que ejecute el algoritmo.

Page 13: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

En conclusión, las características fundamentales que debe cumplir todo algoritmo

son:

Debe ser preciso e indicar el orden de realización de cada paso.

Debe estar definido si se sigue un algoritmo dos veces, se debe obtener el

mismo resultado cada vez.

Debe ser finito si se sigue un algoritmo, se debe terminar en algún momento, o

sea debe tener un número finito de pasos.

4.5. Técnicas para elaborar un algoritmo Lo que pretende un algoritmo es sintetizar de alguna forma una tarea, antes de ser

llevado a la computadora. Las técnicas que normalmente se llevan a cabo para la

elaboración de un algoritmo son:

Tablas de decisión. Es una matriz, la cual esta basada en la construcción de una tabla, en la cual se

pueden establecer

las condiciones que

se pueden dar en el

problema, así como

las acciones que se

deben llevar a cabo

para que esas

condiciones se

puedan cumplir.

Esta tabla suele ser normalmente un documento de comunicación entre los

usuarios tales como analistas, programadores etcétera.

Fuente: James A. Senn, Análisis y diseño de sistemas de información, México, 2ª. Edición, Mc Graw-Hill, pág. 147

Page 14: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

Árboles de decisión. Es un diagrama que se

presenta en forma secuencial,

el cual presenta condiciones y

acciones, es decir muestra por

tiempos o lugares cuáles

condiciones van en primer

lugar, cuáles en segundo y así

sucesivamente. Asimismo nos

permiten conocer la relación

que existe entre cada decisión. Se llaman árboles de decisión debido a que su

presentación se asemeja a las ramas de un árbol.

Fuente: James A. Senn, Análisis y diseño de sistemas de información, México, 2ª. Edición, Mc Graw-Hill, pág. 143.

Diagramas de Flujo.

L os diagramas de flujo son la representación gráfica de los algoritmos.

Elaborarlo implica diseñar un diagrama de bloque que contenga un bosquejo

general del algoritmo y basándose en este proceder a elaborar el diagrama de

flujo con todos los detalles necesarios.

Reglas de elaboración le diagramas de flujo:

1. Debe de diagramarse de arriba hacia abajo y de izquierda a derecha. Es

una buena costumbre en la diagramación que el conjunto de gráficos tenga

un orden.

2. El diagrama sólo tendrá un punto de inicio y uno final. Aunque en el flujo

lógico se tomen varios caminos, siempre debe existir una sola salida.

3. Usar notaciones sencillas dentro de los gráficos y si se requiere notas

adicionales colocarlas en el gráfico de anotaciones a su lado.

Page 15: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

4. Se deben de inicializar todas las variables al principio del diagrama. Esto es

muy recomendable, ya que nos ayuda a recordar todas las variables,

constantes y arreglos que van a ser utilizados en la ejecución del programa.

Además, nunca sabemos cuando otra persona, modifique posteriormente el

diagrama y necesite saber de estos datos.

5. Procurar no cargar demasiado una página con gráficos, si es necesario

utilizar más hojas, emplear conectores. Cuando los algoritmos son muy

grandes, se pueden utilizar varias hojas para su graficación, en donde se

utilizarán conectores de hoja para cada punto en donde se bifurque a otra

hoja.

6. Todos los gráficos deben de estar conectados con flechas de flujo. Jamás

debe de dejarse un gráfico sin que tenga alguna salida, a excepción del

gráfico que marque el final del diagrama.

Terminado el diagrama de flujo, se realiza la prueba de escritorio, que no es otra

cosa, que darle un seguimiento manual al algoritmo, llevando el control de

variables y resultados de impresión en forma tabular.

Ventajas:

1. Programas bien documentados.

2. Cada gráfico se codificará como una instrucción de un programa, realizando

una conversión sencilla y eficaz.

3. Facilita la depuración lógica de errores.

4. Se simplifica su análisis al facilitar la comprensión de las interrelaciones.

Desventajas:

1.-Su elaboración requiere de varias pruebas en borrador.

2.-Los programas muy grandes requieren diagramas laboriosos y complejos.

3.-Falta de normatividad en su elaboración, lo que complica su desarrollo.

Page 16: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

Algunos de los gráficos usados en los diagramas son los siguientes:

Figura 4.2 Símbolos para elaborar un diagrama de flujo

Pseudocódigo.

El Pseudocódigo es la técnica más usada para elaborar algoritmos; pseudo

significa imitación, de modo que pseudocódigo es una imitación de código, al igual

que el diagrama de flujo, éste va describiendo la secuencia lógica de pasos

mediante enunciados que deben comenzar con un verbo que indique la acción a

seguir, seguida de una breve descripción del paso en cuestión.

El caso de usar decisiones se utilizan sentencias como:

si condición (relación boleana)

entonces instrucciones

si no instrucciones

y si es necesario una bifurcación (cambio de flujo a otro punto del algoritmo) se

utilizan etiquetas tales como:

suma 2 y 5

ir a final

(instrucciones)

(instrucciones)

final (etiqueta)

Page 17: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

Por conservar la sencillez, se debe de usar un lenguaje llano y natural. Cada frase

será después que se codifique, una línea de comando del programa.

Las órdenes más usadas son hacer-mientras, hacer-hasta, si-entonces-sino,

repite-mientras, un ejemplo sería:

Algoritmo: Obtener la suma de los números del 1 al 100.

Inicio

asigna a = 0

asigna suma = 0

mientras a <= 100

asigna a = a + 1

asigna suma = suma + a

fin-mientras

imprime “La suma es: “ suma

fin

El siguiente paso es la comprobación y luego la codificación a un programa escrito

en un lenguaje de programación.

Warnier-orr. Estos también se conocen como

construcción lógica de

programas. Muestran los

procesos y la secuencia en que

se realizan. Esta formado por

niveles, cada proceso de un

nivel, se identifica por llaves en

donde se observan sus

componentes. Fuente: James A. Senn, Análisis y diseño de sistemas de información, México, 2ª. Edición, Mc Graw-Hill, pág. 791.

Page 18: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

Nassi-Schneiderman. También llamados diagrama de

flujo estructurados. Son

herramientas que se establecen

en forma gráfica. Su estructura

sirve sobre todo a los

programadores que desarrollan

software de aplicación. Los

diagramas Nassi-Schneiderman

tiene tres elementos básicos:

proceso, decisión e interacción.

simismo, los pasos que se deben seguir para elaborar un algoritmo son.

problema)

ama)

rograma.

.6. Análisis de la complejidad de un algoritmo ente no es único dicho

problema en función del tamaño de la entrada.

Fuente: James A. Senn, Análisis y diseño de sistemas de información, México, 2ª. Edición, Mc Graw-Hill, pág. 785

A

Análisis previo del problema (describir el problema)

Primera visión del método de resolución (Analizar el

Descomposición en módulos (diseñar la lógica general del progr

Programación estructurada (diseñar la lógica detallada del programa)

Búsqueda de soluciones parciales

Ensamblaje de soluciones finales

Codificar, probar y documentar el p

4Si existe un algoritmo para resolver un problema normalm

algoritmo. Debemos preguntarnos una vez obtenido, si nuestro algoritmo es

bueno. Debemos plantearnos la cuestión de cual es más conveniente. Existen

diversos parámetros para comparar algoritmos, uno de ellos es el tiempo o

número de operaciones básicas que requiere el algoritmo para resolver el

Page 19: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

Análisis de algoritmos.

Este tipo de análisis es el primer, paso que debe darse en el estudio de las

de un problema, pero no es único. El programador que

pueden solucionar recurriendo a los algoritmos y hay

tros que no tienen solución algorítmica. Aún así, los que si tienen una solución

(p. Ej. Algoritmo de Euclides, tcétera)

rtado, se hace el análisis del algoritmo de Euclides.

dos enteros. El

pseudocódigo es el siguiente:

)

mientras n<>0 hacer

od m

soluciones algorítmicas

convierte un algoritmo en un programa puede jugar un papel muy importante a la

hora de obtener un buen programa: una vez elegido un algoritmo para resolver un

problema es conveniente dedicar atención al refinamiento del tiempo para tratar de

que las constantes multiplicativas de la función tiempo sean lo más pequeñas

posibles.

Existen problemas que se

o

algorítmica, hay que analizar cuantos recursos de computadora se necesitan para

su ejecución. Sólo los algoritmos que utilizan pocos recursos o recursos factibles

para su ejecución, son útiles en la práctica.

4.7. Análisis de algoritmos clásicose

En este apa

Es un algoritmo para obtener el máximo común divisor de

función Euclid(m,n

residuo = n m

m = n

n = residuo

devolver m

Page 20: Unidad 4. Definición de conceptos de programación · Unidad 4. Definición de ... Análisis de complejidad de un algoritmo 4.7. ... los algoritmos, los cuáles son de gran ayuda

Sean los números enteros m=9 y n=6:

m n residuo

9 6 3

6 3 0

3 0

Cuando n es igual a cero, el máximo común divisor de ambos números es el

contenido de la variable m: 3.