Programacion Unidad 2.Pptx

Embed Size (px)

Citation preview

  • 8/18/2019 Programacion Unidad 2.Pptx

    1/12

    Tecnológico Nacional de México

    Instituto Tecnológico de San Luis Potosí

    Programación BásicaProf. José Luis ue!ara Lomelí

    “Diseño de

    Algoritmos”ru"o #$%&ui"o #'(umada Lárraga 'lan )*ed

    Lárraga +lores )smar 'le,andro

    Menc(aca -amarrón icardo

    Ing. Mecatrónica

    /0 Semestre

    Soledad de raciano Sánc(e12 S.L.P. a // de +e*rero de /3#4 

  • 8/18/2019 Programacion Unidad 2.Pptx

    2/12

    2.1 Conceptos básicos

    Algoritmo

    Conjunto ordenado de operaciones sistemáticas que permite hacer un cálculo y hallar la

    solución de un tipo de problemas.

    Constituye una lista completa de pasos secuenciales y una descripción de datos

    necesarios para resolver un determinado problema.

    • Una lista de pasos secuenciales que deben ser ejecutados.• Una descripción de datos que son manipulados por estos pasos.

    Características del Algoritmo:

    • Una descripción de acciones que deben ser ejecutadas !asossecuenciales".

    Una descripción de los datos que son manipulados por estas acciones#structuras de datos".• Un algoritmo debe ser preciso indicando el orden de reali$ación de cada

    paso.•  %odo algoritmo debe ser &nito. 'i se sigue un algoritmo este debe

    terminar en alg(n momento.• Un algoritmo debe estar de&nido. 'i se sigue un algoritmo dos )eces se

    debe obtener el mismo resultado.• Un algoritmo puede tener o no datos de entrada.• Un algoritmo producirá uno o más datos de salida.• *os datos de entrada + salida deben almacenarse en )ariables.

    • #l resultado que se obtenga debe satis,acer los requerimientos de lapersona interesada e,ecti)idad".

    • Debe ser estructurado. #s decir- debe ser ,ácil de leer- entender- usar +cambiar si es preciso.

    Herramientas para el diseño de algoritmos.

    'e dispone de di)ersas erramientas para a+udar a los programadores adesarrollar los algoritmos.

  • 8/18/2019 Programacion Unidad 2.Pptx

    3/12

    DIAGRAMA DE FLU! 

    #s una erramienta que mediante el empleo de s/mbolos especiali$ados +l/neas de 0ujo- nos permite ilustrar el 0ujo lógico de pasos + datos de unalgoritmo.

    "#EUD!C$DIG!

    Un pseudocódigo permite epresar un algoritmo con palabras en castellanoque son semejantes a las instrucciones de un lenguaje de programación.

  • 8/18/2019 Programacion Unidad 2.Pptx

    4/12

    "R!GRAMACI$%

    *a programación es la traducción de los algoritmos en sentencias que lacomputadora puede comprender + ejecutar.

    #n trmino sencillo es la acción de escribir programas para una computadorautili$ando alguno de los lenguajes de programación eistentes.

    E#&RUC&URA# DE DA&!#

    'on aquellas estructuras que nos permitirán almacenar los datos a serprocesados.

    Son un medio para manejar grandes cantidades de datos de manera eficiente.

    E#&RUC&URA# L!GICA#

    'on aquellas estructuras que no permitirán manipular los datos almacenadosen las estructuras de datos.

    2.2 3etodolog/a de la !rogramación

    Los investigadores en los años sesenta demostraron que los programas podían ser

    escritos utiliando tres estructuras de control!

    • La estructura secuencial define el flujo de control predeterminado de un programa.

    "ormalmente# esta estructura está integrada en los lenguajes de programación. $

    menos que se indique lo contrario# una computadora ejecuta líneas de código en el

    orden en el que fueron escritas.

    • Las estructuras de selección utilian construcciones de un flujo de programa

    especial llamadas declaraciones condicionales. %na declaración condicional

    simplemente es una prueba que determina lo que hará a continuación el

    programa. &ste tipo de prueba normalmente solo proporcionara dos resultados#

    verdadero o falso. Si la condición es verdadera# se ejecutaran ciertas líneas de

    código# si es falsa no se ejecutaran esas líneas de código.

    • Las estructuras de repetición están basadas en construcciones llamadas bucles.

    %n bucle es un fragmento de código que se repite una y otra ve hasta que alguna

    condición se cumpla.

  • 8/18/2019 Programacion Unidad 2.Pptx

    5/12

    &n una estructura de repetición# el programa revisa una declaración de condición y

    ejecuta un bucle basándose en la condición. Cuando la condición es verdadera

    entonces se repite uno o más comandos hasta que la condición es falsa.

    Análisis- desarrollo e implementación de un algoritmoA la ora de resol)er un problema mediante la utili$ación de un ordenador nose debe codi&car directamente el programa en un lenguaje dado4 si elproblema es complejo resulta mu+ di,/cil escribir un programa en un (nicopaso.

    5ases6

    • Análisis• Diseño• Codi&cación• 7eri&cación

    5ase de Análisis'e trata de comprender la naturale$a del problema + no de buscar una ,ormade resol)erlo6

    • 8ue datos precisan ser introducidos para obtener la solución• #n qu consistirá dica solución• 8ue errores puede presentar• 8ue datos tendrá que o,recer

    5ase de diseño'e busca una ,orma de resol)er el problema- es decir un algoritmo con dostipos de diseño- de arriba9abajo o abajo9arriba6

  • 8/18/2019 Programacion Unidad 2.Pptx

    6/12

    Diseño descendente- Arriba9abajo6 #ste mtodo consiste en resol)er elproblema mediante una aproimación con distintos ni)eles de abstracción

    Diseño ascendente- Abajo9Arriba6 A la in)ersa- se resuel)en los problemasmenores- + las soluciones se integran para dar lugar a la solución del problema

    2.: Diagrama de 0ujo

    Un diagrama de 0ujo es una ,orma esquemática de representar ideas +conceptos en relación. A menudo- se utili$a para especi&car algoritmos demanera grá&ca.

    'e conoce como diagramas de 0ujo a aquellos grá&cos representati)os que seutili$an para esquemati$ar conceptos )inculados a la programación- la

    econom/a- los procesos tcnicos +;o tecnológicos- la psicolog/a- la educación +casi cualquier temática de análisis.

    *os diagramas de 0ujo son m(ltiples + di)ersos + pueden abordar mucostemas distintos de ,ormas tambin mu+ di,erentes. #n cualquier caso- elaspecto en com(n entre ellos es la presencia de un )/nculo entre los conceptosenunciados + una interrelación entre las ideas. Com(nmente- se utili$a estetipo de diagramas para detallar el proceso de un algoritmo +- as/- se )ale dedistintos s/mbolos para representar la tra+ectoria de operaciones precisas a

    tra)s de 0ecas. 'iempre que eiste un diagrama de 0ujo eiste un proceso osistema que pretende ser gra&cado a tra)s de s/mbolos )isuales que- en )e$de trminos )erbales- simpli&can el ,uncionamiento de dico proceso + loacen más claro + e)idente al lector.

    !ara que el diagrama de 0ujo tenga sentido como tal- debe eistir un caminoacia una solución que parte de un (nico inicio + arriba a un (nico punto &nal.Con el propósito de desarrollar un diagrama de estas caracter/sticas- serecomienda de&nir el propósito + destinatario del grá&co- identi&car las ideasprincipales- determinar los l/mites + alcance del proceso a detallar- establecer

    el ni)el de detalle requerido- identi&car acciones- procesos + subprocesos-construir el diagrama + &nalmente titularlo con eactitud. Con)iene re)isar eldiagrama para comprobar que cumple su objeti)o con claridad + precisión.

  • 8/18/2019 Programacion Unidad 2.Pptx

    7/12

    *os s/mbolos más utili$ados en los diagramas de 0ujo son la 0eca que indicasentido + tra+ectoria"- el rectángulo representa un e)ento o proceso"- el rombo

    una condición"- el c/rculo un punto de coneión" + otros.

    Además- eisten di)ersos tipos de diagramas. #l )ertical- en el que la secuenciao 0ujo es de arriba acia abajo4 el ori$ontal- de i$quierda a dereca4 elpanorámico- puede apreciarse de una )e$ + de ,orma tanto )ertical comoori$ontal4 el arquitectónico- describe una ruta sobre un plano arquitectónicode trabajo.

  • 8/18/2019 Programacion Unidad 2.Pptx

    8/12

    2.< !seudocódigo

    De'nici(n

    #l pseudocódigo o ,also lenguaje" es com(nmente utili$ado por losprogramadores para omitir secciones de código o para dar una eplicación delparadigma que tomó el mismo programador para acer sus códigos- estoquiere decir que el pseudocódigo no es programable sino ,acilita laprogramación.

    #l principal objeti)o del pseudocódigo es el de representar la solución a unalgoritmo de la ,orma más detallada posible- + a su )e$ lo más parecida posibleal lenguaje que posteriormente se utili$ará para la codi&cación del mismo.

    #l pseudocódigo utili$a para representar las acciones sucesi)as palabrasreser)adas en ingls similares a sus omónimos en los lenguajes de

  • 8/18/2019 Programacion Unidad 2.Pptx

    9/12

    programación"- tales como star-begin- end- stop- i,9ten9else- =ile- repeat9until>.etc

    #s un lenguaje de especi&cación de algoritmos. #l uso de tal lenguaje ace elpaso de codi&cación &nal esto es- la traducción a un lenguaje deprogramación" relati)amente ,ácil.

    #l pseudocódigo nació como un lenguaje similar al ingls + era un mediorepresentar básicamente las estructuras de control de programaciónestructurada. 'e considera un primer borrador- dado que el pseudocódigo tieneque traducirse posteriormente a un lenguaje de programación. Cabe señalarque el pseudocódigo no puede ser ejecutado por una computadora.

    'eg(n Anal/a *an$illotta6 "Considerado como un lenguaje falso, el pseudocódigo es un lenguaje intermedio entre nuestro lenguaje y el de

     programación, debido a que quien lo utiliza se guía por una serie de normas

     pero sin llegar a usar una estructura tan rígida como la del lenguaje de

     programación.

    El objetivo al que apunta es que quien lo pone en práctica se centre más en la

    solución del algoritmo o el diseo de un soft!are que en el programa que

    utiliza para crearlo. esto es posible porque es más fácil de manipular ya que

    no tiene que tener en mente el lenguaje en sí y además, más fácil de codi#car.

    $or ejemplo, si alguien tiene que %acer un soft!are con un #n determinado,utiliza un pseudocódigo propio en donde con&uyen frases del lenguaje

    coloquial y algunas palabras de programación, y una vez que se logra

    concretar el soft!are, se puede pasar al escalón siguiente que es el de la

    transformación al lenguaje de programación formal que se vaya a utilizar.

    'e esta manera, al ser un lenguaje intermedio, no tiene una composición

    estandarizada por lo que no todos los programadores utilizan la misma sinta(is

    con e(actitud. $ero a la vez, como es una %erramienta que está un paso previo

    al lenguaje formal de programación, es fácil de transformar al que será

    ejecutado en la computadora.

  • 8/18/2019 Programacion Unidad 2.Pptx

    10/12

    REGLA# DE C!%#&RUCCI$%

    CA?AC%#?@'%CA' B !A?%#'6

    *as principales caracter/sticas de este lenguaje son6 'e puede ejecutar en unordenador #s una ,orma de representación sencilla de utili$ar + de manipular. 5acilita el paso del programa al lenguaje de programación. #s independientedel lenguaje de programación que se )a+a a utili$ar. #s un mtodo que ,acilitala programación + solución al algoritmo del programa. %odo documento enpseudocódigo debe permitir la descripción de6 nstrucciones primiti)as. nstrucciones de proceso. nstrucciones de control. nstruccionescompuestas. nstrucciones de descripción. #structura a seguir en sureali$ación6 Cabecera. !rograma. 3odulo. %ipos de datos. Constantes. 7ariables. Cuerpo. nicio. nstrucciones. 5in.

    LI#&A DE "ALA)RA# RE#ER*ADA# + #U #IG%IFICAD!:

    Instr,cci(n #igni'cado

    algoritmo nombre 3arca el comien$o de un algoritmo + leadjudica un nombre

    nicio 3arca el comien$o de un bloque deinstrucciones

    &n 3arca el &nal de un bloque deinstrucciones

    )ariables

    nombre)ar es tipodedatos Declaración de )ariables. ndica elidenti&cador + el tipo de las )ariablesque se )an a usar en el algoritmo

    constantes

    nombreconst E epresión Declaración de constantes. *a epresiónse e)al(a + su resultado se asigna a laconstante. #ste )alor no puedemodi&carse a lo largo del programa.

    leer )ariable" #ntrada de datos. #l programa lee undato desde un dispositi)o de entrada sino se indica otra cosa- el teclado"-asignando ese dato a la )ariable

  • 8/18/2019 Programacion Unidad 2.Pptx

    11/12

     

    escribir )ariable" 'alida de datos. 'ir)e para que elprograma escriba un dato en undispositi)o de salida si no se indica otracosa- la pantalla".

    )ariable E epresión Asignación. *a epresión se e)al(a + suresultado es asignado a la )ariable

    si condición" entonces

    inicio

    acciones91

    &n

    sino

    inicio

    acciones92

    &n

    nstrucción condicional doble. #lordenador e)aluará la condición- quedebe ser una epresión lógica. 'i es)erdadera- reali$a las acciones91- +- si es,alsa- las acciones92.nstruccióncondicional simple. #s igual pero carecede la rama “sino”- de modo que- si laepresión de ,alsa- no se reali$a ningunaacción + la ejecución contin(a por lasiguiente instrucción

    seg(n epresión" acer

    inicio

    )alor16 acciones91)alor26 acciones92

    >

    )alor:6 acciones9F

    sino6 acciones9sino

    &n

    nstrucción condicional m(ltiple. 'eutili$a cuando a+ más de doscondiciones posibles )erdadero o,also" . 'e e)al(a la epresión- que sueleser de tipo entero- + se busca un )aloren la lista )alor1- )alor2-> )alorF quecoincida con ella- reali$ándose lasacciones asociadas al )alorcoincidente.'i ning(n )alor de la listacoincide con la epresión del “seg(n”- sereali$an las acciones de la parte “sino”.

    mientras condición" acer

    inicio

    acciones

    &n

    Gucle mientras. *as acciones se repitenen tanto la condición- que debe ser unaepresión lógica- sea )erdadera. *acondición se e)al(a antes de entrar albloque de acciones- de modo quepueden no ejecutarse ninguna )e$.

  • 8/18/2019 Programacion Unidad 2.Pptx

    12/12

    repetir

    inicio

    acciones

    &n

    mientras que condición"

    Gucle repetir. *as acciones se repiten entanto que la condición- que debe ser unaepresión lógica- sea )erdadera. 'eparece muco al anterior- pero lacondición se e)al(a al &nal del bucle- por

    lo que ste se ejecuta- como m/nimo-una )e$

    para )ariable desde epr9ini asta epr9&n acer

     inicio

     acciones

     &n

    Gucle para. 'e e)al(a la epresión epr9ini- que debe ser de tipo entero- + seasigna ese )alor a la )ariable. Dica)ariable se incrementa en una unidad encada repetición de las acciones. *asacciones se repiten asta que la )ariablealcan$a el )alor epr9&n.