SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
Algoritmos
El programador diseña un programa, para resolver un problema particular.
Diseñar es un proceso creativo.
El proceso de diseño de un programa consta de los siguientes pasos o etapas:

Pasos Etapa                    Descripción
1       Análisis del problema Conducen al diseño detallado por medio
                              un código escrito en forma de un
2       Diseño de algoritmo   algoritmo
3       Codificación           Se implementa el algoritmo en un código
                               escrito en un lenguaje de programación.
                               Refleja las ideas desarrolladas en las
                               etapas de análisis y diseño
4       Compilación y          Traduce el programa fuente a programa
        ejecución              en código de maquina y lo ejecuta.
5       Verificación           Busca errores en las etapas anteriores y
                               los elimina.
6       Depuración
7       Documentación          Son comentarios, etiquetas de texto, que
                               facilitan la comprensión del programa
Concepto
Algoritmo: es un método para resolver un problema mediante una serie de
pasos definidos, precisos y finitos.
Preciso: implica el orden de realización de cada uno de los pasos
Definido: si se sigue dos veces, se obtiene el mismo resultado.
Finito: Tiene un numero determinado de pasos, implica que tiene un fin,
Tipos : Método
Algorítmico
Descripción
Utiliza un algoritmo y puede ser implementado en una computadora
Ejemplos
    • Instrucciones para manejar un vehículo
    • Instrucciones para secar grano a granel
    • Instrucciones para resolver ecuación de segundo grado
Heurística:
Se apoya en el resultado obtenido en un análisis de alternativas de
experiencias anteriores similares. De las mismas, a se deducen una serie de
reglas empíricas o heurísticas que de ser seguidas, conducen a la selección de
la mejor alternativa en todas o la mayoría de las veces.

                                          Ejemplos
Los algoritmos   Formulas
se pueden
expresar por:    Diagramas de flujo
                 Norte-Sur,Top-Down

                 Pseudo código             inicio
                                           leer a,b,c
                                           calcular
                                           escribir perímetro
                                           fin

 Quick Basic es un lenguaje de programación estructurado y el algoritmo se
representara en seudo código y/o diagrama de flujo.
1. Análisis del problema:
Requiere la clara definición del problema donde se indique que va hacer el
programa y cual ve a ser el resultado.
Debe detallarse las especificaciones de entrada y salida,
Los requisitos que definen el análisis son:




La ecuación de segundo grado se define algebraicamente como :

La solución general viene dada por la expresión algebraica : (Algoritmo)



                                                          periférico
1    Análisis del problema
2    Def. del problema        Hallar raíces ecua. 2do
                              grdo
3    Especif. de entrada      coeficientes a, b, c        Teclado
4    Especif. de salida       X1, X2                      Pantalla
                                                          Impresora

