2-Metodo Algoritmico PDF
2-Metodo Algoritmico PDF
2-Metodo Algoritmico PDF
Es preciso servirse de todas las ayudas del entendimiento, de la imaginacin, de los sentidos y de la memoria, bien sea
para tener una intuicin distinta de las proposiciones simples, bien sea para establecer entre las cosas que uno busca y las
que uno sabe una vinculacin adecuada que permita reconocerlas, bien sea para encontrar las cosas que deben ser
comparadas entre s, sin descuidar ningn recurso del ingenio o industria humanos.
2.1 Concepto de Variable este inconveniente, las calculadoras poseen una memoria
donde se pueden almacenar estos resultados parciales
Imagine una calculadora que slo es capaz de realizar las para disponer de ellos cuando sean necesarios y as poder
cuatro operaciones aritmticas, nada ms. Cuando se calcular frmulas ms complejas sin hacer uso de otro
utiliza una calculadora como sta para calcular una instrumento adicional. Por supuesto, en la medida que las
expresin como 256-24+169, no hay problema alguno en calculadoras proveen un nmero cada vez mayor de
llevar a cabo este clculo, pero si se pretende calcular una operaciones, tambin lo hacen en una mayor cantidad de
1 59 4 memorias; ahora bien, si se considera un computador
expresin como la siguiente: + + , entonces se
3 14 3 como una calculadora muy compleja, es razonable
hace necesario utilizar adicionalmente papel y lpiz para suponer entonces que ste tendr un nmero elevado de
almacenar temporalmente los resultados parciales ya que, estas memorias. En un contexto de programacin, estas
1 memorias reciben el nombre de variables, y son los
por ejemplo, el resultado de la operacin se pierde en elementos fundamentales de operacin de un programa
3
el momento de calcular la operacin 5-9. Para solucionar
Pag. 2-2 Cap.2: El Mtodo Algortmico
ya que ellas albergan los datos para los cuales el produce un resultado o, lo que es lo mismo, resuelve un
programa est elaborado. problema. Segn esta definicin se puede afirmar que
En computacin, el concepto de variable es similar al cosas como las recetas de cocina, los manuales de
mismo concepto en lgebra: un nombre que representa un operaciones, las normas de clculo y las instrucciones
valor que puede cambiar en el tiempo. En computacin, para manejo de aparatos son procedimientos. Pues bien,
sin embargo, el concepto va ms all para incluir un algoritmo es un procedimiento que rene las
entonces la idea expresada en el prrafo anterior acerca siguientes caractersticas:
de una localidad de memoria que se utiliza para el debe ser definido: es decir, sin importar el nmero de
almacenamiento temporal de valores. Sabiendo esto, se veces que se aplique en las mismas condiciones,
puede definir una variable como una localidad especfica siempre se obtendr el mismo resultado;
de la memoria del computador, identificada con un debe ser preciso: es decir, no deber sembrar duda
nombre y que almacena un dato. alguna sobre el orden de ejecucin de cada uno de
Una vez que se hayan diseado algunos programas, se los pasos y sobre la naturaleza y el propsito de cada
podr observar claramente que stos operan sobre un uno de ellos;
grupo de datos para producir un grupo de resultados y
debe ser finito: es decir, el algoritmo deber producir
que todos ellos estarn ubicados en variables, incluso se
un resultado en un nmero finito de pasos.
podr afirmar que programar no es otra cosa que
manipular variables. Si la afirmacin anterior es cierta, Y por qu estas caractersticas? Pues precisamente
entonces es razonable concluir que el desarrollo de un porque los pasos de un algoritmo deben ser susceptibles
programa debe comenzar con la representacin de los de ser traducidos a un lenguaje creado para hacer trabajar
elementos del problema como variables. Esta idea, as un computador y ste, dada su naturaleza lgico-
como otras relativas a los distintos tipos de datos a electrnica, no acepta ambigedades en ninguna de las
manipular, sern desarrolladas en los prximos captulos. instrucciones que se le dan ni en su orden.
A PROPSITO Existen excepciones aparentes a estas
reglas: una de ellas ocurre cuando un
2.2 Resolucin de problemas. algoritmo lleva a cabo operaciones que involucran nmeros
aleatorios. Otra ocurre cuando es imposible en trminos prcticos
Debido a que un estudiante ha resuelto una gran cantidad obtener una solucin exacta a un problema a partir de un
de problemas, sera razonable plantearle las siguientes algoritmo, obligando al programador a utilizar soluciones
preguntas: Cmo los resolvi? Utiliz algn mtodo aproximadas.
general para resolverlos? El mtodo utilizado presenta
esquemas que siempre estn en su mente cuando resuelve 2.4 Mtodo Algortmico.
los problemas? Utiliz el mismo mtodo para resolver
problemas de distintas asignaturas o de distinta El mtodo algortmico est concebido para resolver no
naturaleza? Probablemente haya utilizado un mtodo slo un problema particular sino para proporcionar un
cuyo nombre no conoce o probablemente haya utilizado instrumento que permita resolver variaciones del
elementos de varios mtodos para resolver un solo problema original, del mismo modo que una frmula no
problema. En el presente captulo se presenta el Mtodo slo devuelve un valor para un grupo de variables sino
Algortmico cuyo nombre responde al hecho de que tambin para todos los valores que puedan tomar esas
precisamente est enfocado en producir un Algoritmo. variables. Este mtodo consiste en la aplicacin de los
Por ello, para entender el mtodo hay que entender qu es siguientes pasos:
un algoritmo.
Anlisis del problema.
Diseo del algoritmo.
2.3 Algoritmos. Codificacin.
Es bueno aclarar primero que un algoritmo es importante 2.4.1 Anlisis del problema.
en el estudio de la programacin porque, si bien el
mtodo algortmico produce algoritmos, el presente curso Este paso consiste en identificar muy claramente los
pretende, entre otras cosas, que el estudiante produzca elementos que componen el problema, es decir:
programas de computacin. Y un programa de Las incgnitas, porque son precisamente, el
computacin no es otra cosa que la expresin en lenguaje propsito del problema. En ocasiones no son
de programacin de un algoritmo, por lo que el proceso fcilmente identificables; en estos casos, no se debe
de resolucin de problemas con el computador comienza seguir adelante hasta haber resuelto con toda claridad
con el desarrollo de algoritmos. este paso.
Tambin es bueno definir primero lo que es un Los datos, porque son los elementos que se deben
procedimiento o una receta: un conjunto de instrucciones manipular para hallar respuesta a las incgnitas.
o de tareas que ejecutados siguiendo un orden
preestablecido o establecido por el mismo procedimiento,
puntos. Llmense A y B a las dos Observe ahora la particularidad de algunos pasos como si se
rectas, (x1,y1) y (x2,y2) las cumple que ... entonces... o imprima... o vaya al paso... .
coordenadas de los puntos de la Ms adelante se ver que existen tipos de pasos o
recta A y (x3,y3) y (x4,y4) las instrucciones con caractersticas propias que permiten
coordenadas de los puntos de la
clasificarlos segn la tarea que ejecutan. Tambin cabe
recta B.
INCGNITAS ... Las coordenadas llamadas
destacar en este ejemplo, que el mismo no es lo
(xint,yint) del punto de suficientemente complejo como para que el algoritmo sea
interseccin de las dos rectas subdividido en mdulos, pero ste no ser siempre el caso.
si stas se interceptan o un
mensaje que indique que no se A PROPSITO Recuerde que se pretende que al final, el
interceptan si no lo hacen. problema sea resuelto por un computador.
RESTRICCIONES Dado que el enunciado establece De ah la existencia de instrucciones como lea, imprima, etc.
que las rectas deben ser
inclinadas, entonces los datos
deben cumplir con las siguientes 2.4.3 Codificacin
condiciones: x1<>x2, y1<>y2,
Consiste en escribir el algoritmo desarrollado utilizando
x3<>x4 y y3<>y4. Aunque no se
especifica en el enunciado, es los elementos de un lenguaje de programacin, con la
obviamente necesario verificar finalidad de transformarlo en un programa. Este tema
tambin que las rectas no sean ser cubierto extensamente en los prximos captulos.
paralelas.
FRMULAS ..... Si se denota a la pendiente del Durante el desarrollo del algoritmo, es conveniente
segmento A como PA y a la representarlo mediante alguna herramienta independiente
pendiente del segmento B como del lenguaje de programacin que se planee utilizar; esto
PB, entonces se tiene que: le brinda al programador una serie de ventajas, como son
Abscisa del punto de
interseccin:
las siguientes: primero, el algoritmo puede ser escrito
posteriormente en varios lenguajes de programacin;
y3 y1 + PAx1 PBx3
xint = segundo, el algoritmo puede ser codificado por una
(PA PB)
persona o un equipo diferentes al que lo dise, y tercero,
Ordenada del punto de se desarrolla en el programador el hbito de trabajar
interseccin:
ordenadamente. A continuacin se presentan algunas de
yint = PA(xint-x1)+y1
ellas.
Observe que durante el anlisis no solo se identifican los 2.5 Pseudocdigo.
elementos del problema sino que tambin se les asigna un
nombre a cada uno de ellos, es decir, son representados como Expresar un algoritmo mediante pseudocdigo consiste
variables. Esto es sumamente importante debido a que, como
en expresar cada uno de los pasos con palabras y
se mencion anteriormente, ayuda a la manipulacin de los
mismos. smbolos escritos del lenguaje comn, como se mostr en
el ejemplo anterior, de tal manera que el mismo pueda ser
Segunda parte: Desarrollo del algoritmo. reproducido por cualquier persona que conozca por lo
menos dichas palabras y el significado de los smbolos.
IDEA: Verificar los datos de entrada, calcular
las pendientes y verificarlas y calcular luego
An cuando estos pasos sern luego ejecutados
las coordenadas del punto de interseccin. secuencialmente, se recomienda enumerarlos ya que el
orden de ejecucin de los mismos puede alterarse por
PASO 1 . Designar las coordenadas de los puntos instruccin de alguno de ellos.
extremos de los segmentos como x1, x2,
x3, x4, y1, y2, y3 y y4. Ejemplo 2-2
PASO 2 . Si se cumple que x1=x2 x3=x4 y1=y2 Examnese el siguiente problema: Dado un nmero entero
y3=y4, entonces imprima el mensaje positivo, elaborar un algoritmo para determinar si el nmero
Datos incorrectos y vuelva al paso dado es primo.
1.
PASO 3 . Calcular las pendientes de las rectas
A y B mediante las frmulas PA=(y2- Primera parte: Anlisis del problema.
y1)/(x2-x1) y PB=(y4-y3)/(x4-x3).
PASO 4 . Si se cumple que |PA|=|PB|, entonces DATOS ...........El nmero dado, que se llamar
imprima el mensaje Rectas paralelas N
y vaya al paso 7. INCGNITAS ......Una caracterstica del nmero:
PASO 5 . Calcular las coordenadas del punto de si es primo o no.
interseccin de las rectas mediante RESTRICCIONES ...El nmero N deber cumplir con
las frmulas: la condicin de ser entero ya
xint = (y3-y1+PAx1-PBx3)/(PA-PB) que el concepto de nmero
yint = PA(xint-x1)+y1 primo se aplica slo a los
PASO 6 . Imprima xint y yint. nmeros enteros.
PASO 7 . Fin. FRMULAS ........El concepto de nmero primo es
un concepto relativo a
divisibilidad de nmeros. Un
smbolos especficos para manejo de accesorios o para Todo smbolo tiene al menos una flecha de llegada y
operaciones que estn implementadas slo en algunos al menos una flecha de salida, con excepcin de los
lenguajes de programacin e incluso en algunos sistemas bloques terminales y los conectores de flujo.
operativos. Estas normas no slo especifican la El flujo de ejecucin de instrucciones ser
simbologa sino tambin la gramtica de los diagramas de preferiblemente de arriba abajo y de izquierda a
flujo, la cual tambin sufre de variaciones menores segn derecha.
el lugar donde se apliquen, pero cuyo resumen, que se
muestra a continuacin, ha sido aceptado por la mayora Slo habr un smbolo de inicio y un smbolo de fin
de los organismos y las empresas involucradas en el uso de programa, pudiendo haber varios de parada del
de estos: programa.
El flujo de ejecucin de instrucciones estar Slo los bloques de seleccin podrn tener varias
indicado nicamente por flechas y conectores de flechas de salida.
flujo.
Ejemplo 2-4
Observe a continuacin el diagrama de flujo correspondiente al problema del ejemplo 2.2, el cual muestra adems, las instrucciones
correspondientes a los pasos desarrollados en el mencionado ejemplo.
INICIO
no N>0 y N
entero? PASO 2: Si el nmero N no es entero o es negativo,
repetir el paso 1.
si
N es divisible si
entre B? PASO 4: Compruebe si N es divisible entre B. Si lo es,
entonces imprima el mensaje NO es primo y
no vaya al paso 8.
B B +1 Imprimir "No
es primo"
PASO 5: Incremente el valor de B en uno.
si
B < N? PASO 6: Si B es menor que N, vaya al paso 4.
no
Imprimir "Si
PASO 7: Imprima el mensaje SI es primo.
es primo"
De nuevo, este resumen es suficiente para un curso captulos. An cuando existen varias formas de
bsico de programacin. Observe que tanto los smbolos representacin de algoritmos, el diagrama de flujo se ha
como las normas son pocas y sencillas, razn que hace a destacado como una herramienta conveniente para
los diagramas de flujo una herramienta sumamente fcil facilitar el proceso de transformacin de ideas en
de aprender y de gran ayuda para comprender los instrucciones debido a la facilidad con que el cerebro
conceptos de programacin que se vern en los prximos manipula objetos grficos en lugar de palabras.
Igualmente se ha destacado como un mtodo importante ubican errores en un algoritmo mediante la corrida en
para documentar procesos y para transmitir instrucciones fro?
entre programadores debido a su independencia de los 16. Qu es un diagrama de flujo? De qu est formado?
lenguajes de programacin. Describa brevemente cmo se construye un diagrama
En los prximos captulos se expondrn los elementos de de flujo.
construccin de programas y se utilizar el diagrama de 17. Por qu hay smbolos distintos en un diagrama de
flujo como herramienta til en el inicio del proceso de flujo? Describa brevemente el significado de cada
desarrollo de habilidades para construir algoritmos y para smbolo.
sembrar en la mente del estudiante los procesos bsicos 18. De qu maneras se representa el flujo de ejecucin
de programacin. de instrucciones en un diagrama de flujo?
Preguntas de repaso 19. Cree usted que una corrida en fro tambin sirve para
comprobar un diagrama de flujo?
1. Qu es, en programacin, una variable? Tiene sta 20. Cules son las cualidades que hacen til a un
el mismo significado que en lgebra? diagrama de flujo?
2. Cree usted que un programa puede procesar un valor Problemas propuestos
que no est almacenado en una variable?
3. Qu es un procedimiento? Qu es una receta? Qu 1. Escribir procedimientos o algoritmos para llevar a
es un algoritmo? Puede considerarse el conjunto de cabo las siguientes tareas. Diga en cada caso si se
los algoritmos como un subconjunto de los trata de un algoritmo o de un procedimiento:
procedimientos?
Sacar la cdula de identidad
4. Cules son las caractersticas de un algoritmo? Cree
usted que un algoritmo sea slo para construir Organizar una fiesta de cumpleaos
programas de computacin? Pintar su casa o apartamento
5. Cuntos y cules son los pasos del Mtodo Construir una casa
Algortmico? Describa brevemente cada uno de ellos. Calcular el punto medio de un segmento de recta
6. Puede afirmarse que el anlisis de un problema se conociendo las coordenadas de los extremos.
reduce a un proceso de identificacin de elementos? Graficar una funcin
Por qu?
Preparar una pizza
7. En qu consiste el diseo de un algoritmo? En
cuntas etapas se lleva a cabo? Una vez diseado, Reparar la grifera de un lavamanos
qu paso sigue? Redactar una carta de presentacin comercial.
8. Cmo cree usted que influye el entrenamiento del Redactar el Curriculum Vitae.
programador en su habilidad para disear algoritmos?
Cambiar un caucho.
9. Qu es brainstorming? Qu son los mapas
mentales? Qu otras tcnicas de ayuda para Elaborar un informe de inventario.
resolucin de problemas conoce usted? Cree usted Jugar a la vieja.
que todas estas tcnicas son individuales o de grupo? Jugar al billar.
10. Qu son las estructuras de datos? Cmo influyen en Jugar ajedrez.
el diseo de un algoritmo?
Jugar Pker.
11. En qu consiste el proceso de descomposiciones
sucesivas? Es siempre necesario aplicarlo al diseo 2. Dado un tringulo por las coordenadas de sus
de un algoritmo? vrtices, cmo se averigua si en su interior existen
12. Cree usted que, una vez codificado un algoritmo, ha puntos con coordenadas enteras?
terminado el proceso de resolucin de un problema? 3. Dados dos puntos en el plano por sus coordenadas
Explique. (x1, y1) y (x2, y2), cmo se escribe la ecuacin de la
13. Qu es pseudocdigo? Por qu es til recta que pasa por ellos, cul es la longitud del
representando algoritmos? segmento que determinan y cules son las
coordenadas del punto medio de dicho segmento.
14. Es obligatoria la numeracin de los pasos en un
pseudocdigo? Si no, cmo se garantiza la ejecucin 4. Escriba un algoritmo para calcular el monto a pagar a
secuencial de los pasos? un trabajador en una semana si se conocen los
siguientes datos:
15. Qu es corrida en fro? Por qu se dice que sta es
una comprobacin manual? Cmo cree usted que se las horas normales de trabajo se pagan a 2000 Bs
la hora
las horas de sobretiempo de lunes a viernes se sbito los dos pjaros descubren un pez que aparece
pagan a 3500 Bs/h en la superficie del agua, entre las palmeras. Los
las horas trabajadas en fin de semana se pagan a pjaros se lanzan y alcanzan el pez al mismo tiempo.
5000 Bs/h Escriba un algoritmo para averiguar a qu distancia
de la palmera mayor apareci el pez.
5. Escriba un algoritmo para calcular la nota de un
estudiante de programacin, conociendo las notas y 15. En una plaza hay instalados 5 altavoces distribuidos
los pesos de los exmenes parciales, los qices y los en dos grupos: uno de ellos consta de dos aparatos y
trabajos prcticos, segn las normas del el otro, de tres. La distancia que separa los dos grupos
Departamento. es de X m. Dnde habr que colocarse para que el
sonido de ambos grupos se oiga con igual intensidad?
6. El Domingo de Pascua es el primer domingo despus
de la primera luna llena posterior al equinoccio de 16. Dados tres puntos no colineales en el plano y por sus
primavera. Cree usted que esta regla es coordenadas x y y, encontrar las coordenadas del
suficientemente precisa para clasificarla como un punto que hace que los cuatro formen el cuadriltero
algoritmo? menos agudo.
7. Desarrolle un algoritmo que, dados tres nmeros 17. Dados tres puntos no colineales en el plano y un
enteros que indiquen mes, da y ao de una fecha nmero real n, encontrar la cantidad mxima de
dada, determine el da de la semana y el da del mes a crculos de radio n que caben en el tringulo formado
que corresponde esa fecha. por los puntos dados.
8. Desarrolle un algoritmo que, dados los componentes 18. Dado un polgono de n lados, encontrar las reas de
de un vector de N dimensiones, encuentre aquel de los cuadrados ms grande y ms pequeo que
mayor valor absoluto. envuelven al polgono.
9. Ample el algoritmo anterior para que ordene de 19. Dados tres puntos en el espacio por las coordenadas
mayor a menor los componentes del vector. de sus vrtices, encontrar el vector normal a la cara
que forman los vrtices.
10. Escriba un algoritmo para determinar qu es ms
conveniente para el comprador de un automvil: 20. Para graficar una funcin en la pantalla de un
4000$ de inicial y 6000$ luego de transcurridos 6 computador, se deben convertir las coordenadas
meses o 6000$ de inicial y 4000$ luego de reales de los puntos de la grfica en coordenadas de la
transcurrido un ao. Suponga un inters simple de 6% pantalla. Para ello se deben conocer los valores
anual. mximo y mnimo de las abscisas y de las ordenadas
de la funcin, as como los valores mximo y mnimo
11. Escriba un algoritmo para convertir un nmero de las coordenadas de los puntos de la pantalla. Una
representado en una base cualquiera a otra base vez conocidos estos datos, se puede llevar a cabo un
cualquiera convirtiendo de una base a base diez y de "mapeo" de los puntos reales de tal modo que el
esta a la otra base. Desarrolle primero el algoritmo punto con la menor abscisa quede representada en el
para nmeros enteros y luego para nmeros reales. punto con la menor coordenada de pantalla,
12. Desarrolle un algoritmo para hallar la representacin igualmente se aplica al punto con mayor abscisa y a
binaria de un nmero real cualquiera, almacenado los puntos con mayor y menor ordenada. Escriba un
como un nmero de tipo Single de la Norma IEEE algoritmo para implementar este mapeo con el fin de
754. representar en pantalla una funcin matemtica.
13. Dado un sistema triangular de ecuaciones lineales de 21. Escriba un algoritmo para averiguar los movimientos
orden N, desarrolle un algoritmo para resolverlo. Un que debe hacer un caballo de ajedrez para recorrer
sistema triangular de ecuaciones es aquel en el que todo un tablero del mismo juego, comenzando en
los coeficientes ubicados por debajo de la diagonal cualquier posicin y sin repetir su ubicacin en
principal, son nulos. Como ejemplo, observe el alguna casilla.
siguiente sistema de orden 4: 22. Un tringulo equiltero de lado L se divide mediante
la eliminacin de una porcin de su rea igual a tres
a1,1x1 + a1,2x2 + a1,3x3 + a1,4x4 = b1 tringulos equilteros, como se muestra en la
a2,2x2 + a2,3x3 + a2,4x4 = b2 siguiente figura, proceso que puede repetirse
a3,3x3 + a3,4x4 = b3 indefinidamente.
a4,4x4 = b4 Escriba un algoritmo
para determinar el rea
14. A ambas orillas de un ro crecen dos palmeras, una sombreada luego de N
frente a la otra. La altura de una es de X m, y la de la divisiones y estime el
otra, de Y m. La distancia entre sus troncos es de D rea cuando N tienda a
m. En la copa de cada palmera hay un pjaro. De infinito.