SlideShare una empresa de Scribd logo
EL ALGORITMO COMO ESTRATEGIA Y/O HERRAMIENTA PARA
LA SOLUCIÓN DE PROBLEMAS.
Para desarrollar un algoritmo es importante conocer la metodología para tal
propósito, así mismo identificar cuáles son los elementos primordiales de los que se
conforma.
Todo algoritmo debe ser preciso, finito y definido por lo que su correcto diseño es
vital para lograr tales características.
En el planteamiento de solución de problemas según la naturaleza del problema,
existe la necesidad de manipular datos, en aquellas situaciones de problemas
matemáticos, financieros, etc. Por lo que resulta trascendente conocer los tipos de
datos que son representables en los algoritmos, y que guardan estrecha relación
con los tipos de datos que emplean los lenguajes de programación actuales.
ANÁLISIS PARA LA SOLUCIÓN DE UN PROBLEMA
La primera fase en la resolución de un problema con computadora es el análisis del
problema. Esta fase requiere una clara definición, donde se contemple exactamente
lo que debe hacer el programa y el resultado o solución deseada.
Debido a que se busca una solución por computadora, se precisan especificaciones
detalladas de entrada y salida. Esto se plantea en la siguiente figura.
Para poder definir bien un problema es conveniente responder a las siguientes
preguntas:
TIPOS DE DATOS
El principal objetivo en toda computadora es el manejo de la información o datos.
La mayoría de las computadoras pueden trabajar con varios tipos (modos) de datos.
Señala que la acción de las instrucciones ejecutables de las computadoras se refleja
en cambios en los valores de las partidas de datos. Los datos de entrada se
transforman por el programa, después de las etapas intermedias, en datos de salida.
En el proceso de resolución de problemas el diseño de la estructura de datos es tan
importante como el diseño del algoritmo y del programa que se basa en el mismo.
Existen dos tipos de datos: simples (sin estructura) y compuestos (estructurados).
Los distintos tipos de datos son representados en diferentes formas en la
computadora.
DISEÑO DE UN ALGORITMO
En la etapa de análisis del proceso de programación se determina, ¿qué hace el
programa? En la etapa de diseño se determina cómo hace el programa la tarea
solicitada. Los métodos más eficaces para el proceso de diseño se basan en el
conocido por divide y vencerás. Es decir, la resolución de un problema complejo se
divide en subproblemas y después dividir éstos en otros de nivel más bajo, hasta
que pueda ser implementada una solución en la computadora. Este método se
conoce técnicamente como diseño descendente (top-down) o modular. El proceso
de romper el problema en cada etapa y expresar cada paso en forma más detallada
se denomina refinamiento sucesivo.
Cada subprograma es resuelto mediante un módulo (subprograma) que tiene un
solo punto de entrada y un solo punto de salida.
Cualquier programa bien diseñado consta de un programa principal (el módulo de
nivel más alto) que llama a subprogramas (módulos de nivel más bajo) que a su vez
pueden llamar a otros subprogramas. Los programas estructurados de esta forma
se dice que tienen un diseño modular y el método de romper el programa en
módulos más pequeños se llama programación modular.
Los módulos pueden ser planeados, codificados, comprobados y depurados
independientemente (incluso por diferentes programadores) y a continuación
combinarlos entre sí.
El proceso implica la ejecución de los siguientes pasos hasta que el programa se
termina:
1.- Programar un módulo.
2.- Comprobar el módulo.
3.- Si es necesario, depurar el módulo.
4.- Combinar el módulo con los módulos anteriores.
El proceso que convierte los resultados del análisis del problema en un diseño
modular con refinamientos sucesivos que permitan una posterior traducción a un
lenguaje se denomina diseño del algoritmo. El diseño del algoritmo es independiente
del lenguaje de programación en el que se vaya a codificar posteriormente.
Herramientas de programación.
Las dos herramientas más utilizadas comúnmente para diseñar algoritmos son:
diagramas de flujo y pseudocódigos.
Diagramas de flujo
Un diagrama de flujo (flowchart) es una representación gráfica de un algoritmo.
Los símbolos utilizados en estos diagramas, descritos en lecturas anteriores, han
sido normalizados por el Instituto Norteamericano de Normalización (ANSI).
Pseudocódigo
El pseudocódigo es una herramienta de programación en la que las instrucciones
se escriben en palabras similares al inglés o español, que facilitan tanto la escritura
como la lectura de programas. En esencia, el pseudocódigo se puede definir como
un lenguaje de especificaciones de algoritmos.
TIPOS DE PROGRAMACIÓN
Norton señala que hasta los años setenta, relativamente existía poca estructura en
la escritura de códigos por parte de los programadores. Por ejemplo, los
programadores con frecuencia usaban instrucciones goto para saltar otras partes
de un programa. El problema que presenta esta instrucción es identificar cómo
procede el flujo de control del programa después del salto.
Programación Estructurada
Los investigadores en los años sesenta demostraron que los programas podían
escribirse con tres estructuras de control:
La estructura de la secuencia define el flujo de control automático en un programa,
la cual se construye en lenguaje de programación. Como resultado, una
computadora ejecuta líneas de código en el orden en el cual están escritas.
La figura muestra un diagrama de este flujo de secuencia.
Las estructuras de selección se construyen con base en una declaración
condicional. Si ésta es verdadera, ciertas líneas de código son ejecutadas. Si por el
contrario, es falsa, esas líneas de código no son ejecutadas. Las estructuras de
selección más comunes son: if-then e if-else (llamada algunas veces como if-then-
else.
Las estructuras de repetición (o de ciclo) también se construyen con base en
instrucciones condicionales. Si la condición es verdadera entonces un bloque de
uno o más comandos se repite hasta que la condición es falsa. La computadora
primero valida la condición y, si es verdadera, ejecuta el bloque de comando una
vez. Entonces prueba la condición otra vez. Si aún es verdadera, el bloque de
comando se repite. Debido a este funcionamiento cíclico, las estructuras de
repetición son llamadas también ciclos. Tres estructuras cíclicas comunes son: For-
Next, While y Do-While.
Programación Orientada a Objetos.
Norton, señala que los programadores afirman que una orientación a objetos es una
manera natural de pensar acerca del mundo, ya que es una manera intuitiva para
moldear el mundo, los programas se vuelven más simples, la programación más
rápida, y el problema de mantenimiento al programa disminuye.
Concluye que las tecnologías orientadas a objetos, han evolucionado mucho pero
mantiene la razón de ser del paradigma: combinación de la descripción de los
elementos en un entorno de proceso de datos con las acciones ejecutadas por esos
elementos. Las clases y objetos como instancias o ejemplares de ellas son los
elementos claves sobre los que se articula la orientación a objetos.
Cualquier programa orientado a objetos puede manejar muchos objetos. Por
ejemplo, un programa que lleva el inventario de un almacén de ventas al por menor,
utiliza un objeto de cada producto manipulado en el almacén. El programa manipula
los mismos datos de cada objeto, incluyendo el número de producto, descripción
del producto, precio, número de artículos del stock y el momento de nuevos pedidos.
Antes de que un programa pueda crear objetos de cualquier clase, ésta debe ser
definida. La definición de una clase significa que se debe dar a la misma un nombre,
darle nombre a los elementos que almacenan sus datos y describir las funciones
que realizarán las acciones consideradas en los objetos.

Más contenido relacionado

La actualidad más candente

PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
Fredy Olaya
 
Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacion
Luis Peralta
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
Eustakiu Padilla
 
Historia y conceptos basicos de programación estructurada
Historia y conceptos basicos de programación estructuradaHistoria y conceptos basicos de programación estructurada
Historia y conceptos basicos de programación estructurada
En La Vereda de Mi Casaa!
 
Diseño de software modelo lineal (presentacion)
Diseño de software   modelo lineal (presentacion)Diseño de software   modelo lineal (presentacion)
Diseño de software modelo lineal (presentacion)
Marco Antonio Perez Montero
 
Tabla comparativa de paradigmas de programacion
Tabla comparativa de paradigmas de programacionTabla comparativa de paradigmas de programacion
Tabla comparativa de paradigmas de programacionMarioS1093
 
Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.Sandy Montoya Reyes
 
Lenguaje de programacion de visual basic
Lenguaje de programacion de visual basicLenguaje de programacion de visual basic
Lenguaje de programacion de visual basic
Rosa Marina Mosquera
 
Reporte de practica #1
Reporte de practica #1Reporte de practica #1
Reporte de practica #1Will Alcantar
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructuradaAngel Ordoñez
 
Cargadores y ligadores
Cargadores y ligadoresCargadores y ligadores
Cargadores y ligadoresperlallamas
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
clean88
 
CLASE 2.pdf
CLASE 2.pdfCLASE 2.pdf
Mapa mental de Ing. de requisito y requerimiento
Mapa mental de Ing. de requisito y requerimientoMapa mental de Ing. de requisito y requerimiento
Mapa mental de Ing. de requisito y requerimiento
Jose Gregorio Brito Villarroel
 

La actualidad más candente (20)

PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
 
Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacion
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
Historia y conceptos basicos de programación estructurada
Historia y conceptos basicos de programación estructuradaHistoria y conceptos basicos de programación estructurada
Historia y conceptos basicos de programación estructurada
 
Ingenieria De Software
Ingenieria De SoftwareIngenieria De Software
Ingenieria De Software
 
Diseño de software modelo lineal (presentacion)
Diseño de software   modelo lineal (presentacion)Diseño de software   modelo lineal (presentacion)
Diseño de software modelo lineal (presentacion)
 
Tabla comparativa de paradigmas de programacion
Tabla comparativa de paradigmas de programacionTabla comparativa de paradigmas de programacion
Tabla comparativa de paradigmas de programacion
 
Metodologia DSDM
Metodologia DSDMMetodologia DSDM
Metodologia DSDM
 
Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.
 
Lenguaje de programacion de visual basic
Lenguaje de programacion de visual basicLenguaje de programacion de visual basic
Lenguaje de programacion de visual basic
 
Reporte de practica #1
Reporte de practica #1Reporte de practica #1
Reporte de practica #1
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Diagramas De Flujo
Diagramas De FlujoDiagramas De Flujo
Diagramas De Flujo
 
Cargadores y ligadores
Cargadores y ligadoresCargadores y ligadores
Cargadores y ligadores
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
CLASE 2.pdf
CLASE 2.pdfCLASE 2.pdf
CLASE 2.pdf
 
Mapa mental de Ing. de requisito y requerimiento
Mapa mental de Ing. de requisito y requerimientoMapa mental de Ing. de requisito y requerimiento
Mapa mental de Ing. de requisito y requerimiento
 
Decompiladores
DecompiladoresDecompiladores
Decompiladores
 

Similar a El algoritmo como estrategia y herramienta para la solución de problemas

Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la ProgramaciónPablo Parola
 
Introducción A La Programación
Introducción A La ProgramaciónIntroducción A La Programación
Introducción A La Programación
Pablo Parola
 
Lenguajes de programación parte i.3
Lenguajes de programación parte i.3Lenguajes de programación parte i.3
Lenguajes de programación parte i.3
Marquina, Santiago
 
ALGORITMOS
ALGORITMOS ALGORITMOS
Fases de programacion
Fases de programacionFases de programacion
Fases de programacionbrayan_2012
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujocasdilacol
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programación
justo morales
 
Fpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.comFpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.com
FresyMetal
 
Java y conceptos de apoyo
Java y conceptos de apoyoJava y conceptos de apoyo
Java y conceptos de apoyo
Norma Alicia Barrera Olivares
 
Resolucion de problemas
Resolucion de problemasResolucion de problemas
Resolucion de problemas
Pedro Salcedo Lagos
 
Clase 1 lógica de programación
Clase 1 lógica de programaciónClase 1 lógica de programación
Clase 1 lógica de programación
TITO GILMER PACHECO PEREZ
 
Algoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujoAlgoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujocognos_uie
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadora
FaridCastillo2
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadora
JulioVizcarra5
 
Principios de programacion
Principios de programacionPrincipios de programacion
Principios de programacionrulo182
 

Similar a El algoritmo como estrategia y herramienta para la solución de problemas (20)

Modulo 1 algoritmo
Modulo 1 algoritmoModulo 1 algoritmo
Modulo 1 algoritmo
 
Modulo 1 algoritmo
Modulo 1 algoritmoModulo 1 algoritmo
Modulo 1 algoritmo
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la Programación
 
Introducción A La Programación
Introducción A La ProgramaciónIntroducción A La Programación
Introducción A La Programación
 
Lenguajes de programación parte i.3
Lenguajes de programación parte i.3Lenguajes de programación parte i.3
Lenguajes de programación parte i.3
 
ALGORITMOS
ALGORITMOS ALGORITMOS
ALGORITMOS
 
Fases de programacion
Fases de programacionFases de programacion
Fases de programacion
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Algoritmos y programacion
Algoritmos y programacionAlgoritmos y programacion
Algoritmos y programacion
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programación
 
Fpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.comFpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.com
 
Algoritmos primero
Algoritmos primeroAlgoritmos primero
Algoritmos primero
 
Java y conceptos de apoyo
Java y conceptos de apoyoJava y conceptos de apoyo
Java y conceptos de apoyo
 
Resolucion de problemas
Resolucion de problemasResolucion de problemas
Resolucion de problemas
 
Las fases de la programación
Las fases de la programaciónLas fases de la programación
Las fases de la programación
 
Clase 1 lógica de programación
Clase 1 lógica de programaciónClase 1 lógica de programación
Clase 1 lógica de programación
 
Algoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujoAlgoritmos diagrama-de-flujo
Algoritmos diagrama-de-flujo
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadora
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadora
 
Principios de programacion
Principios de programacionPrincipios de programacion
Principios de programacion
 

Último

Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
JuanPrez962115
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
jjfch3110
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
44652726
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 

Último (20)

Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 

El algoritmo como estrategia y herramienta para la solución de problemas

  • 1. EL ALGORITMO COMO ESTRATEGIA Y/O HERRAMIENTA PARA LA SOLUCIÓN DE PROBLEMAS. Para desarrollar un algoritmo es importante conocer la metodología para tal propósito, así mismo identificar cuáles son los elementos primordiales de los que se conforma. Todo algoritmo debe ser preciso, finito y definido por lo que su correcto diseño es vital para lograr tales características. En el planteamiento de solución de problemas según la naturaleza del problema, existe la necesidad de manipular datos, en aquellas situaciones de problemas matemáticos, financieros, etc. Por lo que resulta trascendente conocer los tipos de datos que son representables en los algoritmos, y que guardan estrecha relación con los tipos de datos que emplean los lenguajes de programación actuales. ANÁLISIS PARA LA SOLUCIÓN DE UN PROBLEMA La primera fase en la resolución de un problema con computadora es el análisis del problema. Esta fase requiere una clara definición, donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada. Debido a que se busca una solución por computadora, se precisan especificaciones detalladas de entrada y salida. Esto se plantea en la siguiente figura. Para poder definir bien un problema es conveniente responder a las siguientes preguntas:
  • 2. TIPOS DE DATOS El principal objetivo en toda computadora es el manejo de la información o datos. La mayoría de las computadoras pueden trabajar con varios tipos (modos) de datos. Señala que la acción de las instrucciones ejecutables de las computadoras se refleja en cambios en los valores de las partidas de datos. Los datos de entrada se transforman por el programa, después de las etapas intermedias, en datos de salida. En el proceso de resolución de problemas el diseño de la estructura de datos es tan importante como el diseño del algoritmo y del programa que se basa en el mismo. Existen dos tipos de datos: simples (sin estructura) y compuestos (estructurados). Los distintos tipos de datos son representados en diferentes formas en la computadora. DISEÑO DE UN ALGORITMO En la etapa de análisis del proceso de programación se determina, ¿qué hace el programa? En la etapa de diseño se determina cómo hace el programa la tarea solicitada. Los métodos más eficaces para el proceso de diseño se basan en el conocido por divide y vencerás. Es decir, la resolución de un problema complejo se divide en subproblemas y después dividir éstos en otros de nivel más bajo, hasta que pueda ser implementada una solución en la computadora. Este método se conoce técnicamente como diseño descendente (top-down) o modular. El proceso de romper el problema en cada etapa y expresar cada paso en forma más detallada se denomina refinamiento sucesivo. Cada subprograma es resuelto mediante un módulo (subprograma) que tiene un solo punto de entrada y un solo punto de salida. Cualquier programa bien diseñado consta de un programa principal (el módulo de nivel más alto) que llama a subprogramas (módulos de nivel más bajo) que a su vez pueden llamar a otros subprogramas. Los programas estructurados de esta forma se dice que tienen un diseño modular y el método de romper el programa en módulos más pequeños se llama programación modular. Los módulos pueden ser planeados, codificados, comprobados y depurados independientemente (incluso por diferentes programadores) y a continuación combinarlos entre sí.
  • 3. El proceso implica la ejecución de los siguientes pasos hasta que el programa se termina: 1.- Programar un módulo. 2.- Comprobar el módulo. 3.- Si es necesario, depurar el módulo. 4.- Combinar el módulo con los módulos anteriores. El proceso que convierte los resultados del análisis del problema en un diseño modular con refinamientos sucesivos que permitan una posterior traducción a un lenguaje se denomina diseño del algoritmo. El diseño del algoritmo es independiente del lenguaje de programación en el que se vaya a codificar posteriormente. Herramientas de programación. Las dos herramientas más utilizadas comúnmente para diseñar algoritmos son: diagramas de flujo y pseudocódigos. Diagramas de flujo Un diagrama de flujo (flowchart) es una representación gráfica de un algoritmo. Los símbolos utilizados en estos diagramas, descritos en lecturas anteriores, han sido normalizados por el Instituto Norteamericano de Normalización (ANSI). Pseudocódigo El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan tanto la escritura como la lectura de programas. En esencia, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos. TIPOS DE PROGRAMACIÓN Norton señala que hasta los años setenta, relativamente existía poca estructura en la escritura de códigos por parte de los programadores. Por ejemplo, los programadores con frecuencia usaban instrucciones goto para saltar otras partes de un programa. El problema que presenta esta instrucción es identificar cómo procede el flujo de control del programa después del salto.
  • 4. Programación Estructurada Los investigadores en los años sesenta demostraron que los programas podían escribirse con tres estructuras de control: La estructura de la secuencia define el flujo de control automático en un programa, la cual se construye en lenguaje de programación. Como resultado, una computadora ejecuta líneas de código en el orden en el cual están escritas. La figura muestra un diagrama de este flujo de secuencia. Las estructuras de selección se construyen con base en una declaración condicional. Si ésta es verdadera, ciertas líneas de código son ejecutadas. Si por el contrario, es falsa, esas líneas de código no son ejecutadas. Las estructuras de selección más comunes son: if-then e if-else (llamada algunas veces como if-then- else. Las estructuras de repetición (o de ciclo) también se construyen con base en instrucciones condicionales. Si la condición es verdadera entonces un bloque de uno o más comandos se repite hasta que la condición es falsa. La computadora primero valida la condición y, si es verdadera, ejecuta el bloque de comando una vez. Entonces prueba la condición otra vez. Si aún es verdadera, el bloque de comando se repite. Debido a este funcionamiento cíclico, las estructuras de repetición son llamadas también ciclos. Tres estructuras cíclicas comunes son: For- Next, While y Do-While. Programación Orientada a Objetos. Norton, señala que los programadores afirman que una orientación a objetos es una manera natural de pensar acerca del mundo, ya que es una manera intuitiva para moldear el mundo, los programas se vuelven más simples, la programación más rápida, y el problema de mantenimiento al programa disminuye. Concluye que las tecnologías orientadas a objetos, han evolucionado mucho pero mantiene la razón de ser del paradigma: combinación de la descripción de los elementos en un entorno de proceso de datos con las acciones ejecutadas por esos elementos. Las clases y objetos como instancias o ejemplares de ellas son los elementos claves sobre los que se articula la orientación a objetos.
  • 5. Cualquier programa orientado a objetos puede manejar muchos objetos. Por ejemplo, un programa que lleva el inventario de un almacén de ventas al por menor, utiliza un objeto de cada producto manipulado en el almacén. El programa manipula los mismos datos de cada objeto, incluyendo el número de producto, descripción del producto, precio, número de artículos del stock y el momento de nuevos pedidos. Antes de que un programa pueda crear objetos de cualquier clase, ésta debe ser definida. La definición de una clase significa que se debe dar a la misma un nombre, darle nombre a los elementos que almacenan sus datos y describir las funciones que realizarán las acciones consideradas en los objetos.