Entrada: por teclado
Calculo     Expresión algebraica           Codificación en QBasic

                                           X1=((-B+SQR(B^2-4*A*C))
                                           X2=((-B-SQR(B^2-4*A*C))

Proceso:



Salida: Visualización de :Datos de entrada: A,B,C
Datos procesados: Raices: X1, X2
           Variable        Significado    Codificación en QBasic
           A,B,C           Coef           PRINT"A=";A; "B=";"C=";C
           X1              primera raíz PRINT"X1=";x1
           X2              primera raíz PRINT"X2=";X2
2.Diseño del algoritmo.
Análisis de proceso implica que hace el programa.
Diseño implica como se hace o realiza la tarea (problema) solicitado
En el diseño:
El todo es la sumatoria de las partes.
Divide el todo en varias partes.
En la resolución de un problema complejo, se divide en varios sub problemas y
seguidamente se vuelven a dividir los sub problemas en otros mas sencillos,
hasta que puedan implementarse en el computador.
Esta característica define lo que se entiende como diseño descendente( Top-
Down / Norte-Sur ) o diseño modular.
El proceso de ruptura del problema en cada etapa se llama refinamiento
sucesivo.
Cada problema se resuelve mediante un modulo (subprograma) y tiene un solo
punto de entrada y un solo punto de salida.
Un programa bien diseñado consta de un programa principal (modulo de nivel
mas alto) que llama a subprogramas (módulos de nivel mas bajo), que a su vez
pueden llamar otros sub programas.
Los programas que se estructuran de esta forma, se dicen que tienen diseño
modular y el método de romper el programa en modos pequeños se llama
programación modular.
Los módulos pueden ser planificados, codificados, compilados y depurados
independientemente pueden ser intercambiados entre si.
Este proceso implica la ejecución de los siguientes pasos:
              1       programar un modulo
              2       comprobar un modulo
              3       depurar el modulo
4    combinar el modulo con módulos anteriores
este proceso convierte el resultado del análisis del problema en un diseño
modular con refinamientos sucesivos que permiten una traducción a un
lenguaje que se denomina diseño del algoritmo.
El algoritmo se puede representar por medio de dos formas:
Pseudo código
Diagrama de flujo:
Pseudo código: es el lenguaje de especificación de algoritmos y tiene una
estructura: Las instrucciones se escriben en ingles o en palabras similares al
ingles o español que facilitan la escritura de programación
Para la resolución de una ecuación de segundo grado se escribiría
inicio
Introducir coeficientes a, b y c
Imprimir títulos primera raíz, segunda raíz, no tiene solución,
Calcular raíz 1 y raíz 2
Imprimir raíz 1 y raíz 2
Fin
Diagramas de flujo (flows charts): Es la representación grafica del algoritmo;
según la ANSI consta de una simbología, que tiene los siguientes
significados:
Símbolos del Diagrama de flujo
Codificación :
Programación:
Windows/Dos/
Quick Basic = Editor de texto.
Programa: definición:
conjunto de datos y sentencias:
Un programa tiene la forma




 En el editor de Quick Basic se escribiría codificado el seudo código
que tendría la forma:
REM Programa para calcular las soluciones
REM de una ecuacion de segundo grado
PRINT "Escriba los valores de A, B y C"
C$="Calculos"
INPUT " A,B,C", A, B, C
R = (B ^ 2 - 4 * A * C) ^ .5
LET X1 = (-B + R) / (2 * A)
LET X2 = (-B + R) / (2 * A)
PRINT
PRINT " A="; A, " B="; B, "C="; C
PRINT "X1="; X1, "X2="; X2
PRINT
END

SIMBOLOS USADOS EN LOS DIAGRAMAS DE FLUJO

Los principales símbolos usados en los diagramas de flujo se muestran a continuación con lo que cada
uno indica, y son los que utilizaremos en estos apuntes.



a) Ovalo de inicio y término


b) Flecha de dirección del flujo

c) Rectángulo o caja de operaciones


d) Lectura de datos (símbolo de la lectora de tarjetas perforadas)
e) Impresión (símbolo de la impresora de papel)



f) Caja de decisiones (rombo)




Tendrán 2 salidas posibles, indicadas una por SI y la otra por NO.

g) Conectores de salida y conectadores de entrada al flujo




Con relación a los conectores digamos que, en un diagrama de flujo pueden haber varios conectores
salida con el mismo número, pero debe haber un sólo conector de entrada con ese número. Es decir, si
hay uno o varios conectores de salida con el mismo número, en el diagrama tiene que haber exactamente
uno de entrada con ese número.




                                                      4
h) Otros símbolos




X . ALCANCES GENERALES

        a.- El flujo natural es hacia abajo a partir del óvalo de inicio, o hacia donde indique la flecha
        dirección del flujo.
        b.- El flujo natural de ejecución hacia abajo se puede alterar por:
        * Un salto incondicional, que se representa por las flechas que de la nueva dirección
        * Un salto condicional, que se representa por una caja de decisiones (rombo) con dos salidas (SI,
        NO) y adentro la condición que al ser verdadera, el flujo irá hacia donde dice SI; al ser falsa, irá
        hacia donde No. Ejemplos




        c.- Cuando programe y deba usar un rombo para un salto condicional en un diagrama de flujo
        "trate Ud. De dejar siempre la salida SI hacia el lado derecho"
        d.- Toda variable que se ocupe al lado derecho de proposición de asignación, debe haber sido
        creada e inicializada antes de esa instrucción.

        Ejemplo.




        Para que esta instrucción se realice sin problemas, las variables: I, SU deben existir desde antes
        (creadas), y tener algún valor almacenado en ellas, (inicializadas). En programación en general,
        no supondremos que esas variables en ese momento pueden tener algún valor, como cero por
        ejemplo.




                                                     4
