Manual Fundamentos de Programación 1.0docx

download Manual Fundamentos de Programación 1.0docx

of 148

Transcript of Manual Fundamentos de Programación 1.0docx

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    1/148

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    2/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    1Manual para la asignatura de Fundamentos de

    Programacin Versin 1.0. Santiago Marzo de 2012

    Este material ha sido diseado para el uso de los

    alumnos y profesores de la asignatura de Anlisis y

    Diseo Orientado a Objetos de las carreras del

    rea informtica. Queda estrictamente prohibido el

    uso en otros cursos ya sean en lnea o presenciales

    sin el consentimiento explcito de INACAP.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    3/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    2

    Agradecimientos.Agradecemos a todas las personas que de forma directa o

    indirecta han colaborado en la elaboracin de este

    manual.

    De forma significativa agradecemos a los docentes de las

    sedes que nos han apoyado y colaborado con ejercicios y

    propuestas durante la presentacin de este proyecto.

    Vayan nuestros sinceros agradecimientos a los siguientes

    docentes:

    Cristian Leiva Marn, Miguel Palma Esquivel, Marcelo

    Montecinos Cabrera, Rodrigo Toledo de los Santos, Paola

    Cifuentes Berrios, Servando Campillay Briones, Emerson

    Ilaja Villarroel, Hugo Herrera Valenzuela, Fernando

    Santolaya, Manuel Morales, Roberto Prez Fuentes,

    Fernando Neyra Castro, Victor Brquez, Francisco Andrs

    Daz Rojas, Ademar Araya Fuentes, Ricardo Vera Muoz,

    Mauricio Torres Pizarro, Ernesto Ramos Vega, Alberto

    Garrido Burgos, Helton Bustos Sez, Beatriz Contreras

    Guajardo, Jos Landeta Parra, Luis Pacheco Toro, Patricio

    Araya Castro, Ivn Torres, Hinojoza Vega Mauricio, Yasna

    Hernndez, Vctor Orellana, Rene Valderas Aros, Ricardo

    Toledo Barra, Cesar Eduardo Arce Jara, Luis Ponce

    Cuadra, Javier Miles Avello, Carolina Ehrmantraut

    Caballero, Pedro Alfonso Fuentealba Martnez, Jorge

    Hormazabal Valds, Pedro Ernesto Ulloa Morales, Mara del

    Pilar Gallego Martnez, Claudio Fuenzalida Medina, Mara

    Encarnacin Seplveda, Francisco San Martin, Christian

    Sarmiento Zampillo, Romn Gajardo Robles, Ricardo

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    4/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    3Hidalgo Hidalgo, Nelson Fredy Ganga Caldern, Manuel

    Reveco Cabellos, Jacqueline San Martin Grandon, Sergio

    Vergara Salvatierra, Pablo Lpez Chacn, Cinthya Acosta,

    Jocelyn Oriana Gonzlez Corts, Carlos Felipe Alten Lpez,

    Francisco Prieto Rossi, Giannina Costa Lizama, Christian

    Silva, Sebastin Pastn Daz.

    El aporte realizado por ustedes durante las jornadas de

    capacitacin ha significado mejorar enormemente la

    calidad del material entregado.

    Saludos.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    5/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    4

    Contenidos

    Fundamentos del procesamiento de datos. ....................................................................................... 8

    Conceptos bsicos. .......................................................................................................................... 8

    Dato ........................................................................................................................................... 10

    Proceso ...................................................................................................................................... 10

    Informacin. .............................................................................................................................. 12

    Entrada y Salida. ........................................................................................................................ 12

    Proceso manual de datos. ......................................................................................................... 13

    Proceso computacional de datos. ............................................................................................. 13

    Estructura funcional de un computador. ...................................................................................... 14

    Dispositivos de entrada y salida. ............................................................................................... 14

    Unidades Internas. .................................................................................................................... 15

    Unidades externas de almacenamiento secundario. ................................................................ 16

    Elementos o componentes de un procesamiento computacional de datos. ............................... 18

    Plantilla para prueba manual o seguimiento de ejecucin de una secuencia lgica. ................... 22

    Tcnicas de algoritmos para el diseo de procesos computacionales. ............................................ 26

    Conceptos bsicos. ........................................................................................................................ 26

    Algoritmo. .................................................................................................................................. 26

    Programa. .................................................................................................................................. 32

    Etapas en la creacin de programas. ....................................................................................... 32

    Caractersticas de la programacin. .............................................................................................. 39

    Estructura descendente. ........................................................................................................... 39

    Modularidad. ............................................................................................................................. 40

    Cohesin. ................................................................................................................................... 40

    Acoplamiento. ........................................................................................................................... 41

    Descomposicin. ....................................................................................................................... 42

    Estructura de un algoritmo. .......................................................................................................... 43

    Conceptos de variables y constantes. ........................................................................................... 44

    Definicin de variables y constantes. ........................................................................................ 44

    Representacin de sentencias en Instrucciones. .......................................................................... 60

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    6/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    5Operadores Aritmticos. ........................................................................................................... 60

    Operadores unarios y de auto asignacin ................................................................................. 61

    Operadores Lgicos ................................................................................................................... 62

    Introduccin a lenguajes formales de Programacin. ...................................................................... 66

    Estructura de un programa. .......................................................................................................... 66

    Sentencia condicionales ................................................................................................................ 67

    Anidada. .................................................................................................................................... 75

    Mltiple ..................................................................................................................................... 77

    Sentencias de ciclo iterativo .......................................................................................................... 79

    While ......................................................................................................................................... 80

    For ............................................................................................................................................. 81

    Do While. ............................................................................................................................... 85Concepto de funcin ..................................................................................................................... 86

    Estructura de una funcin ............................................................................................................. 89

    Procedimientos ......................................................................................................................... 89

    Funcin .......................................................................................................................................... 95

    Llamada a una funcin .................................................................................................................. 97

    Relacin de la funcin con el mtodo de una clase. ................................................................... 108

    Arreglos ........................................................................................................................................... 108

    Unidimensionales .................................................................................................................... 108

    Arreglos de dos dimensiones. ..................................................................................................... 111

    Arreglos de arreglos. ............................................................................................................... 113

    Introduccin a la Programacin Orientada a Objeto. ..................................................................... 117

    Caractersticas generales de la programacin orientada a objetos. ........................................... 117

    Qu es la programacin orientada a objetos .............................................................................. 117

    Atributos ...................................................................................................................................... 119

    Comportamientos ....................................................................................................................... 120Estados ........................................................................................................................................ 121

    Clase ............................................................................................................................................ 122

    Abstraccin .............................................................................................................................. 126

    Encapsulacin .......................................................................................................................... 127

    Herencia .................................................................................................................................. 128

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    7/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    6Asociacin. .............................................................................................................................. 129

    Aplicaciones bsicas .................................................................................................................... 129

    Seguridad en una clase ................................................................................................................ 138

    Get y Set. ..................................................................................................................................... 142

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    8/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    7

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    9/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    8

    Fundamentos delprocesamiento de datos.A continuacin vamos emprender un viaje slo de ida, no

    te preocupes no se trata de un trgico final, es slo de

    ida porque luego que conozcas todo lo que hay preparado

    para t en las pginas venideras no querrs volver atrs.

    Durante este manual nos encargaremos, con tu ayuda y

    por supuesto la de tu profesor, de dar los primeros pasos

    para convertirte en un desarrollador de proyectos de

    tecnologas de la informacin, este manual es el primero

    de varios y en cada uno iremos agregando ms dificultad,

    mayores novedades y elementos cada vez ms

    sorprendentes.

    Conceptos bsicos.Ahora nos referiremos a los fundamentos del

    procesamiento de datos, todos los programas

    computacionales tienen el mismo objetivo, primero

    obtener datos de entrada (por lo general desde un

    usuario), luego los almacena, despus realiza algn

    procesamiento (clculos, ordenamientos, etc) con ellos y

    finalmente entrega el resultado. El proceso es muy

    similar a cuando un detective est interrogando a un

    sospechoso en las pelculas, imagina esas tpicas salas de

    interrogatorio y un detective como el de las series de los

    aos ochenta, el cual est de pie y al frente el

    sospechoso sentado en una silla, cuando el detective se

    acerque a l, lo mire a los ojos y le diga smith

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    10/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    9anderson, el sospechoso recibir esta informacin y

    realizar una bsqueda interna para luego de unos

    segundos de silencio dar el paradero de Smith y otra

    informacin relevante para su detencin al detective, en

    este caso lo que el detective hace es recolectar datos

    durante su caso, pero estos datos por si slo no

    permitirn resolverlo, por otra parte los datos son en

    realidad alguna caracterstica de algo o alguien, Smith

    por ejemplo, es el nombre de una persona, pelo negro,

    34 aos, 1.72 metros son tambin datos que representan

    a una entidad, pero para que el detective resuelva el caso

    necesita del sospechoso a quien le dio los datos como

    una entrada para que as el sospechoso haga algn tipo

    de procesamiento con los datos, los cuales pueden ser

    una suma, restas o alguna otra operatoria como por

    ejemplo una bsqueda, a partir de este procesamiento

    interno, el sospechoso logr obtener la direccin de Smith

    la cual gener como una salida hacia el detective. Lo que

    ha recibido el detective a cambio de la entrega de datos

    es informacin relevante para l. As como esta

    situacin el software se comporta de forma muy similar

    piensa los ltimos software que has usado, un ejemplo de

    ello es la calculadora de Windows a la cual le entregas

    datos de entrada, luego solicitas una operacin y

    presiones el botn igual, esto da como resultado que la

    calculadora procese los datos y finalmente entregue el

    resultado. Veamos ahora otro ejemplo, en el caso de un

    videojuego, el cual parece ser tan distinto a una

    calculadora sigue los mismos principios, a travs del

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    11/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    10joystick el usuario ingresa datos de entrada con los

    cuales especifica la direccin en la que desea moverse, el

    software recibe estos datos los almacena y los procesa, al

    final el software presenta al usuario la informacin

    solicitada en la cual el personaje se encuentra ahora en

    una posicin distinta pero de acuerdo a lo que el usuario

    ha ingresado.

    Este modelo es muy simple y consta de tres partes, dato,

    proceso e informacin, las cuales se definen a

    continuacin.

    DatoCorresponde a un par ordenado de atributo con valor

    (atributo, valor) que representan el registro de un hecho

    importante para la organizacin en un momento

    determinado.

    Un dato esta compuesto de dos partes, un atributo y un

    valor, el atributo define que es lo que deseo guardar y el

    valor define el tipo de valor asociado, es decir el tipo de

    datos y sus valores mximos y mnimos. Los datos

    siempre estn formados por un par ordenado, ya que,

    sus partes por separado carecen de sentido.

    ProcesoCorresponde a la aplicacin de clculos aritmticos,

    ordenamientos o algn otro tipo de manipulacin de los

    datos y que a partir de ello genera informacin.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    12/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    11Vemoslo a travs de un ejemplo, supongamos que

    tienes en tu closet una caja de pelculas, la forma en la

    que se han guardado las pelculas en la caja no ha sido

    mediante ningn orden, muy por el contrario han sido

    guardadas en el mismo orden que las has adquirido, por

    lo que hay dentro de la caja es un completo desorden que

    hace juego con el resto del closet. Para poder ver la

    pelcula que tanto anhelas vas a tener que buscarla, este

    proceso comienza con un dato de entrada, para el cual

    vas a necesitar el nombre de la pelcula (un dato), el cual

    puede ser por ejemplo:

    Nombre pelcula = hoy si estudiar.

    A partir de este dato el proceso que debes llevar puede

    variar segn tu forma de hacer las cosas, un posible

    camino es hacer una comparacin, proceso que consiste

    en tomar las pelculas una por una e ir comparando su

    nombre con el de la pelcula que buscas hasta dar con

    ella, otro camino puede ser verificar si ellas se

    encuentran ordenadas, de ser as bastar con realizar

    una bsqueda basado en el alfabeto para dar con ella, de

    no estar ordenadas entonces podras ordenarlas, as este

    proceso ser ms simple la prxima vez, el resultado de

    esta bsqueda ser la pelcula que deseas ver,

    adicionalmente un buen consejo ser considerar

    mantener tu closet ordenado.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    13/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    12

    Informacin.Mensaje vlido para un receptor resultante del

    procesamiento de datos.

    Debes considerar que no todo lo resultante de un procesoes informacin si esta no va dirigida a quien corresponde,

    por ejemplo, si vas caminando por afuera del aeropuerto

    y un mensaje que dice se informa que el vuelo 345

    tiene un retraso de 45 minutos, sin duda eso es

    informacin y ha nacido desde el clculo de la posicin

    del vuelo, la distancia con el aeropuerto y la velocidad

    que lleva, sin embargo para ti que slo buscas un taxi,esa informacin no te sirve, por ende deja de ser

    informacin para ti.

    Entrada y Salida.Como lo mencionamos al inicio los software llevan a cabo

    principalmente cuatro acciones: recibir datos de entrada,

    almacenarlos, procesarlos y entregar un resultado.

    Muchas veces la palabra dato e informacin son utilizadas

    indistintamente, pero sin embargo en este contexto son

    muy distintas. Cuando un usuario interacta con un

    software es el usuario el que provee de datos al

    programa, estos datos como la definicin lo dice son la

    representacin de una entidad, es decir son datos que

    representan el valor de una entidad, cuando estos datosson recibidos por el software este los almacena en la

    memoria, luego los toma, los procesa, es decir realiza

    algn tipo de clculo en ellos para luego depositarlos

    nuevamente en la memoria. Podemos decir entonces que

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    14/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    13dato e informacin no son lo mismo, debido a que para

    que los datos se conviertan en informacin deben haber

    pasado primero por un procesamiento. En general los

    datos por si solos no sirven para tomar una decisin en

    cambio la informacin s sirve para tomar decisiones.

    Proceso manual de datos.El procesamiento manual ha existido desde siempre y

    corresponde a toda transformacin o clculo que se

    realice con datos mediante clculos mentales o con la

    utilizacin de lpiz y papel, esta tcnica es muy propensa

    a errores sobre todo cuando se trata de realizar grandes

    clculos o la clasificacin y ordenacin de un conjunto

    muy numeroso de datos. Adicionalmente el proceso se

    lleva a cabo de forma lenta, lo que produce que muchas

    veces sea una tcnica poco viable para las empresas de

    hoy, las cuales procesan los datos de millones de

    personas.

    Proceso computacional de datos.El proceso computacional en cambio corresponde a la

    automatizacin de procesos comunes que en su comienzo

    solan hacerse con lpiz y papel, las operaciones

    aritmticas bsicas fueron un comienzo y as la tcnica ha

    ido refinndose hasta llegar a lo que hoy nos rodea:

    planillas de Excel, sistemas bancarios para llevar lascuentas de miles de clientes y reconocimiento facial o

    procesamiento de imgenes son algunos ejemplos, esto

    nace de la necesidad de que la informacin debe estar en

    el momento en que se necesita, imagina qu sucedera si

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    15/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    14tratsemos de llevar el censo de nuestro pas utilizando el

    proceso manual, es probable que cuando los resultado

    estn listos la informacin generada no represente en lo

    absoluto la realidad nacional y por ello lo que en un

    momento hubiese sido informacin vital hoy es slo un

    dato que no sirve.

    Estructura funcional de un

    computador.

    Dispositivos de entrada y salida.

    Si bien un software se basa en el procesamiento

    computacional de datos con el fin de entregar

    informacin no olvidemos que estos software se

    almacenan y ejecutan dentro de un computador, es por

    ello que los computadores deben proveer alguna forma

    en la que podamos comunicarnos con ellos, todo los

    computadores poseen lo que se conoce como perifricos

    los cuales podemos dividir en entrada y salida.

    Los perifricos de entrada son todos aquellos dispositivos

    que permiten ingresar informacin, algunos ejemplos de

    ello son el teclado a travs del cual digitamos, el mouse,

    un escner el cual nos permite digitalizar las fotos o

    alguna imagen, el micrfono que utilizamos para chatear,o dictar un documento a nuestro computador.

    Los perifricos de salida en cambio son todos aquellos

    dispositivos que permiten al computador emitir

    informacin que ha procesado producto de los datos que

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    16/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    15hemos ingresado, probablemente el ms utilizado de

    todos sea el monitor, en la cual el computador nos

    muestra la informacin requerida, otros ejemplos son la

    impresora, la que nos permite obtener la informacin en

    papel o los parlantes, que emiten sonidos segn lo que le

    pidamos o hagamos.

    Unidades Internas.

    En un computador el encargado de procesar toda la

    informacin es la Unidad Central de Proceso CPU (Central

    Processing Unit). Esta unidad es la encargada del control

    y de la ejecucin de las operaciones del sistema, tambin

    lo conocemos como el microprocesador.

    Las actividades que realiza la CPU son:

    Ejecutar las instrucciones de los programas

    almacenados en la memoria.

    Controlar la transferencia entre la CPU y la memoria.

    Responder a las peticiones realizadas por algn

    perifrico.

    Unidad de control.

    Coordina las actividades del computador y determina qu

    operaciones se deben realizar y en qu orden; as mismo

    controla todo el proceso del equipo.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    17/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    16

    Unidad Aritmtica-lgicaRealiza operaciones aritmticas y lgicas, entre las

    operaciones aritmticas se encuentras las sumas o restas

    y en las lgicas las comparaciones del tipo mayor, menor,

    igual, etc.

    Unidad de almacenamiento principal.Es la parte de la CPU en la que se encuentran

    almacenadas las instrucciones y todos los datos que

    necesarios para llevar a cabo un proceso, esta memoria

    es temporal, esto quiere decir que si apagas el equipo

    toda la informacin alojada ah es eliminada, el

    procesador usa esta memoria debido a que es un lugar a

    la que puede acceder ms rpido, es por esto que los

    datos son cargados aqu como paso previo a su

    ejecucin. La unidad de almacenamiento principal es

    popularmente conocida como memoria RAM.

    Unidades externas de

    almacenamiento secundario.Adicional a los datos que el computador almacena de

    forma temporal para su procesamiento, existen

    dispositivos de almacenamiento que permiten que la

    informacin perdure en el tiempo y que se encuentran

    fuera del equipo, algunos ejemplo de ellos son el CD,

    DVD, blueray o memorias flash, en ellos se almacenan

    datos que podrn ser procesados ms adelante y su

    almacenamiento es permanente e independiente de si el

    computador est prendido o apagado.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    18/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    17Para ayudarte a comprender mejor cmo el computador

    utiliza los dispositivos de almacenamiento vemoslo con

    una simple analoga. Supongamos que t eres el

    procesador y tu misin hoy es recolectar un conjunto de

    datos histricos para procesarlos y crear con ellos un

    resumen de historia, el cual contiene informacin

    relevante para quien lo solicit, muy lejos de la silla y el

    escritorios donde te encuentras hay un estante llenos de

    libro, los cuales siempre estn all, este estante es el

    equivalente al disco duro de tu computador, pero imagina

    tuvieses que levantarte de la silla, ir hasta el estante,

    tomar un libro, volver a tu silla, buscar lo que necesitas y

    luego volver a dejarlo al estante para luego

    complementar el informe con otro libro lento verdad?

    Entonces al igual que t, el computador necesita traer un

    conjunto de datos para mantenerlos temporalmente ms

    cerca, entonces ese rol lo jugar el escritorio, de esta

    forma te acercars al estante y traers en uno o ms

    viajes todos los libros que necesites y lo dejars sobre tu

    escritorio, de esta forma no necesitars levantarte tan

    seguido, nuestro escritorio es el equivalente a la memoria

    RAM, por lo que tambin podemos afirmar que mientras

    ms memoria RAM tengamos mejor rendimiento

    tendremos, ya que podremos almacenar y dejar ms

    informacin all, ahora que mantenemos los datos cerca,

    para que puedas leer y producir un resumen con tu

    cerebro (equivalente al procesador de tu PC), necesitars

    acercar los libros que tienes en tu escritorio, lo recogers

    con la mano para de esta forma logrado acercar ms la

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    19/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    18informacin, as estar lista para ser leda y procesada

    por t, tu mano en esta analoga es el equivalente a la

    memoria cache de tu procesador, cuando hayas finalizado

    tu informe todo lo que se encuentra en tu mano y

    escritorio desaparecer, pero volver a quedar de forma

    permanente en tu estante, esto se debe a que tu mano y

    el escritorio almacenan informacin slo de forma

    temporal, en el computador la RAM y la CACHE se

    comportan de la misma forma y existen con el fin de

    acercar la informacin hacia el procesador, dado que es

    ms rpida su lectura desde all, sin embargo este tipo de

    memoria mientras ms rpida suele ser ms pequea, al

    igual que la proporcin entre tu mano, escritorio y

    estante, que adicionalmente va desde la ms asequible a

    la ms distante, siendo la mano la unidad de

    almacenamiento ms pequea y el estante la ms

    grande.

    Elementos o componentes de

    un procesamiento

    computacional de datos.Cuando analices un proceso o un sistema, siempre debes

    prestar atencin a las etapas o acciones que se ejecutan

    en el sistema que ests analizando. Recuerda que los

    sistemas estn compuestos de una serie de elementos

    que interactan entre s para lograr un propsito. Para

    lograr este propsito cada uno de los objetos detectados

    en el proceso realizan un conjunto de acciones. Para

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    20/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    19poder realizar estas acciones, las partes componentes

    necesitan datos de entrada. Estos datos son la materia

    prima con la cual los objetos realizan sus acciones. Una

    vez que reciben los datos, los objetos realizan las

    acciones para las cuales fueron creados, generando un

    resultado que se conoce como dato de salida. Podemos

    analizar las acciones que realiza un objeto como una caja

    negra es decir sabemos lo que entra y el resultado del

    proceso pero no lo que sucede adentro. Por ejemplo si

    utilizo un reproductor de DVD, los datos de entrada estn

    contenidos en el disco que ingreso al equipo, y la salida

    ser la imagen y el audio, pero el proceso es desconocido

    y por lo dems no me interesa, pues slo quiero ver el

    DVD no construir un reproductor.

    Ahora si mi necesidad aumenta y adems de usar un

    reproductor de DVD ahora quiero construir uno, entonces

    debo conocer qu es lo que hace el dispositivo con los

    datos que estn en el disco para generar la imagen y el

    audio, esto se conoce como procesamiento de los datos,

    el cual bsicamente consiste en leer los datos, ordenarlos

    y guardarlos, procesarlos y finalmente generar una

    salida.

    El procesamiento de los datos est asociado a la toma de

    decisiones, que se estructuran bsicamente siguiendo

    una serie de reglas y condiciones que en lenguaje

    informtico se conocen como reglas del negocio. Estas

    reglas y condiciones se basan en la definicin de cmo se

    debe comportar el sistema para tratar los datos que

    entran a ser procesados. Veamos un ejemplo,

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    21/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    20supongamos que tienes un telfono celular de prepago y

    debes cargarle dinero cada cierto tiempo para poder

    realizar llamadas. Analicemos el proceso de carga de

    dinero con un poco ms de detalle Qu datos de entrada

    necesitamos?, si dices que lo que necesitas es solamente

    el dinero que vas a cargar, es correcto, pero eso es

    todo?, pensemos un poco ms en detalle y pongmonos

    en algunos casos especiales, es tu telfono el nico

    telfono en el sistema?, claramente no por lo tanto es

    necesario identificar a qu telfono quieres cargar el

    dinero, ah aparece un nuevo dato que es el nmero de

    telfono. Por lo tanto ahora ya tenemos los siguientes

    datos de entrada, el nmero de telfono y el monto de

    dinero que vas a cargar. Ahora la pregunta es la

    siguiente, que hace el sistema con los datos de

    entrada?, una respuesta acertada sera decir que suma al

    saldo anterior el valor que se est cargando, pero a cual

    de todos los telfonos que existen lo carga?, entonces ah

    determinamos que primero hay que buscar la informacin

    asociada al telfono y luego sumar el valor al saldo de

    dinero que tiene el telfono. As determinamos que el

    proceso se define en dos pasos:

    1.Buscar los datos del telfono usando el nmero.

    2.Sumar el valor a cargar al saldo existente.

    Si te fijas ya estamos avanzando, pero ahora comienzan

    a surgir algunos inconvenientes, supongamos que buscas

    los datos del telfono y te das cuenta que no es un

    telfono de prepago sino que uno con plan, entonces

    Qu haces?, si te fijas debes tomar un decisin usando

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    22/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    21una regla, pensemos que hacer, todos los telfonos

    tienen el mismo plan?, la respuesta es no, de hecho

    existen bsicamente tres planes, prepago, cuenta

    controlada y plan ilimitado, slo a los dos primeros se les

    puede cargar dinero, pero bajo circunstancias distintas, al

    plan de cuenta controlada slo le puedes cargar ms

    dinero cuando se ha acabado el dinero anterior, mientras

    que al de prepago se le puede cargar en cualquier

    momento y si tienes plan ilimitado no le puedes cargar

    dinero. Con estos datos del proceso completo podemos

    definir que las condiciones son las siguientes:

    1.Buscar los datos del telfono usando el nmero.

    2.Identificar si el telfono tiene plan ilimitado.

    3.Si lo tiene no se le puede cargar dinero.

    4.Si no tiene plan ilimitado entonces hay que saber si el

    telfono tiene plan de cuenta controlada.

    5.Si tiene plan de cuenta controlada, debemos fijarnos

    en el saldo y ver si an tiene.

    6.Si tiene plan de cuenta controlada y tiene saldo no

    podemos cargar dinero.

    7.Si tiene plan de cuenta controlada y no tiene saldo,

    entonces podemos cargar el dinero.

    8.Si no tiene plan de cuenta controlada entonces

    sumamos inmediatamente el dinero al saldo anterior.

    Ahora slo nos queda analizar cul es la salida resultante

    de este proceso. Si analizamos con detencin el objetivo

    del proceso es cargar dinero a tu telfono celular, as

    podramos definir dos posibles salidas, que son:

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    23/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    22a)Un mensaje que diga que el proceso se realiz de

    forma correcta o incorrecta.

    b)El nuevo saldo luego de realizada la carga.

    Analicemos el primer caso, si el proceso nos devuelve un

    mensaje Podremos conocer el nuevo saldo?, la

    respuesta en este caso es no.

    Si devolvemos el nuevo saldo Podemos saber si el

    proceso se realiz de forma correcta?, la respuesta en

    este caso es si, pero depende de un factor que es el

    conocer de antemano el saldo que tena, as si al iniciar el

    proceso tena 0 peso y luego de cargar 2000, tengo en mi

    saldo 2000 es que se realiz el proceso son xito.

    Cabe destacar que ninguna de las soluciones es correcta

    y ninguna es incorrecta, pues ambas dependen de datos

    que faltan en la definicin del contexto del problema.

    Plantilla para prueba manual oseguimiento de ejecucin de

    una secuencia lgica.Si bien la resolucin de problemas simples como el

    planteado anteriormente pudiera parecer una tarea

    sencilla y libre de complejidades a veces es necesario

    corroborar si el proceso que hemos definido est correcto

    y podemos obtener el resultado deseado a travs de lo

    que se conoce como una traza, es decir el seguimiento de

    los valores que nos interesa controlar y el

    comportamiento que vaya a tener el sistema en funcin

    de estos valores.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    24/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    23Para hacer la traza de un programa se van anotando los

    valores que nos interesa controlar y qu es lo que sucede

    cuando esos valores cambian asocindolos a las

    decisiones que se realizan durante el proceso. Muchas

    veces se elabora una tabla para hacer la traza y registrar

    los valores de forma ordenada asociados a cada uno de

    los procesos y adems se realiza una tabla para cada uno

    de los distintos cursos que pueda tomar la operacin.

    Por ejemplo si hacemos la traza del ejemplo anterior de

    carga del telfono podramos dibujar la siguiente tabla:

    Datos de control

    Acciones Nro detelfono

    Valor a cargar Tipo Plan Saldo

    Buscar los datosdel telfono

    84480965 3500 Ilimitado 0

    El telfono tieneplan ilimitado?

    Ilimitado 0

    Salida 0

    Datos de control

    Acciones Nro detelfono Valor a cargar Tipo Plan Saldo

    Buscar los datosdel telfono

    84480965 3500 CuentaControlada

    0

    El telfonotiene planilimitado?

    CuentaControlada

    0

    Tiene cuentacontrolada y susaldo es 0?

    CuentaControlada

    3500

    Salida 3500

    Datos de control

    Acciones Nro detelfono

    Valor a cargar Tipo Plan Saldo

    Buscar los datos deltelfono

    84480965 3500 Prepago 1000

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    25/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    24El telfono tieneplan ilimitado?

    Prepago 1000

    Tiene cuentacontrolada y susaldo es 0?

    Prepago 1000

    Tiene cuenta

    controlada y susaldo es mayor a 0?

    Prepago 1000

    Es de prepago? Prepago

    Salida 4500

    Si te fijas en las tablas anteriores hay un conjunto de

    preguntas que generan una respuesta basndose en los

    valores proporcionados a la funcin. Para cada grupo de

    preguntas y respuestas se realiza alguna accin o

    acciones que llevan al resultado expresado en la salida.

    Datos de control

    Acciones Nro de telfono Valor a cargar Tipo Plan Saldo

    Buscar los datosdel telfono

    84480965 3500 CuentaControlada

    1000

    El telfono tieneplan ilimitado?

    CuentaControlada

    1000

    Si tiene cuenta

    controlada susaldo es 0?

    Cuenta

    Controlada

    1000

    Salida 1000

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    26/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    25

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    27/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    26

    Tcnicas de algoritmos parael diseo de procesoscomputacionales.

    Conceptos bsicos.

    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 una serie de pasos organizados que

    describe el proceso que se debe seguir para dar solucin

    a un problema especfico.

    Otra definicin ms especfica es: Conjunto de pasos

    finitos no ambiguos que permitan dar solucin a un

    problema especfico.

    A simple vista la definicin formal de algoritmo puede no

    ser tan clara por si sola, pero vers que un algoritmo es

    algo que ya conoces y lo mejor es que durante toda tu

    vida has ejecutado varios algoritmos sin darte cuenta,

    comencemos con un ejemplo bsico, has jugado alguna

    vez a encontrar el tesoro pirata siguiendo un mapa?

    Aquel papelito de color caf que dando un par de pasos

    en varias direcciones te lleva a un lugar que marca una

    X, pues aquel papel lo que tiene escrito dentro en

    realidad es un algoritmo. veamos por qu: primero el

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    28/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    27papel nos seala el lugar de inicio, luego de ello las

    instrucciones que sigues dicen algo as como dos pasos a

    la derecha, un paso a la izquierda, este tipo de

    instrucciones son un conjunto de pasos finitos, dado que

    no son interminables, tiene un punto de comienzo (donde

    obliga a ubicarte) y un final (donde marca la X), tampoco

    son ambiguos por que no hay doble interpretacin para

    cada una de ellas, finalmente si sigues todas las

    instrucciones en orden encontrars el lugar donde esta la

    X, entonces tambin podemos aseverar que estos pasos

    sirven para resolver un problema especifico, el cual nos

    indica el camino desde un punto hasta otro, donde

    debajo de la gran X probablemente nos esperen algunas

    monedas de oro.

    Sin embargo y siguiendo este criterio muchas actividades

    van a comenzar a parecer un algoritmo y de hecho es

    muy probable que lo sean, sin embargo no todo es un

    algoritmo y es bueno que tambin sepamos reconocer lo

    que no lo es, supongamos que estas viendo un programa

    de televisin donde estn dictando una receta para

    cocinar un rico pastel baado en chocolate, esta receta

    ser entonces un algoritmo si los pasos de la preparacin

    especifican los factores de tiempo y material que se

    deben utilizar en cada uno de ellos, si en determinado

    momento entre el listado de actividades que hay que

    realizar existe alguno que diga algo as como agregue

    azcar a gustoel conjunto de instrucciones dejar de ser

    un algoritmo, debido a que existe un paso ambiguo.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    29/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    28En informtica el algoritmo es una de las piezas

    fundamentales en el desarrollo de software ya que el

    computador responder a algoritmos que nosotros

    diseemos y pediremos a l que ejecute, para ello lo

    haremos a travs de los lenguajes que el computador

    entiende, los cuales irs aprendiendo durante el

    desarrollo de tu carrera.

    Todo lo que ejecuta el computador son algoritmos, un

    buen diseo de un algoritmo hace mejor y ms rpido a

    un programa, te has detenido alguna vez a pensar

    cmo la calculadora resuelve las operaciones

    encomendadas?, es probable que no, pero de lo que s

    podemos estar seguros es que la calculadora es una gran

    ejecutora de algoritmos, ya que cada calculo matemtico

    es resuelto mediante algoritmos, es decir pasos que ya

    estn definidos para resolver una operacin, de ellos

    podemos destacar el clculo del potencial, el cual es un

    algoritmo muy popular, que da solucin a clculos como

    por ejemplo 24 =16. Otro algoritmo famoso es el de

    Dijkstra, este algoritmo es el encargado de encontrar la

    ruta ms corta entre dos puntos, es muy posible que lo

    hayas visto sin saberlo en los video juegos, ya que este

    algoritmo es el encargado de hacer que tus tropas

    avancen desde un punto hacia otro buscando el mejor

    camino en muchos juegos de estrategia

    Hacer buenos algoritmos no es una tarea sencilla,

    requiere de prctica y mucha lgica, durante este manual

    vas aprender a desarrollar tu lgica y comprender qu

    partes componen el problema que deseas solucionar,

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    30/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    29cules son los datos de entrada y cul es el conjunto de

    pasos que debes aplicar sobre los datos para generar el

    resultado deseado, el cul no es otra cosa que

    informacin para la persona que lo solicita, tambin

    aprenders a cmo optimizar los algoritmos, para que

    tengas una idea, la optimizacin corresponde a la

    capacidad de lograr reducir la cantidad de pasos para

    solucionar el mismo problema, una de las cosas

    interesantes que tienen los algoritmos es que existe

    muchas formas de solucionar un mismo problema, con el

    tiempo te dars cuenta que incluso habrn ocasiones en

    las que para un ejercicio dado todos tu compaeros

    tendrn eventualmente una solucin distinta.

    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.

    Lenguajes Algortmicos. Es una serie de smbolos y reglas

    que se utilizan para describir de manera explcita un

    proceso. Hay dos tipos:

    Grficos: Es la representacin grfica de las operaciones

    que realiza un algoritmo. Ejemplo: Diagrama De Flujo,DFD.

    No Grficos: Representa en forma descriptiva las

    operaciones que debe realizar un algoritmo. Ejemplo:

    Pseudocdigo.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    31/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    30

    Caractersticas de un buen algoritmo. Debe tener un punto nico de inicio.

    Debe ser definido, no debe permitir dobles

    interpretaciones.

    Debe ser general, es decir, soportar la mayora de las

    variantes que se puedan presentar en la definicin del

    problema.

    Debe ser finito en tamao y tiempo de ejecucin. Es

    decir, debe tener un fin.

    Diagrama de flujoPara el diseo de algoritmos se utilizan tcnicas de

    representacin. Una de estas tcnicas son los Diagramas

    de Flujo (DDF), que se definen como la representacin

    grfica que mediante el uso de smbolos estndar unidos

    mediante lneas de flujo, muestran la secuencia lgica de

    las operaciones o acciones que debe realizar un

    computador, as como la corriente o flujo de datos en la

    resolucin de problema.

    Pseudocdigo.El escribir aplicaciones computacionales se necesita

    entregar al computador una serie de instrucciones las

    cuales sern ejecutadas por este. Para realizar este

    proceso se inventaron los lenguajes de programacin

    mediante los cuales el programador escribe las

    instrucciones para que el computador realice las acciones

    correspondientes, el programador escribe estas

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    32/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    31instrucciones las cuales son interpretadas y luego

    compiladas (transformadas en un lenguaje que entiende

    el computador llamado lenguaje de mquina), para que

    con el resultado de este proceso pueda ejecutar las

    instrucciones.

    Ahora como los lenguajes de programacin a veces son

    muy complejos de aprender, existe un subconjunto de

    lenguajes ms bsicos que se llaman pseudolenguajes,

    los cuales permiten generar pseudocdigo. El

    pseudolenguaje generalmente es un subconjunto de un

    lenguaje de programacin que es muy extenso, o a veces

    tambin se trata de un lenguaje que ocupa expresiones

    que son ms cercanas al lenguaje de las personas, pues

    en todos los lenguajes de programacin las instrucciones

    estn en ingls. Si bien existe una cercana mayor con el

    lenguaje con el que hablas (en este caso espaol), existe

    la complejidad posterior de tener que aprender de nuevo

    otro lenguaje de programacin. Para efectos de este

    manual, ocuparemos un lenguaje de programacin

    llamado java el cual tiene una sintaxis relativamente

    simple. Adicionalmente la sintaxis de java esta basada en

    un lenguaje de programacin denominado C que es el

    padre de los lenguajes ms utilizados: C++, javascript,

    java, c#, actionscript, php, entre otros, que utilizars

    durante el desarrollo de tu carrera.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    33/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    32

    Programa.Conjunto de rdenes o instrucciones capaces de

    manipular un conjunto de datos. Estas rdenes pueden

    ser divididas en tres grandes bloques claramentediferenciables, estos son:

    Entrada de datos: En este bloque se engloban todas

    aquellas instrucciones que toman datos de un dispositivo

    o perifrico externo, depositndolos en la memoria

    principal del computador para ser procesados.

    Proceso: Engloban todas aquellas instrucciones

    encargadas de modificar los datos que previamente

    haban sido depositados en la memoria principal. Todos

    los resultados obtenidos en el tratamiento de dichos

    datos son depositados nuevamente en la memoria

    principal quedando de esta manera disponible.

    Salida de resultados: Es el conjunto de instrucciones

    que toman los resultados finales desde la memoria

    principal y lo envan a dispositivos externos.

    Etapas en la creacin de

    programas.Durante el desarrollo hay un conjunto de etapas que sin

    importar el tipo de software que desee crearse siempre

    se repiten, ya sea desde un programa muy simple como

    una calculadora con las operaciones bsicas, hasta

    completos sistemas de clculos en tiempo real. Estas

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    34/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    33etapas sern definidas y explicadas en forma lineal, sin

    embargo en el desarrollo real no significa que este sea un

    orden estricto y que no haya vuelta atrs, muy por el

    contrario, en muchas ocasiones cuando ya se piensa que

    se ha superado por completo una etapa es necesario

    volver atrs, agregar o corregir algo que se nos pas

    para luego volver a la etapa siguiente. Otra cosa

    importante, es que en algunas ocasiones tambin se da

    que las etapas se solapan, vale decir, que antes de

    finalizar una es posible avanzar en algunos puntos de la

    que viene, esto suele ser til para comenzar a

    dimensionar si lo que estamos haciendo esta correcto.

    Requisitos.Los requisitos de software son especificaciones claras y

    puntuales sobre lo que debe contener un software para

    cumplir con algn requerimiento.

    Es habitual que las personas confundan requisito con

    requerimiento, incluso una discusin de ello se encuentra

    en el manual de anlisis y diseo orientado a objetos

    dentro del capitulo de ingeniera de requerimientos, pues

    bien, en ese captulo se habla de la necesidad de extraer

    la informacin sobre los procesos que realizan los clientes

    los cuales luego queremos construir como software ms

    adelante, dichas necesidades son requerimientos y estn

    asociados a las necesidades que tiene la empresa y que

    luego resolveremos o apoyaremos con un software, un

    requisito en cambio est ms bien asociado a lo que debe

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    35/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    34hacer un software para que en su funcionamiento cumpla

    con lo que deseamos construir, vemoslo con un

    ejemplo: si deseas construir un software para apoyar el

    proceso de venta de juguetes, estamos hablando de un

    requerimiento, sin embargo, cuando dices que tu

    software necesita validar que el mtodo de pago sea slo

    en pesos chilenos, entonces estamos hablando de un

    requisito del software, los cuales en su conjunto debiesen

    alinearse con los requerimientos.

    Una forma fcil de recordar la diferencia es mirar la

    contratapa de algn software que hayas comprado alguna

    vez, all veras los requisitos mnimos necesarios para se

    ejecucin y que por tanto estn absolutamente ligado a

    una pre condicin del software, no del proceso que desea

    resolver.

    Anlisis.En la etapa de anlisis es en la que recopilamos todos los

    requisitos necesarios para desarrollar el software, los

    analizamos y buscamos restricciones que deban ser

    aplicadas por el software. Este anlisis es recomendable

    hacerlo en equipo, para ello los encargados cuentan con

    un conjunto de diagramas que les permiten dibujar los

    procesos que desean construir antes de comenzar a

    desarrollar la aplicacin. Esta etapa es fundamental en el

    ciclo de desarrollo de un software, un mal anlisis de los

    requisitos podra tirar por la borda el esfuerzo de mucho

    tiempo.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    36/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    35

    Diseo de la solucin.En el diseo de la solucin es el momento en el que se

    planifica la arquitectura de lo que se desea construir, el

    diseo de una aplicacin abarca varios temas, algunos

    mucho ms complejos que otros, donde todo depender

    del tipo de aplicacin que deseamos construir.

    Durante esta asignatura el diseo que abarcaremos

    estar principalmente enfocado a cmo organizaremos el

    cdigo dentro de una sola aplicacin, tal vez por ahora

    sea complicado de comprender, pero pequeas rutinas de

    cdigo con el tiempo las iremos organizando y agrupando

    en mtodos, donde cada uno de estos mtodos

    representa un proceso, es decir una entrada de datos,

    algn conjunto de operaciones aritmticos y lgicos que

    aplicaremos sobre ellos, para luego generar una salida.

    En la medida que vayamos aprendiendo resolveremos

    ejercicios ms complejos donde para llegar a una solucin

    necesitaremos crear varios procesos, los cuales

    agruparemos en una entidad mayor llamada clase, dichas

    clases y sus mtodos (o comportamientos) dibujaremos

    en un diagrama llamado diagrama de clases.

    El diseo no slo se refiere a cmo organizaremos los

    componentes internos de un programa, hay ocasiones en

    que una solucin consta de ms de un programa, por

    ejemplo, hay redes sociales que tienen un componente

    Web y otro en equipos mviles, en este caso el diseo

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    37/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    36tambin debe incorporar la forma en que ambos software

    se comunicarn.

    Otro aspecto que tambin se refiere al diseo, es la

    forma en que los componentes se instalarn. Muchas

    veces los software estn diseados para recibir grandes

    cargas de datos o altos niveles de trfico de usuarios y

    estn ejecutndose sobre ms de un equipo, por lo que

    en estas ocasiones, el diseo tambin esta ligado al

    hardware en el que se ejecutar. Conocer esto a tiempo,

    nos dar una pauta de la forma lgica en la que debemos

    construirlo.

    Codificacin.Esta etapa se refiere a la construccin del software, es el

    equivalente a comenzar a levantar los cimientos de una

    casa luego de que ha sido diseada. La codificacin es un

    proceso que no debiese generar problemas si el anlisis

    de requisitos ha sido realizado correctamente y si los

    programadores estn guindose por un diseo (diagrama

    de clases) que ha sido discutido y aprobado por el equipo

    responsable.

    Durante esta etapa los programadores debern idear los

    algoritmos que permitan solucionar cada uno de los

    objetivos planteados en el diseo de la solucin y la

    comunicacin entre las partes.

    Durante la codificacin utilizaremos algn lenguaje de

    programacin que nos permita comunicarnos con la

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    38/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    37mquina, la eleccin del lenguaje es una conversacin

    que da para mucho, pero por lo general depende de las

    prestaciones que nos da la tecnologa que la rodea, de las

    restricciones y aunque no debiese ser una limitante,

    muchas veces influye su valor.

    Prueba.Las pruebas corresponden a la etapa de la post

    construccin, aqu es donde probamos lo que hemos

    construido. Para iniciar las pruebas no es necesario

    terminar el software completo, los programadores suelen

    hacer muchas pruebas de cada mtodo que han

    construido con el fin de determinar si sus algoritmos

    hacen lo que se espera de ellos. A estas pruebas se les

    llama prueba unitaria y consiste bsicamente en ingresar

    datos de entrada y verificar que la salida sea la esperada,

    adems suelen hacerse durante todo el periodo de

    codificacin.

    Adicionalmente, existen otros tipos de pruebas que tienen

    relacin con la cantidad de recursos que un software

    utiliza, esta tarea por lo general realizada por el

    departamento de aseguramiento de la calidad realiza

    tareas como la revisin de la carga del procesador y los

    tiempos de respuesta de la aplicacin.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    39/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    38

    Mantencin.La mantencin del software es un proceso que se realiza

    post entrega y corresponde a modificaciones posteriores.

    Las mantenciones siempre nacen a causa del cambio de

    un proceso en la organizacin del cliente que lo ha

    solicitado. Las mantenciones pueden ser una buena

    fuente de ingreso posterior a la venta, ya que casi

    siempre las mantenciones son realizadas por la misma

    empresa desarrolladora, sin embargo en otras pueden

    convertirse en un gran dolor de cabeza cuando el

    software ha sido construido de forma poco modular

    (divididos en sub programas), la mantencin se vuelve

    muy dificultosa y los cambios en una parte comienzan a

    provocar errores en otros. Algunos paradigmas de

    programacin como la programacin orientada a objetos

    (POO) aporta mucho a la facilidad de mantener sistemas,

    ya que divide los procesos en procesos ms pequeos y

    luego los agrupa con un nombre que los represente, de

    esta forma es ms sencillo ubicar donde hay que realizar

    el cambio y cuales son los datos de entrada y salida

    esperados.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    40/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    39

    Caractersticas de la

    programacin.

    Estructura descendente.En la etapa de anlisis se determina que hace el

    programa, en la etapa de diseo se determina cmo hace

    el programa la tarea solicitada. Con el objetivo de hacer

    el proceso de la resolucin de problemas ms eficaz es

    que se utiliza el proceso de diseo conocido como divide

    y vencers. Esto quiere decir que la resolucin de

    problemas complejos se realizan dividiendo dichoproblema en subproblemas y a continuacin dividir dichos

    subproblemas en otros de nivel ms bajo hasta que

    pueda ser implementada la solucin. La solucin de estos

    subproblemas se realiza con subalgoritmos. Los

    subalgoritmos son unidades de programa o mdulos que

    estn diseados para ejecutar alguna tarea especfica.

    Estas unidades (las que distinguiremos como Funcionesy Procedimientos y que estudiaremos en profundidad

    ms adelante) se escriben slo una vez, pero pueden ser

    invocadas o referenciadas en diferentes puntos del

    programa o mdulo principal con el objeto de no

    duplicar el cdigo innecesariamente. Este mtodo de

    disear algoritmos con el proceso de romper el

    problema subdividindolo en varios subproblemas sedenomina diseo descendente, TOP-DOWN o

    Modular y en cada etapa, expresar cada paso en forma

    ms detallada se denomina refinamiento sucesivo .

    Cada subprograma es resuelto en un mdulo que tiene

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    41/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    40un nico punto de entrada y un solo punto de salida. Los

    mdulos pueden ser planeados, codificados, comprobados

    y depurados de forma individual (hasta por

    programadores distintos) y combinarlos mas tarde lo que

    implica la combinacin de los siguientes pasos:

    Programar un mdulo.

    Comprobar el mdulo.

    Depurar el mdulo

    Combinar el mdulo con los dems.

    Esta tcnica es utilizada hoy en casi todas las disciplinas,

    en programacin existe ms de un paradigma (una forma

    o modelo de cmo hacer las cosas).

    Modularidad.El concepto de modularidad en programacin esta

    directamente asociado al divide y vencers. Este

    concepto hoy est fuertemente asociado al paradigma de

    programacin orientado a objetos, el cual tiene como

    principio dividir la funcionalidad de un programa en

    programas ms pequeos de manera en que ellos sean lo

    ms independientes posible.

    Cohesin.Este trmino tiene relacin con la capacidad de unir las

    partes, la palabra cohesin es sinnimo de adhesin, por

    lo tanto estamos hablando de la unin de partes. En la

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    42/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    41programacin siempre se busca hacer todo modular, es

    decir tomar un gran software y construirlo de pequeas

    partes que ojal fuesen funcionales de forma

    independiente, sin embargo si vamos a programar de esa

    manera hay que pensar despus en como unir todo, a

    este concepto se le llama cohesin y se dice que un

    software tiene una alta cohesin cuando la llamada a una

    de esas partes la realiza una que contiene toda la

    informacin para ello.

    Acoplamiento.El acoplamiento esta muy ligado a la cohesin, cuando un

    software se encuentra dividido en partes y estas partes

    son unidas de forma correcta estamos hablando de una

    alta cohesin entre las partes, cuando esto esta presente

    en un software de forma automtica decimos entonces

    que nuestro programa tiene un bajo nivel deacoplamiento, lo que es muy bueno, ya que esto quiere

    decir que las partes no son dependientes entre s, por

    tanto, una modificacin en un proceso slo afectar a

    alguna de las piezas del software y no al 100%, evitando

    volver a modificar partes que si funcionan y cuya funcin

    no se ve alterada.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    43/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    42

    Descomposicin.La descomposicin es una caracterstica que permite

    desarmar un problema complejo en una serie de

    subproblemas que por el hecho de ser partes reducidas

    de un todo, pierden complejidad. Esta prdida decomplejidad nos permite concentrarnos en una parte

    especfica del problema utilizando el concepto de divide

    y vencers.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    44/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    43

    Estructura de un algoritmo.Los algoritmos se definen como una serie de pasos bien

    definidos y finitos que permiten solucionar un problema

    para cualquier tipo de valores.

    Bsicamente un algoritmo permite definir las acciones

    que se deben realizar para solucionar un problema.

    Existe una serie de acciones que acciones que se realizan

    para dar solucin a un problema, por ejemplo declarar

    variables, leer datos desde teclado, mostrar datos en una

    pantalla, etc. Esta serie de acciones se ordenan

    lgicamente para solucionar un problema. Un ejemplo de

    la definicin de la estructura de un algoritmo es el

    siguiente:

    1. Leer el pedido.

    2. Examinar el historial de crdito del cliente.

    3. Si el cliente es solvente, entregar el pedido.

    4. En caso contrario, rechazarlo.

    5. Fin.

    Si te fijas en el ejemplo anterior, existe una serie de

    pasos formales para dar solucin a un problema que en el

    caso anterior es tomar una decisin respecto a si se

    entrega o no un pedido a un cliente utilizando el historial

    de crdito que posee.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    45/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    44

    Conceptos de variables y

    constantes.

    Definicin de variables yconstantes.Cuando creamos software, los datos que van a ser

    procesados, se deben guardar de forma temporal para

    ser procesados por la aplicacin. El programa por lo tanto

    debe solicitar al sistema operativo que defina un espacio

    en la memoria donde guardar estos datos. Para esto los

    lenguajes de programacin definen una forma dereservar este espacio y es mediante la declaracin de

    variables y constantes. Cuando se declara una variable o

    una constante, se realiza el proceso de solicitar un

    espacio en la memoria del computador para almacenar

    valores que representan datos que queremos procesar. El

    problema surge cuando nos damos cuenta que el espacio

    en la memoria del computador es limitado, por lo tanto elsistema operativo para proteger la ejecucin de mltiples

    programas nos solicita que pidamos un espacio

    especfico, en funcin de lo que vamos a guardar, por

    ejemplo si tengo que construir un lugar para guardar mi

    auto, no construyo un galpn para guardar un avin,

    porque lo ms probable es que no ocupe todo el espacio

    y quede con mucho espacio sin utilizar, de la misma

    forma que no construyo un galpn para guardar una

    moto, pues lo que necesito guardar es un auto. Por lo

    tanto para indicar al sistema operativo cual es el espacio

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    46/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    45que se debe dejar disponible para guardar datos, los

    lenguajes de programacin definen los tipos de datos.

    Un tipo de dato por lo tanto permite definir el espacio en

    la memoria que el sistema operativo reservar para

    guardar datos que sern procesados por un software.

    En java los tipos de datos se pueden catalogar

    bsicamente en dos grupos, los primitivos (o simples) y

    las referencias a objetos.

    Primitivos

    Los tipos de datos primitivos son aquellos que pueden

    utilizarse directamente en un programa sin necesidad de

    utilizar POO, dado que no son objetos, los tipos de datos

    primitivos aportan un uso ms eficiente en el

    almacenamiento de datos y pueden ser divididos en dos

    grupos, los booleanos y numricos, los cuales se

    subdividen en dos grupos, los enteros (byte, short, int,

    long y char) y los reales (float y double).

    (Importante) la declaracin de una variable utiliza la

    siguiente sintaxis: Tipo de dato identificador = [valor][,

    identificador] [=valor] ;

    En java los identificadores tambin tienen una norma. La

    forma correcta de declarar una variable es escribindola

    con minsculas y las maysculas slo se utilizan en la

    primera letra a partir de la segunda palabra si es que la

    hay, por ejemplo el identificador miVariable lleva la

    letra V con mayscula debido a que es una palabra

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    47/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    46escrita despus de mi lo mismo sucede con

    miPrimeraVariable, donde tanto P como V van con

    maysculas

    byte:El byte es una variable que tiene una capacidad de 8 bits

    y permite almacenar un valor de tipo entero (sin

    decimales) entre el -128 y + 127. El siguiente ejemplo

    declara la variable y luego le asigna el valor de cero,

    cuando un valor es dado de forma inicial recibe el nombre

    de inicializacin de la variable.byte dia=0;

    (Importante) las variables pueden ser inicializadas con un

    valor (cero en este caso) o una expresin. Se entiende

    por expresin un conjunto de operadores que dan un

    resultado, pudiendo as declarar byte (o cualquier otro

    tipo de dato) de la siguiente forma:

    byte a = 1+1*2; tambin debes tener en cuenta que las

    variables numricas no inicializadas comienzan en cero.

    Short:El short tiene una capacidad de 16 bits y permite

    almacenar un valor entero entre -32768 y +32767 (al

    igual que el entero en C). La siguiente lnea de cdigo

    declara e inicializa dos variables.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    48/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    47

    Int:El tipo de dato entero tiene una capacidad de 32 bits y

    permite almacenar un valor entero entre -2147483648 y+2147483647.

    Long:El tipo de dato long tiene una capacidad de 64 bits y

    permite almacenar un valor entero entre -

    9.223.372.036.854.775.808 y

    +9.223.372.036.854.775.809

    Float:El tipo de dato float tiene una capacidad de 32 bits y

    permite almacenar un valor real en coma flotante

    (decimales) entre -3,4*10-38 hasta 3,4*1038. Los valores

    expresados en float deben ir acompaados de una letra f

    minscula al final.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    49/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    48

    Double:El tipo double tiene una capacidad de 64 bits y permite

    almacenar un valor real entre -1,7*10-308 y +1,7*10308.

    El double es el tipo de dato que asume Java al escribir un

    real, por ello no va acompaado de ningn carcter como

    en el caso del float.

    Boolean:El tipo de dato booleano es utilizado para conocer el

    resultado de una evaluacin booleana, los dos posibles

    valores son true y false (verdadero y falso).

    Si su valor de inicio no es especificado, el valor por

    defecto es false.

    Char:

    El tipo char, es un tipo de datos que permite almacenarun caracter, sin embargo el valor que en realidad

    almacena es un entero equivalente entre los valores del 0

    al 127 de la tabla de caracteres ASCII, la forma de

    declarar un char es la siguiente:

    (Importante) Para el caso de la variable letra1 el valor es

    el caracter a, el cual sebe ir entre comillas, sin embargo

    en letra2, las comillas no existen, porque no se le est

    asignando un carcter, el nmero 97 representa la letra a

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    50/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    49en la tabla ASCII, esto significa que la variable letra1 y

    letra2 tienen en realidad la misma letra almacenada.

    Tipo de objetos.Los tipos de objetos incluyen todos los objetos que

    pueden ser instanciados a partir de las clases

    provenientes con java y todas las que sean desarrolladas

    por el programador. Si bien ambos tpicos sern vistos

    ms adelante, en este captulo se mostrar el String, la

    cual es una clase de mucha utilidad y que a veces tratada

    como un tipo primitivo, aunque no lo sea.

    StringUn String (con su letra s mayscula) no es un tipo de

    dato primitivo, sin embargo se trata en este apartado

    debido a que su uso es muy habitual en los programas y

    adicionalmente se puede utilizar de la misma forma en la

    que se declaran los tipos primitivos. Un String es un tipo

    de dato que permite almacenar una cantidad de

    caracteres variables. Su declaracin y asignacin es de la

    siguiente forma:

    (Importante) String, es en realidad una clase, que

    almacena como atributo un arreglo de caracteres. Tanto

    las clases como los arreglos sern estudiados con mayor

    detalle ms adelante. El siguiente ejemplo muestra la

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    51/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    50declaracin de variables bajo el paradigma de la

    programacin estructurada dentro del mtodo main.

    La siguiente imagen, presenta un ejemplo de la

    utilizacin de los tipos vistos en declaracin de atributos

    de nuestra clase Persona.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    52/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    51

    (Importante) private representa el nivel de accesibilidad

    y ser estudiado ms adelante.

    Vida y mbito de una variableLas variables cuando son declaradas, tienen lo que se

    conoce como un mbito, el cual define las fronteras

    dentro de las cuales las variables pueden ser utilizadas.

    Tradicionalmente la programacin estructurada tiene dos

    niveles de visibilidad distintos: las variables locales y

    globales, sin embargo en la programacin orientada el

    mbito de una variable dentro de una clase es algo ms

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    53/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    52complejo y ser tratado a lo largo de este manual. Las

    variables siempre deben ir dentro de una estructura que

    los contenga, para cada estructura existe un inicio y

    cierre de bloque que la delimita. Como ejemplo la

    siguiente imagen muestra una clase con su respectivo

    inicio y cierre de bloque.

    Fjate que ahora la clase Persona posee adems un

    comportamiento llamado correr y descansar, los cuales

    tambin tienen limitado su bloque. Podemos decir

    entonces que la clase Persona contiene dentro un

    comportamiento llamado correr y descansar.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    54/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    53

    En este caso, la variable cansancio es una variable de

    instancia debido a que est definida dentro de la clase,

    pero fuera de sus comportamientos, por ende los

    mtodos descansar y correr (que tambin son parte de la

    clase) tienen visibilidad sobre cansancio, aumentando en

    este caso su valor al correr y disminuyndola al

    descansar.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    55/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    54

    El mbito de una variable siempre depender de del lugar

    donde se produzca su declaracin, por ejemplo, ya vimosque si declaramos la variable dentro de los bloques que

    limitan la clase persona, pero fuera de correr o

    descansar, la variable se denomina una variable de

    instancia y est disponible para todos los mtodos que la

    clase contenga. En el siguiente ejemplo la variable

    cansancio es ahora una variable declarada dentro de del

    comportamiento correr, esto se denomina variable localdel mtodo. Para este caso la visibilidad de dicha

    variable son los lmites donde fue declarada, vale decir el

    inicio y bloque de correr, el siguiente ejemplo causa un

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    56/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    55error debido a que descansar no tiene una visibilidad

    sobre la variable cansancio.

    (Importante) las variables de instancia son capaces de

    mantener el valor durante toda la vida de un objeto, sin

    embargo las declaradas dentro de un comportamientoson creadas, utilizadas y eliminadas al finalizar la

    ejecucin del comportamiento que la contiene. Tambin

    es posible crear lmites dentro de los comportamientos

    correr, si bien la tcnica que se presenta en el siguiente

    no es muy comn, es reconocida por el lenguaje Java.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    57/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    56

    En el segmento de cdigo anterior se muestran dos casos

    a considerar. En el interior del mtodo correr existe una

    delimitacin dentro que contiene la declaracin de una

    variable entera cuyo identificador es a, sin embargo al

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    58/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    57terminar el lmite donde fue declarada la variable ha

    vuelto a ser declarada, a primera vista da la idea de que

    correr tiene dos variables llamadas a, pero sabemos

    que eso es imposible. Recordemos que el identificador de

    una variable debe ser nico en un mismo mbito, lo que

    en realidad sucede es que la variable que se declara

    primero tiene una vida til desde que se declara hasta el

    cierre de bloque en el que fue declarada, por ende al ser

    declarada la segunda variable llamada a, la primera ya

    ha sido eliminada. En descansar en cambio se produce un

    error debido a que se declara primero una variable entera

    dentro de los lmites del comportamiento descansar, lo

    que provoca que tambin est disponible para el mbito

    que existe en el interior del mtodo, por lo tanto, en el

    mbito interior, no es posible declarar la variable entera

    con el identificador a, debido a que ya existe en l.

    Conversin entre tipos.

    En Java existen dos tipos de conversiones, la implcita y

    explicita. La implcita es aquella que no necesita de

    alguna intervencin por parte del programador para que

    se lleve a cabo, siendo Java el encargado de realizarla. El

    ejemplo ms comn es la operacin aritmtica de dos

    tipos de datos distintos, en una variable de qu tipo

    debo almacenar el resultado entre la suma entre un float

    y un double?

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    59/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    58

    La clave a la respuesta de esta pregunta no est en el

    resultado de la operacin, de hecho, en este caso el

    resultado es 6, el cual podramos asumir de forma

    errnea que es un resultado entero, sin embargo la clave

    del xito est en el tamao del resultado. Si tuvieses que

    construir un estacionamiento, donde se estaciona un

    camin gigante o un pequeo auto, pero nunca los dos al

    mismo tiempo, cul es el estacionamiento ms pequeo

    que debes construir? El del tamao del camin, pues Java

    hace lo mismo, el double es un valor ms grande (en

    bits) que el float, por ende Java siempre dar como

    resultado el tipo ms grande, con ello se asegura de que

    no exista perdida de precisin en el resultado.

    La conversin implcita es aplicada en la direccin de

    izquierda a derecha entre los datos presentados en el

    siguiente diagrama, lo que significa que un byte, puede

    almacenarse en una variable de tipo short o char o

    cualquiera de las 3 puede almacenarse en un int.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    60/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    59La conversin explcita o tambin conocida como cast

    consiste en forzar la conversin entre un tipo de dato a

    cualquier otro (excepto desde booleanos a enteros o

    reales), la sintaxis para realizar una conversin explicita

    es la siguiente:

    (Tipo destino) expresin o variable

    A=(int)promedio;

    En el siguiente ejemplo, se convierte una expresin que

    da como resultado un float (debido a que es ms grande

    que un short y un long) en un entero, dando como

    resultado el valor de 3.

    (importante) muchas veces se piensa que el resultado es

    4, debido a que la suma de las tres variables da en

    realidad 3.8f sin embargo convertir este resultado a un

    entero no implica una aproximacin, sino que slo tomar

    la parte entera del valor resultante (tambin conocido

    como truncar datos) El siguiente ejemplo muestra una

    clase en la que el comportamiento miPeso el cual retorna

    los kilos de su peso sin contar los gramos.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    61/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    60

    Representacin de sentenciasen Instrucciones.

    Operadores Aritmticos.Los operadores aritmticos son aquellos que permiten

    realizar operaciones matemticas y son:

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    62/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    61

    El siguiente ejemplo muestra una operatoria aritmtica

    que incluye una conversin explicita cuyo resultado es 4:

    Operadores unarios y de auto

    asignacin

    Este tipo de operadores son una forma reducida de

    utilizar los operadores aritmticos tradicionales, porejemplo: Dada la declaracin int a=6; la siguiente tabla

    muestra las equivalencias:

    Debes prestar especial atencin cuando uses los

    operadores -- y ++ dentro de una expresin aritmtica,

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    63/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    62debido a que el orden en el que se utilizan cambia el

    resultado de la operacin. -- y ++ pueden ser utilizados

    como sufijos o como prefijos, lo que implica la jerarqua

    con la que se ejecuta, por ejemplo, en este caso ++ est

    antes de la variable a lo que implica que previo a

    cualquier operacin que vaya ejecutarse sobre l la

    prioridad es incrementarlo en 1, siendo el resultado para

    este caso igual a 6 dado que a es 1 antes de ejecutar la

    suma.

    Operadores Lgicos

    RelacionalesSe usan para formar expresiones booleanas, es decir

    expresiones que al ser evaluadas producen un valorbooleano: verdadero o falso. Se utilizan para establecer

    una relacin entre dos

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    64/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    63Cuando la comparacin se hace con datos alfanumricos,

    opera de acuerdo a las siguientes reglas:

    Se compara uno a uno de izquierda a derecha.

    Si son de diferente longitud pero exactamente iguales

    hasta el ltimo carcter del ms corto, entonces el ms

    corto es el menor.

    Slo son iguales dos datos alfanumricos si son

    iguales su contenido y su longitud.

    Las letras minsculas tienen mayor valor que las

    maysculas. (tabla ascii)

    Booleanos:Combinan sus operandos de acuerdo al lgebra de Boole

    para producir un nuevo valor que se convierte en el valor

    de la expresin.

    OR u O: es un operador binario, afecta a dos operadores.

    La expresin que forma es verdadera cuando al menos

    uno de sus operandos es verdadero. Es un operador de

    disyuncin. Ejemplo: estudiamos o vamos al estadio

    AND o Y: tambin es un operador binario. La expresin

    formada es cierta cuando ambos operadores son ciertos

    al mismo tiempo. Es el operador lgico de conjuncin

    Ejemplo: si es verano y hace calor vamos a la playa

    NOT o NO: es un operador unario, afecta a un solo

    operando. Cambia el estado lgico de la expresin; si es

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    65/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    64verdadera la transforma en falsa y al revs. Ejemplo: no

    es verano.

    El orden de prioridad de estos operadores es: NOT, AND

    y OR.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    66/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    65

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    67/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    66

    Introduccin a lenguajesformales de Programacin.

    Estructura de un programa.En JAVA al igual que en la mayora de los lenguajes deprogramacin orientados a objetos, el cdigo se

    estructura en clases, la forma bsica de estructurar una

    clase es la siguiente:

    Los Atributos que representarn un objeto, por ejemplo,

    para una persona los atributos pueden ser, su edad y

    peso entre otros, los atributos de una clase estn

    representados por la declaracin de estructuras y tipo

    primitivos, para este caso por ejemplo, la edad puede

    estar representada por un tipo de dato int (entero) y un

    float respetivamente.

    Accesadores y mutadores, los cuales son

    comportamientos especiales dentro de una clase que

    permiten conocer y cambiar el valor de un atributo.

    Los comportamientos que un objeto tendr, por

    ejemplo, para nuestra persona, algunos ejemplos son

    correr y jugar.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    68/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    67

    Sentencia condicionalesLas sentencias condicionales representan un punto en

    nuestro programa donde el flujo del proceso cambiar

    dependiendo de alguna condicin. Si haces un anlisissimple vers que esto no es tan complicado de

    comprender como se lee, la vida a diario esta lleno de

    condiciones, las cuales vamos resolviendo da a da y esto

    provoca que nuestro diario vivir sea incierto, siempre hay

    una condicin para todo, por ejemplo, dependiendo si vas

    o no atrasado decidirs si ir a estudiar en metro o bus,

    dependiendo de qu da es, la hora a la que televantars. Este proceso mental es tan rpido que apenas

    nos habamos dado cuenta que lo realizamos tantas

    veces al da. Si a cada una de estas situaciones que nos

    enfrentamos a diario nos detuviramos un momento y

    nos analizramos de qu depende que vayamos hacer

    algo, nos daramos cuenta que programar es muy similar,

    por ejemplo, imagina que alguien te ofrece bebida yantes responder en voz alta expresas la condicin que te

    llevar a determinar si aceptas o no, si lo haces muy

    probablemente dirs algo similar a tengo sed?y si la

    respuesta es verdadera entonces lo hars.

    Una condicin esta antecedida de la conjuncin si (sin

    acento). Podemos hacer uso de ella entonces para

    formular todas aquellas condiciones a la que nos

    enfrentamos a diario, algunos ejemplos son:

    Si mi amigo va, yo voy.

    Si estoy aburrido jugar PC.

  • 7/31/2019 Manual Fundamentos de Programacin 1.0docx

    69/148

    UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES

    68Si me han enseado algo nuevo lo reforzar.

    Fjate que en cada una de las frases anterio