metodo algoritmico

8
  2   Es preciso servirse de todas las ayudas del entendimiento, de la imaginación, de los sentidos y de la memoria, bien sea  para tener una i ntuición distinta de las proposiciones simples, bien sea para establecer entre las cosas que uno busca y las que uno sabe una vinculación adecuada que permita reconocerlas, bien sea para encontrar las cosas que deben ser comparadas entre sí, sin descuidar ningún recurso del ingenio o industria humanos.  René Descartes – Reglas para la dirección de la mente – Regla XII - 1628. 2.1 Concepto de Variable Imagine una calculadora que sólo es capaz de realizar las cuatro operaciones aritméticas, nada más. Cuando se utiliza una calculadora como ésta para calcular una expresión como 256-24+169, no hay problema alguno en llevar a cabo este cálculo, pero si se pretende calcular una expresión como la siguiente: 3 4 14 9 5 3 1 + + , entonces se hace necesario utilizar adicionalmente papel y lápiz para almacenar temporalment e los resultados parciales ya que,  por ejemplo, el resultado de la operación 3 1  se pierde en el momento de calcular la operación 5-9. Para solucionar este inconveniente, las calculadoras poseen una memoria donde se pueden almacenar estos resultados parciales  para disponer de ellos cuando sean necesarios y así poder calcular fórmulas más complejas sin hacer uso de otro instrumento adicional. Por supuesto, en la medida que la s calculadoras proveen un número cada vez mayor de operaciones, también lo hacen en una mayor cantidad de memorias; ahora bien, si se considera un computador como una calculadora muy compleja, es razonable suponer entonces que éste tendrá un número elevado de estas memorias. En un contexto de programación, estas memorias reciben el nombre de variables, y son los elementos fundamentales de operación de un programa

Upload: gabriel-rodriguez

Post on 11-Jul-2015

4.309 views

Category:

Documents


0 download

TRANSCRIPT

5/11/2018 Metodo Algoritmico - slidepdf.com

http://slidepdf.com/reader/full/metodo-algoritmico 1/8

 

2   Es preciso servirse de todas las ayudas del entendimiento, de la imaginación, de los sentidos y de la memoria, bien

 para tener una intuición distinta de las proposiciones simples, bien sea para establecer entre las cosas que uno busca y l

que uno sabe una vinculación adecuada que permita reconocerlas, bien sea para encontrar las cosas que deben s

comparadas entre sí, sin descuidar ningún recurso del ingenio o industria humanos.

 René Descartes – Reglas para la dirección de la mente – Regla XII - 162

2.1  Concepto de Variable

Imagine una calculadora que sólo es capaz de realizar lascuatro operaciones aritméticas, nada más. Cuando seutiliza una calculadora como ésta para calcular unaexpresión como 256-24+169, no hay problema alguno enllevar a cabo este cálculo, pero si se pretende calcular una

expresión como la siguiente:3

4

14

95

3

1+

−+ , entonces se

hace necesario utilizar adicionalmente papel y lápiz paraalmacenar temporalmente los resultados parciales ya que,

por ejemplo, el resultado de la operación3

1 se pierde en

el momento de calcular la operación 5-9. Para solucionar

este inconveniente, las calculadoras poseen una memor

donde se pueden almacenar estos resultados parcial

para disponer de ellos cuando sean necesarios y así podcalcular fórmulas más complejas sin hacer uso de oinstrumento adicional. Por supuesto, en la medida que calculadoras proveen un número cada vez mayor operaciones, también lo hacen en una mayor cantidad memorias; ahora bien, si se considera un computadcomo una calculadora muy compleja, es razonabsuponer entonces que éste tendrá un número elevado estas memorias. En un contexto de programación, esmemorias reciben el nombre de variables, y son lelementos fundamentales de operación de un program

5/11/2018 Metodo Algoritmico - slidepdf.com

http://slidepdf.com/reader/full/metodo-algoritmico 2/8

Pag. 2-2 Cap.2: El Método Algorítmico

Programación con Delphi Ing. José Ricardo Vargas

► A PROP SITO

ya que ellas albergan los datos para los cuales elprograma está elaborado.

En computación, el concepto de variable es similar almismo concepto en álgebra: un nombre que representa unvalor que puede cambiar en el tiempo. En computación,sin embargo, el concepto va más allá para incluir

entonces la idea expresada en el párrafo anterior acercade una localidad de memoria que se utiliza para elalmacenamiento temporal de valores. Sabiendo esto, sepuede definir una variable como una localidad específica

de la memoria del computador, identificada con un