DISEÑOS

Diseñar un diagrama de flujo para calcular y mostrar el área de un triángulo.
El diagrama deberá de solicitar los datos necesarios y mostrar el resultado.

RESPUESTA:




Diseñar un diagrama de flujo que solicite un número y determine si este es par o es non.
El diagrama deberá de solicitar los datos necesarios y mostrar el resultado.



RESPUESTA:
Diseñar un diagrama de flujo que solicite tres números correspondientes a las medidas de
los lados de un tríangulo y determine mediante condiciones si se trata de un tríangulo
equilátero, isóseles o escaleno.

El diagrama deberá de solicitar los datos necesarios y mostrar el resultado.

RESPUESTA:
Diseñar un diagrama de flujo para convertir de grados centígrados a grados Fahrenheit.
El diagrama deberá de solicitar los datos necesarios y mostrar el resultado.

RESPUESTA:
Algoritmos paso a paso

Weitere ähnliche Inhalte

Was ist angesagt?

Algoritmos y diagramacion clase 1
Algoritmos y diagramacion clase 1Algoritmos y diagramacion clase 1
Algoritmos y diagramacion clase 1Yamid Navea
 
ResolucióN De Problemas
ResolucióN De ProblemasResolucióN De Problemas
ResolucióN De Problemasguest796d29
 
estructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientrasestructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientrasJohan Velandia
 
DEFINICIÓN DE LENGUAJES ALGORÍTMICOS
DEFINICIÓN DE LENGUAJES ALGORÍTMICOSDEFINICIÓN DE LENGUAJES ALGORÍTMICOS
DEFINICIÓN DE LENGUAJES ALGORÍTMICOSadark
 
3 programacion estructurada
3 programacion estructurada3 programacion estructurada
3 programacion estructuradacortezbfajardo
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacionneyvajms
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadorarestradal
 
Unidad 1
Unidad 1Unidad 1
Unidad 1henser
 
Estructura General de un Programa
Estructura General de un ProgramaEstructura General de un Programa
Estructura General de un ProgramaFranco Guamán
 
Clase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasClase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasSol Hernández
 
Razonamiento algoritmico
Razonamiento algoritmicoRazonamiento algoritmico
Razonamiento algoritmicopaty_cursocompu
 
Programacion lenguaje-c
Programacion lenguaje-cProgramacion lenguaje-c
Programacion lenguaje-cClariza
 
Clase 3. Datos y Entidades Primitivas - Sullin Santaella
Clase 3. Datos y Entidades Primitivas - Sullin SantaellaClase 3. Datos y Entidades Primitivas - Sullin Santaella
Clase 3. Datos y Entidades Primitivas - Sullin SantaellaJosé Ricardo Tillero Giménez
 

Was ist angesagt? (19)

ESTRUCTURA DE UN PROGRAMA
ESTRUCTURA DE UN PROGRAMA ESTRUCTURA DE UN PROGRAMA
ESTRUCTURA DE UN PROGRAMA
 
Algoritmos y diagramacion clase 1
Algoritmos y diagramacion clase 1Algoritmos y diagramacion clase 1
Algoritmos y diagramacion clase 1
 
ResolucióN De Problemas
ResolucióN De ProblemasResolucióN De Problemas
ResolucióN De Problemas
 
estructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientrasestructuras algoritmicas ciclicas mientras
estructuras algoritmicas ciclicas mientras
 
