Guia2 Programacion

download Guia2 Programacion

of 7

Transcript of Guia2 Programacion

  • 7/30/2019 Guia2 Programacion

    1/7

    Principios de

    1

    ProgramacionGua de trabajo 02

    Universidad Santiago de CaliFacultad de ingenieraProf: Ing. Edwin J. Ortega Z.

    Colombia 2013

  • 7/30/2019 Guia2 Programacion

    2/7

    Algoritmia y ProgramacionIng. Edwin J. Ortega

    Universidad Santiago de CaliMAP02

    2

    Definicin de lenguaje de programacin

    Un programa es un conjunto de rdenes para un computador. Estas rdenes se le deben dar en uncierto lenguaje, que el computador sea capaz de comprender.

    El problema es que los lenguajes que realmente entienden los computadores resultan difciles para

    nosotros, porque son muy distintos de los que nosotros empleamos habitualmente para hablar.

    Escribir programas en el lenguaje que utiliza internamente

    el computador (llamado lenguaje mquina o cdigo

    maquina) es un trabajo duro, tanto a la hora de crear el

    programa como (especialmente) en el momento de corregir

    algn fallo o mejorar lo que se hizo.

    Por eso, en la prctica se emplean lenguajes mas parecidos

    al lenguaje humano, llamados lenguajes de programacin.

    Normalmente, estos son muy parecidos al idioma ingles,

    aunque siguen unas reglas mucho ms estrictas. Existen

    lenguajes de programacin de alto y de bajo nivel los cuales

    se definen a continuacin.

    Lenguajes de bajo nivel

    Se llaman de bajo nivel porque estn muy cercanos al hardware del computador. Es necesario

    conocer a fondo la arquitectura de la maquina para la que se va a programar.

    El primer lenguaje de este tipo que se utiliz fue el lenguaje mquina, que consiste en un conjunto

    de instrucciones en binario, es decir, con ceros y unos, con los cuales se indica al computador qu

    hacer. Este lenguaje es muy complicado y la posibilidad de cometer errores es muy alta, por lo que

    ya no se utiliza.

    Para solventar estas dificultades apareci el lenguaje ensamblador, que consiste en asignar una

    abreviatura a cada instruccin en binario, de forma que sea ms fcil recordarla y ms difcil

    equivocarse. Sin embargo, con este lenguaje sigue siendo necesario conocer muy bien el hardware

    del computador.

    Lenguajes de alto nivel

    Los lenguajes de alto nivel suelen utilizar trminos ingleses del tipo LIST, PRINT u OPEN como

    comandos que representan una secuencia de decenas o de centenas de instrucciones en lenguaje

    mquina. Los comandos se introducen desde el teclado, desde un programa residente en la memoria

    o desde un dispositivo de almacenamiento, y son interceptados por un programa que los traduce a

    instrucciones en lenguaje mquina.

    Los programas traductores son de dos tipos: intrpretes y compiladores. Con un intrprete, los

    programas que repiten un ciclo para volver a ejecutar parte de sus instrucciones, reinterpretan la

  • 7/30/2019 Guia2 Programacion

    3/7

    Algoritmia y ProgramacionIng. Edwin J. Ortega

    Universidad Santiago de CaliMAP02

    3

    misma instruccin cada vez que aparece. Por consiguiente, los programas interpretados se ejecutan

    con mucha mayor lentitud que los programas en lenguaje mquina. Por el contrario, los

    compiladores traducen un programa ntegro a lenguaje mquina antes de su ejecucin, por lo cual se

    ejecutan con tanta rapidez como si hubiesen sido escritos directamente en lenguaje mquina.

    Aunque existen centenares de lenguajes informticos y de variantes, hay algunos dignos de

    mencin, como el PASCAL, diseado en un principio como herramienta de enseanza, hoy es uno

    de los lenguajes de microcomputador ms populares; el Logo fue desarrollado para que los nios

    pudieran acceder al mundo de la informtica; el C se utiliza ampliamente en el desarrollo de

    programas de sistemas, al igual que su sucesor, el C++. El LISP y el PROLOG han alcanzado

    amplia difusin en el campo de la inteligencia artificial.

    Ensambladores, compiladores e intrpretes

    Las rdenes que nosotros hemos escrito (lo que se conoce

    como programa fuente) deben convertirse a lo que el

    computador comprende (obteniendo el programa

    ejecutable).

    Si elegimos un lenguaje de bajo nivel, como el

    ensamblador (en ingls Assembly, abreviado como Asm),

    la traduccin es sencilla, y de hacer esa traduccin se

    encargan unas herramientas llamadas ensambladores (en

    ingls Assembler).

    Cuando el lenguaje que hemos empleado es de alto nivel,

    la traduccin es ms complicada, y a veces implicar

    tambin recopilar varias fuentes distintas o incluir posibilidades que se encuentran en bibliotecas

    que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los compiladores.

    El programa ejecutable obtenido con el

    compilador o el ensamblador se podra

    hacer funcionar en otro computador

    similar al que habamos utilizado para

    crearlo, sin necesidad de que ese otro

    computador tenga instalado el

    compilador o el ensamblador.

    Por ejemplo, en el caso de Windows (y

    de MsDos), y del programa que nos

    saluda en lenguaje Pascal, tendramos

    un fichero fuente llamado

    SALUDO.PAS. Este fichero no servira

    de nada en un computador que no

  • 7/30/2019 Guia2 Programacion

    4/7

    Algoritmia y ProgramacionIng. Edwin J. Ortega

    Universidad Santiago de CaliMAP02

    4

    tuviera un compilador de Pascal. En cambio, despus de compilarlo obtendramos un fichero

    SALUDO.EXE, capaz de funcionar en cualquier otro computador que tuviera el mismo sistema

    operativo, aunque no tenga un compilador de Pascal instalado.

    Un intrprete es una herramienta parecida a un compilador, con la diferencia de que en los

    intrpretes no se crea ningn programa ejecutable capaz de funcionar por s solo, de modo que

    si queremos distribuir nuestro programa a alguien, deberemos entregarle el programa fuente y

    tambin el intrprete que es capaz de entenderlo, o no le servir de nada. Cuando ponemos el

    programa en funcionamiento, el intrprete de encarga de convertir el programa en lenguaje de alto

    nivel a cdigo mquina, orden por orden, justo en el momento en que hay que procesar cada una de

    las rdenes.

    Para algunos lenguajes, es frecuente encontrar compiladores pero no suele existir intrpretes. Es el

    caso del lenguaje C, de Pascal y de C++, por ejemplo. En cambio, para otros lenguajes, lo habitual

    es trabajar con intrpretes y no con compiladores, como ocurre con Python, Ruby y PHP.

    Adems, hoy en da existe algo que parece intermedio entre un compilador y un intrprete: Existen

    lenguajes que no se compilan para obtener un ejecutable para un computador concreto, sino un

    ejecutable genrico, que es capaz de funcionar en distintos tipos de computadores, a condicin de

    que en ese computador exista una mquina virtual capaz de entender esos ejecutables genricos.

    Esta es la idea que se aplica en Java: los fuentes son ficheros de texto, con extensin .java, que se

    compilan a ficheros .class. Estos ficheros .class se podran llevar a cualquier computador que

    tenga instalada una mquina virtual Java (las hay para la mayora de sistemas operativos). Esta

    misma idea se sigue en el lenguaje C#, que se apoya en una mquina virtual llamada Dot Net

    Framework (algo as como armazn punto net).

    Diagramas de flujo

    Los diagramas de flujo son una manera de representar visualmente el flujo de datos a travz de

    sistemas de tratamiento de informacin. Los diagramas de flujo describen que operacines y en que

    secuencia se requieren para solucionar un problema dado.

    Un diagrama de flujo u organigrama es una representacin diagramtica que ilustra la secuencia de

    las operaciones que se realizarn para conseguir la solucin de un problema. Los diagramas de flujo

    se dibujan generalmente antes de comenzar a programar el cdigo frente a la computadora. Los

    diagramas de flujo facilitan la comunicacin entre los programadores y la gente del negocio. Estos

    diagramas de flujo desempean un papel vital en la programacin de un problema y facilitan lacomprensin de problemas complicados y sobre todo muy largos. Una vez que se dibuja el

    diagrama de flujo, llega a ser fcil escribr el programa en cualquier idima de alto nivel. Vemos a

    menudo cmo los diagramas de flujo nos dan ventaja al momento de explicar el programa a otros.

    Por lo tanto, est correcto decir que un diagrama de flujo es una necesidad para la documentacin

    mejor de un programa complejo.

  • 7/30/2019 Guia2 Programacion

    5/7

    Algoritmia y ProgramacionIng. Edwin J. Ortega

    Universidad Santiago de CaliMAP02

    5

    Reglas para dibujar un diagramas de flujo.

    Los Diagramas de flujo se dibujan generalmente usando algunos smbolos estndares; sin embargo,

    algunos smbolos especiales pueden tambin ser desarrollados cuando san requeridos. Algunossmbolos estndares, que se requieren con frecuencia para diagramar programas de computadora se

    muestran a continuacin:

    Inicio o fin del programa

    Pasos, procesos o lneas de instruccion de programa de

    computo

    Operaciones de entrada y salida

    Toma de desicines y Ramificacin

    Lneas de flujo

    Simbolos grficos

    Dentro de los simbolos fundamentales para la creaacin de diagramas de flujo, los smbolos

    grficos son utilizdos especificamente para para operacines aritmticas y relacines

    condicionales. La siguiente es una lista de los smbolos ms comunmente utilizados:

    + Sumar Mayor oigual que

    - Menos Menor o

    igual que

    * Multiplicacin o Diferentede

    / Divisin Si

    Mas o menos No

    = Equivalente a True

    > Mayor que False

    < Menor que

  • 7/30/2019 Guia2 Programacion

    6/7

    Algoritmia y ProgramacionIng. Edwin J. Ortega

    Universidad Santiago de CaliMAP02

    6

    Reglas para la creacion de Diagramas

    1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.

    2. Los smbolos se unen con lneas, las cuales tienen en la punta una flecha que indica ladireccin que fluye la informacin procesos, se deben de utilizar solamente lneas de flujo

    horizontal o verticales (nunca diagonales).

    3. Se debe evitar el cruce de lneas, para lo cual se quisiera separar el flujo del diagrama a un

    sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo

    se vana utilizar conectores cuando sea estrictamente necesario.

    4. No deben quedar lneas de flujo sin conectar

    5. Todo texto escrito dentro de un smbolo debe ser legible, preciso, evitando el uso de

    muchas palabras.

    6. Todos los smbolos pueden tener ms de una lnea de entrada, a excepcin del smbolo

    final.

    7. Solo los smbolos de decisin pueden y deben tener mas de una lnea de flujo de salida.

    Pseudocdigo

    A pesar de que los lenguajes de alto nivel se acercan al lenguaje natural, que nosotros empleamos,

    es habitual no usar ningn lenguaje de programacin concreto cuando queremos plantear los pasos

    necesarios para resolver un problema, sino emplear un lenguaje de programacin ficticio, no tan

    estricto, muchas veces escrito incluso en espaol. Este lenguaje recibe el nombre de pseudocdigo.

    Esa secuencia de pasos para resolver un problema es lo que se conoce como algoritmo (realmente

    hay alguna condicin ms, por ejemplo, debe ser un nmero finito de pasos). Por tanto, unprograma de computador es un algoritmo expresado en un lenguaje de programacin.

    Por ejemplo, un algoritmo que controlase los pagos que se realizan en una tienda con tarjeta de

    debito, escrito en pseudocdigo, podra ser:

    Leer banda magntica de la tarjeta

    Conectar con central de cobros

    Si hay conexin y la tarjeta es correcta:

    Pedir cdigo PIN

    Si el PIN es correcto

    Comprobar saldo_existente

    Si saldo_existente > importe_compraAceptar la venta

    Descontar importe del saldo.

    Sino

    Escribir mensaje de saldo insuficiente

    Fin Si

    Fin Si

    Fin Si

  • 7/30/2019 Guia2 Programacion

    7/7

    Algoritmia y ProgramacionIng. Edwin J. Ortega

    Universidad Santiago de CaliMAP02

    7

    Ejercicios propuestos

    1. Mejorar el seudocdigo del ejemplo de la tarjeta de debito para que envi un mensaje

    de error cuando el pin es incorrecto, cuente la cantidad de intentos y bloquee la tarjeta

    cuando pase de 4 intentos fallidos.

    2. Realice un programa en seudocdigo que describa el funcionamiento de una lavadora

    de ropa.

    3. Realice un programa en seudocdigo que tome dos nmeros por teclado, y me permita

    elegir entre sumarlos, restarlos y multiplicarlos; mostrando el resultado en pantalla.

    4. Indique cual es el resultado del siguiente diagrama de flujo.