Descargar

Algoritmos, Codificación, Sentencias, Seudo códigos, Diagramas de Flujo


    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:

    Tipos :

    Método

    Descripción

    Ejemplos

    Algorítmico

    Utiliza un algoritmo y puede ser implementado en una computadora

    • 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.

    • Quick Basic es un lenguaje de programación estructurado y el algoritmo se representara en seudo código y/o diagrama de flujo.

    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 :

    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

    coef

    Descripción

    Codificación en QBasic

    a

    team. cuadrático

    INPUT "Coef a =";A

    b

    term. lineal

    INPUT "Coef b =";B

    c

    term. independiente

    INPUT "Coef c =";C

    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 simbologia , que tiene los siguientes significados:

    Símbolo

    Función

    Proceso

     

    Cualquier tipo de operación que origine cambio de valor, formato, posicion de la informacion almacenada en memoria, operaciones aritmeticas, de transferencia, etc.

     

    Entrada/Salida

     

    Cualquier tipo de de introduccion de datosen la memoria desde los perifericos"entrada"o registros de informacion procesadaen un periferico de salida

    Impresora

     

    Se utiliza en ocaciones en lugar del simbolo de entradaa/salida

    Llamada a subrutina, funcion o procedimiento; este es un modulo independiente del programa principal, que recibe una entrada procedente de dicho programa , realiza una tarea determinada y regresa al terminar al propgrama principal

    Monitor

    Pantalla ; en ocaciones se utiliza en lugar de simbolo de entrada / salida

    Proceso: Decisión

     

    Indica operaciones logicas o de comparacionentre datos– normalmente entre dos y en funcion del resultado, determina cual de los dos caminos alternativos se debe seguir; normalmente tiene dos salidas- respuestas si o no.

    Conector

     

    Sirve para enlazardos partes cualesquiera de un organigrama a traves de un conector de salida y otro en la entrada. En la misma pagina del diagrama

    Conector

    Conexión entre dos puntos del organigrama situados en paginas diferentes

    Teclado

    En ocaciones se utilisa en lugar del simbolo de entrada/salida

    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

    En el Menú

    Ejecutar

    En la pantalla veríamos:

    Mandatos e instrucciones:

    Mandato (command): es una orden aislada de efecto inmediato.

    Ejemplo:

    Mandato

    Descripción

    RUN

    Ordena la ejecución de un programa.

    LIST

    Escribe En la pantalla el listado del programa

    SAVE.

    Guarda, graba el programa como un archivo de extensión BAS en el disco

    Instrucción: es una orden contenida en un programa.

    Ejemplo:

    Instrucción

    Descripción

    PRINT

    Escribe en pantalla.

    INPUT

    Introduce (entra datos)

    Edición de un programa: un programa esta formado por líneas secuenciales que se ejecutan en forma descendente (Up Down)

    Para dar por terminada una línea se pulsa la tecla Enter (Return) en cualquier parte de la misma. Para cambiar una línea basta volver a teclearla.

    • Se puede corregir una línea (borrar, rescribir ) en pantalla o bien con el mandato EDIT.

    • Se pueden incluir varias instrucciones en una misma línea, separándolos por dos puntos.

    • Una línea de pantalla (cuarenta u ochenta posiciones) es diferente de una línea de programa (doscientos cincuenta y seis posiciones).

    Modo Directo:

    Modo Programa

    Run

    Ventana activa

    Ventana inmediata

    mandato

    Descripción

    CLS

    borra la pantalla

    Recomendaciones:

    • Todo programa debe estar documentado con comentarios; la primera línea debe contener el titulo del programa. Los comentarios deben de ir precedidos de la palabra clave REM o de un apostrofo ( " )

    • Si una línea ya tiene otras instrucciones, el comentario debe ir al final de la línea.

    • Los comentarios solo aparecen en el listado del programa y no aparecen escritos en la pantalla durante la ejecución.

    Constantes:

    QBasic, trabaja con dos tipos de datos:

    Datos

    Tipos

    numéricos:

    Enteros (INT)

    Enteros largos (LNG)

    de simple precisión (SGL)

    de doble precisión (DBL)

    alfanuméricos

    hileras o cadenas (STR)

    fila de caracteres en ASCII ( en parte del teclado )

    • Las constantes alfanuméricas pueden ser enteras o fraccionarias, se representan en forma decimal; se puede emitir el cero a la izquierda del punto decimal. Ejemplo

    3452

    -12.67

    .23

    +12345

    Estos son ejemplos de valores numéricos de punto fijo; se puede emplear una notación de punto flotante.

    Mantisa

    letra

    exponente

    1,23456E+15

    123456.0000000000

    1.234567890789456D–10

    0.000000000123456789012456

    • El numero máximo de cifras significativas con que se trabaja es:

    6 para la precisión simple (SNG)

    16 para la precisión doble (DLB)

    • En las constantes de punto fijo hay que añadir el carácter #

    • Las constantes alfanuméricas son hileras de caracteres; se escriben entre comillas, Ej. "Hola " ; " A47EC

    Variables vectores y matrices

    • Una variable es una zona de memoria que almacena un dato

    • Una variable se identifica mediante un nombre. El nombre de una variable numérica debe empezar por una letra y puede ir sucedido de otras letras y / o otros dígitos (X, A, B1, peso, T341)

    • Una variable alfanumérica debe terminar con el carácter $ (x$, a23$, dias$,)

    • Están terminantemente prohibidas los nombres de variables que contengan palabras claves de Basic (PRUN, LIST, NIF$,)

    • Las variables de precisión doble y enteros se identifican añadiendo el carácter # o el carácter % , también se pueden declarar como

    DEFDBL A

    Documentación

    Los comentarios que se incluyan deben ser significativos

    Documentación interna:

    • Va incluida dentro del código del programa fuente, por medio de comentarios que ayudan a la comprensión del código.

    • Todas las sentencias comienzan con la sentencia REM o su equivalente el carácter apostrofe ( ").

    El programa en si no los necesita y los ignora. Hace que los programas sean comprensibles.

     

     

     

    Autor:

    Documento cedido por:

    Prof. Félix Bernabé Gutierrez Aguado