Diagramacion
DiagramacionDiagramacion
Diagramacion
 
DEFINICIÓN DE LENGUAJES ALGORÍTMICOS
DEFINICIÓN DE LENGUAJES ALGORÍTMICOSDEFINICIÓN DE LENGUAJES ALGORÍTMICOS
DEFINICIÓN DE LENGUAJES ALGORÍTMICOS
 
3 programacion estructurada
3 programacion estructurada3 programacion estructurada
3 programacion estructurada
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacion
 
Clase 02
Clase 02Clase 02
Clase 02
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadora
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Estructura General de un Programa
Estructura General de un ProgramaEstructura General de un Programa
Estructura General de un Programa
 
BORLAND
BORLANDBORLAND
BORLAND
 
Unmsm03 2008
Unmsm03 2008Unmsm03 2008
Unmsm03 2008
 
Clase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasClase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemas
 
Algoritmos - Estructura de Datos
Algoritmos - Estructura de DatosAlgoritmos - Estructura de Datos
Algoritmos - Estructura de Datos
 
Razonamiento algoritmico
Razonamiento algoritmicoRazonamiento algoritmico
Razonamiento algoritmico
 
Programacion lenguaje-c
Programacion lenguaje-cProgramacion lenguaje-c
Programacion lenguaje-c
 
Clase 3. Datos y Entidades Primitivas - Sullin Santaella
Clase 3. Datos y Entidades Primitivas - Sullin SantaellaClase 3. Datos y Entidades Primitivas - Sullin Santaella
Clase 3. Datos y Entidades Primitivas - Sullin Santaella
 

Ähnlich wie Algoritmos paso a paso

5. Diseño de un algoritmo
5. Diseño de un algoritmo5. Diseño de un algoritmo
5. Diseño de un algoritmorcarrerah
 
Desarrollo de lógica algorítmica_PARTE 1.PPTX
Desarrollo de lógica algorítmica_PARTE 1.PPTXDesarrollo de lógica algorítmica_PARTE 1.PPTX
Desarrollo de lógica algorítmica_PARTE 1.PPTXReyna FalcÓn
 
Fundamentos de programación - Introducción
Fundamentos de programación - IntroducciónFundamentos de programación - Introducción
Fundamentos de programación - IntroducciónManuelZambrano67
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadorarestradal
 
Conceptos básicos de algorítmica
Conceptos básicos de algorítmicaConceptos básicos de algorítmica
Conceptos básicos de algorítmicacolegio emanuel
 
Desarrollo de un programa.
Desarrollo de un programa.Desarrollo de un programa.
Desarrollo de un programa.Sam Arr
 
Algoritmos libro 6
Algoritmos  libro 6Algoritmos  libro 6
Algoritmos libro 6desi2907
 
PPT_Sesión 02 Principios de Algoritmo.ppt
PPT_Sesión 02 Principios de Algoritmo.pptPPT_Sesión 02 Principios de Algoritmo.ppt
PPT_Sesión 02 Principios de Algoritmo.pptyohannygarciasalazar1
 
01_IntroduccionAlgoritmos (1).pdf
01_IntroduccionAlgoritmos (1).pdf01_IntroduccionAlgoritmos (1).pdf
01_IntroduccionAlgoritmos (1).pdfcristianperez473965
 
SOLUCIONAR PROBLEMAS POR MEDIO DE AGORITMOS
SOLUCIONAR PROBLEMAS POR MEDIO DE AGORITMOSSOLUCIONAR PROBLEMAS POR MEDIO DE AGORITMOS
SOLUCIONAR PROBLEMAS POR MEDIO DE AGORITMOSKatherinBarrios17
 
SOLUCIONAR PROBLEMAS POR MEDIO DE ALGORITMOS
SOLUCIONAR PROBLEMAS POR MEDIO DE ALGORITMOSSOLUCIONAR PROBLEMAS POR MEDIO DE ALGORITMOS
SOLUCIONAR PROBLEMAS POR MEDIO DE ALGORITMOSKatherinBarrios17
 
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASMETODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASadark
 
