conceptos1-1.pdf

30
APUNTES NOMBRE DE LA ASIGNATURA INTRODUCCION A LA INFORMATICA FUNDAMENTOS DE PROGRAMACION CARRERA INGENIERIA INFORMATICA INGENIERIA EN SISTEMAS INGENIERIA EN REDES Y TELECOMUNICACIONES PERIODO DE ELABORACION 2014 ELABORADO POR ING. MARIO MILTON LOPEZ WINNIPEG ING. JUAN CARLOS CONTRERAS VILLEGAS ING. RICARDO ZUNA VILLAGOMEZ. FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNCIACIONES

Upload: nelsitoturomeo

Post on 06-Sep-2015

14 views

Category:

Documents


0 download

TRANSCRIPT

  • APUNTES

    NOMBRE DE LA ASIGNATURA

    INTRODUCCION A LA INFORMATICA

    FUNDAMENTOS DE PROGRAMACION

    CARRERA

    INGENIERIA INFORMATICA

    INGENIERIA EN SISTEMAS

    INGENIERIA EN REDES Y TELECOMUNICACIONES

    PERIODO DE ELABORACION

    2014

    ELABORADO POR

    ING. MARIO MILTON LOPEZ WINNIPEG

    ING. JUAN CARLOS CONTRERAS VILLEGAS

    ING. RICARDO ZUNA VILLAGOMEZ.

    FACULTAD DE

    INGENIERIA EN CIENCIAS

    DE LA COMPUTACION Y

    TELECOMUNCIACIONES

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    1

    INDICE DE CONTENIDO

    INTRODUCCION

    I FUNDAMENTOS DE PROGRAMACION

    1.1 Conceptos Bsicos 1.1.1 Introduccin 1.1.2 Definicin de Software 1.1.3 Definicin de lenguaje 1.1.4 Definicin de algoritmo 1.1.5 Tipos de Algoritmos 1.1.6 Definicin de lenguajes algortmicos

    1.2 Metodologa para la solucin de problemas 1.2.1 Anlisis 1.2.2 Diseo 1.2.3 Implementacin 1.2.4 Prueba 1.2.5 Mantenimiento 1.2.6 Documentacin

    1.3 Mtodos de programacin 1.3.1 Programacin libre 1.3.2 Programacin Estructurada 1.3.3 Programacin Modular 1.3.4 Programacin Orientada a Objetos 1.3.5 Programacin Orientada a Eventos

    1.4 Tcnicas de programacin.. 1.4.1 Divide y vencers 1.4.2 Top-Down / Bottom-Up 1.4.3 Otras Tcnicas

    1.5 Elementos de programacin.

    1.5.1 Identificadores

    1.5.2 Constantes

    1.5.3 Variables

    1.5.4 Tipos de datos

    1.5.5 Operadores

    1.5.6 Expresiones

    1.5.7 Conversiones entre tipos de Datos

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    2

    INTRODUCCION

    El desarrollo de soluciones a problemas usando el computador es un tema

    fundamental por lo cual el estudiante debe tener buenas bases que le sirvan para poder

    desarrollar de manera fcil y rpida sus soluciones.

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    3

    CAPITULO 1.1

    CONCEPTOS BSICOS

    1.1.1 Introduccin 1.1.2 Definicin de Software 1.1.3 Definicin de lenguaje

    1.1.4 Definicin de algoritmo

    1.1.5 Tipos de Algoritmos

    1.1.6 Lenguajes algortmicos

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    4

    1.1.1 Introduccin

    Los computadores han dado a la ciencia y la tecnologa la mejor herramienta jams

    desarrolladas para canalizar las fuerzas de la naturaleza en beneficio del hombre. La razn

    es simple. El computador es algo ms que un prodigio de informacin y anlisis. Este

    nunca olvida la informacin que ha recibido. Con el tiempo, este aprendi a recibir

    instrucciones orales y produce informes tanto en forma escrita como hablada.

    El diseo de soluciones a la medida de nuestros problemas, requiere como en otras

    disciplinas una metodologa que nos ensee de manera gradual, la forma de llegar a estas

    soluciones.

    A las soluciones creadas por computadora se les conoce como programas y no son

    ms que una serie de operaciones que realiza la computadora para llegar a un resultado, con

    un grupo de datos especficos. Lo anterior nos lleva al razonamiento de que un programa

    nos sirve para solucionar un problema especfico.

    Para poder realizar programas, adems de conocer la metodologa mencionada,

    tambin debemos de conocer, de manera especfica las funciones que pueden realizar la

    computadora y las formas en que se pueden manejar los elementos que hay en la misma.

    Computadora: Es un dispositivo electrnico utilizado para procesar informacin y obtener

    resultados. Los datos y la informacin se pueden introducir en la computadora como

    entrada (input) y a continuacin se procesan para producir una salida (output).

    Proceso de informacin en la computadora

    Datos de Proceso Datos de

    entrada salida

    Programa: Es el conjunto de instrucciones escritas de algn lenguaje de programacin y

    que ejecutadas secuencialmente resuelven un problema especfico.

    Organizacin fsica de una computadora y residencia de programa

    CPU

    Unida de Unidad

    Dispositivos de Control Arit.-Log. Dispositivos de

    Entrada Salida

    Memoria

    Programa

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    5

    1.1.2 Definicin de Software El software es una palabra que proviene del idioma ingls, pero que gracias a la

    masificacin de uso, ha sido aceptada por la Real Academia Espaola. Segn la RAE, el

    software es un conjunto de programas, instrucciones y reglas informticas que permiten

    ejecutar distintas tareas en una computadora.

    Se considera que el software es el equipamiento lgico e intangible de un ordenador. En

    otras palabras, el concepto de software abarca a todas las aplicaciones informticas, como

    los procesadores de textos, las planillas de clculo y los editores de imgenes

    Software de Base Es toda aquella parte lgica generalmente realizada por cada fabricante de computadoras o

    casas especializadas en desarrollo de software. Es el conjunto de programas que tiene por

    funcin coordinar las diversas partes del sistema computacional para hacerlo funcionar

    rpida y eficazmente, actuando como mediador entre los programas de aplicacin y el

    hardware del sistema. Interpretando los requerimientos de cada programa que ingresa al

    sistema, poniendo a su disposicin cualquiera de los recursos que necesite(ya ser

    hardware, software o datos) para producir los resultados deseados.

    Debido a la estrecha relacin que existe entre un computador y su software de base, no se

    puede concebir el uno sin el otro a tal punto que pareciera que el software es parte

    integrante del hardware.

    Software de Aplicacin Conjunto de programas concebidos o creados para atender trabajos especficos del usuario,

    los mismos pueden cumplir diversos objetivos, satisfaciendo las necesidades en forma

    parcial o total, pudiendo cumplir a si mismo estndares o mtricas que se puedan haber

    definido para los mismos.

    Como ejemplo tenemos los sistemas de contabilidad, planillas , ventas ..etc.

    En general este tipo de software requiere servicios del software de base para poder

    ejecutarse en el computador, en los casos que se diseen.

    Sin embargo existe la posibilidad de que sean ejecutados sin software de base, hecho que

    puede acarrear gran complejidad en el desarrollo de los mismos.

    Los sistemas de aplicacin pueden ser:

    Confeccionados especialmente para un usuario determinado

    Pre- planeados (enlatados )

    Software de Desarrollo Una herramienta de programacin o herramienta de desarrollo de software es un programa

    o aplicacin que los desarrolladores de software utilizan para crear, depurar, mantener,

    otros programas y aplicaciones. El trmino usualmente se refiere a programas relativamente

    simples que pueden ser combinados para realizar una tarea.

    http://www.rae.es/
  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    6

    1.1.3 Definicin de Lenguaje

    Lenguaje: Es una serie de smbolos que sirven para transmitir uno o mas mensajes (ideas)

    entre dos entidades diferentes. A la transmisin de mensajes se le conoce comnmente

    como comunicacin.

    Lenguajes de Programacin

    Es un conjunto de smbolos, caracteres y reglas (programas) que le permiten a las

    personas comunicarse con la computadora.

    Los lenguajes de programacin tienen un conjunto de instrucciones que nos

    permiten realizar operaciones de entrada/salida, calculo, manipulacin de textos,

    lgica/comparacin y almacenamiento/recuperacin.

    Los lenguajes de programacin se clasifican en:

    Lenguaje Maquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traduccin posterior para que la CPU pueda comprender

    y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en trminos de

    la unidad de memoria mas pequea el bit (dgito binario 0 o 1).

    Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en cdigos alfabticos conocidos como mnemotcnicos para las operaciones y direcciones

    simblicas.

    Lenguaje de Alto Nivel: Los lenguajes de programacin de alto nivel (BASIC, pascal, cobol, fortran, etc.) son aquellos en los que las instrucciones o sentencias a la computadora

    son escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que

    facilita la escritura y comprensin del programa.

    1.1.4 Definicin de Algoritmo

    La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe

    alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre

    manipulacin de nmeros y ecuaciones en el siglo IX.

    Un algoritmo es sencillamente un procedimiento preciso y sin ambigedades para la

    solucin del problema. Este determina la secuencia de operaciones con las cuales se obtiene

    la solucin en un nmero finito de pasos. Dicho de otra forma el algoritmo representa la

    lgica requerida para la obtencin de la solucin a un problema

    1.1.5 Tipos de Algoritmos

    Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras. Cuantitativos: Son aquellos en los que se utilizan clculos numricos para definir los pasos del proceso.

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    7

    1.1.6 Lenguajes Algortmicos

    Es una serie de smbolos y reglas que se utilizan para describir de manera explcita

    un proceso.

    Tipos de Lenguajes Algortmicos

    Grficos: Es la representacin grfica de las operaciones que realiza un algoritmo (diagrama de flujo).

    No Grficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (seudocdigo).

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    8

    CAPITULO 1.2

    METODOLOGIA PARA LA SOLUCION DE

    PROBLEMAS.

    1.2.1 Anlisis

    1.2.2 Diseo

    1.2.3 Implementacin

    1.2.4 Prueba

    1.2.5 Mantenimiento

    1.2.6 Documentacin

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    9

    1.2 Metodologa para la solucin de problemas

    1.2.1 Anlisis

    1.2.1.1 Comprenda el problema

    Esta fase est dada por el enunciado del problema, el cual requiere una definicin clara y

    precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras

    esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.

    1.2.1.2 Determine los requerimientos

    Una vez que se ha comprendido lo que se desea de la computadora, es necesario

    definir:

    Los datos de entrada.

    Cul es la informacin que se desea producir (salida)

    Los mtodos y frmulas que se necesitan para procesar los datos.

    Una recomendacin muy prctica es el que nos pongamos en el lugar de la

    computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia

    para producir los resultados esperados.

    1.2.2 Diseo

    1.2.2.1 Desarrolle el algoritmo Una vez que se entienda completamente el problema, se puede proceder a

    desarrollar en mtodo para su solucin, este mtodo de solucin se encuentra incluido en lo

    que llamaremos un algoritmo. Un algoritmo es sencillamente un procedimiento preciso y

    sin ambigedades para la solucin del problema. Este determina la secuencia de

    operaciones con las cuales se obtiene la solucin en un numero finito de pasos. Dicho de

    otra forma el algoritmo representa la lgica requerida para la obtencin de la solucin a un

    problema

    Las caractersticas que debe cumplir un buen algoritmo son:

    Entrada Tener datos de entrada

    Salida Tener una salida (Resultado)

    Finitud Debe finalizar (No existe algoritmo que no tenga un final)

    Exactitud Debe ser exacto en sus resultados (salida)

    Efectividad Debe solucionar el problema en los pasos necesarios

    1.2.2.2 Represente el algoritmo

    El lenguaje corriente no es un medio satisfactorio para la representacin de un

    algoritmo. El lenguaje en si mismo es por ambiguo por naturaleza y el flujo lgico de

    problemas complejos no puede explicarse fcilmente con palabras. Una tcnica utilizada

    ampliamente para la representacin de algoritmos en la solucin de problemas con

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    10

    computadora es el diagrama de flujo. Por consiguiente, una vez haya sido definido el

    problema y haya sido desarrollado el algoritmo, debera dibujarse un diagrama de flujo para

    ilustrar por medio de smbolos la lgica en la solucin del problema. Los diagramas de

    flujo son quizs el mejor mtodo disponible para expresar lo que se desea que hagan las

    computadoras. Estos son simples, fciles de elaborar y de usar y eliminan ambigedades .

    Otra forma de representacin de los algoritmos es denominada seudocdigo que

    consiste en la representacin del algoritmo mediante un lenguaje estructurado.

    1.2.3 Implementacin

    El diagrama de flujo o seudocdigo se utiliza como una gua para la codificacin

    real del programa en un lenguaje de programacin, es una serie de instrucciones detalladas,

    en un cdigo reconocible por la computadora, la serie de instrucciones detalladas se le

    conoce como cdigo fuente, el cual se escribe en un lenguaje de programacin o lenguaje

    de alto nivel.

    1.2.4 Prueba y Depuracin

    Despus de que el programa ha sido escrito en un lenguaje de programacin se debe dar

    instrucciones a la mquina para ejecutar el programa. Si el programa no contiene errores, la

    computadora ejecutara el programa y dar los resultados deseados. Si el programa presenta

    errores, debe buscarse la causa por la cual no corri, hacer las correcciones necesarias y

    correrlo de nuevo. Este es el proceso de correccin(depuracin) del programa. Debe tenerse

    presente, sin embargo, que si el programa se ejecuta y se obtiene resultados impresos, no

    hay ninguna garanta que estos resultados sean correctos. Debe realizarse algn tipo de

    verificacin para asegurarse que los resultados sean correctos

    Los errores humanos dentro de la programacin de computadoras son muchos y aumentan

    considerablemente con la complejidad del problema. El proceso de identificar y eliminar

    errores, para dar paso a una solucin sin errores se le llama depuracin.

    La depuracin o prueba resulta una tarea tan creativa como el mismo desarrollo de

    la solucin, por ello se debe considerar con el mismo inters y entusiasmo.

    1.2.5 Documentacin

    Es la gua o comunicacin escrita es sus variadas formas, ya sea en enunciados,

    procedimientos, dibujos o diagramas.

    A menudo un programa escrito por una persona, es usado por otra. Por ello la

    documentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras

    modificaciones (mantenimiento).

    La documentacin se divide en tres partes:

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    11

    Documentacin Interna

    Documentacin Externa

    Manual del Usuario

    Documentacin Interna: Son los comentarios o mensaje que se aaden al cdigo fuente para hacer mas claro el entendimiento de un proceso.

    Documentacin Externa: Se define en un documento escrito los siguientes puntos:

    Descripcin del Problema

    Nombre del Autor

    Algoritmo (diagrama de flujo o pseudocodigo)

    Diccionario de Datos

    Cdigo Fuente (programa)

    Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el fin de que el usuario obtenga el resultado deseado.

    1.2.6 Mantenimiento

    Se lleva acabo despus de terminado el programa, cuando se detecta que es

    necesario hacer algn cambio, ajuste o complementacin al programa para que siga

    trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa

    este correctamente documentado.

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    12

    CAPITULO 1.3

    METODOS DE PROGRAMACION 1.3.1. Programacin libre 1.3.2 Programacin Estructurada 1.3.3 Programacin Modular 1.3.4 Programacin Orientada a Objetos 1.3.5 Programacin Orientada a Eventos

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    13

    Introduccin

    Un paradigma de programacin es una propuesta tecnolgica que es adoptada por una

    comunidad de programadores cuyo ncleo central es incuestionable en cuanto a que

    nicamente trata de resolver uno o varios problemas claramente delimitados. Es un estilo de

    programacin empleado. La resolucin de estos problemas debe suponer consecuentemente

    un avance significativo en al menos un parmetro que afecte a la ingeniera de software.

    Tiene una estrecha relacin con la formalizacin de determinados lenguajes en su momento

    de definicin. Un paradigma de programacin est delimitado en el tiempo en cuanto a

    aceptacin y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la

    sustituyen parcial o totalmente.

    El paradigma de programacin que actualmente es el ms usado es la orientacin a objetos.

    El ncleo central de este paradigma es la unin de datos y procesamiento en una entidad

    llamada "objeto", relacionable a su vez con otras entidades "objeto"

    Si bien puede seleccionarse la forma pura de estos paradigmas al momento de

    programar, en la prctica es habitual que se mezclen, dando lugar a la programacin

    multiparadigma

    1.3.1 Programacin Libre

    El cdigo espagueti es un trmino peyorativo para los programas de computacin que

    tienen una estructura de control de flujo compleja e incomprensible. Su nombre deriva del

    hecho que este tipo de cdigo parece asemejarse a un plato de espaguetis, es decir, un

    montn de hilos intrincados y anudados.

    Tradicionalmente suele asociarse este estilo de programacin con lenguajes bsicos y

    antiguos, donde el flujo se controlaba mediante sentencias de control muy primitivas

    como goto y utilizando nmeros de lnea. Un ejemplo de lenguaje que invitaba al uso de

    cdigo spaghetti es el QBasic de Microsoft en sus primeras versiones.

    1.3.2 Programacin Estructurada

    La programacin estructurada es un paradigma de programacin orientado a mejorar la

    claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando

    nicamente subrutinas y tres estructuras: secuencia, seleccin (if y switch)

    e iteracin (bucles for y while), considerando innecesario y contraproducente el uso de la

    instruccin de transferencia incondicional (GOTO), que podra conducir a "cdigo

    espagueti", que es mucho ms difcil de seguir y de mantener, y era la causa de

    muchos errores de programacin.

    Surgi en la dcada de 1960, particularmente del trabajo de Bhm y Jacopini,1 y una

    famosa carta, La sentencia goto considerada perjudicial, de Edsger Dijkstra en 19682 y

    http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_multiparadigmahttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_multiparadigmahttp://es.wikipedia.org/wiki/Peyorativohttp://es.wikipedia.org/wiki/Computaci%C3%B3nhttp://es.wikipedia.org/wiki/Diagrama_de_flujohttp://es.wikipedia.org/wiki/C%C3%B3digo_fuentehttp://es.wikipedia.org/wiki/Espaguetishttp://es.wikipedia.org/wiki/Programaci%C3%B3nhttp://es.wikipedia.org/wiki/GOTOhttp://es.wikipedia.org/wiki/QBasichttp://es.wikipedia.org/wiki/Microsofthttp://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Programa_de_computadorahttp://es.wikipedia.org/wiki/Subrutinahttp://es.wikipedia.org/wiki/Bloque_de_c%C3%B3digohttp://es.wikipedia.org/wiki/Iteraci%C3%B3nhttp://es.wikipedia.org/wiki/Bucle_(programaci%C3%B3n)http://es.wikipedia.org/wiki/Bucle_forhttp://es.wikipedia.org/wiki/Bucle_whilehttp://es.wikipedia.org/wiki/Transferencia_incondicionalhttp://es.wikipedia.org/wiki/GOTOhttp://es.wikipedia.org/wiki/C%C3%B3digo_espaguetihttp://es.wikipedia.org/wiki/C%C3%B3digo_espaguetihttp://es.wikipedia.org/wiki/Error_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Corrado_B%C3%B6hmhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructurada#cite_note-1http://es.wikipedia.org/wiki/Edsger_Dijkstrahttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructurada#cite_note-dijkstra1968-2
  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    14

    fue reforzado tericamente por el teorema del programa estructurado, y prcticamente por

    la aparicin de lenguajes como ALGOL con adecuadas y ricas estructuras de control.

    Ventajas de la programacin estructurada comparada con el modelo anterior (hoy llamado

    despectivamente cdigo espagueti).

    Los programas son ms fciles de entender, pueden ser ledos de forma secuencial y

    no hay necesidad de hacer engorrosos seguimientos en saltos de lneas (GOTO)

    dentro de los bloques de cdigo para intentar entender la lgica.

    La estructura de los programas es clara, puesto que las instrucciones estn ms

    ligadas o relacionadas entre s.

    Reduccin del esfuerzo en las pruebas y depuracin. El seguimiento de los fallos o

    errores del programa ("debugging") se facilita debido a su estructura ms sencilla y

    comprensible, por lo que los errores se pueden detectar y corregir ms fcilmente.

    Reduccin de los costos de mantenimiento. Anlogamente a la depuracin, durante

    la fase de mantenimiento, modificar o extender los programas resulta ms fcil.

    Los programas son ms sencillos y ms rpidos de confeccionar.

    Se incrementa el rendimiento de los programadores, comparado con la forma

    anterior que utiliza GOTO.

    1.3.3 Programacin Modular

    La programacin modular es un paradigma de programacin que consiste en dividir un

    programa en mdulos o subprogramas con el fin de hacerlo ms legible y manejable.

    Se presenta histricamente como una evolucin de la programacin estructurada para

    solucionar problemas de programacin ms grandes y complejos de lo que sta puede

    resolver.

    Al aplicar la programacin modular, un problema complejo debe ser dividido en varios

    subproblemas ms simples, y estos a su vez en otros subproblemas ms simples. Esto debe

    hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser

    resueltos fcilmente con algn lenguaje de programacin. sta tcnica se llama

    refinamiento sucesivo, divide y vencers anlisis descendente (Top-Down).

    Un mdulo es cada una de las partes de un programa que resuelve uno de los subproblemas

    en que se divide el problema complejo original. Cada uno de estos mdulos tiene una tarea

    bien definida y algunos necesitan de otros para poder operar. En caso de que un mdulo

    necesite de otro, puede comunicarse con ste mediante una interfaz de comunicacin que

    tambin debe estar bien definida.

    http://es.wikipedia.org/wiki/Teorema_del_programa_estructuradohttp://es.wikipedia.org/wiki/ALGOLhttp://es.wikipedia.org/wiki/Estructuras_de_controlhttp://es.wikipedia.org/wiki/C%C3%B3digo_espaguetihttp://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructuradahttp://es.wikipedia.org/wiki/Algoritmo_divide_y_vencer%C3%A1s
  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    15

    Si bien un mdulo puede entenderse como una parte de un programa en cualquiera de sus

    formas y variados contextos, en la prctica se los suele tomar como sinnimos

    de procedimientos y funciones. Pero no necesaria ni estrictamente un mdulo es una

    funcin o un procedimiento, ya que el mismo puede contener muchos de ellos. No debe

    confundirse el trmino "mdulo" (en el sentido de programacin modular) con trminos

    como "funcin" o "procedimiento", propios del lenguaje que lo soporte.

    1.3.4 Programacin Orientada a Objetos

    La programacin orientada a objetos o POO (OOP segn sus siglas en ingls) es

    un paradigma de programacin que usa los objetos en sus interacciones, para disear

    aplicaciones y programas informticos. Est basado en varias tcnicas,

    incluyendo herencia, cohesin, abstraccin, polimorfismo, acoplamiento yencapsulamiento.

    Los objetos son entidades que tienen un determinado estado, comportamiento

    (mtodo) e identidad:

    El estado est compuesto de datos o informaciones; sern uno o varios atributos a los que se

    habrn asignado unos valores concretos (datos).

    El comportamiento est definido por los mtodos o mensajes a los que sabe responder

    dicho objeto, es decir, qu operaciones se pueden realizar con l.

    La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con otras

    palabras, es su identificador (concepto anlogo al de identificador de una variable o

    una constante).

    Un objeto contiene toda la informacin que permite definirlo e identificarlo frente a otros

    objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder

    tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de

    mecanismos de interaccin llamados mtodos, que favorecen la comunicacin entre ellos.

    Esta comunicacin favorece a su vez el cambio de estado en los propios objetos. Esta

    caracterstica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado

    y el comportamiento.

    Los mtodos (comportamiento) y atributos (estado) estn estrechamente relacionados por la

    propiedad de conjunto. Esta propiedad destaca que una clase requiere de mtodos para

    poder tratar los atributos con los que cuenta. El programador debe pensar indistintamente

    en ambos conceptos, sin separar ni darle mayor importancia a alguno de ellos. Hacerlo

    podra producir el hbito errneo de crear clases contenedoras de informacin por un lado y

    clases con mtodos que manejen a las primeras por el otro. De esta manera se estara

    realizando una programacin estructurada camuflada en un lenguaje de programacin

    orientado a objetos.

    La POO difiere de la programacin estructurada tradicional, en la que los datos y los

    procedimientos estn separados y sin relacin, ya que lo nico que se busca es el

    http://es.wikipedia.org/wiki/Subrutinahttp://es.wikipedia.org/wiki/Funci%C3%B3n_(programaci%C3%B3n)http://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Objetos_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Inform%C3%A1ticahttp://es.wikipedia.org/wiki/Herencia_(inform%C3%A1tica)http://es.wikipedia.org/w/index.php?title=Cohesi%C3%B3n_(inform%C3%A1tica)&action=edit&redlink=1http://es.wikipedia.org/wiki/Abstracci%C3%B3n_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Polimorfismo_(inform%C3%A1tica)http://es.wikipedia.org/w/index.php?title=Acoplamiento_(inform%C3%A1tica)&action=edit&redlink=1http://es.wikipedia.org/wiki/Encapsulamiento_(inform%C3%A1tica)http://es.wikipedia.org/wiki/M%C3%A9todo_(inform%C3%A1tica)http://es.wikipedia.org/wiki/Variable_(programaci%C3%B3n)http://es.wikipedia.org/wiki/Constante_(programaci%C3%B3n)http://es.wikipedia.org/wiki/M%C3%A9todo_(programaci%C3%B3n_orientada_a_objetos)http://es.wikipedia.org/wiki/Programadorhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructuradahttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructurada
  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    16

    procesamiento de unos datos de entrada para obtener otros de salida. La programacin

    estructurada anima al programador a pensar sobre todo en trminos de procedimientos o

    funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan.

    En la programacin estructurada solo se escriben funciones que procesan datos. Los

    programadores que emplean Programacin Orientada a Objetos, en cambio, primero

    definen objetos para luego enviarles mensajes solicitndoles que realicen sus mtodos por

    s mismos.

    1.3.5 Programacin Orientada a Eventos

    La programacin dirigida por eventos es un paradigma de programacin en el que tanto la

    estructura como la ejecucin de los programas van determinados por los sucesos que

    ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen.

    Para entender la programacin dirigida por eventos, podemos oponerla a lo que no es:

    mientras en la programacin secuencial (o estructurada) es el programador el que define

    cul va a ser el flujo del programa, en la programacin dirigida por eventos ser el propio

    usuario o lo que sea que est accionando el programa el que dirija el flujo del programa.

    Aunque en la programacin secuencial puede haber intervencin de un agente externo al

    programa, estas intervenciones ocurrirn cuando el programador lo haya determinado, y no

    en cualquier momento como puede ser en el caso de la programacin dirigida por eventos.

    El creador de un programa dirigido por eventos debe definir los eventos que manejarn su

    programa y las acciones que se realizarn al producirse cada uno de ellos, lo que se conoce

    como el administrador de evento. Los eventos soportados estarn determinados por

    el lenguaje de programacin utilizado, por el sistema operativo e incluso por eventos

    creados por el mismo programador.

    En la programacin dirigida por eventos, al comenzar la ejecucin del programa se llevarn

    a cabo las inicializaciones y dems cdigo inicial y a continuacin el programa quedar

    bloqueado hasta que se produzca algn evento. Cuando alguno de los eventos esperados por

    el programa tenga lugar, el programa pasar a ejecutar el cdigo del

    correspondiente administrador de evento. Por ejemplo, si el evento consiste en que el

    usuario ha hecho click en el botn de play de un reproductor de pelculas, se ejecutar el

    cdigo del administrador de evento, que ser el que haga que la pelcula se muestre por

    pantalla.

    Un ejemplo claro lo tenemos en los sistemas de programacin Lexico y Visual Basic, en los

    que a cada elemento del programa (objetos, controles, etctera) se le asignan una serie de

    eventos que generar dicho elemento, como la pulsacin de un botn del ratn sobre l o el

    redibujado del control.

    La programacin dirigida por eventos es la base de lo que llamamos interfaz de usuario,

    aunque puede emplearse tambin para desarrollar interfaces entre componentes de Software

    o mdulos del ncleo.

    http://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructuradahttp://es.wikipedia.org/w/index.php?title=Administrador_de_evento&action=edit&redlink=1http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3nhttp://es.wikipedia.org/wiki/Sistema_operativohttp://es.wikipedia.org/w/index.php?title=Administrador_de_evento&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Administrador_de_evento&action=edit&redlink=1http://es.wikipedia.org/wiki/Lexicohttp://es.wikipedia.org/wiki/Visual_Basichttp://es.wikipedia.org/wiki/Interfaz_de_usuariohttp://es.wikipedia.org/wiki/M%C3%B3dulo_de_n%C3%BAcleo
  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    17

    Con la aparicin y popularizacin de los PC, el software empez a ser demandado para

    usos alejados de los clsicos acadmicos y empresariales para los cuales era necesitado

    hasta entonces, y qued patente que el paradigma clsico de programacin no poda

    responder a las nuevas necesidades de interaccin con el usuario que surgieron a raz de

    este hecho.

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    18

    CAPITULO 1.4.

    TECNICAS DE PROGRAMACION

    1.4.1 Divide y vencers 1.4.2 Top-Down / Bottom-Up 1.4.3 Otras Tcnicas

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    19

    1.4.1 Divide y Vencers

    En la cultura popular, divide y vencers hace referencia a un refrn que implica resolver un

    problema difcil, dividindolo en partes ms simples tantas veces como sea necesario, hasta

    que la resolucin de las partes se torna obvia. La solucin del problema principal se

    construye con las soluciones encontradas.

    En las ciencias de la computacin, el trmino divide y vencers (DYV) hace referencia a

    uno de los ms importantes paradigmas de diseo algortmico. El mtodo est basado en la

    resolucin recursiva de un problema dividindolo en dos o ms subproblemas de igual tipo

    o similar. El proceso contina hasta que stos llegan a ser lo suficientemente sencillos

    como para que se resuelvan directamente. Al final, las soluciones a cada uno de los

    subproblemas se combinan para dar una solucin al problema original.

    Esta tcnica es la base de los algoritmos eficientes para casi cualquier tipo de problema

    como, por ejemplo, algoritmos de ordenamiento (quicksort, mergesort, entre muchos

    otros), multiplicar nmeros grandes (Karatsuba), anlisis sintcticos (anlisis sintctico top-

    down) y la transformada discreta de Fourier.

    Por otra parte, analizar y disear algoritmos de DyV son tareas que lleva tiempo dominar.

    Al igual que en la induccin, a veces es necesario sustituir el problema original por uno

    ms complejo para conseguir realizar la recursin, y no hay un mtodo sistemtico de

    generalizacin.

    El nombre divide y vencers tambin se aplica a veces a algoritmos que reducen cada

    problema a un nico subproblema, como la bsqueda binaria para encontrar un elemento en

    una lista ordenada (o su equivalente en computacin numrica, el algoritmo de

    biseccin para bsqueda de races). Estos algoritmos pueden ser implementados ms

    eficientemente que los algoritmos generales de divide y vencers; en particular, si es

    usando una serie de recursiones que lo convierten en simples bucles. Bajo esta amplia

    definicin, sin embargo, cada algoritmo que usa recursin o bucles puede ser tomado como

    un algoritmo de divide y vencers.

    1.4.2 Top-Down / Bottom-Up

    En el proceso de desarrollo de software, los enfoques top-down y bottom-up juegan un

    papel crucial.

    El diseo Top-down fue promovido en los setenta por los investigadores de IBM Harlan

    Mills y Niklaus Wirth. Mills desarroll los conceptos de programacin estructurada para

    usos prcticos y los prob en un proyecto en 1969 para automatizar el ndice de la morgue

    del New York Times. El xito administrativo e ingenieril del proyecto hicieron que el

    http://es.wikipedia.org/wiki/Refr%C3%A1nhttp://es.wikipedia.org/wiki/Ciencias_de_la_computaci%C3%B3nhttp://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Recursividadhttp://es.wikipedia.org/wiki/Algoritmo_de_ordenamientohttp://es.wikipedia.org/wiki/Quicksorthttp://es.wikipedia.org/wiki/Mergesorthttp://es.wikipedia.org/wiki/Algoritmo_de_multiplicaci%C3%B3nhttp://es.wikipedia.org/wiki/Algoritmo_de_Karatsubahttp://es.wikipedia.org/wiki/Analizador_sint%C3%A1cticohttp://es.wikipedia.org/w/index.php?title=An%C3%A1lisis_sint%C3%A1ctico_top-down&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=An%C3%A1lisis_sint%C3%A1ctico_top-down&action=edit&redlink=1http://es.wikipedia.org/wiki/Transformada_de_Fourierhttp://es.wikipedia.org/wiki/B%C3%BAsqueda_binariahttp://es.wikipedia.org/wiki/An%C3%A1lisis_num%C3%A9ricohttp://es.wikipedia.org/wiki/M%C3%A9todo_de_bisecci%C3%B3nhttp://es.wikipedia.org/wiki/M%C3%A9todo_de_bisecci%C3%B3nhttp://es.wikipedia.org/wiki/Resoluci%C3%B3n_num%C3%A9rica_de_ecuaciones_no_linealeshttp://es.wikipedia.org/wiki/A%C3%B1os_1970http://es.wikipedia.org/wiki/IBMhttp://es.wikipedia.org/w/index.php?title=Harlan_Mills&action=edit&redlink=1http://es.wikipedia.org/w/index.php?title=Harlan_Mills&action=edit&redlink=1http://es.wikipedia.org/wiki/Niklaus_Wirthhttp://es.wikipedia.org/wiki/Programaci%C3%B3n_estructuradahttp://es.wikipedia.org/wiki/New_York_Times
  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    20

    enfoque top-down se esparciera por IBM y por el resto de la industria de los

    computadores. Niklaus Wirth, que entre sus logros est el desarrollo del lenguaje de

    programacin Pascal, escribi el artculo Program Development by Stepwise Refinement,

    que tuvo mucha influencia.

    Los mtodos top-down fueron favorecidos en la ingeniera de software hasta que lleg

    la programacin orientada a objetos a finales de los 1980s.

    El enfoque top-down enfatiza la planificacin y conocimiento completo del sistema. Se

    entiende que la codificacin no puede comenzar hasta que no se haya alcanzado un nivel de

    detalle suficiente, al menos en alguna parte del sistema. Esto retrasa las pruebas de las

    unidades funcionales del sistema hasta que gran parte del diseo se ha completado.

    Bottom-up hace nfasis en la programacin y pruebas tempranas, que pueden comenzar tan

    pronto se ha especificado el primer mdulo. Este enfoque tiene el riesgo de programar

    cosas sin saber como se van a conectar al resto del sistema, y esta conexin puede no ser

    tan fcil como se crey al comienzo. La reutilizacin del cdigo es uno de los mayores

    beneficios del enfoque bottom-up.

    El desarrollo de software moderno usualmente combina tanto top-down como bottom-up.

    Aunque un conocimiento completo del sistema se considera usualmente necesario para un

    buen diseo, haciendo que tericamente sea un enfoque top-down, la mayora de proyectos

    de desarrollo de software tratan de usar cdigo existente en algn grado. El uso de mdulos

    existentes le dan al diseo un sabor bottom-up. Algunos enfoques usan un enfoque en el

    que un sistema parcialmente funcional es diseado y programado completamente, y este

    sistema se va expandiendo para llenar los requisitos del proyecto

    1.4.3 Otras Tcnicas

    1.4.3.1 vidos

    1.4.3.2 Dinmicos

    1.4.3.3 Vuelta Atrs (Back Tracking)

    1.4.3.4 Ramificacin y Poda (Branch and Bound)

    Desarrolle de

    manera sucinta 2

    de las tcnicas

    enunciadas

    http://es.wikipedia.org/wiki/Niklaus_Wirthhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Pascalhttp://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Pascalhttp://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_softwarehttp://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    21

    CAPITULO 1.5

    ELEMENTOS DE PROGRAMACION

    1.5.1 Identificadores

    1.5.2 Constantes

    1.5.3 Variables

    1.5.4 Tipos de datos

    1.5.5 Operadores

    1.5.6 Expresiones

    1.5.7 Conversiones entre tipos de Datos

    -

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    22

    1.5.1 Identificadores

    Los identificadores representan los datos de un programa (constantes, variables,

    tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar

    una posicin en la memoria de la computadora, que nos permite accesar a su contenido.

    Ejemplo: Nombre

    Num_hrs

    Calif2

    Reglas para formar un Identificador

    Debe comenzar con una letra (A a Z, maysculas o minsculas) y no deben contener espacios en blanco.

    Letras, dgitos y caracteres como la subraya ( _ ) estn permitidos despus del primer carcter.

    La longitud de identificadores puede ser de hasta 8 caracteres.

    1.5.2. Constantes La constante es un dato numrico o alfanumrico que no cambia durante la ejecucin del

    programa, estas se definen en un Diagrama de flujo de la siguiente forma.

    1.5.3. Variables

    Es un espacio en la memoria de la computadora que permite almacenar temporalmente un

    dato durante la ejecucin de un proceso, su contenido puede cambia durante la ejecucin

    del programa. Para poder reconocer una variable en la memoria de la computadora, es

    necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo.

    Ejemplo:

    rea = pi * radio ^ 2

    Las variables son : el radio, el rea y la constate es pi

    PI=3,1415 PI es una constante

    En leguaje de programacin Delphi

    CONST

    PI = 3.1415;

    En pseudocdigo

    CONSTANTE

    PI = 3.1415

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    23

    Clasificacin de las Variables

    Numricas

    Por su Contenido Lgicas

    Alfanumricas (String)

    Variables

    De Trabajo

    Por su Uso Contadores

    Acumuladores

    Por su Contenido

    Variable Numricas: Son aquellas en las cuales se almacenan valores numricos, positivos o negativos, es decir almacenan nmeros del 0 al 9, signos (+ y -) y el punto

    decimal. Ejemplo:

    iva=0.15 pi=3.1416 costo=2500

    Variables Lgicas: Son aquellas que solo pueden tener dos valores (cierto o falso) estos representan el resultado de una comparacin entre otros datos.

    Variables Alfanumricas: Esta formada por caracteres alfanumricos (letras, nmeros y caracteres especiales). Ejemplo:

    letra=a apellido=lopez direccion=Av. Libertad #190

    Por su Uso

    Variables de Trabajo: Variables que reciben el resultado de una operacin matemtica completa y que se usan normalmente dentro de un programa. Ejemplo:

    suma=a+b/c

    Contadores: Se utilizan para llevar el control del numero de ocasiones en que se realiza una operacin o se cumple una condicin. Con los incrementos generalmente de uno en

    uno.

    Acumuladores: Forma que toma una variable y que sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o calculando progresivamente.

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    24

    1.5.4 Tipos De Datos

    Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple

    carcter, tal como b, un valor entero tal como 35. El tipo de dato determina la naturaleza

    del conjunto de valores que puede tomar una variable.

    Numricos

    Simples Lgicos

    Alfanumricos

    Tipos de

    datos Arreglos (Vectores, Matrices)

    Estructurados Registros

    (Def. por el Archivos

    usuario) Apuntadores

    Tipos de Datos Simples

    Datos Numricos: Permiten representar valores escalares de forma numrica, esto incluye a los nmeros enteros y los reales. Este tipo de datos permiten realizar operaciones

    aritmticas comunes.

    Enteros Integer

    Reales Real

    Naturales Cardinal

    Datos Lgicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya que representan el resultado de una comparacin entre otros datos (numricos o alfanumricos).

    Lgicos Boolean

    Datos Alfanumricos: Es una secuencia de caracteres alfanumricos que permiten representar valores identificables de forma descriptiva, esto incluye nombres de personas,

    direcciones, etc. Es posible representar nmeros como alfanumricos, pero estos pierden su

    propiedad matemtica, es decir no es posible hacer operaciones con ellos. Este tipo de datos

    se representan encerrados entre comillas.

    Cadena String

    Carcter Char

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    25

    1.5.5 Operadores

    Son elementos que relacionan de forma diferente, los valores de una o ms variables y/o

    constantes. Es decir, los operadores nos permiten manipular valores.

    Aritmticos

    Tipos de Operadores Relacinales

    Lgicos

    Cadenas

    Operadores Aritmticos: Los operadores aritmticos permiten la realizacin de operaciones matemticas con los valores (variables y constantes).

    Los operadores aritmticos pueden ser utilizados con tipos de datos enteros o reales.

    Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.

    Operando (Operador) Operando

    Valor

    (constante o variable)

    Operadores Aritmticos + Suma

    - Resta

    * Multiplicacin

    / Divisin

    Mod Modulo (residuo de la divisin entera)

    Prioridad de los Operadores Aritmticos

    Todas las expresiones entre parntesis se evalan primero. Las expresiones con parntesis anidados se evalan de dentro a fuera, el parntesis mas interno se evala

    primero.

    Dentro de una misma expresin los operadores se evalan en el siguiente orden.

    1.- ^ Exponenciacin

    2.- *, /, mod Multiplicacin, divisin, modulo.

    3.- +, - Suma y resta.

    Los operadores en una misma expresin con igual nivel de prioridad se evalan de izquierda a derecha.

    Ejemplos:

    Expresin Resultado

    7 / 2 3.5

    12 mod 7 5

    4 + 2 * 5 14

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    26

    Ejemplos:

    4 + 2 * 5 = 14

    23 * 2 / 5 = 9.2 46 / 5 = 9.2

    3 + 5 * (10 - (2 + 4)) = 23 3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23

    3.5 + 5.09 - 14.0 / 40 = 5.09 3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09

    2.1 * (1.5 + 3.0 * 4.1) = 28.98 2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98

    Operadores Relacinales:

    Se utilizan para establecer una relacin entre dos valores.

    Compara estos valores entre si y esta comparacin produce un resultado de certeza o falsedad (verdadero o falso).

    Los operadores relacinales comparan valores del mismo tipo (numricos o cadenas)

    Tienen el mismo nivel de prioridad en su evaluacin.

    Los operadores relacinales tiene menor prioridad que los aritmticos.

    Operadores Relacinales > Mayor que

    < Menor que

    > = Mayor o igual que

    < = Menor o igual que

    < > Diferente

    = Igual

    Ejemplos:

    Si a = 10 b = 20 c = 30

    a + b > c Falso

    a - b < c Verdadero

    a - b = c Falso

    a * b < > c Verdadero

    Operadores Lgicos:

    Estos operadores se utilizan para establecer relaciones entre valores lgicos.

    Estos valores pueden ser resultado de una expresin relacional.

    Operadores Lgicos And Y

    Or O

    Not Negacin

    Operador And Operando1 Operador Operando2 Resultado

    T AND T T

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    27

    T F F

    F T F

    F F F

    Operador Or Operando1 Operador Operando2 Resultado

    T OR T T

    T F T

    F T T

    F F F

    Operador Not

    Operando Resultado

    T F

    F T

    Ejemplos:

    (a < b) and (b < c)

    (10, =, Or

    Ejemplos:

    a = 10 b = 12 c = 13 d =10

    1) ((a > b)or(a < c)) and ((a = c) or (a > = b))

    F T F F

    T F

    F

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    28

    2) ((a > = b) or (a < d)) and (( a > = d) and (c > d))

    F F T T

    F T

    F

    3) not (a = c) and (c > b)

    F T

    T

    T

    Operadores de Cadena:

    Se utilizan para establecer una relacin entre dos valores.

    Compara estos valores entre si y esta comparacin produce un resultado de certeza o falsedad (verdadero o falso).

    Los operadores de cadena comparan valores del mismo tipo (cadenas)

    Tienen el mismo nivel de prioridad en su evaluacin.

    Operadores Cadena > Mayor que

    < Menor que

    > = Mayor o igual que

    < = Menor o igual que

    < > Diferente

    = Igual

    + Concatena

    Ejemplos:

    Si a = hola b = como c = estn

    a + b + c holacomoestan

    a > b Verdadero

    1.5.6 Expresiones

    Las expresiones son combinaciones de constantes, variables, smbolos de operacin,

    parntesis y nombres de funciones especiales. Por ejemplo:

    a+(b + 3)/c

  • FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION Y TELECOMUNICACIONES

    FUNDAMENTOS DE PROGRAMACION

    29

    Cada expresin toma un valor que se determina tomando los valores de las variables

    y constantes implicadas y la ejecucin de las operaciones indicadas.

    Una expresin consta de operadores y operandos. Segn sea el tipo de datos que

    manipulan, se clasifican las expresiones en:

    - Aritmticas - Relacinales - Lgicas

    1.5.7 Conversiones entre tipos de Datos La conversin entre los diferentes tipos de datos se da mediante el uso de funciones o

    procedimientos que existen para tal efecto por lo que como parte fundamental de esta

    ultima parte del texto se le sugiere completar la siguiente tabla

    Tipo de dato

    origen

    Funcin. Procedimiento o instruccin en Delphi Tipo de dato

    destino

    Integer String

    Real String

    String Integer

    String Real

    Logicos Integer

    Integer Logicos

    String Char

    Char String

    Byte Integer

    Integer Byte