nombre y que almacena un dato.

Una vez que se hayan diseñado algunos programas, sepodrá observar claramente que éstos operan sobre ungrupo de datos para producir un grupo de resultados yque todos ellos estarán ubicados en variables, incluso sepodrá afirmar que programar no es otra cosa quemanipular variables. Si la afirmación anterior es cierta,entonces es razonable concluir que el desarrollo de un

programa debe comenzar con la representación de loselementos del problema como variables. Esta idea, así como otras relativas a los distintos tipos de datos amanipular, serán desarrolladas en los próximos capítulos.

2.2  Resolución de problemas.

Debido a que un estudiante ha resuelto una gran cantidadde problemas, sería razonable plantearle las siguientespreguntas: ¿Cómo los resolvió? ¿Utilizó algún métodogeneral para resolverlos? ¿El método utilizado presentaesquemas que siempre están en su mente cuando resuelvelos problemas? ¿Utilizó el mismo método para resolver

problemas de distintas asignaturas o de distintanaturaleza? Probablemente haya utilizado un métodocuyo nombre no conoce o probablemente haya utilizadoelementos de varios métodos para resolver un soloproblema. En el presente capítulo se presenta el Método

 Algorítmico cuyo nombre responde al hecho de queprecisamente está enfocado en producir un  Algoritmo.Por ello, para entender el método hay que entender qué esun algoritmo.

2.3  Algoritmos .

Es bueno aclarar primero que un algoritmo es importante

en el estudio de la programación porque, si bien elmétodo algorítmico produce algoritmos, el presente cursopretende, entre otras cosas, que el estudiante produzca programas  de computación. Y un programa decomputación no es otra cosa que la expresión en lenguajede programación de un algoritmo, por lo que el procesode resolución de problemas con el computador comienzacon el desarrollo de algoritmos.

También es bueno definir primero lo que es un procedimiento o una receta: un conjunto de instruccioneso de tareas que ejecutados siguiendo un ordenpreestablecido o establecido por el mismo procedimiento,

produce un resultado o, lo que es lo mismo, resuelve unproblema. Según esta definición se puede afirmar quecosas como las recetas de cocina, los manuales deoperaciones, las normas de cálculo y las instruccionespara manejo de aparatos son procedimientos. Pues bien,un algoritmo es un procedimiento que reúne las

siguientes características:−  debe ser definido: es decir, sin importar el número de

veces que se aplique en las mismas condiciones,siempre se obtendrá el mismo resultado;

−  debe ser  preciso: es decir, no deberá sembrar dudaalguna sobre el orden de ejecución de cada uno delos pasos y sobre la naturaleza y el propósito de cadauno de ellos;

−  debe ser finito: es decir, el algoritmo deberá producirun resultado en un número finito de pasos.

¿Y por qué estas características? Pues precisamenteporque los pasos de un algoritmo deben ser susceptibles

de ser traducidos a un lenguaje creado para hacer trabajarun computador y éste, dada su naturaleza lógico-electrónica, no acepta ambigüedades en ninguna de lasinstrucciones que se le dan ni en su orden.

Existen excepciones aparentes a estasreglas: una de ellas ocurre cuando un

algoritmo lleva a cabo operaciones que involucran númerosaleatorios. Otra ocurre cuando es imposible en términos prácticosobtener una solución exacta a un problema a partir de unalgoritmo, obligando al programador a utilizar solucionesaproximadas.

2.4  Método Algorítmico.

El método algorítmico está concebido para resolver nosólo un problema particular sino para proporcionar uninstrumento que permita resolver variaciones delproblema original, del mismo modo que una fórmula nosólo devuelve un valor para un grupo de variables sinotambién para todos los valores que puedan tomar esasvariables. Este método consiste en la aplicación de lossiguientes pasos:

−  Análisis del problema.−  Diseño del algoritmo.−  Codificación.

2.4.1   Análisis del problema.

Este paso consiste en identificar  muy claramente loselementos que componen el problema, es decir:

−  Las incógnitas, porque son precisamente, elpropósito del problema. En ocasiones no sonfácilmente identificables; en estos casos, no se debeseguir adelante hasta haber resuelto con toda claridadeste paso.

−  Los datos, porque son los elementos que se debenmanipular para hallar respuesta a las incógnitas.

5/11/2018 Metodo Algoritmico - slidepdf.com

http://slidepdf.com/reader/full/metodo-algoritmico 3/8

Cap.2: El Método Algorítmico Pag. 2

Programación con Delphi Ing. José Ricardo Varg