Diseno dealgoritmos
Diseno dealgoritmosDiseno dealgoritmos
Diseno dealgoritmosDeyvid Atens
 
ALGORITMOS bachillerato investigación y información
ALGORITMOS bachillerato investigación y informaciónALGORITMOS bachillerato investigación y información
ALGORITMOS bachillerato investigación y informaciónQuirogaSharon
 
Tutorial sencillo manejo_de_pseint_y_dfd_1_
Tutorial sencillo manejo_de_pseint_y_dfd_1_Tutorial sencillo manejo_de_pseint_y_dfd_1_
Tutorial sencillo manejo_de_pseint_y_dfd_1_Ximena Huechacona
 

Ähnlich wie Algoritmos paso a paso (20)

TEMA11.ppt
TEMA11.pptTEMA11.ppt
TEMA11.ppt
 
5. Diseño de un algoritmo
5. Diseño de un algoritmo5. Diseño de un algoritmo
5. Diseño de un algoritmo
 
Seudocodigo
SeudocodigoSeudocodigo
Seudocodigo
 
Desarrollo de lógica algorítmica_PARTE 1.PPTX
Desarrollo de lógica algorítmica_PARTE 1.PPTXDesarrollo de lógica algorítmica_PARTE 1.PPTX
Desarrollo de lógica algorítmica_PARTE 1.PPTX
 
Fundamentos de programación - Introducción
Fundamentos de programación - IntroducciónFundamentos de programación - Introducción
Fundamentos de programación - Introducción
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadora
 
Programación
ProgramaciónProgramación
Programación
 
Conceptos básicos de algorítmica
Conceptos básicos de algorítmicaConceptos básicos de algorítmica
Conceptos básicos de algorítmica
 
Desarrollo de un programa.
Desarrollo de un programa.Desarrollo de un programa.
Desarrollo de un programa.
 
Algoritmos libro 6
Algoritmos  libro 6Algoritmos  libro 6
Algoritmos libro 6
 
(Fases)
(Fases)(Fases)
(Fases)
 
PPT_Sesión 02 Principios de Algoritmo.ppt
PPT_Sesión 02 Principios de Algoritmo.pptPPT_Sesión 02 Principios de Algoritmo.ppt
PPT_Sesión 02 Principios de Algoritmo.ppt
 
01_IntroduccionAlgoritmos (1).pdf
01_IntroduccionAlgoritmos (1).pdf01_IntroduccionAlgoritmos (1).pdf
01_IntroduccionAlgoritmos (1).pdf
 
SOLUCIONAR PROBLEMAS POR MEDIO DE AGORITMOS
SOLUCIONAR PROBLEMAS POR MEDIO DE AGORITMOSSOLUCIONAR PROBLEMAS POR MEDIO DE AGORITMOS
SOLUCIONAR PROBLEMAS POR MEDIO DE AGORITMOS
 
SOLUCIONAR PROBLEMAS POR MEDIO DE ALGORITMOS
SOLUCIONAR PROBLEMAS POR MEDIO DE ALGORITMOSSOLUCIONAR PROBLEMAS POR MEDIO DE ALGORITMOS
SOLUCIONAR PROBLEMAS POR MEDIO DE ALGORITMOS
 
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASMETODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
 
Diseno dealgoritmos
Diseno dealgoritmosDiseno dealgoritmos
Diseno dealgoritmos
 
ALGORITMOS bachillerato investigación y información
ALGORITMOS bachillerato investigación y informaciónALGORITMOS bachillerato investigación y información
ALGORITMOS bachillerato investigación y información
 
Tutorial sencillo manejo_de_pseint_y_dfd_1_
Tutorial sencillo manejo_de_pseint_y_dfd_1_Tutorial sencillo manejo_de_pseint_y_dfd_1_
Tutorial sencillo manejo_de_pseint_y_dfd_1_
 

Mehr von infobran

Sistemas operativos 1
Sistemas operativos 1Sistemas operativos 1
Sistemas operativos 1infobran
 
