Your SlideShare is downloading. ×
Algoritmo
Algoritmo
Algoritmo
Algoritmo
Algoritmo
Algoritmo
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Algoritmo

659

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
659
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Existe actualmente un consenso general dentro de la comunidad educativa mundial sobre lanecesidad de superar el tipo de enseñanza basada en la transmisión de contenidos para apuntarleen su lugar al desarrollo de capacidades. Investigaciones y estudios recientes proponen diversosconjuntos de habilidades que la educación debe fomentar para que los estudiantes puedan teneréxito en el mundo digital y globalizado en el que van a vivir. Este planteamiento exige, sindilaciones, implementar estrategias que contribuyan efectivamente en el desarrollo de esashabilidades planteadas como fundamentales para la educación en el Siglo XXI (21st Century Skills,2004).En la mayoría de conjuntos de habilidades propuestos figuran las habilidades de pensamiento deorden superior entre las que se incluye la destreza para solucionar problemas; por esta razón, serequiere seleccionar estrategias efectivas para ayudar a que los estudiantes las desarrollen. Paraatender esta necesidad, la programación de computadores constituye una buena alternativa,siempre y cuando se la enfoque al logro de esta destreza y no a la formación de programadores. Esimportante insistir en esta orientación debido a que las metodologías utilizadas en EducaciónBásica para llevar a cabo cursos deAlgoritmos y Programación, son heredadas de la educación superior y muchos de los docentes quelas utilizan se dedican principalmente a enseñar los vericuetos de lenguajes de programaciónprofesionales tales como Java, C++, Visual Basic, etc. Hablar hoy de aprender a diseñar y construiraplicaciones (programas) complejas, implica una labor titánica que en la mayoría de los casos estáfuera del alcance de la Educación Básica ya que demanda necesariamente enfoques deprogramación como el orientado a objetos al que apuntan la mayoría de tendencias en Ingenieríade Sistemas.Por esta razón, en la Educación Básica es altamente recomendable utilizar ambientes deprogramación basados en Logo, fáciles de utilizar y que permitan realizar procedimientos quecontengan estructuras básicas (secuencial, decisión y repetición), pero siempre conducentes aldesarrollo de habilidades del Siglo XXI.SOLUCION DE PROBLEMASUna de las acepciones que trae el Diccionario de Real Academia de la Lengua Española (RAE)respecto a la palabra Problema es “Planteamiento de una situación cuya respuesta desconocidadebe obtenerse a través de métodos científicos”. Con miras a lograr esa respuesta, un problema sepuede definir como una situación en la cual se trata de alcanzar una meta y para lograrlo se debenhallar y utilizar unos medios y unas estrategias.La mayoría de problemas tienen algunos elementos en común: un estado inicial; una meta, lo quese pretende lograr; un conjunto de recursos, lo que está permitido hacer y/o utilizar; y undominio, el estado actual de conocimientos, habilidades y energía de quien va a resolverlo(Moursund, 1999).Casi todos los problemas requieren, que quien los resuelve, los divida en submetas que, cuandoson dominadas (por lo regular en orden), llevan a alcanzar el objetivo. La solución de problemastambién requiere que se realicen operaciones durante el estado inicial y las submetas, actividades(conductuales, cognoscitivas) que alteran la naturaleza de tales estados (Schunk, 1997).DESARROLLO DE HABILIDADES DE PENSAMIENTODESARROLLO DE HABILIDADES DE PENSAMIENTO DE ORDEN SUPERIOR
  • 2. ALGORITMOS: Consiste en aplicar adecuadamente una serie de pasos detallados que aseguranuna solución correcta. Por lo general, cada algoritmo es específico de un dominio delconocimiento. La programación de computadores se apoya en este método.Hay muchas estrategias para solucionar problemas; sin embargo, esta Guía se enfocaprincipalmente en dos de estas estrategias: Heurística y Algorítmica.Según Polya (1957), cuando se resuelven problemas, intervienen cuatro operaciones mentales:1. Entender el problema2. Trazar un plan3. Ejecutar el plan (resolver)4. Revisar1. COMPRENDER EL PROBLEMA.• Leer el problema varias veces• Establecer los datos del problema• Aclarar lo que se va a resolver (¿Cuál es la pregunta?)• Precisar el resultado que se desea lograr• Determinar la incógnita del problema• Organizar la información• Agrupar los datos en categorías• Trazar una figura o diagrama.2. HACER EL PLAN.• Escoger y decidir las operaciones a efectuar.• Eliminar los datos inútiles.• Descomponer el problema en otros más pequeños.3. EJECUTAR EL PLAN (Resolver).• Ejecutar en detalle cada operación.• Simplificar antes de calcular.• Realizar un dibujo o diagrama4. ANALIZAR LA SOLUCIÓN (Revisar).• Dar una respuesta completa• Hallar el mismo resultado de otra manera.• Verificar por apreciación que la respuesta es adecuada.¿QUÉ ES UN ALGORITMO?Luego de analizar detalladamente el problema hasta entenderlo completamente, se procede adiseñar un algoritmo (trazar un plan) que lo resuelva por medio de pasos sucesivos y organizadosen secuencia lógica. El concepto intuitivo de algoritmo (procedimientos y reglas) se puedeencontrar en procesos naturales de los cuales muchas veces no se es conciente. Por ejemplo, elproceso digestivo es un concepto intuitivo de algoritmo con el que se convive a diario sin que hagafalta un definición “matemática” del mismo. Tener claro el proceso digestivo, no implica que losalimentos consumidos nutran más. La familiaridad de lo cotidiano impide a las personas vermuchos algoritmos que se suceden a su alrededor. Procesos, rutinas o biorritmos naturales como
  • 3. la gestación, las estaciones, la circulación sanguínea, los ciclos cósmicos, etc, son algoritmosnaturales que generalmente pasan desapercibidos.La rama del saber que mayor utilización ha hecho del enfoque algorítmico es las matemáticas.Durante miles de años el ser humano se ha esforzado por abstraer la estructura de la solución deproblemas con el fin de determinar claramente cuál es el camino seguro, preciso y rápido que llevaa esas soluciones. Son abundantes los ejemplos: máximo común divisor, teorema de Pitágoras,áreas de figuras geométricas, división, suma de números fraccionarios, etc. Todos estos algoritmosmatemáticos independizan los datos iniciales del problema de la estructura de su solución, lo quepermite su aplicación con diferentes conjuntos de datos iniciales (variables).En el ámbito de la computación, los Algoritmos son una herramienta que permite describirclaramente un conjunto finito de instrucciones, ordenadas secuencialmente y libres deambigüedad, que debe llevar a cabo un computador para lograr un resultado previsible. Vale lapena recordar que un programa de computador consiste de una serie de instrucciones muyprecisas y escritas en un lenguaje de programación que el computador entiende (Logo, Java,Pascal, etc).En resumen, un Algoritmo es una secuencia ordenada de instrucciones, pasos o procesos quellevan a la solución de un determinado problema. Los hay tan sencillos y cotidianos como seguir lareceta del médico, abrir una puerta, lavarse las manos, etc; hasta los que conducen a la soluciónde problemas muy complejos.EJEMPLO 1Un procedimiento que realizamos varias veces al día consiste en lavarnos los dientes. Veamos laforma de expresar este procedimiento como un Algoritmo:1. Tomar la crema dental2. Destapar la crema dental3. Tomar el cepillo de dientes4. Aplicar crema dental al cepillo5. Tapar la crema dental6. Abrir la llave del lavamanos7. Remojar el cepillo con la crema dental8. Cerrar la llave del lavamanos9. Frotar los dientes con el cepillo10. Abrir la llave del lavamanos11. Enjuagarse la boca12. Enjuagar el cepillo13. Cerrar la llave del lavamanos14. Secarse la cara y las manos con una toallaEJEMPLO 2El ejemplo de cambiar una bombilla (foco) fundida es uno de los más utilizados por su sencillezpara mostrar los pasos de un Algoritmo:1. Ubicar una escalera debajo de la bombilla fundida2. Tomar una bombilla nueva3. Subir por la escalera4. Girar la bombilla fundida hacia la izquierda hasta soltarla5. Enroscar la bombilla nueva en el plafón hasta apretarla6. Bajar de la escalera
  • 4. 7. FinEn términos generales, un Algoritmo debe ser:• Realizable: El proceso algorítmico debe terminar después de una cantidad finita de pasos. Sedice que un algoritmo es inaplicable cuando se ejecuta con un conjunto de datos iniciales y elproceso resulta infinito o durante la ejecución se encuentra con un obstáculo insuperable sinarrojar un resultado.• Comprensible: Debe ser claro lo que hace, de forma que quien ejecute los pasos (ser humano omáquina) sepa qué, cómo y cuándo hacerlo. Debe existir un procedimiento que determine elproceso de ejecución.• Preciso: El orden de ejecución de las instrucciones debe estar perfectamente indicado. Cuandose ejecuta varias veces, con los mismos datos iniciales, el resultado debe ser el mismo siempre. Laprecisión implica determinismo.Un aspecto muy importante sobre el cual los estudiantes deben reflexionar es la ambigüedad dellenguaje natural que utilizan para comunicarse diariamente con sus semejantes. La informalidad oformalidad en la comunicación depende de elementos como vocabulario, uso de comodines enlugar de vocablos precisos, uso de adverbios coloquiales en lugar de adverbios formales, etc. Esfundamental que los estudiantes aprendan a diferenciar entre comunicación informal ycomunicación formal, cuya principal característica es la precisión. Los no admiten ningún tipo deambigüedad ya que los lenguajes de programación tienen un vocabulario restringido y preciso.Esto exige la utilización de un conjunto determinado de palabras, mandos o primitivas encualquiera de los procedimientos que se elaboren.ACTIVIDAD 1Discutir en parejas el ejemplo de la bombilla y proponer algunas mejoras. Luego, un voluntariopasa al tablero y escribe un Algoritmo con participación de toda la clase.ACTIVIDAD 2A diferencia de los seres humanos que realizan actividades sin detenerse a pensar en los pasos quedeben seguir, los computadores son muy ordenados y necesitan que el programador lesespecifique cada uno de los pasos necesarios y su orden lógico de ejecución.Ordenar los pasos para pescar:___ El pez se traga el anzuelo.___ Enrollar el sedal.___ Tirar el sedal al agua.___ Llevar el pescado a casa.___ Quitar el Anzuelo de la boca del pescado.___ Poner carnada al anzuelo.___ Sacar el pescado del agua.
  • 5. REPRESENTACIÓN DE ALGORITMOSLos Algoritmos se puede expresar de muchas maneras, pero en esta guía se tratarán solo dosformas: Seudocódigo y Diagrama de Flujo. En Seudocódigo la secuencia de instrucciones serepresenta por medio de frases o proposiciones, mientras que en un Diagrama de Flujo serepresenta por medio de gráficos.EJEMPLOElaborar un Algoritmo para calcular el área de cualquier triángulo rectángulo y presentar elresultado en pantalla.SEUDOCÓDIGOPaso 1: InicioPaso 2: Asignar el número 2 a la constante "Div"Paso 3: Conocer la base del triángulo y guardarla en la variable "Base"Paso 4: Conocer la altura del triángulo y guardarla en la variable "Altura"Paso 5: Guardar en la variable "Area" el valor de multiplicar "Base" por "Altura"Paso 6: Guardar en la variable "Area" el valor de dividir "Area" entre "Div"Paso 7: Reportar el valor de la variable "Area"Paso 8: FinalDIAGRAMA DE FLUJOEl seudocódigo está compuesto por proposiciones informales en español que permiten expresardetalladamente las instrucciones que llevan desde un estado inicial (problema) hasta unresultados deseado (solución). Por lo regular, los algoritmos se escriben por refinamiento: seescribe una primera versión que luego se descompone en varios subproblemas (el númerodepende de la complejidad del problema) independientes entre sí. Si es necesario se va refinandocada vez las instrucciones hasta que las proposiciones generales en español como las del ejemploanterior se puedan codificar en el lenguaje seleccionado para hacer la programación.
  • 6. Los diagramas visuales revelan patrones, interrelaciones e interdependencias además de estimularel pensamiento creativo.La utilización de Diagramas ayuda a los estudiantes a:• Clarificar el pensamiento : Ellos pueden ver cómo se conectan los procesos y se dan cuenta decómo estos se pueden organizar o agrupar para darles el orden lógico correcto.• Identificar pasos erróneos: Sobre un diagrama es más fácil identificar los cambios que serequieren para el correcto funcionamiento de un programa de computador que hacerlo sobre elcódigo.Los Diagramas de Flujo son una de las técnicas más utilizadas para representar gráficamente lasecuencia de instrucciones de un Algoritmo. Estas instrucciones están compuestas poroperaciones, decisiones lógicas y ciclos repetitivos, entre otros. La solución de un problema puedecontener varios conjuntos de instrucciones (procedimientos o métodos) que tienen como finalidadejecutar cada uno de los procesos necesarios para llegar a la solución de un problema a partir delos datos disponibles (estado inicial).ACTIVIDAD 3Basándose en la última actividad planteada en la unidad 1, elaborar un algoritmo en seudocódigopara cada uno de los siguientes problemas.1. Hallar el perímetro de un cuadrado cuyo lado mide 5 cm2. Hallar el área de un cuadrado cuyo lado mide 7cm3. Hallar el área de un triangulo de base 11cm y altura 7cmWEBGRAFIAhttp://www.eduteka.org/pdfdir/AlgoritmosProgramacion.pdf

×