► A PROP SITO

−  Las restricciones, porque indicando lo que no sedebe hacer o lo que no se debe aceptar, limitan elconjunto de caminos para resolver el problema,representando con más fiabilidad el universo,ayudando a su solución y

−  Las fórmulas, porque siendo las expresiones con los

que se manipulan los datos para resolver lasincógnitas, indican el rumbo que debe tomar eldesarrollo del algoritmo. La determinación de lasmismas puede requerir de deducción o deinvestigación extra de información, lo cual se traduceen el gasto de un porcentaje, a veces alto, del tiempode resolución del problema.

En otras palabras, se puede decir que en esta etapa sedetermina qué es lo que debe hacer el algoritmo, a partirde qué datos y bajo qué condiciones.

2.4.2   Diseño del algoritmo

Este gran paso se ejecuta a través de las siguientes etapas:

−  Una primera etapa se lleva a cabo a un nivelpuramente mental, ya que de la mente nacerá unbosquejo general del conjunto de pasos queresolverán el problema o del rumbo que deberántomar las siguientes acciones, todo ello comoresultado de una serie de fenómenos en los queintervienen la memoria, las capacidades creativas ylas asociaciones mentales que cada individuo hayaconstruido entre los elementos del problema y elresto del universo. El individuo le ordena o le pide ala mente ayuda para resolver un problema y éstaresponde en la medida de sus posibilidades y de unmodo sorprendentemente mágico con una idea.

−  Una segunda etapa consiste en hacer esa idea losuficientemente clara y definida para formar unprimer conjunto de pasos de tal manera que éstospuedan ser expresados, bien sea con palabras,dibujos, símbolos, etc. y, como se verá más adelante,mediante  pseudocódigo o mediante diagramas de

 flujo. Esta tarea puede ser complicada si se tornadifícil transformar la idea en algo suficientementeclaro y preciso o si el problema a resolver también escomplicado. Si se presenta el primer caso, recuerdeque la claridad de esa idea depende de muchosfactores, entre los que se mencionan:

a)  la cantidad y calidad de información que sobreese problema o problemas similares y suscomponentes hayan en su mente y lo accesibleque ésta sea en un momento dado,

b)  el entrenamiento recibido y realizado por elindividuo, ya que éste hace que se desarrolle unmayor número de asociaciones recurrentes,facilitando a la mente la formación de la idea altener mayor intuición sobre los elementos delproblema,

c)  el estado de salud y ánimo del individuo, ya queestá demostrado que una actitud mental positiva,

un estado de ánimo adecuado y el disfrute una buena salud facilita enormemente desarrollo de los procesos mentales.

Cuando se presenta el caso de un problemcomplicado, entonces el individuo debe echar made recursos que despejen el camino entre las ideas

su forma mental y su expresión, con miras a constrel algoritmo. Para ello se aconseja el uso de dibujdiagramas, gráficos y fórmulas así como de técnicindividuales o colectivas, para el desarrollo de idetales como el brainstorming y los mapas mentalcon el propósito de ir y volver de la parte anterpara producir ideas cada vez más claras y desarrolcada uno de los pasos que componen el algoritmo.

Durante el desarrollo del algoritmo, programador debe pensar también en

modo más conveniente de organizar variables ya que, como verá más adelante, la mayoría de los problemas exige manipulación de una gran variedad y una gran cantidad de éstPara facilitar esta tarea, los lenguajes ofrecen estructuras

datos  que permiten agrupar variables según su naturalezasegún la conveniencia que éstos brinden en cada problema. Pello, el diseño de un buen algoritmo implica la creación de buen conjunto de instrucciones y un buen conjunto estructuras de datos.

−  Una tercera etapa es necesaria cuando complejidad del problema es tal que para resolveréste debe ser dividido en módulos de complejidmenor que el problema original. Entonces camódulo se transforma en un nuevo problema cusolución se encontraría por la aplicación del mismmétodo aplicado al problema original –análisis d

problema, procesos mentales, etc. Cabe hacer noque cada módulo sería también susceptible de ssubdividido en módulos más simples. Este procese conoce como   proceso de descomposicio

sucesivas, refinamientos sucesivos, dise

descendente,  diseño top-down o diseño modular

sus nombres derivan del hecho de que en carefinamiento, el problema original quedará dividien un número cada vez mayor de módulos solución más sencilla. ¿Y hasta cuándo se realizesos refinamientos? Hasta que se cuenta con algoritmo cuyos pasos son fácilmentransformables en instrucciones de un lenguaje

computación, sin perder de vista las característicde un algoritmo: definición, precisión y finitud.

Ejemplo 2-1

Examínese el siguiente problema: Dadas dos rectas por coordenadas de dos de sus puntos, ambas rectas inclinadelabore un algoritmo para determinar si esas rectas interceptan y, si lo hacen, determine las coordenadas del punde intersección.

Primera parte: Análisis del problema.

DATOS ........ Las dos rectas dados por lcoordenadas de dos de s

5/11/2018 Metodo Algoritmico - slidepdf.com

http://slidepdf.com/reader/full/metodo-algoritmico 4/8

Pag. 2-4 Cap.2: El Método Algorítmico

Programación con Delphi Ing. José Ricardo Vargas

► A PROP SITO

puntos. Llámense A y B a las dosrectas, (x1,y1) y (x2,y2) lascoordenadas de los puntos de larecta A y (x3,y3) y (x4,y4) lascoordenadas de los puntos de larecta B.

INCÓGNITAS ...Las coordenadas —llamadas(xint,yint)— del punto de

intersección de las dos rectassi éstas se interceptan o unmensaje que indique que no seinterceptan si no lo hacen.

RESTRICCIONES Dado que el enunciado estableceque las rectas deben serinclinadas, entonces los datosdeben cumplir con las siguientescondiciones: x1<>x2, y1<>y2,x3<>x4 y y3<>y4. Aunque no seespecifica en el enunciado, esobviamente necesario verificartambién que las rectas no seanparalelas. 

FÓRMULAS .....Si se denota a la pendiente delsegmento A como PA y a la

pendiente del segmento B comoPB, entonces se tiene que:Abscisa del punto deintersección:

PB)(PA

PBx3PAx1y1y3xint

−+−

=  

Ordenada del punto deintersección:

yint = PA(xint-x1)+y1

Observe que durante el análisis no solo se identifican loselementos del problema sino que también se les asigna unnombre a cada uno de ellos, es decir, son representados comovariables. Esto es sumamente importante debido a que, como

se mencionó anteriormente, ayuda a la manipulación de losmismos.

Segunda parte: Desarrollo del algoritmo.

IDEA: Verificar los datos de entrada, calcularlas pendientes y verificarlas y calcular luegolas coordenadas del punto de intersección.

PASO 1 . Designar las coordenadas de los puntosextremos de los segmentos como x1, x2,x3, x4, y1, y2, y3 y y4.

PASO 2 . Si se cumple que x1=x2 ó x3=x4 ó y1=y2ó y3=y4, entonces imprima el mensaje“Datos incorrectos” y vuelva al paso1.

PASO 3 .Calcular las pendientes de las rectasA y B mediante las fórmulas PA=(y2-y1)/(x2-x1) y PB=(y4-y3)/(x4-x3).

PASO 4 . Si se cumple que |PA|=|PB|, entoncesimprima el mensaje “Rectas paralelas”y vaya al paso 7.

PASO 5 . Calcular las coordenadas del punto deintersección de las rectas mediantelas fórmulas:xint = (y3-y1+PAx1-PBx3)/(PA-PB)yint = PA(xint-x1)+y1

PASO 6 . Imprima xint y yint.PASO 7 . Fin.

Observe ahora la particularidad de algunos pasos como “si secumple que ... entonces...” o “imprima...” o “vaya al paso...” .Más adelante se verá que  existen tipos de pasos oinstrucciones con características propias que permitenclasificarlos según la tarea que ejecutan. También cabedestacar en este ejemplo, que el mismo no es losuficientemente complejo como para que el algoritmo sea

subdividido en módulos, pero éste no será siempre el caso. Recuerde que se pretende que al final, el

problema sea resuelto por un computador.De ahí la existencia de instrucciones como lea , imprima , etc.

2.4.3  Codificación

Consiste en escribir el algoritmo desarrollado utilizandolos elementos de un lenguaje de programación, con lafinalidad de transformarlo en un programa. Este temaserá cubierto extensamente en los próximos capítulos.

Durante el desarrollo del algoritmo, es convenienterepresentarlo mediante alguna herramienta independiente

del lenguaje de programación que se planee utilizar; estole brinda al programador una serie de ventajas, como sonlas siguientes: primero, el algoritmo puede ser escritoposteriormente en varios lenguajes de programación;segundo, el algoritmo puede ser codificado por unapersona o un equipo diferentes al que lo diseñó, y tercero,se desarrolla en el programador el hábito de trabajarordenadamente. A continuación se presentan algunas deellas.

2.5   Pseudocódigo .

Expresar un algoritmo mediante pseudocódigo consisteen expresar cada uno de los pasos con palabras y

símbolos escritos del lenguaje común, como se mostró enel ejemplo anterior, de tal manera que el mismo pueda serreproducido por cualquier persona que conozca por lomenos dichas palabras y el significado de los símbolos.

Aún cuando estos pasos serán luego ejecutadossecuencialmente, se recomienda enumerarlos ya que elorden de ejecución de los mismos puede alterarse porinstrucción de alguno de ellos.

Ejemplo 2-2Examínese el siguiente problema: Dado un número enteropositivo, elaborar un algoritmo para determinar si el númerodado es primo.

Primera parte: Análisis del problema.

DATOS ...........El número dado, que se llamaráN

INCÓGNITAS ......Una característica del número:si es primo o no.

RESTRICCIONES ...El número N deberá cumplir conla condición de ser entero yaque el concepto de númeroprimo se aplica sólo a losnúmeros enteros.

FÓRMULAS ........El concepto de número primo esun concepto relativo adivisibilidad de números. Un

5/11/2018 Metodo Algoritmico - slidepdf.com

http://slidepdf.com/reader/full/metodo-algoritmico 5/8

Cap.2: El Método Algorítmico Pag. 2

Programación con Delphi Ing. José Ricardo Varg

número N es divisible entreotro número B si la divisiónN/B produce un cocienteentero.

Segunda parte: Desarrollo del algoritmo.

IDEA: Un numero será primo sólo si es divisibleentre si mismo y la unidad. Entonces, paraverificar si el número N es primo, bastarácomprobar que no es divisible entre algúnnúmero situado entre 2 y N-1.

PASO 1.. Designar el número como N.PASO 2.. Si el número N no es entero o es

negativo, repetir el paso 1.PASO 3.. Llame B a una variable y asígnele el

valor 2.PASO 4.. Compruebe si N es divisible entre B.

Si lo es, entonces imprima el mensaje‘NO es primo’ y vaya al paso 8.

PASO 5.. Incremente el valor de B en uno.PASO 6.. Si B es menor que N, vaya al paso 4;

si no, siga con el siguiente paso.PASO 7.. Imprima el mensaje ‘SI es primo’.

PASO 8.. Fin. 2.6  Comprobación manual de

 algoritmos: Corrida en frío.

Esta tarea consiste en representar por escrito elcomportamiento de los elementos involucrados en elalgoritmo durante una ejecución del mismo con valoresde entrada cuyo resultado se conozca de antemano, con elpropósito de verificar si el algoritmo funciona, y si nofunciona, entonces como una forma de ubicar los pasosdel mismo que contengan errores. Una práctica común derealizar una corrida en frío utiliza una tabla donde se

escriben todos los valores tomados por estos elementos ydonde se escriben los resultados finales del algoritmo.

Ejemplo 2-3

Examine los valores que toma la variable B en las siguientestablas que representan las corridas en frío del algoritmo delejemplo 2-2: la primera con un número primo y la segundacon un número que no lo es, y observe en la segunda tablaque, apenas se verifica que el número es divisible entre 2, seimprime el mensaje “NO ES PRIMO” y termina la ejecucióndel algoritmo.

N B Salida N B Salida

7 2 SI es primo 9 2 NO es primo

3 34567

2.7   Diagrama de Flujo.

Un diagrama de flujo ( flowchart ) es la expresión de unalgoritmo en la que se utiliza un conjunto de símbolosuniversalmente reconocidos y aceptados, cuya forma secorresponde con tipos de pasos algorítmicos o

instrucciones. Esta representación permite programador reconocer rápidamente y manipugráficamente tanto esquemas de instrucciones como secuencia de ejecución de estas, de modo que concepción o la modificación de un grupo de ellas hace más fácil. También adapta al programador novato

modo de desarrollar los algoritmos tomando consideración el uso de pasos fácilmente adaptablesinstrucciones en lenguaje de computación.

Cuando se trabaja con diagramas de flujo y con lenguajde programación, se acostumbra utilizar el térmiinstrucción en lugar del término  paso debido a que uinstrucción conlleva la idea de una orden dada computador para que éste ejecute una tarea. Como mencionó al final del ejemplo 2.1, existen tipos

instrucciones, cada uno de estos con características qpermiten clasificarlos según la labor realizan. En siguiente tabla se puede observar no sólo algunos de esttipos, sino también del símbolo correspondiente.

Terminal. Indica el iniciel fin o una parada delprograma.

Instrucción simple.Usualmente usado pararepresentar cálculos.

Operación general deentrada/salida de datos yresultados.

Invocación de un subprogr

Instrucción de selección.Bifurca la secuencia deinstrucciones según elresultado de una selecció

Instrucción de Iteración.Permite la repeticióncontrolada de un grupo deinstrucciones.

Líneas de flujo. Indican secuencia de ejecución deinstrucciones.

Conectores de secuencia.Permiten seguir la secuen

de instrucciones entre pudistantes sin el uso deflechas.

Tabla 2-1. Simbología básica de los diagramas de flujo.

Por supuesto, los símbolos mostrados en la tabla anterno son todos los símbolos utilizados para elabodiagramas de flujo, pero son suficientes para lpropósitos de un curso básico de programación. Existnormas – como la norma ISO 1028-1973– y versiones distintos países de la simbología general que incluy

5/11/2018 Metodo Algoritmico - slidepdf.com

http://slidepdf.com/reader/full/metodo-algoritmico 6/8

Pag. 2-6 Cap.2: El Método Algorítmico

Programación con Delphi Ing. José Ricardo Vargas

INICIO

Leer N

N>0 y N

entero?

B 2

N es divisible

entre B?

B B +1

B < N?

Imprimir "Si 

es primo"

Imprimir "No 

es primo"

FIN

si

no

si

no

si

no

símbolos específicos para manejo de accesorios o paraoperaciones que están implementadas sólo en algunoslenguajes de programación e incluso en algunos sistemasoperativos. Estas normas no sólo especifican lasimbología sino también la gramática de los diagramas deflujo, la cual también sufre de variaciones menores según

el lugar donde se apliquen, pero cuyo resumen, que semuestra a continuación, ha sido aceptado por la mayoríade los organismos y las empresas involucradas en el usode estos:

−  El flujo de ejecución de instrucciones estaráindicado únicamente por flechas y conectores deflujo.

−  Todo símbolo tiene al menos una flecha de llegada yal menos una flecha de salida, con excepción de losbloques terminales y los conectores de flujo.

−  El flujo de ejecución de instrucciones serápreferiblemente de arriba abajo y de izquierda aderecha.

−  Sólo habrá un símbolo de inicio y un símbolo de finde programa, pudiendo haber varios de parada delprograma.

−  Sólo los bloques de selección podrán tener variasflechas de salida.

Ejemplo 2-4

Observe a continuación el diagrama de flujo correspondiente al problema del ejemplo 2.2, el cual muestra además, las instruccionescorrespondientes a los pasos desarrollados en el mencionado ejemplo.

PASO 1: Designar el número como N.

PASO 2: Si el número N no es entero o es negativo,repetir el paso 1.

PASO 3: Llame B a una variable y asígnele el valor 2.

PASO 4: Compruebe si N es divisible entre B. Si lo es,entonces imprima el mensaje ‘NO es primo’ yvaya al paso 8.

PASO 5: Incremente el valor de B en uno.

PASO 6: Si B es menor que N, vaya al paso 4.

PASO 7: Imprima el mensaje ‘SI es primo’.

PASO 8: Fin.

De nuevo, este resumen es suficiente para un cursobásico de programación. Observe que tanto los símboloscomo las normas son pocas y sencillas, razón que hace alos diagramas de flujo una herramienta sumamente fácilde aprender y de gran ayuda para comprender losconceptos de programación que se verán en los próximos

capítulos. Aún cuando existen varias formas derepresentación de algoritmos, el diagrama de flujo se hadestacado como una herramienta conveniente parafacilitar el proceso de transformación de ideas eninstrucciones debido a la facilidad con que el cerebromanipula objetos gráficos en lugar de palabras.

5/11/2018 Metodo Algoritmico - slidepdf.com

http://slidepdf.com/reader/full/metodo-algoritmico 7/8

Cap. 2: El Método Algorítmico Pag. 2

Programación con Delphi Ing. José Ricardo Varg

Igualmente se ha destacado como un método importantepara documentar procesos y para transmitir instruccionesentre programadores debido a su independencia de loslenguajes de programación.

En los próximos capítulos se expondrán los elementos deconstrucción de programas y se utilizará el diagrama de

flujo como herramienta útil en el inicio del proceso dedesarrollo de habilidades para construir algoritmos y parasembrar en la mente del estudiante los procesos básicosde programación.

 Preguntas de repaso

1.  ¿Qué es, en programación, una variable? ¿Tiene éstael mismo significado que en Álgebra?

2.  ¿Cree usted que un programa puede procesar un valorque no esté almacenado en una variable?

3.  ¿Qué es un procedimiento? ¿Qué es una receta? ¿Quées un algoritmo? ¿Puede considerarse el conjunto delos algoritmos como un subconjunto de losprocedimientos?

4.  ¿Cuáles son las características de un algoritmo? ¿Creeusted que un algoritmo sea sólo para construirprogramas de computación?

5.  ¿Cuántos y cuáles son los pasos del MétodoAlgorítmico? Describa brevemente cada uno de ellos.

6.  ¿Puede afirmarse que el análisis de un problema sereduce a un proceso de identificación de elementos?¿Por qué?

7.  ¿En qué consiste el diseño de un algoritmo? ¿Encuántas etapas se lleva a cabo? ¿Una vez diseñado,

qué paso sigue?8.  ¿Cómo cree usted que influye el entrenamiento del

programador en su habilidad para diseñar algoritmos?

9.  ¿Qué es brainstorming? ¿Qué son los mapasmentales? ¿Qué otras técnicas de ayuda pararesolución de problemas conoce usted? ¿Cree ustedque todas estas técnicas son individuales o de grupo?

10. ¿Qué son las estructuras de datos? ¿Cómo influyen enel diseño de un algoritmo?

11. ¿En qué consiste el proceso de descomposicionessucesivas? ¿Es siempre necesario aplicarlo al diseñode un algoritmo?

12. ¿Cree usted que, una vez codificado un algoritmo, haterminado el proceso de resolución de un problema?Explique.

13. ¿Qué es pseudocódigo? ¿Por qué es útilrepresentando algoritmos?

14. ¿Es obligatoria la numeración de los pasos en unpseudocódigo? ¿Si no, cómo se garantiza la ejecuciónsecuencial de los pasos?

15. ¿Qué es corrida en frío? ¿Por qué se dice que ésta esuna comprobación manual? ¿Cómo cree usted que se

ubican errores en un algoritmo mediante la corrida frío?

16. ¿Qué es un diagrama de flujo? ¿De qué está formadDescriba brevemente cómo se construye un diagramde flujo.

17. ¿Por qué hay símbolos distintos en un diagrama

flujo? Describa brevemente el significado de casímbolo.

18. ¿De qué maneras se representa el flujo de ejecucide instrucciones en un diagrama de flujo?

19. ¿Cree usted que una corrida en frío también sirve pacomprobar un diagrama de flujo?

20. ¿Cuáles son las cualidades que hacen útil a diagrama de flujo?

 Problemas propuestos

1.  Escribir procedimientos o algoritmos para llevar

cabo las siguientes tareas. Diga en cada caso si trata de un algoritmo o de un procedimiento:

−  Sacar la cédula de identidad

−  Organizar una fiesta de cumpleaños

−  Pintar su casa o apartamento

−  Construir una casa

−  Calcular el punto medio de un segmento de recconociendo las coordenadas de los extremos.

−  Graficar una función

−  Preparar una pizza

−  Reparar la grifería de un lavamanos

−  Redactar una carta de presentación comercial.−  Redactar el Curriculum Vitae.

−  Cambiar un caucho.

−  Elaborar un informe de inventario.

−  Jugar a la vieja.

−  Jugar al billar.

−  Jugar ajedrez.

−  Jugar Póker.

2.  Dado un triángulo por las coordenadas de svértices, ¿cómo se averigua si en su interior exist

puntos con coordenadas enteras?3.  Dados dos puntos en el plano por sus coordenad

( x1, y1) y ( x2, y2), ¿cómo se escribe la ecuación derecta que pasa por ellos, cuál es la longitud dsegmento que determinan y cuáles son coordenadas del punto medio de dicho segmento.

4.  Escriba un algoritmo para calcular el monto a pagaun trabajador en una semana si se conocen lsiguientes datos:

−  las horas normales de trabajo se pagan a 2000 la hora

5/11/2018 Metodo Algoritmico - slidepdf.com

http://slidepdf.com/reader/full/metodo-algoritmico 8/8

Pag. 2-8 Cap. 2: El Método Algorítmico

Programación con Delphi Ing. José Ricardo Vargas

−  las horas de sobretiempo de lunes a viernes sepagan a 3500 Bs/h

−  las horas trabajadas en fin de semana se pagan a5000 Bs/h

5.  Escriba un algoritmo para calcular la nota de unestudiante de programación, conociendo las notas y

los pesos de los exámenes parciales, los qüices y lostrabajos prácticos, según las normas delDepartamento.

6.  El Domingo de Pascua es el primer domingo despuésde la primera luna llena posterior al equinoccio deprimavera. ¿Cree usted que esta regla essuficientemente precisa para clasificarla como unalgoritmo?

7.  Desarrolle un algoritmo que, dados tres númerosenteros que indiquen mes, día y año de una fechadada, determine el día de la semana y el día del mes aque corresponde esa fecha.

8.  Desarrolle un algoritmo que, dados los componentesde un vector de N dimensiones, encuentre aquel demayor valor absoluto.

9.  Amplíe el algoritmo anterior para que ordene demayor a menor los componentes del vector.

10. Escriba un algoritmo para determinar qué es másconveniente para el comprador de un automóvil:4000$ de inicial y 6000$ luego de transcurridos 6meses o 6000$ de inicial y 4000$ luego detranscurrido un año. Suponga un interés simple de 6%anual.

11. Escriba un algoritmo para convertir un númerorepresentado en una base cualquiera a otra base

cualquiera convirtiendo de una base a base diez y deesta a la otra base. Desarrolle primero el algoritmopara números enteros y luego para números reales.

12. Desarrolle un algoritmo para hallar la representaciónbinaria de un número real cualquiera, almacenadocomo un número de tipo Single de la Norma IEEE754.

13. Dado un sistema triangular de ecuaciones lineales deorden N, desarrolle un algoritmo para resolverlo. Unsistema triangular de ecuaciones es aquel en el quelos coeficientes ubicados por debajo de la diagonalprincipal, son nulos. Como ejemplo, observe el

siguiente sistema de orden 4:

a1,1 x1 + a1,2 x2 + a1,3 x3 + a1,4 x4 = b1

a2,2 x2 + a2,3 x3 + a2,4 x4 = b2

a3,3 x3 + a3,4 x4 = b3

a4,4 x4 = b4

14. A ambas orillas de un río crecen dos palmeras, unafrente a la otra. La altura de una es de X m, y la de laotra, de Y m. La distancia entre sus troncos es de Dm. En la copa de cada palmera hay un pájaro. De

súbito los dos pájaros descubren un pez que apareceen la superficie del agua, entre las palmeras. Lospájaros se lanzan y alcanzan el pez al mismo tiempo.Escriba un algoritmo para averiguar a qué distanciade la palmera mayor apareció el pez.

15. En una plaza hay instalados 5 altavoces distribuidos

en dos grupos: uno de ellos consta de dos aparatos yel otro, de tres. La distancia que separa los dos gruposes de X m. ¿Dónde habrá que colocarse para que elsonido de ambos grupos se oiga con igual intensidad?

16. Dados tres puntos no colineales en el plano y por suscoordenadas  x y  y, encontrar las coordenadas delpunto que hace que los cuatro formen el cuadriláteromenos agudo.

17. Dados tres puntos no colineales en el plano y unnúmero real n, encontrar la cantidad máxima decírculos de radio n que caben en el triángulo formadopor los puntos dados.

18. Dado un polígono de n lados, encontrar las áreas delos cuadrados más grande y más pequeño que“envuelven” al polígono.

19. Dados tres puntos en el espacio por las coordenadasde sus vértices, encontrar el vector normal a la caraque forman los vértices.

20. Para graficar una función en la pantalla de uncomputador, se deben convertir las coordenadasreales de los puntos de la gráfica en coordenadas de lapantalla. Para ello se deben conocer los valoresmáximo y mínimo de las abscisas y de las ordenadasde la función, así como los valores máximo y mínimode las coordenadas de los puntos de la pantalla. Una

vez conocidos estos datos, se puede llevar a cabo un"mapeo" de los puntos reales de tal modo que elpunto con la menor abscisa quede representada en elpunto con la menor coordenada de pantalla,igualmente se aplica al punto con mayor abscisa y alos puntos con mayor y menor ordenada. Escriba unalgoritmo para implementar este mapeo con el fin derepresentar en pantalla una función matemática.

21. Escriba un algoritmo para averiguar los movimientosque debe hacer un caballo de ajedrez para recorrertodo un tablero del mismo juego, comenzando encualquier posición y sin repetir su ubicación enalguna casilla.

22. Un triángulo equilátero de lado L se divide mediantela eliminación de una porción de su área igual a trestriángulos equiláteros, como se muestra en lasiguiente figura, proceso que puede repetirseindefinidamente.Escriba un algoritmopara determinar el áreasombreada luego de Ndivisiones y estime elárea cuando N tienda ainfinito.