Servicios de sistemas
Servicios de sistemasServicios de sistemas
Servicios de sistemasinfobran
 
Lenguajes de programacion web
Lenguajes de programacion webLenguajes de programacion web
Lenguajes de programacion webinfobran
 
Introducción a net
Introducción a netIntroducción a net
Introducción a netinfobran
 
Examen trianual informatica
Examen trianual informaticaExamen trianual informatica
Examen trianual informaticainfobran
 
Examen diego
Examen diegoExamen diego
Examen diegoinfobran
 
Desarrollo sitios web
Desarrollo sitios webDesarrollo sitios web
Desarrollo sitios webinfobran
 
Introducción a C SHARP
Introducción a C SHARPIntroducción a C SHARP
Introducción a C SHARPinfobran
 
Tipos sitemas operativos
Tipos sitemas operativosTipos sitemas operativos
Tipos sitemas operativosinfobran
 
Especificacion software
Especificacion softwareEspecificacion software
Especificacion softwareinfobran
 
Cultura de la calidad
Cultura de la calidadCultura de la calidad
Cultura de la calidadinfobran
 
Arboles(2)
Arboles(2)Arboles(2)
Arboles(2)infobran
 
Presentación
 Presentación Presentación
Presentacióninfobran
 
Impresoras
 Impresoras Impresoras
Impresorasinfobran
 

Mehr von infobran (20)

Sistemas operativos 1
Sistemas operativos 1Sistemas operativos 1
Sistemas operativos 1
 
Servicios de sistemas
Servicios de sistemasServicios de sistemas
Servicios de sistemas
 
Lenguajes de programacion web
Lenguajes de programacion webLenguajes de programacion web
Lenguajes de programacion web
 
Introducción a net
Introducción a netIntroducción a net
Introducción a net
 
Examen trianual informatica
Examen trianual informaticaExamen trianual informatica
Examen trianual informatica
 
Examen diego
Examen diegoExamen diego
Examen diego
 
Desarrollo sitios web
Desarrollo sitios webDesarrollo sitios web
Desarrollo sitios web
 
Introducción a C SHARP
Introducción a C SHARPIntroducción a C SHARP
Introducción a C SHARP
 
Tipos sitemas operativos
Tipos sitemas operativosTipos sitemas operativos
Tipos sitemas operativos
 
Grafos
GrafosGrafos
Grafos
 
Especificacion software
Especificacion softwareEspecificacion software
Especificacion software
 
Cultura de la calidad
Cultura de la calidadCultura de la calidad
Cultura de la calidad
 
Ch10 13
Ch10 13Ch10 13
Ch10 13
 
Arboles
ArbolesArboles
Arboles
 
Arboles(2)
Arboles(2)Arboles(2)
Arboles(2)
 
Sistemas
 Sistemas Sistemas
Sistemas
 
Presentación
 Presentación Presentación
Presentación
 
Marco
 Marco Marco
Marco
 
Intrefaz
 Intrefaz Intrefaz
Intrefaz
 
Impresoras
 Impresoras Impresoras
Impresoras
 

Algoritmos paso a paso

  • 1. Algoritmos El programador diseña un programa, para resolver un problema particular. Diseñar es un proceso creativo. El proceso de diseño de un programa consta de los siguientes pasos o etapas: Pasos Etapa Descripción 1 Análisis del problema Conducen al diseño detallado por medio un código escrito en forma de un 2 Diseño de algoritmo algoritmo 3 Codificación Se implementa el algoritmo en un código escrito en un lenguaje de programación. Refleja las ideas desarrolladas en las etapas de análisis y diseño 4 Compilación y Traduce el programa fuente a programa ejecución en código de maquina y lo ejecuta. 5 Verificación Busca errores en las etapas anteriores y los elimina. 6 Depuración 7 Documentación Son comentarios, etiquetas de texto, que facilitan la comprensión del programa Concepto Algoritmo: es un método para resolver un problema mediante una serie de pasos definidos, precisos y finitos. Preciso: implica el orden de realización de cada uno de los pasos Definido: si se sigue dos veces, se obtiene el mismo resultado. Finito: Tiene un numero determinado de pasos, implica que tiene un fin, Tipos : Método Algorítmico Descripción Utiliza un algoritmo y puede ser implementado en una computadora Ejemplos • Instrucciones para manejar un vehículo • Instrucciones para secar grano a granel • Instrucciones para resolver ecuación de segundo grado Heurística: Se apoya en el resultado obtenido en un análisis de alternativas de experiencias anteriores similares. De las mismas, a se deducen una serie de reglas empíricas o heurísticas que de ser seguidas, conducen a la selección de la mejor alternativa en todas o la mayoría de las veces. Ejemplos Los algoritmos Formulas se pueden
  • 2. expresar por: Diagramas de flujo Norte-Sur,Top-Down Pseudo código inicio leer a,b,c calcular escribir perímetro fin Quick Basic es un lenguaje de programación estructurado y el algoritmo se representara en seudo código y/o diagrama de flujo. 1. Análisis del problema: Requiere la clara definición del problema donde se indique que va hacer el programa y cual ve a ser el resultado. Debe detallarse las especificaciones de entrada y salida, Los requisitos que definen el análisis son: La ecuación de segundo grado se define algebraicamente como : La solución general viene dada por la expresión algebraica : (Algoritmo) periférico 1 Análisis del problema 2 Def. del problema Hallar raíces ecua. 2do grdo 3 Especif. de entrada coeficientes a, b, c Teclado 4 Especif. de salida X1, X2 Pantalla Impresora Entrada: por teclado
  • 3. Calculo Expresión algebraica Codificación en QBasic X1=((-B+SQR(B^2-4*A*C)) X2=((-B-SQR(B^2-4*A*C)) Proceso: Salida: Visualización de :Datos de entrada: A,B,C Datos procesados: Raices: X1, X2 Variable Significado Codificación en QBasic A,B,C Coef PRINT"A=";A; "B=";"C=";C X1 primera raíz PRINT"X1=";x1 X2 primera raíz PRINT"X2=";X2 2.Diseño del algoritmo. Análisis de proceso implica que hace el programa. Diseño implica como se hace o realiza la tarea (problema) solicitado En el diseño: El todo es la sumatoria de las partes. Divide el todo en varias partes. En la resolución de un problema complejo, se divide en varios sub problemas y seguidamente se vuelven a dividir los sub problemas en otros mas sencillos, hasta que puedan implementarse en el computador. Esta característica define lo que se entiende como diseño descendente( Top- Down / Norte-Sur ) o diseño modular. El proceso de ruptura del problema en cada etapa se llama refinamiento sucesivo. Cada problema se resuelve mediante un modulo (subprograma) y tiene un solo punto de entrada y un solo punto de salida. Un programa bien diseñado consta de un programa principal (modulo de nivel mas alto) que llama a subprogramas (módulos de nivel mas bajo), que a su vez pueden llamar otros sub programas. Los programas que se estructuran de esta forma, se dicen que tienen diseño modular y el método de romper el programa en modos pequeños se llama programación modular. Los módulos pueden ser planificados, codificados, compilados y depurados independientemente pueden ser intercambiados entre si. Este proceso implica la ejecución de los siguientes pasos: 1 programar un modulo 2 comprobar un modulo 3 depurar el modulo
  • 4. 4 combinar el modulo con módulos anteriores este proceso convierte el resultado del análisis del problema en un diseño modular con refinamientos sucesivos que permiten una traducción a un lenguaje que se denomina diseño del algoritmo. El algoritmo se puede representar por medio de dos formas: Pseudo código Diagrama de flujo: Pseudo código: es el lenguaje de especificación de algoritmos y tiene una estructura: Las instrucciones se escriben en ingles o en palabras similares al ingles o español que facilitan la escritura de programación Para la resolución de una ecuación de segundo grado se escribiría inicio Introducir coeficientes a, b y c Imprimir títulos primera raíz, segunda raíz, no tiene solución, Calcular raíz 1 y raíz 2 Imprimir raíz 1 y raíz 2 Fin Diagramas de flujo (flows charts): Es la representación grafica del algoritmo; según la ANSI consta de una simbología, que tiene los siguientes significados:
  • 5. Símbolos del Diagrama de flujo Codificación : Programación: Windows/Dos/ Quick Basic = Editor de texto. Programa: definición: conjunto de datos y sentencias: Un programa tiene la forma En el editor de Quick Basic se escribiría codificado el seudo código que tendría la forma: REM Programa para calcular las soluciones REM de una ecuacion de segundo grado PRINT "Escriba los valores de A, B y C" C$="Calculos" INPUT " A,B,C", A, B, C R = (B ^ 2 - 4 * A * C) ^ .5 LET X1 = (-B + R) / (2 * A) LET X2 = (-B + R) / (2 * A) PRINT
  • 6. PRINT " A="; A, " B="; B, "C="; C PRINT "X1="; X1, "X2="; X2 PRINT END SIMBOLOS USADOS EN LOS DIAGRAMAS DE FLUJO Los principales símbolos usados en los diagramas de flujo se muestran a continuación con lo que cada uno indica, y son los que utilizaremos en estos apuntes. a) Ovalo de inicio y término b) Flecha de dirección del flujo c) Rectángulo o caja de operaciones d) Lectura de datos (símbolo de la lectora de tarjetas perforadas) e) Impresión (símbolo de la impresora de papel) f) Caja de decisiones (rombo) Tendrán 2 salidas posibles, indicadas una por SI y la otra por NO. g) Conectores de salida y conectadores de entrada al flujo Con relación a los conectores digamos que, en un diagrama de flujo pueden haber varios conectores salida con el mismo número, pero debe haber un sólo conector de entrada con ese número. Es decir, si hay uno o varios conectores de salida con el mismo número, en el diagrama tiene que haber exactamente uno de entrada con ese número. 4
  • 7. h) Otros símbolos X . ALCANCES GENERALES a.- El flujo natural es hacia abajo a partir del óvalo de inicio, o hacia donde indique la flecha dirección del flujo. b.- El flujo natural de ejecución hacia abajo se puede alterar por: * Un salto incondicional, que se representa por las flechas que de la nueva dirección * Un salto condicional, que se representa por una caja de decisiones (rombo) con dos salidas (SI, NO) y adentro la condición que al ser verdadera, el flujo irá hacia donde dice SI; al ser falsa, irá hacia donde No. Ejemplos c.- Cuando programe y deba usar un rombo para un salto condicional en un diagrama de flujo "trate Ud. De dejar siempre la salida SI hacia el lado derecho" d.- Toda variable que se ocupe al lado derecho de proposición de asignación, debe haber sido creada e inicializada antes de esa instrucción. Ejemplo. Para que esta instrucción se realice sin problemas, las variables: I, SU deben existir desde antes (creadas), y tener algún valor almacenado en ellas, (inicializadas). En programación en general, no supondremos que esas variables en ese momento pueden tener algún valor, como cero por ejemplo. 4
  • 8. DISEÑOS Diseñar un diagrama de flujo para calcular y mostrar el área de un triángulo. El diagrama deberá de solicitar los datos necesarios y mostrar el resultado. RESPUESTA: Diseñar un diagrama de flujo que solicite un número y determine si este es par o es non. El diagrama deberá de solicitar los datos necesarios y mostrar el resultado. RESPUESTA:
  • 9. Diseñar un diagrama de flujo que solicite tres números correspondientes a las medidas de los lados de un tríangulo y determine mediante condiciones si se trata de un tríangulo equilátero, isóseles o escaleno. El diagrama deberá de solicitar los datos necesarios y mostrar el resultado. RESPUESTA:
  • 10. Diseñar un diagrama de flujo para convertir de grados centígrados a grados Fahrenheit. El diagrama deberá de solicitar los datos necesarios y mostrar el resultado. RESPUESTA: