Apuntes Fundamentos de Programacion

download Apuntes Fundamentos de Programacion

of 108

Transcript of Apuntes Fundamentos de Programacion

  • 8/10/2019 Apuntes Fundamentos de Programacion

    1/108

    Antologas para la Materia:

    Fundamentos de ProgramacinIngeniera en Sistemas Computacionales

    ElaborL.I. Juan Aleander Anderson !uerta

    Catedr"tico del #epartamento de Sistemas $Computacin

    Enero de %&&'

    Pg. 1

  • 8/10/2019 Apuntes Fundamentos de Programacion

    2/108

    Contenido(nidad I Conceptos b"sicos del modelo orientado a ob)etos....................................

    1.1 Reconocimiento de objetos y clases en el mundo real y la interaccinentre ellos.1.2 La abstraccin y el encapsulamiento como un proceso natural.

    1.3 La POO y la complejidad del software.1.4 Conceptos del ciclo de ida del software.

    1.4.1 !specificaciones de re"uerimientos.1.4.2 #n$lisis Orientado a Objetos.1.4.3 %ise&o Orientado a Objetos.1.4.4 Pro'ramacin Orientada a Objetos( conceptos y caracter)sticas.

    1.* !lementos primordiales en el modelo de objetos.1.*.1 #bstraccin.1.*.2 !ncapsulamiento.1.*.3 +odularidad.1.*.4 ,erar"u)a y -erencia.

    1.*.* Polimorfismo.1. /istoria de los paradi'mas en el desarrollo del software.1.0 eneficios del modelo de objetos y de la POO sobre otros paradi'mas.

    (nidad II *+cnicas b"sicas de modelado de ob)etos................................................2.1 %efinicin de clases( atributos( mtodos y objetos.2.2 !l +odelo como resultado de la abstraccin.2.3 !l +L como una -erramienta de modelado de objetos.2.4 Planteamiento del problema.

    2.4.1 #naliar el enunciado del problema.2.4.2 5dentificar funciones del sistema.

    2.* #n$lisis.2.*.1 %escubrir objetos en el dominio del problema.2.*.2 5dentificar atributos de los objetos.2.*.3 5dentificar mtodos en los objetos.

    2. 5ntroduccin al dise&o de la solucin.2..1 Representacin 'r$fica de una clase.2..2 %ia'ramas de interaccin entre la aplicacin y una clase.2..3 %ia'ramas de estado de una clase.

    (nidad III *+cnicas de dise,o detallado.....................................................................3.1 %ise&o al'or)tmico.

    3.1.1 !lementos y re'las de la representacin 'r$fica de losal'oritmos.3.1.2 5mplementacin de al'oritmos secuenciales 6utiliando notacinal'ebraica7.

    3.2 %ise&o al'or)tmico de las funciones.

    Pg. 2

  • 8/10/2019 Apuntes Fundamentos de Programacion

    3/108

    (nidad I- Introduccin a la programacin.................................................................4.1 Clasificacin del software.

    4.1.1 8oftware del sistema.4.1.2 8oftware de aplicacin.

    4.2 Conceptos de la pro'ramacin.

    4.2.1 %efinicin de pro'rama.4.2.2 %efinicin de pro'ramacin.4.2.3 %efinicin de len'uaje de pro'ramacin.

    4.3 %atos.4.3.1 %efinicin.4.3.2 9ipos de datos.4.3.3 5dentificadores.4.3.4 #lmacenamiento( direccionamiento y representacin enmemoria.4.3.* 8istema de numeracin binaria y -e:adecimal.

    4.4 Operadores( operandos y e:presiones.4.* Prioridad de operadores( ealuacin de e:presiones.4. !structura b$sica de un pro'rama.4.0 Proceso de creacin de un ejecutable.

    (nidad - Implementacin de la clase.........................................................................

    *.1 +odificadores de acceso 6Public( Priate7.*.2 !ncapsulamiento de la clase.*.3 !l mtodo como elemento de la comunicacin.

    *.3.1 8inta:is.*.3.2 Concepto de par$metro.*.3.3 Par$metros de salida y de entrada.*.3.4 !l constructor.*.3.* !l destructor.

    (nidad -I Estructuras secuenciales $ selectias.......................................................1 +odificadores de acceso 6Public( Priate7..2 !ntrada y salida de datos..3 5nteraccin de la aplicacin y la clase..4 !structuras selectias.

    .4.1 8electia simple 6si7..4.2 8electia doble 6si ; de otro modo7..4.3 8electia anidada..4.4 8electia m

  • 8/10/2019 Apuntes Fundamentos de Programacion

    4/108

    (nidad I Conceptos b$sicos del modelo orientado a objetos.

    1.1. 2econocimiento de 3b)etos $ clases en el mundo real $ la interaccincon ellos

    La identificacin de los objetos y las clases no deber)a de ser dif)cil. %espus detodo( tratamos con miles de objetos y clases del mundo real cada d)a de nuestrasidas( y los objetos y las clases de software son simplemente modelos de losobjetos y las clase en el dominio de la aplicacin. Realiar modelos mentales yutiliar la abstraccin son apro:imaciones est$ndares -umanas para tratar con lacomplejidad de la ida diaria.%onde "uiera "ue mire a su alrededor usted los er$ = objetos!. Personas(animales( plantas( carros( aiones( construcciones( computadoras( etc. Los-umanos pensamos en trminos de objetos. 9enemos la maraillosa -abilidad dela abstraccin"ue nos -abilita a er las im$'enes de un monitor como objetostales como personas( aiones( $rboles y monta&as mas "ue como puntos

    indiiduales de color 6pixeles7. Podemos( si lo deseamos( pensar en trminos deplayas en lu'ar de -acerlo en 'ranos de arena( bos"ues en lu'ar de $rboles ycasas en e de ladrillos. Podr)amos estar inclinados a diidir los objetos en doscate'or)as = objetos animados y objetos inanimados. Los objetos animados est$n>ios> en al'

  • 8/10/2019 Apuntes Fundamentos de Programacion

    5/108

    1.% La abstraccin $ el encapsulamiento como un proceso natural

    Abstraccinna abstraccin denota las caracter)sticas esenciales de un objeto "ue lo

    distin'uen de todos los dem$s y proporciona as) fronteras conceptualesn)tidamente definidas respecto a la perspectia del obserador. 6Dradyooc-7

    E La abstraccin es una 6erramienta en el proceso de creacin del modelo apartir de un problema real "ue est$ determinada por los si'uientes 0actoresA

    = 5dentificacin de clasesA los conceptos "ue tienen entidad en s) mismos( nodependen de otros( se pueden describir( comprender y analiar puedenabstraerse como una clase.

    = !l objetio del modeloAo E determina tanto el grado de detalle como la in0ormacin

    releante.o E !jemplosA

    F #plicacin de macroeconom)aA los empleados de unaempresa pueden no ser importantes como indiiduos por"ueslo interese su comportamiento 'lobal como plantilla@ -abr$una clase plantilla pero no una clase persona.

    Pg. 5

  • 8/10/2019 Apuntes Fundamentos de Programacion

    6/108

    F #plicacin de nminasA necesita manipular la informacin decada persona de manera independiente@ -abr$ una clasepersona

    F Con el mismo 'rado de detalle de la aplicacin de nminas(los antecedentes cl)nicos de una persona son irreleantes en

    una aplicacin de prstamo bibliotecario pero fundamentalesen una aplicacin -ospitalaria de ayuda al dia'nstico deenfermedades@ en ambas aplicaciones -abr$ una clasepersona pero slo la se'unda tendr$ ariables miembro paraantecedentes cl)nicos.

    %efinicin se'

  • 8/10/2019 Apuntes Fundamentos de Programacion

    7/108

    o Cada clase Gfirma un contrato con el e:teriorH comprometindose a e:-ibirun determinado comportamiento( pero cmo lo consi'ue "ueda oculto oencapsulado en el interior de la clase.

    GLa abstraccin y el encapsulamiento son conceptos complementariosA la

    abstraccin se centra en el comportamiento obserable de un objeto( mientras "ueel encapsulamiento se centra en la implementacin "ue da lu'ar a esecomportamientoH 6ooc-7.

    o na de las 'randes entajas del encapsulamiento es "ue posibilita "ue laimplementacin de un objeto se pueda cambiar sin afectar a lasaplicaciones "ue lo utilian.

    o E !jemploAo 8upon'amos "ue la clase Pila representa a pilas de n

  • 8/10/2019 Apuntes Fundamentos de Programacion

    8/108

    Representacin isual de un objeto software.

    = Los objetos software tambin se pueden a'rupar en clases utiliando uncriterio similarA los objetos de la misma clase comparten estado y

    comportamiento.= !n terminolo')a orientada a objetos( un objeto concreto de una clase es unainstancia de la clase.

    na clase es un patrn o prototipo "ue define las ariables y los mtodoscomunes a todos los objetos de un cierto tipo.Las ariables en las "ue se almacena el estado de un objeto( se llaman ariablesde instancia.E Los mtodos "ue implementan el comportamiento de un objeto se llamanm+todos de instancia.

    Por ejemplo( la clase Coc-e declara las ariables de instancia necesarias paraalmacenar el IB de marc-as( la elocidad actual( y la marc-a actual.La clase tambin declara y proporciona la implementacin de los mtodos deinstancia "ue permiten arrancar( acelerar( frenar y cambiar de marc-a.

    %espus de crear la clase Coc-e se pueden crear los objetos de la clase.Cada instancia de la clase tiene su propia copia de todas las ariables de instanciadefinidas en la clase.

    Pg. 8

  • 8/10/2019 Apuntes Fundamentos de Programacion

    9/108

    -ariables de claseA las clases( adem$s de definir las ariables de instancia(tambin pueden definir ariables de clase( "ue contienen informacin com

  • 8/10/2019 Apuntes Fundamentos de Programacion

    10/108

    Con la POO tenemos "ue aprender a pensar las cosas de una manera distinta(para escribir nuestros pro'ramas en trminos de objetos( propiedades( mtodos yotras cosas "ue eremos r$pidamente para aclarar conceptos y dar una pe"ue&abase "ue permita soltarnos un poco con este tipo de pro'ramacin.Motiacin

    %urante a&os( los pro'ramadores se -an dedicado a construir aplicaciones muyparecidas "ue resol)an una y otra e los mismos problemas. Para conse'uir "uelos esfueros de los pro'ramadores puedan ser utiliados por otras personas secre la POO. ue es una serie de normas de realiar las cosas de manera "ueotras personas puedan utiliarlas y adelantar su trabajo( de manera "ueconsi'amos "ue el cdi'o se pueda reutiliar.La POO no es dif)cil( pero es una manera especial de pensar( a eces subjetia de"uien la pro'rama( de manera "ue la forma de -acer las cosas puede ser diferentese'

  • 8/10/2019 Apuntes Fundamentos de Programacion

    11/108

    L# CO+PL!,5%#% %!L %O+5I5O %!L PROL!+# !:iste una isin diferente sobre la naturalea del problema entre el

    desarrollador y el usuario. La tarea del e"uipo de desarrollo de software esofrecer ilusin de simplicidad.

    Los re"uisitos del software cambian frecuentemente durante su desarrollo. Los sistemas 'randes tienden a eolucionar con el tiempo. # este proceso se le

    conoce en forma incorrecta como mantenimiento del software. 8iendo precisos(es mantenimiento cuando se corri'en errores( es eolucin cuando seresponde a re"uerimientos "ue cambian@ es conseracin cuando se si'uenempleando medios e:traordinarios para mantener en operacin un sistema desoftware anticuado y decadente.

    L# %5J5CL9#% %! D!895OI#R !L PROC!8O %! %!8#RROLLO8e re"uieren de e"uipos de trabajo para desarrollar software formado por miles omillones de mdulos.

    8e re"uiere de un es"uema de comunicacin y una 'ran coordinacin.

    La Complejidad es un concepto "ue es considerado e:tremadamente releantepara un sistema computacional( el cual -a sido abordado por ariosinesti'adores. !s importante -acer notar "ue la definicin de complejidad usadaen este trabajo es intencionalmente mas restrictia "ue la usada por otrosinesti'adores. !sto nos permite proporcionar una definicin de la complejidad deun artefacto a tras de un conjunto definido de propiedades.La Complejidad "ue un elemento aislado puede a're'ar a un sistema bien puedeser el resultado de las relaciones entre sus sub=elementos. Por ejemplo( en unsistema modular( cada mdulo puede ser isto como un >componente de alto

    niel> el cual encapsula >subelementos>. 8i "ueremos considerar el sistema comocompuesto solamente de estos >componentes de alto niel>( no debemos>desempacar> estos elementos para medir su complejidad y solo tomar en cuentalas relaciones entre los componentes de alto niel.Pero si deseamos tomar en cuenta la complejidad "ue aporta cada componente alsistema entonces el sistema debe de ser isto como la suma de los componentesy subcomponentes. #s) como las relaciones totales del sistema son la suma de lasrelaciones entre componentes de alto niel mas la suma de las relaciones de lossubcomponentes.n sistema y las relaciones entre sus componentes no cambian si cambiamos laforma de representarlos. por lo tanto la complejidad tampoco debe cambiar con

    este respecto.8e -a ar'umentado "ue no siempre es cierto "ue entre mas relaciones mayor lacomplejidad de el sistema. !n al'unos casos( el a're'ar relaciones entrecomponentes puede ayudar a entender mas al sistema. esto es desde lue'ocierto( pero lo "ue se mejora es el entendimiento de el sistema 6esto es( lapercepcin de el sistema -ec-a por un a'ente e:terno( como la 'ente7( y no lacomplejidad. La complejidad es solo un factor a aplicar para determinar el

    Pg. 11

  • 8/10/2019 Apuntes Fundamentos de Programacion

    12/108

    entendimientodel sistema y puede ayudar a pronosticarlo( pero no es el La fase de definicin solo narra con mayor detalle "ue es lo "ue "ueremos -acer(cuando "ueremos -acerlo( como lo llearemos a acabo y cuanto costara>.7. Fase de ad=uisicin o de produccin.>!l propsito de esta fase de ad"uisicin o de produccin es ad"uirir y probar loselementos del sistema y el sistema total mismo utiliando los est$ndares "ue sedesarrollaron durante las fases precedentes. !l proceso de ad"uisicin inolucraaspectos tales como la implantacin real del sistema( la fabricacin del e"uipo( la

    Pg. 12

  • 8/10/2019 Apuntes Fundamentos de Programacion

    13/108

    asi'nacin de autoridad y de responsabilidad( la construccin de las instalacionesy la conclusin de la documentacin de apoyo>.!sta fase puede describirse como la fase de desarrollo de las actiidades "ueanteriormente fueron definidas en la fase de definicin.!n esta fase el papel fundamental del 'erente de un sistema durante la faseoperacional es proporcionar el apoyo de recursos re"ueridos para llear a cabo losobjetios del sistema>.!n esta fase el 'erente encar'ado del sistema es el "ue proee de todos losrecursos necesarios para llear acabo los objetios del sistema. !sta fase esresultado de "ue el modelo -a sido aprobado desde el punto de ista econmico( yel 'erente trata de poner m$s atencin en los elementos -umanos del sistema ytrata de optimiar los recursos del sistema total.>. Fase de muerte.9odociclo tiene su inicio y su fin( es decir no todo es eterno( as) "ue esta etapa esla de declinacin o muerte del sistema.+uy a menudo( esto no es reconocido por las empresas a simple ista( no "uierenreconocer de "ue cuentan con sistemas obsoletos y "ue estos ya no son deutilidad para la empresa( muc-as eces son deficientes y se mantienen cone"uipos e instalaciones inadecuadas.La empresa debe asumir la realidad "ue -ay "ue -acer un cambio en sussistemas as) como sus instalaciones si realmente "uiere ser competitia.

    #eterminacin de re=uerimientos

    n re"uerimiento es una caracter)stica necesaria "ue deber$ poseer elnueo sistema.

    Por otra parte( la determinacin de re"uerimientos es el estudio de unsistema para comprender cmo trabaja y dnde es necesario efectuar mejoras.

    #-ora bien( e:isten tres formas 6M actiidades7 de determinar de re"uerimientos( asaber

    Anticipacin de re=uerimientosA preer las caracter)sticas del nueosistema con base en e:periencia preia.

    Inestigacin de re=uerimientosA actiidad m$s importante del an$lisisde sistemas. !s el estudio y documentacin del sistema actual usandopara ellos tcnicas de para -allar -ec-os( an$lisis de flujo de datos yan$lisis de decisin. !s a"u) donde aplicamos entreistas(cuestionarios( obseracin y reisin de documentacin entre otros.

    Especi0icacin de re=uerimientosA los datos obtenidos durante larecopilacin de -ec-os se analian para determinar las especificacionesde los re"uerimientos( es decir( la descripcin de las caracter)sticas delnueo sistema. !sta actiidad tiene tres partes relacionadas entre s)( asaberA

    An"lisis de datos basados en 6ec6os reales Identi0icacin de re=uerimientos esenciales Seleccin de estrategias para satis0acer los re=uerimientos

    Pg. 13

  • 8/10/2019 Apuntes Fundamentos de Programacion

    14/108

    9odo sistema de informacin posee un conjunto de re"uerimientos b$sicosy un conjunto de re"uerimientos espec)ficos dependiendo si el sistema ser$ desoporte para transacciones o para la toma de decisiones.

    2e=uerimientos b"sicos:los analistas estructuran su inesti'acin albuscar respuestas a las si'uientes cuatro pre'untasA NCu$l es el proceso b$sico de la empresa Nu datos utilia o produce este proceso NCu$les son los l)mites impuestos por el tiempo y la car'a de

    trabajo Nu controles de desempe&o utilia

    8on esas las pre'untas "ue tienen "ue tener una respuesta concreta altener terminada la fase de inesti'acin de re"uerimientos.

    8iempre se debe comenar con lo b$sico. Los analistas -acen pre'untas "ue

    cuando reciben respuesta( proporcionan antecedentes sobre detallesfundamentales relacionados con el sistema y "ue siren para describirlo. Lassi'uientes pre'untas son de utilidad para ad"uirir la comprensin necesariaA

    NCu$l es la finalidad de la actiidad dentro de la empresa Nu pasos se si'uen para realiarla N%nde se realian estos pasos Nuines los realian NCu$nto tiempo tardan en efectuarlos NCon cu$nta frecuencia lo -acen Nuines emplean la informacin resultante

    Respuestas concisas a estas pre'untas proporcionan un conocimiento amplio deuna actiidad en particular y muestra tambin su objetio. Pero analista no sedetiene a-)( toda)a no e:iste informacin para comprender en su totalidad laactiidad@ m$s bien lo "ue se tiene son los antecedentes "ue permiten a losanalistas formular pre'untas m$s detalladas.

    %urante esta( debemos identificar muy claramente los si'uientes elementosA procesos flujos de datos entre procesos datos de cada flujo de datos almacenes de datos

    datos de los almacenes de datos.

    Para ello el cuestionario "ue se aplica debe re"uerir la si'uiente informacinA nombre de la entidad nombre los campos descripcin fuente y sensibilidad 6M se'uridad7

    Pg. 14

  • 8/10/2019 Apuntes Fundamentos de Programacion

    15/108

    alor o importancia de los datos relaciones de los campos y entidades Criterio de retencin y almacenamiento.

    Preguntas cl"sicas para una determinacin de re=uerimientos:

    Preguntas generales: NCu$ntos empleados laboran para la or'aniacin en el $rea6s7 "ue se

    pretende desarrollar el sistema@ o sea( cu$ntos tienen relacin directa con elproyecto "ue se est$ inesti'ando.

    NCu$les son las personas claes en el sistema NPor "u son importantes N!:isten obst$culos o influencias de tipo pol)tico "ue afectan la eficiencia

    del sistema N!:isten manuales de procedimientos( pol)ticas o lineamientos de

    desempe&o documentados oficial o no oficialmente. 8i los -ay( N8ecumplen en forma cabal en el 1 de las ocasiones( es decir( Nserespetan dic-os procedimientos

    N!:isten mtodos para eadir el sistema( NPor "u se presentan Nu $reas necesitan un control espec)fico Nu criterios se emplean para medir y ealuar el desempe&o

    Por otra parteA N!:isten actiidades "ue considere podr)an mejorarse( N%e "u manera N9iene al'una idea de actiidades "ue podr)an implementarse para mejorar

    el rendimiento del sistema en 'eneral

    #eterminacin de procesos: ?Cu$les son las principales actiidades "ue se realian en la or'aniacin y

    "ue tienen relacin con el proceso "ue se est$ modelando

    #escripcin de cada proceso identi0icado Nu es lo "ue da inicio a la actiidad NCu$l es el objetio de la misma NCu$nto tiempo se tarda en realiarla Nu retrasos ocurren o pueden ocurrir Nu mtodos se emplean para medir y ealuar el desempe&o de

    esta actiidad N8e toman precauciones espec)ficas de se'uridad para la proteccin

    contra al'una actiidad impropia "ue se pudiera presentar Nu tan frecuente es el ciclo con el "ue se desarrolla dic-a

    actiidad %e acuerdo al ciclo con el "ue se presenta la actiidad( NCu$l es el

    olumen de informacin "ue a"u) se procesa Nu pasos( sub=procesos( o funciones constituyen la actiidad

    6describir la actiidad paso a paso7

    Pg. 15

  • 8/10/2019 Apuntes Fundamentos de Programacion

    16/108

    N!:iste al'

  • 8/10/2019 Apuntes Fundamentos de Programacion

    17/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    18/108

    !ste enfo"ue pretende conse'uir modelos "ue se ajusten mejor al problema real(a partir del conocimiento del llamado dominio del problema( eitando "ue influyanen el an$lisis consideraciones de "ue estamos analiando un sistema paraimplementarlo en una computadora. %esde este punto de ista( el #OO consi'ueuna abstraccin mayor "ue el an$lisis estructurado( "ue modela los sistemas

    desde un punto de ista m$s pr:imo a su implementacin en una computadora6entrada;proceso;salida7.

    !ste intento de conocer el dominio del problema -a sido siempre importante@ notiene sentido empear a escribir los re"uisitos funcionales de un sistema de controlde tr$fico areo( y menos a

  • 8/10/2019 Apuntes Fundamentos de Programacion

    19/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    20/108

    Las caracter)sticas fundamentales de la POO sonA abstraccin, encapsulamiento,herencia y polimorfismo.1.>.1 Abstraccin!l trmino abstraccin si'nifica Gaccin de separar mentalmenteH. Otra definicinpodr)a serA Grepresentacin de las caracter)sticas esenciales de al'o sin incluir

    antecedentes o detalles irreleantesH. !sto es( por medio de la abstraccinconse'uimos no detenernos en los detalles concretos de las cosas "ue nointeresen en cada momento( sino 'eneraliar y centrarse en los aspectos "uepermitan tener una isin 'lobal del tema.Por ejemplo( el estudio de una computadora podemos realiarlo a niel defuncionamiento de circuitos electrnicos( en trminos de corriente( tensin( etc.( oa niel de transferencia entre re'istros( centr$ndose as) el estudio en el flujo deinformacin entre las unidades "ue lo componen 6memoria( unidad aritmtica(unidad de control( re'istros( etc.7( sin importarnos el comportamiento de loscircuitos electrnicos "ue componen estas unidades.8e'

  • 8/10/2019 Apuntes Fundamentos de Programacion

    21/108

    !n realidad( si operator " es una funcin miembro de la clase complejo( "#e"uiale a la llamada.operator$")( lo "ue pone de manifiesto "ue el objeto situadoa la derec-a del operador en)a el mensaje al objeto situado a la i"uierda.!sto mismo sucede con los tipos predefinidos en el compilador C@ esto es( lostipos de datos s6ort int 0loat etc. son realmente clases.

    1.>.7. Modularidad:!s la propiedad "ue permite subdiidir una aplicacin en partes m$s pe"ue&ascada una de las cuales debe ser tan independiente como sea posible.

    1.>.< Jerar=ua $ !erenciaJerar=ua:!s una propiedad "ue permite ordenar las abstracciones. Las dos jerar"u)as m$simportantes son las clases y los objetos. Las clases se relacionan unas con otraspor medio de la relacin -erencia mediante la cual pueden definirse nueosobjetos a partir de los e:istentes.

    !erencia!s el mecanismo para compartir autom$ticamente mtodos y atributos entreclases y subclases. Por ejemplo( como imos anteriormente( si declaramos laclaseprofesorcomo una subclase de empleado( todos los mtodos y ariablesasociadas con la clase empleadoson autom$ticamente -eredados por la subclase

    profesor. 8i la clase empleadocontiene mtodos inapropiados para la subclaseprofesor( stos pueden obiarse( escribiendo nueos mtodos y almacen$ndoloscomo parte de la claseprofesor,o tambin pueden redefinirse para "ue respondande forma distinta a como lo -acen en la clase base.!sta caracter)stica de la POO est$ fuertemente li'ada a la reutiliacin del cdi'o.!sto es( el cdi'o de cual"uiera de las clases e:istentes puede ser utiliado sinm$s "ue crear una clase deriada de ella.!l concepto de -erencia conduce a una estructura jerar"uiada de clases( lo cualno si'nifica "ue en POO todas las relaciones entre clases deban ajustarse a unaestructura jer$r"uica.La -erencia puede ser tambin m.< Polimor0ismo!sta caracter)stica permite implementar m

  • 8/10/2019 Apuntes Fundamentos de Programacion

    22/108

    Paradi'mas %emostratiosA !n este tipo de paradi'mas el pro'ramador erificacual es el problema y ens de resolerlo aporta al cliente diferentes ejemplos desoluciones a problemas similares.

    Paradi'mas imperatiosA !ste paradi'ma se llea a cabo mediante unalmacenamiento de informacin en una computadora para despus donde

    la computadora almacena la representacin codificada de un c$lculo yrealia una secuencia de comandos "ue an modificando el contenidoalmacenado d$ndole forma de un pro'rama. 6#l'oritmos mas unaestructura de datos dan como resultado un pro'rama7

    Paradi'ma JuncionalA 9iene como objeto imitar las funciones matem$ticaslo m$s posible. n len'uaje funcional posee la propiedad matem$tica detransparencia referencial( lo "ue si'nifica "ue una e:presin representasiempre el mismo alor. !sto permite raonar sobre la ejecucin de unpro'rama y demostrar matem$ticamente "ue es correcto. Las ariables deun len'uaje funcional son como las ariables en al'ebra. 5nicialmenterepresentan un alor desconocido "ue( una e calculado( ya no cambia.

    Paradi'mas Orientados a ObjetosA La Orientacin a Objetos se basa enestas ideasA un pro'rama es un mundo "ue representa un subconjunto delmundo real. La estructura del pro'rama se simplifica en 'ran medida sicada una de las entidades u objetos del problema "ue se est$ modelandocorresponde directamente con un objeto "ue se puede manipularinternamente en un pro'rama. Para el desarrollo de sistemas( la orientacina objetos es un niel de abstraccin de computadora m$s all$ de losprocedimientos y los datos. La orientacin a objetos anima al desarrolladorde sistemas a concentrarse en los temas importantes e i'norar el resto a la-ora de la modelacin. La orientacin a objetos "uiere decir al'o familiar enel cual se considera al mundo como un conjunto de objetos "ue se

    relacionan y comunican entre ellos. !sta es la forma en "ue la 'ente normale el mundo( as) es "ue este pensamiento tiene intr)nsecamente sentido.

    1. /ene0icios del modelo de ob)etos $ de la P33 sobre otros paradigmas.

    La POO frente a la Progr. Trad.!n la -istoria de la pro'ramacin -a -abido arias eoluciones sucesias. na delas principales fue la pro'ramacin estructurada( cuyo principio fundamental eradiidir un pro'rama en subpro'ramas m$s pe"ue&os y f$ciles de resoler( -astalle'ar a nieles de complejidad elementales( siempre apoy$ndonos en la idea de%&u' debe hacer el pro(rama. este mtodo de dise&o( a pesar de -aber dado

    resultados satisfactorios( tiene limitaciones.

    #l'unas de ellas sonA Io faorece la reutiliacin del cdi'o. 8i en la fi'ura anterior fn*y fn+fueran

    idnticas( este -ec-o se'uramente pasar)a desapercibido y no se compartir)auna

  • 8/10/2019 Apuntes Fundamentos de Programacion

    23/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    24/108

    La mayor)a de las instancias de una clase derian su indiidualidad de teneralores diferentes en al'uno;s de sus atributos o de tener relaciones coninstancias diferentes. Io obstante pueden e:istir instancias con los mismosalores de los atributos e idnticas relaciones.!l s)mbolo 'r$fico para representar instancias es un rect$n'ulo de es"uinas

    redondeadas. %entro del rect$n'ulo fi'ura la clase a la "ue pertenece la instancia6entre parntesis7 y los alores de sus atributos.

    Las instancias fi'uran en dia'ramas de instancias( "ue se utilian normalmentepara describir ejemplos "ue aclaren un dia'rama de objetos complejos o paradescribir escenarios determinados 6p. ej. situaciones t)picas o anmalas(escenarios de prueba( etc.7.

    Clases.

    na clase o clase de objetos es una abstraccin "ue describe un 'rupo deinstancias con propiedades 6atributos7 comunes( comportamiento 6operaciones7com

  • 8/10/2019 Apuntes Fundamentos de Programacion

    25/108

    Los atributos tienen "ue ser datos( no objetos. La diferencia entre unos y otrosreside en la identidadA los objetos tienen identidad( pero los atributos no. Porejemplo( todas las ocurrencias del alor U3V de un atributo son indistin'uibles.Los atributos se representan en el se'undo $rea de los s)mbolos de clase einstancia. !n las clases( fi'urar$ el nombre del atributo( el tipo y el alor por

    defecto. !n las instancias( el alor del atributo para ese objeto determinado.

    3peraciones.na operacin o mtodo es una funcin o transformacin. Cada operacin lleaimpl)cito un objeto destino( sobre el "ue se a a realiar la operacin. !lcomportamiento de la operacin depende de la clase del objeto destino. 9odos los

    objetos de una clase comparten las mismas operaciones o mtodos. Cada objetoconoce la clase a "ue pertenece y( por tanto( la implementacin correcta de laoperacin. na misma operacin puede aplicarse a objetos de clases distintas. !neste caso diremos "ue la operacin es polimrfica( y a la implementacin de laoperacin en cada una de las clases la llamaremos mtodo.na operacin puede tener una serie de ar'umentos e:pl)citos( adem$s del objetodestino( "ue act

  • 8/10/2019 Apuntes Fundamentos de Programacion

    26/108

    una persona puede comerse una manana y otra persona podr$ comerse la otra.%e manera similar( dos 'emelos idnticos son dos personas diferentes( auncuando puedan tener el mismo aspecto. !l trmino identidad si'nifica "ue losobjetos se distin'uen por su e:istencia in-erente y no por las propiedadesdescriptias "ue puedan tener. .

    !s frecuente er "ue la palabra objeto se utilia de forma a'a en la literatura. !nal'unas ocasiones( objeto si'nifica una sola cosa@ en otras ocasiones se refiere aun 'rupo de cosas similares. Iormalmente( el conte:to resuele las posiblesambi'Wedades. Cuando se desea ser preciso y aludir a una cosa e:actamente seutilia la frase instancia de objeto y la e:presin clase de objetos para aludir a un'rupo de cosas similares.

    Clasesna clase de objetos describe un 'rupo de objetos con propiedades 6atributos7similares( con relaciones comunes con otros y con una sem$ntica comconoce> su clase. La mayor)a de los len'uajes de pro'ramacinorientados a objetos puede determinar la clase del objeto en el momento de laejecucin. La clase del objeto es una propiedad impl)cita de s) mismo.

    Atributos.n atributo es un alor de un dato "ue est$ almacenado en los objetos de unaclase. 4ombre, edad ypeso son atributos de los objetos del tipo ersona. /olor5

    peso yao del modelo son atributos de los objetos del tipo /oche6. Cada atributotiene un alor para cada instancia del objeto. Por ejemplo( el atributo edad tiene elalor >24> en el objeto 0uan 1arca. %ic-o de otra manera( ,uan Darc)a tiene 24a&os. Las instancias distintas de un cierto objeto pueden tener el mismo alor oalores distintos para un atributo dado. !l nombre del atributo es

  • 8/10/2019 Apuntes Fundamentos de Programacion

    27/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    28/108

    misma tarea l'icaA imprimir un arc-io@ por tanto es posible aludir a ellosmediante la operacin 'enrica imprimir. 8in embar'o( cada mtodo puede estarimplementado mediante un se'mento de cdi'o diferente.na operacin puede poseer ar'umentos adem$s del objeto destino blanco. 9alesar'umentos parametrian la operacin pero no afectan a la eleccin del mtodo.

    Los mtodos solamente dependen de la clase del objeto blanco. 6nos pocoslen'uajes orientados a objetos y( especialmente( CLO8 permiten "ue la seleccindel mtodo dependa de cual"uier n

  • 8/10/2019 Apuntes Fundamentos de Programacion

    29/108

    (eom'trico tiene las operaciones mover5 seleccionar y rotar; 7over tiene elar'umento delta "ue es un :ector5 seleccionar tiene un ar'umentop "ue es deltipo unto y proporciona un tipo de dato >oolean5 y rotar tiene el ar'umenton(ulo.

    %urante el modelado resulta

  • 8/10/2019 Apuntes Fundamentos de Programacion

    30/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    31/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    32/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    33/108

    9ras la aceptacin del paradi'ma orientado a objetos 6OO7 como el m$s adecuadopara producir software de calidad( a principios de los noenta emer'ieron un buenn

  • 8/10/2019 Apuntes Fundamentos de Programacion

    34/108

    !n estos a&os( el $rea de la definicin de procesos y tcnicas asociadas( comomodelado de ne'ocio o casos de uso( -a recibido muc-a atencin por parte tantode la industria como del mundo acadmico. 8in duda( los casos de uso -a sido latcnica de modelado "ue -a 'oado de mayo aceptacin. 8in embar'o( comose&ala ooc- ]2^( toda)a slo un pe"ue&o porcentaje de los desarrolladores

    utilian +L y muc-os proyectos lo usan tan slo para documentar sus decisionesde dise&o en e de utiliar los modelos para raonar sobre el sistema( lo "uesupone su principal beneficio.La aparicin de +L -a supuesto el reconocimiento de la actiidad del modelado6dise&o basado en modelos7 como una actiidad clae para producir software decalidad. 8in embar'o( resulta paradjico "ue al mismo tiempo -aya sur'ido elmoimiento del desarrollo $'il de software 6#'ile 8oftware7( "ue considera "ue elalor est$ en el cdi'o y en las personas m$s "ue en los modelos y los procesos]3^( as) como la llamada pro'ramacin e:trema 6eStreme Pro'rammin'( SP7 ]4^.Con la iniciatia +%# 6+odel %rien #rc-itecture7( promoida por el O+D( -asur'ido un nueo paradi'ma de desarrollo( no centrado en el cdi'o sino en losmodelos( "ue se denomina desarrollo 'uiado por modelos. Con esta nuea isin(se puede obtener cdi'o a partir de modelos centrados en el dominio del problemae independientes de cual"uier aspecto relacionado con la plataforma( mediantetransformaciones de modelos.

    %.< Planteamiento del problema.

    ecesidad del an"lisis $ dise,oPunto inicialA planteamiento de un problemaPunto finalA implementacin de una solucin al problema planteadoNComo lle'ar a nuestro objetio Paso a paso.Primer paso:#n$lisis = comprender un determinado dominio o conte:to pero sincubrir toda la realidad. 8olo la parte afectada por el problema.Segundo paso: %ise&o = base para la implementacin de lo definido en elan$lisis. !:iste m)as de un dise&o correcto dentro de cada conte:to.*ercer paso:5mplementacin del dise&o realiado.

    An"lisis $ dise,o: modeliGacin de problemasPasos a se'uirA1. Leer atentamente el planteamiento del problema2. !:traer una lista de nombres y otra de erbos candidatos3. Completar los nombres y los erbos4. Combinar nombresA asi'nar clases y atributos*. Colocar erbosA asi'nar mtodos a clases. !stablecer relaciones entre clases0. Comprobar el dise&o con el planteamiento inicial

    1. Planteamiento del problemaHLa tienda de librosH8e desea llear a cabo una aplicacin capa de 'estionar libros( lo "ue suponepoder ad"uirir nueos libros y modificar el precio de los libros a la enta. Para

    Pg. 34

  • 8/10/2019 Apuntes Fundamentos de Programacion

    35/108

    cada libro se dispone del t)tulo( el autor( la fec-a de publicacin( la editorial y elprecio. #dem$s( la tienda desea ofrecer a sus compradores informacin sobre losautores de los libros( incluyendo( adem$s de su nombre completo( su p$'ina weby su correo electrnico. La tienda trabaja directamente con las distintas editoriales(por lo "ue necesita tambin disponer de la direccin( el telfono y la persona de

    contacto de cada editorial( teniendo en cuenta "ue estos datos pueden cambiar.%. An"lisis.

    Anlisis del Problema.!l an$lisis del problema inolucra capturar el m$:imo de informacin referente aeste( obtener la isin del mismo por parte de los inolucrados y 'enerar unmodelo para cada una de estas isiones. 8e deben refinar estos modelos -astaobtener una o arias representaciones 6modelos7 del problema( los "ue posibilitansu an$lisis. !stos modelos "ue describen las isiones del problema son los "ueposibilitar$n "ue se islumbre al'una solucin.8e debe modelar tanto el problema como la situacin esperada( de modo de poderdise&ar la forma de lle'ar del estado actual al estado objetio6problemasolucionado7.

    Pg. 35

  • 8/10/2019 Apuntes Fundamentos de Programacion

    36/108

    Lo releante de este punto es "ue el an$lisis es una tarea creatia "ue re"uiere decapacidades de abstraccin y uso de len'uajes "ue faciliten la tarea de'eneracin de modelos y an$lisis de los mismos. !n el an$lisis del problema sedeben contestar las si'uientes pre'untasANCu$l es el problema 6NCu$l es el estado actual considerado insatisfactorio7

    N!n "u forma se considerar)a el problema solucionado 6NCu$l es el estadodeseado7Nu restricciones e:isten para lle'ar a esa solucin

    %.>.1 #escubrir clases $ ob)etos en el dominio del problema.3. Completar los nombres y los erbosIombres KerbosLibros ad"uirir libroprecio de libro modificar precio9)tulo de libro ofrecer info autores

    #utor de libro cambiar direccinJec-a de publicacin de libro cambiar telfono

    !ditorial de libro cambiar persona de contactoNcompradores de libroIombre completo de autorp$'ina web de autorcorreo electrnico de autordireccin de editorial9elfono de editorialpersona de contacto de editorial

    %.>.% Identi0icar atributos de los ob)etos.

    4. Combinar nombresA asi'nar clases y atributosClases AtributosLibro Precio

    9itulo#utorfec-a de publicacineditorial

    #utor nombrewebcorreo

    !ditorial nombre

    direccintelfonopersona de contacto

    %.>.7 Identi0icar m+todos en los ob)etos.

    *. Colocar erbosA asi'nar mtodos a clasesClases Atributos M+todos

    Pg. 36

  • 8/10/2019 Apuntes Fundamentos de Programacion

    37/108

    Libro precio #d"uirir( modificar precio9ituloautorfec-a de publicacineditorial

    #utor nombre mostrar nombre

    \eb mostrar webCorreo mostrar correo

    !ditorial nombre%ireccin cambiar direccin9elfono cambiar telfonopersona de contacto cambiar persona contacto

    . !stablecer relaciones entre clases

    0. Comprobar el dise&o con el planteamiento inicial= Comprobar cada uno de los pasos con el planteamiento del problema= #se'urarse de "ue las decisiones tomadas a lo lar'o del proceso no est$n

    en contradiccin con nada de lo e:presado en el planteamiento delproblema

    = Plantear posibles formas de completar el dise&o. !jA N5nclusin de la fec-acomo otra clase

    = !n caso de duda( consultar con el cliente.

    #bstraccinA clase=objeto%efinicin de objetoA n objeto es una entidad si'nificatia en un determinado

    dominio de aplicacin. !jA una persona( un cliente de una tienda irtual( una cuentacorriente de un banco(...Caracter)sticas de los objetosA Los objetos deben ser distin'uibles y teneridentidad por s)_ mismos. !jA Pa)s;+:ico.%escripcin de los objetosA Los objetos contienen alores "ue los describen eidentifican. !jA ,uan Pre 6nombre( apellido( CRP7.

    Pg. 37

  • 8/10/2019 Apuntes Fundamentos de Programacion

    38/108

    Comportamiento de los objetosA Los objetos se relacionan con el e:terior a trasde mensajes "ue reciben y a los "ue responden de distintas maneras. !jAin'resar;sacar dinero de una cuenta.%efinicin de claseA na clase describe un 'rupo de objetos "ue tienenpropiedades similares y ser comportan de manera similar.

    Caracter)sticas de las clasesA #ct

  • 8/10/2019 Apuntes Fundamentos de Programacion

    39/108

    componentes( no slo de )ndole inform$tica( los cuales no son el objetio de estecurso.!n al'unas ocasiones( el modelo del estado objetio es ya el dise&o de lasolucin( como por ejemplo( en el caso de los sistemas software( el modelo de lasituacin objetio se traslapa con la primera ersin del dise&o.

    %.B.1 2epresentacin gr"0ica de una clase.

    %.B.% #iagramas de interaccin entre la aplicacin $ una clase.

    #iagramas de Interaccin:

    La ista de interaccin describe secuencias de intercambios de mensajes entre losroles "ue implementan el comportamiento de un sistema. n rol clasificador( osimplemente >un rol>( es la descripcin de un objeto( "ue desempe&a undeterminado papel dentro de una interaccin( distinto de los otros objetos de lamisma clase. !sta isin proporciona una ista inte'ral del comportamiento delsistema( es decir( muestra el flujo de control a tras de muc-os objetos. La istade interaccin se e:-ibe en dos dia'ramas centrados en distintos aspectos perocomplementariosA centrados en los objetos indiiduales y centrados en objetoscooperantes.Los objetos interact

  • 8/10/2019 Apuntes Fundamentos de Programacion

    40/108

    indiidual de transaccin. n uso de un dia'rama de secuencia es mostrar lasecuencia del comportamiento de un caso de uso.n di$lo'o de secuencia posee dos dimensionesA la ertical representa el tiempo(la -oriontal representa los objetos "ue participan en la interaccin. !n 'eneral( eltiempo aana -acia abajo dentro de la p$'ina 6se pueden inertir los ejes si se

    desea7. Con frecuencia slo son importantes las secuencias de mensajes pero enaplicaciones de tiempo real el eje temporal puede ser una mtrica. La ordenacin-oriontal de los objetos no tiene nin'

  • 8/10/2019 Apuntes Fundamentos de Programacion

    41/108

    E)emplo de #iagrama de Secuencia

    Diagramas de Colaboracin"1. 8on

  • 8/10/2019 Apuntes Fundamentos de Programacion

    42/108

    n dia'rama de colaboracin es tambin un dia'rama de clases "ue contieneroles de clasificador y roles de asociacin en lu'ar de slo clasificadores yasociaciones. Los roles de clasificador y los de asociacin describen laconfi'uracin de los objetos y de los enlaces "ue pueden ocurrir cuando seejecuta una instancia de la colaboracin. Cuando se instancia una colaboracin(

    los objetos est$n li'ados a los roles de clasificador y los enlaces a los roles deasociacin. !l rol de asociacin puede ser desempe&ado por arios tipos deenlaces temporales( tales como ar'umentos de procedimiento o ariables localesdel procedimiento. Los s)mbolos de enlace pueden llear estereotipos para indicarenlaces temporales.n uso de un dia'rama de colaboracin es mostrar la implementacin de unaoperacin. La colaboracin muestra los par$metros y las ariables locales de laoperacin( as) como asociaciones m$s permanentes. Cuando se implementa elcomportamiento( la secuencia de los mensajes corresponde a la estructura dellamadas anidadas y el paso de se&ales del pro'rama.n dia'rama de secuencia muestra secuencias en el tiempo como dimensin'eomtrica( pero las relaciones son impl)citas. n dia'rama de colaboracinmuestra relaciones entre roles 'eomtricamente y relaciona los mensajes con lasrelaciones( pero las secuencias temporales est$n menos claras.!s

  • 8/10/2019 Apuntes Fundamentos de Programacion

    43/108

    tambin se utilia para mostrar la mi'racin de un objeto a partir de unalocaliacin a ota distinta.#!$ es !na Colaboracin%!s una descripcin de una coleccin de objetos "ue interact

  • 8/10/2019 Apuntes Fundamentos de Programacion

    44/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    45/108

    acciones "ue se realian al entrar( salir o estar en un estado 6entry( e:it o do(respectiamente7.'entos!s una ocurrencia "ue puede causar la transicin de un estado a otro de unobjeto. !sta ocurrencia puede ser una de arias cosasA

    Condicin "ue toma el alor de erdadero o falso Recepcin de una se&al de otro objeto en el modelo Recepcin de un mensaje Paso de cierto per)odo de tiempo( despus de entrar al estado o de cierta

    -ora y fec-a particular!l nombre de un eento tiene alcance dentro del pa"uete en el cual est$ definido(no es local a la clase "ue lo nombre.'no de mensajes

    #dem$s de mostrar y transicin de estados por medio de eentos( puederepresentarse el momento en el cual se en)an mensajes a otros objetos. !sto serealia mediante una l)nea punteada diri'ida al dia'rama de estados del objeto

    receptor del mensaje.Transicin simlena transicin simple es una relacin entre dos estados "ue indica "ue un objetoen el primer estado puede entrar al se'undo estado y ejecutar ciertas operaciones(cuando un eento ocurre y si ciertas condiciones son satisfec-as. 8e representacomo una l)nea slida entre dos estados( "ue puede enir acompa&ada de unte:to con el si'uiente formatoAeent@signature HH guard@condition HKH action@epression HHsend@clauseeent@signature es la descripcin del eento "ue da lu'ar la transicin( 'uard=condition son las condiciones adicionales al eento necesarias para "ue latransicin ocurra( action@epressiones un mensaje al objeto o a otro objeto "ue

    se ejecuta como resultado de la transicin y el cambio de estado y send=clauseson acciones adicionales "ue se ejecutan con el cambio de estado( por ejemplo( elen)o de eentos a otros pa"uetes o clases.Transicin interna!s una transicin "ue permanece en el mismo estado( en e de inolucrar dosestados distintos. Representa un eento "ue no causa cambio de estado. 8edenota como una cadena adicional en el compartimiento de acciones del estado.

    Acciones"Podemos especificar la solicitud de un sericio a otro objeto como consecuenciade la transicin. 8e puede especificar el ejecutar una accin como consecuenciade entrar( salir( estar en un estado( o por la ocurrencia de un eento.*eneralizacin de 'stados" Podemos reducir la complejidad de estos dia'ramas usando la

    'eneraliacin de estados. %istin'uimos as) entre superestado y subestados. n estado puede contener arios subestados disjuntos. Los subestados -eredan las ariables de estado y las transiciones e:ternas. La a're'acin de estados es la composicin de un estado a partir de arios

    estados independientes.

    Pg. 45

  • 8/10/2019 Apuntes Fundamentos de Programacion

    46/108

    La composicin es concurrente por lo "ue el objeto estar$ en al'uno de losestados de cada uno de los subestados concurrentes. La destruccin de un objetoes efectia cuando el flujo de control del autmata alcana un estado final noanidado. La lle'ada a un estado final anidado implica la subida al superestadoasociado( no el fin del objeto.

    !bestadosn estado puede descomponerse en subestados( con transiciones entre ellos ycone:iones al niel superior. Las cone:iones se en al niel inferior como estadosde inicio o fin( los cuales se suponen conectados a las entradas y salidas del nielinmediatamente superior.Transaccin Comlejana transicin compleja relaciona tres o m$s estados en una transicin dem

  • 8/10/2019 Apuntes Fundamentos de Programacion

    47/108

    Pg. 47

  • 8/10/2019 Apuntes Fundamentos de Programacion

    48/108

    (nidad III 9cnicas de dise&o detallado.

    &ntrod!ccin

    Los sistemas modernos de computacin consisten en una 'ran conjuncin de

    elementos de circuitos 6-ardware7 y de pro'ramacin 6software7 "ue -an sidodise&ados para proporcionar a la computacin un ambiente productio y -astacierta medida a'radable.!l trmino istema de Cm!tose utilia para se&alar lo "ue el usuario emplea(

    en lu'ar del trmino Com!tadora. !n los primeros a&os de la computacin( losusuarios del sistema deb)an interactuar m$s estrec-amente con el -ardware real"ue lo "ue es -oy necesario( muc-as funciones "ue deb)an realiar los usuariosmismos se manejan a-ora por soft+are mediante istemas Oeratios. !lsistema operatio crea un ambiente en el cual los usuarios pueden prepararpro'ramas y ejecutarlos sin tener "ue entrar en los detalles del -ardware del

    sistema.Para satisfacer el crecimiento de la demanda de medios de computacin( es "ue

    se -a desarrollado la m!ltirogramacin( en la cual arios usuarios emplean elsistema de forma simult$nea( como ,indo+spor ejemplo.La computadora no solamente es una ma"uina "ue puede realiar procesos paradarnos resultados( sin "ue ten'amos la nocin e:acta de las operaciones "uerealia para lle'ar a esos resultados. Con la computadora adem$s de lo anteriortambin podemos dise&ar soluciones a la medida( de problemas espec)ficos "uese nos presenten. +as aun( si estos inolucran operaciones matem$ticas

    complejas y;o repetitias( o re"uieren del manejo de un olumen muy 'rande dedatos.!l dise&o de soluciones a la medida de nuestros problemas( re"uiere como enotras disciplinas una metodolo')a "ue nos ense&e de manera 'radual( la forma delle'ar a estas soluciones.

    # las soluciones creadas por computadora se les conoce como rogramasy noson mas "ue una serie de operaciones "ue realia la computadora para lle'ar a unresultado( con un 'rupo de datos espec)ficos. Lo anterior nos llea alraonamiento de "ue un rograma nos sire para solucionar un problemaespecifico.

    Para poder realiarrogramas( adem$s de conocer la metodolo')a mencionada(tambin debemos de conocer( de manera especifica las funciones "ue puederealiar la computadora y las formas en "ue se pueden manejar los elementos "ue-ay en la misma.

    Com!tadora" !s un dispositio electrnico utiliado para procesar informacin yobtener resultados. Los datos y la informacin se pueden introducir en la

    Pg. 48

  • 8/10/2019 Apuntes Fundamentos de Programacion

    49/108

    computadora como entrada 6input7 y a continuacin se procesan para producir unasalida 6output7.

    Proceso de informacin en la com!tadora

    %atos de Proceso %atos de entrada salida

    Programa" !s el conjunto de instrucciones escritas de al'

  • 8/10/2019 Apuntes Fundamentos de Programacion

    50/108

    directa. !sta memoria construida internamente se llama memoria de accesoaleatorio 6R#+7.

    La memoria internaconsta de dos $reas de memoriaALa memoria 0A/ (0andon Access /emor1)" Recibe el nombre de memoria

    principal o memoria del usuario( en ella se almacena informacin solo mientras lacomputadora esta encendida. Cuando se apa'a o arranca nueamente lacomputadora( la informacin se pierde( por lo "ue se dice "ue la memoria R#+ esuna memoria ol$til.

    La memoria 0O/ (0ead Onl1 /emor1)"!s una memoria est$tica "ue no puedecambiar( la computadora puede leer los datos almacenados en la memoria RO+(pero no se pueden introducir datos en ella( o cambiar los datos "ue a-) seencuentran@ por lo "ue se dice "ue esta memoria es de solo lectura. Los datos dela memoria RO+ est$n 'rabados en forma permanente y son introducidos por elfabricante de la computadora.

    /emoria A!2iliar ('2terna)" !s donde se almacenan todos los pro'ramas odatos "ue el usuario desee. Los dispositios de almacenamiento o memoriasau:iliares 6e:ternas o secundarias7 mas com

  • 8/10/2019 Apuntes Fundamentos de Programacion

    51/108

    Los lengua)es de programacin se clasi0ican en:

    Leng!aje /a5!ina" 8on a"uellos cuyas instrucciones son directamenteentendibles por la computadora y no necesitan traduccin posterior para "ue la

    CP pueda comprender y ejecutar el pro'rama. Las instrucciones en len'uajema"uina se e:presan en trminos de la unidad de memoria mas pe"ue&a el bit6d)'ito binario o 17.

    8on a"ullos "ue est$n escritos en len'uajes directamente inteli'ibles por lam$"uina 6computadora7( ya "ue sus instrucciones son cadenas binarias$cadenaso series de caracteres de d)'itos y 17 "ue especifican una operacin y lasposiciones 6direccin7 de memoria implicadas en la operacin se denominaninstr!cciones de m5!ina o cdigo m5!ina. !l cdi'o m$"uina es el conocidocdigo binario. Las instrucciones en len'uaje m$"uina dependen del -ardware de la

    computadora y( por tanto( diferir$n de una computadora a otra.6entajas del Leng!aje /5!ina

    = Posibilidad de car'ar 6transferir un pro'rama a la memoria7 sin necesidad detraduccin posterior( lo "ue supone una elocidad de ejecucin superior acual"uier otro len'uaje de pro'ramacin.

    Desentajas del Leng!aje /5!ina= %ificultad y lentitud en la codificacin.= Poca fiabilidad.= Dran dificultad para erificar y poner a punto los pro'ramas.= Los pro'ramas solo son ejecutables en el mismo procesador 6CP7.

    !n la actualidad( las desentajas superan a las entajas( lo "ue -acepr$cticamente no recomendables a los len'uajes m$"uinas.

    Leng!aje de 7ajo 8iel ('nsamblador)"!n este len'uaje las instrucciones seescriben en cdi'os alfabticos conocidos como mnemotcnicos para lasoperaciones y direcciones simblicas.

    8on m$s f$ciles de utiliar "ue los len'uajes m$"uina( pero al i'ual "ue ellos(dependen de la m$"uina en particular. !l len'uaje de bajo niel por e:celencia esel ensamblador. Las instrucciones en len'uaje ensamblador son instrucciones

    conocidas como nemot$cnicos. Por ejemplo( nemotcnicos t)picos deoperaciones aritmticas son A en in'ls A #%%( 8( %5K( etc. @ en espa&ol A 8+(R!8( %5K( etc.na instruccin t)pica de suma ser)a A

    #%% +( I( P

    Pg. 51

  • 8/10/2019 Apuntes Fundamentos de Programacion

    52/108

    !sta instruccin si'nifica 9s!mar el contenido en la osicin de memoria / aln:mero almacenado en la osicin de memoria 8 1 sit!ar el res!ltado en la

    osicin de memoria P9. !identemente es m$s sencillo recordar la instruccinanterior con un nemotcnico "ue su e"uialente en cdi'o m$"uina.;33; 3;;3 3;3; 3;33

    n pro'rama escrito en len'uaje ensamblador( re"uiere de una fase detrad!ccin al len'uaje m$"uina para poder ser ejecutado directamente por lacomputadora.

    !l pro'rama ori'inal escrito en len'uaje ensamblador se denomina rogramaf!entey el pro'rama traducido en len'uaje m$"uina se conoce como rogramaobjeto( el cual ya es directamente entendible por la computadora.-enta)as del lengua)e ensamblador 0rente al lengua)e m"=uina

    = +ayor facilidad de codificacin y( en 'eneral( su elocidad de c$lculo.#esenta)as del lengua)e ensamblador

    = %ependencia total de la m$"uina lo "ue impide la transportabilidad de lospro'ramas 6posibilidad de ejecutar un pro'rama en diferentes m$"uinas. !llen'uaje ensamblador del PC es distinto del len'uaje ensamblador del #pple+ac-intos-.

    = La formacin de los pro'ramadores es m$s compleja "ue la correspondientea los pro'ramadores de alto niel( ya "ue e:i'e no solo las tcnicas depro'ramacin( sino tambin el conocimiento del interior de la m$"uina.

    Los len'uajes ensamblador tienen sus aplicaciones muy reducidas( se centranb$sicamente en aplicaciones de tiempo real( control de procesos y de dispositioselectrnicos.

    Leng!aje de Alto 8iel"Los len'uajes de pro'ramacin de alto niel 6#85C(pascal( cobol( frotran( etc.7 son a"uellos en los "ue las instrucciones o sentenciasa la computadora son escritas con palabras similares a los len'uajes -umanos 6en'eneral en in'les7( lo "ue facilita la escritura y comprensin del pro'rama.

    !stos len'uajes son los m$s utiliados por los pro'ramadores. !st$n dise&adospara "ue las personas escriban y entiendan los pro'ramas de un modo muc-om$s f$cil "ue los len'uajes m$"uina y ensambladores. n pro'rama escrito enlen'uaje de alto niel es independiente de la m$"uina 6las instrucciones nodependen del dise&o del -ardware o de una computadora en particular7( por lo "ueestos pro'ramas son ortables o transortables. Los pro'ramas escritos enlen'uaje de alto niel pueden ser ejecutados con poca o nin'una modificacin endiferentes tipos de computadoras.-enta)as de los lengua)es de alto niel

    = !l tiempo de formacin de los pro'ramadores es relatiamente cortocomparado con otros len'uajes.

    Pg. 52

  • 8/10/2019 Apuntes Fundamentos de Programacion

    53/108

    = La escritura de pro'ramas se basa en re'las sint$cticas similares a loslen'uajes -umanos. Iombres de las instrucciones tales como R!#%(\R59!( PR5I9( OP!I( etc.

    = Las modificaciones y puestas a punto de los pro'ramas son m$s f$ciles.= Reduccin del coste de los pro'ramas.

    = 9ransportabilidad.#esenta)as de los lengua)es de alto niel

    = 5ncremento del tiempo de puesta a punto al necesitarse diferentestraducciones del pro'rama fuente para conse'uir el pro'rama definitio.

    = Io se aproec-an los recursos internos de la m$"uina "ue se e:plotanmuc-o mejor en len'uajes m$"uina y ensambladores.

    = #umento de la ocupacin de memoria.= !l tiempo de ejecucin de los pro'ramas es muc-o mayor.

    7.1 #ise,o algortmico.

    Definicin de AlgoritmoLa palabra al'oritmo se deria de la traduccin al lat)n de la palabra $rabeal-owarimi( nombre de un matem$tico y astrnomo $rabe "ue escribi untratado sobre manipulacin de n

  • 8/10/2019 Apuntes Fundamentos de Programacion

    54/108

    2. 9raer 'ato.3. Leantar el coc-e con el 'ato.4. #flojar tornillos de las llantas.*. 8acar los tornillos de las llantas.. uitar la llanta.

    0. Poner la llanta de repuesto.Q. Poner los tornillos.[. #pretar los tornillos.1.ajar el 'ato.11. Jin

    n cliente ejecuta un pedido a una f$brica. La f$brica e:amina en su banco dedatos la fic-a del cliente( si el cliente es solente entonces la empresa acepta elpedido( en caso contrario rec-aar el pedido.Pasos del al'oritmo A

    5nicioLeer el pedido!:aminar fic-a del cliente8i el cliente es solente aceptar pedido( en casocontrario rec-aar pedidoJin

    %eterminar el mayor de tres n

  • 8/10/2019 Apuntes Fundamentos de Programacion

    55/108

    *rficos" !s la representacin 'r$fica de las operaciones "ue realia unal'oritmo 6dia'rama de flujo7.

    8o *rficos" Representa en forma descriptia las operaciones "ue deberealiar un al'oritmo 6pseudocodi'o7.

    Los al'oritmos pueden describirse utiliando diersos len'uajes. Cada uno deestos len'uajes permiten describir los pasos con mayor o menor detalle.La clasificacin de los len'uajes para al'oritmos puede enunciarse de la si'uientemanera A

    Len'uaje Iatural.Len'uaje de %ia'rama de Jlujo.Len'uaje Iatural de Pro'ramacin.Len'uaje de Pro'ramacin de #l'oritmos.

    Leng!aje 8at!ral

    !s a"ul "ue describe en espa&ol( para nuestro caso( los pasos a se'uir utiliandoun ocabulario cotidiano. 8e le conoce como len(uaje jer(acuando se utiliantrminos especialiados de una determinada ciencia( profesin o 'rupo.Leng!aje de Diagrama de =l!jo!s a"ul "ue se ale de diersos s)mbolos para representar las ideas o acciones adesarrollar. !s .3 Diagrama de =l!jo

    Pg. 55

  • 8/10/2019 Apuntes Fundamentos de Programacion

    56/108

    n dia'rama de flujo es la representacin 'r$fica de un al'oritmo. 9ambin sepuede decir "ue es la representacin detallada en forma 'r$fica de como debenrealiarse los pasos en la computadora para producir resultados.!sta representacin 'r$fica se da cuando arios s)mbolos 6"ue indican diferentesprocesos en la computadora7( se relacionan entre si mediante l)neas "ue indican el

    orden en "ue se deben ejecutar los procesos.Los s)mbolos utiliados -an sido normaliados por el instituto norteamericano denormaliacin 6#I857.

    ?/7OLO D'C0&PC&@8

    5ndica el inicio y el final de nuestro dia'rama de flujo.

    5ndica la entrada y salida de datos.

    8)mbolo de proceso y nos indica la asi'nacinde un alor en la memoria y;o la ejecucin deuna operacin aritmtica.

    8)mbolo de decisin indica la realiacin de unacomparacin de alores.

    8e utilia para representar los subpro'ramas.

    Conector dentro de pa'ina. Representa lacontinuidad del dia'rama dentro de la misma p$'ina.

    Conector fuera de p$'ina. Representa lacontinuidad del dia'rama en otra p$'ina.

    5ndica la salida de informacin por impresora.

    5ndica la salida de informacin en la pantalla o+onitor.

    L)neas de flujo o direccin. 5ndican lasecuencia en "ue se realian las operaciones.

    Pg. 56

  • 8/10/2019 Apuntes Fundamentos de Programacion

    57/108

    0ecomendaciones ara el diseo de Diagramas de =l!jo 8e deben de usar solamente l)neas de flujo -oriontales y;o erticales. 8e debe eitar el cruce de l)neas utiliando los conectores. 8e deben usar conectores solo cuando sea necesario.

    Io deben "uedar l)neas de flujo son conectar. 8e deben traar los s)mbolos de manera "ue se puedan leer de arriba -acia

    abajo y de i"uierda a derec-a. 9odo te:to escrito dentro de un s)mbolo deber$ ser escrito claramente(

    eitando el uso de muc-as palabras.!jemploA

    Calcular el salario neto de un trabajador en funcin del n

  • 8/10/2019 Apuntes Fundamentos de Programacion

    58/108

    Pg. 58

  • 8/10/2019 Apuntes Fundamentos de Programacion

    59/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    60/108

    B.4 Pse!docodigo

    6entajas de !tilizar !n Pse!docodigo a !n Diagrama de =l!jo= Ocupa menos espacio en una -oja de papel= Permite representar en forma f$cil operaciones repetitias complejas

    = !s muy f$cil pasar de pseudocodi'o a un pro'rama en al'

  • 8/10/2019 Apuntes Fundamentos de Programacion

    61/108

    en caso contrarioaccin1acci2

    &teraccinFi)a

    para ar. 'ntera inicial -asta final-aceraccin1accin2Aaccin n

    Condicional al iniciomientras condicin -acer

    accin1accin2Aaccin n

    Condicional al 0inalRepetir

    accin1accin2Aaccin n

    /asta "ue condicin

    eleccincasos selector de

    alor1 A accin1accin2

    alor2 A accin1accin2

    alor n A accin1 accin2

    E)ercicio : 8e re"uiere pre'untar dos alores( y a continuacin ofrecer un men< con lasoperaciones b$sicas 6( =( X( ;7. %espus de presentar el resultado se ofrecer$ laposibilidad de una nuea operacin.#eclaracin de ariables :2eal :S( ?( R!8P!89#Entero : OPC5OICar"cter :OP Inicio

    2epetirescribir6UPrimer alor A V 7leer6S7

    Pg. 61

  • 8/10/2019 Apuntes Fundamentos de Programacion

    62/108

    escribir6U8e'undo alor A U7leer6?7escribir6U17 8uma U7escribir6U27 Resta U7escribir4U37 +ultiplicacin U7

    escribir6U47 %iisin U7escribir6Uu operacindeseas realiar A U7leer6OPC5OI7casos OPC5OI de

    1 A R!8L9#%O S?2 A R!8L9#%O S=?3 A R!8L9#%O SX?4 A si?M entonces

    escribir6U !rror U7 R!8L9#%O en caso contrario

    R!8L9#%O S;? escribir6UResultado A U(R!8L9#%O7 escribir6U%eseas otroc$lculo A ]8;I^ U7 leer6OP7

    !asta =ue R!8 M UIVFin

    'jercicio "Pre'untar un nombre y repetirse en pantalla tantas eces como se desee.6pre'untar cantidad de repeticiones7( indicando el n

  • 8/10/2019 Apuntes Fundamentos de Programacion

    63/108

    en los dia'ramas de flujo( se pueden escribir diferentes acciones en una caja. nal'oritmo se represente en la si'. formaA

    5nicio #ccion1

    #ccion2. . .

    Jin

    5nicio

    Leer Iombre(/rs(Precio

    Calcular 8alario M /rs X Precio Calcular 5mp M 8alarioX .1* Calcular Ieto M 8alario 5mp

    !scribir Iombre( 5mp( 8Ieto

    Jin

    na estructura condicional en I=8 se representa de la si'uiente manera A

    E)emplo: 8e desea calcular el salario neto semanal de un trabajador en funcindel n

  • 8/10/2019 Apuntes Fundamentos de Programacion

    64/108

    E)emplo:Calcular el salario neto de un trabajador en funcin del n

  • 8/10/2019 Apuntes Fundamentos de Programacion

    65/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    66/108

    accin 81endYif

    #iagrama @S

    Alternatias /:ltiles (seg:nFsea< caso de G case)Cuando e:isten m$s de dos elecciones 6alternatias7 posibles( es cuando sepresenta el caso de alternatias m

  • 8/10/2019 Apuntes Fundamentos de Programacion

    67/108

    Pseudocdigo!n in'ls la estructura de decisin m

  • 8/10/2019 Apuntes Fundamentos de Programacion

    68/108

    #ccion2 . . #ccionIJin

    Asignacin"La asi'nacin consiste( en el paso de alores o resultados a unaona de la memoria. %ic-a ona ser$ reconocida con el nombre de la ariable "uerecibe el alor. La asi'nacin se puede clasificar de la si'uiente formaA

    imles"Consiste en pasar un alor constate a una ariable 6aM1*7 Contador"Consiste en usarla como un erificador del numero de eces

    "ue se realia un proceso 6aMa17 Ac!m!lador" Consiste en usarla como un sumador en un proceso

    6aMab7 De trabajo" %onde puede recibir el resultado de una operacin

    matem$tica "ue inolucre muc-as ariables 6aMcbX2;47.

    Lect!ra"La lectura consiste en recibir desde un dispositio de entrada 6p.ej. elteclado7 un alor. !sta operacin se representa en un pseudocodi'o como si'ueA

    Leer a( b

    %onde GaH y GbH son las ariables "ue recibir$n los alores

    'scrit!ra" Consiste en mandar por un dispositio de salida 6p.ej. monitor oimpresora7 un resultado o mensaje. !ste proceso se representa en unpseudocodi'o como si'ueA

    !scribe G!l resultado esAH( R

    %onde G!l resultado esAH es un mensaje "ue se desea apareca y R es una

    ariable "ue contiene un alor.

    'jemlos de Problemas ec!enciales

    17 8upon'a "ue un indiiduo desea inertir su capital en un banco y desea sabercuanto dinero 'anara despus de un mes si el banco pa'a a ran de 2mensual.

    5nicio Leer capYin 'an M capYin X .2 5mprimir 'anJin

    27 n endedor recibe un sueldo base mas un 1 e:tra por comisin de susentas( el endedor desea saber cuanto dinero obtendr$ por concepto de

    Pg. 68

  • 8/10/2019 Apuntes Fundamentos de Programacion

    69/108

    comisiones por las tres entas "ue realia en el mes y el total "ue recibir$ en elmes tomando en cuenta su sueldo base y comisiones.

    5nicio Leer sb( 1( 2( 3 totYta M 1 2 3

    com M totYta X .1 tpa' M sb com 5mprimir tpa'( comJin

    37 na tienda ofrece un descuento del 1* sobre el total de la compra y un clientedesea saber cuanto deber$ pa'ar finalmente por su compra.

    5nicio Leer tc d M tc X .1* tp M tc = d 5mprimir tpJin

    47 n alumno desea saber cual ser$ su calificacin final en la materia de#l'oritmos. %ic-a calificacin se compone de los si'uientes porcentajesA

    ** del promedio de sus tres calificaciones parciales.3 de la calificacin del e:amen final.1* de la calificacin de un trabajo final.5nicio Leer c1( c2( c3( ef( tf prom M 6c1 c2 c37;3 ppar M prom X .** pef M ef X .3 ptf M tf X .1* cf M ppar pef ptf 5mprimir cfJin

    *7 n maestro desea saber "ue porcentaje de -ombres y "ue porcentaje demujeres -ay en un 'rupo de estudiantes.

    5nicio Leer n-( nm ta M n- nm p- M n- X 1 ; ta pm M nm X 1 ; ta 5mprimir p-( pmJin

    7 Realiar un al'oritmo "ue calcule la edad de una persona.5nicio Leer fnac( fact edad M fact = fnac 5mprimir edadJin.

    Pg. 69

  • 8/10/2019 Apuntes Fundamentos de Programacion

    70/108

    Problemas Propuestos17 %ada un cantidad en pesos( obtener la e"uialencia en dlares( asumiendo

    "ue la unidad cambiar)a es un dato desconocido.

    27 Leer un numero y escribir el alor absoluto del mismo.

    37 La presin( el olumen y la temperatura de una masa de aire se relacionan porla formulaA

    masa M 6presin X olumen7;6.30 X 6temperatura 477

    47 Calcular el n

  • 8/10/2019 Apuntes Fundamentos de Programacion

    71/108

    La calificacin de J)sica se obtiene de la si'. maneraA!:amen QPromedio de tareas 2!n esta materia se pidi un total de dos tareas.

    La calificacin de u)mica se obtiene de la si'. maneraA!:amen Q*Promedio de tareas 1*!n esta materia se pidi un promedio de tres tareas.

    7.% #ise,o algortmico de las 0unciones.

    Definicin< =!ncin 1 /ani!lacin

    n problema complejo se puede diidir en pe"ue&os subproblemas mas sencillos.!stos subproblemas se conocen como B7dulosC y su complementacin en unlen'uaje se llama subpro'rama 6procedimientos y funciones7.

    n subpro'rama realia las mismas acciones "ue un pro'rama( sin embar'o( unsubpro'rama lo utilia solamente un pro'rama para un propsito especifico.

    n subpro'rama recibe datos de un pro'rama y le deuele resultados 6elpro'rama GllamaH o GinocaH al subpro'rama( este ejecuta una tarea especifica ydeuele el GcontrolH al pro'rama "ue lo llamo7.

    Junciones9ipos de+dulos

    Procedimientos

    =!ncin"na funcin en matem$ticas( es una operacin "ue toma un o masalores 6ar'umentos7 y deuele un resultado 6alor de la funcin para losar'umentos dados7. Por ejemploA

    J6S7 M S ; 61S27

    %ondeAJ gggg.. Iombre de la funcinS gggg. !s el ar'umento 6tambin conocido como par$metro formal7

    Definicin de f!nciones" na definicin de funcin se presenta de la si'uientemaneraA

    Juncin nombreYfuncion 6p1( p2( g( pn75nicio lo"ue de instruccionesJin

    Pg. 71

  • 8/10/2019 Apuntes Fundamentos de Programacion

    72/108

    %ondeAJuncin ggggg!s la palabra clae "ue nos indica una definicin de funcin.IombreYfuncion g.. !s el identificador con el cual se reconoce a la funcinen el cuerpo del

    al'oritmo principal.P1(p2(g(pn gg... !s el 'rupo de par$metros "ue define a la funcin.

    Llamado a !na f!ncinCuando definimos una funcin solo le indicamos al al'oritmo "ue esta

    funcin e:iste( pero una definicin de funcin no implica la realiacin de lasinstrucciones "ue la constituyen. Para -acer uso de una funcin( el al'oritmoprincipal la debe llamar. Por ejemploA

    Juncin J6S7 5nicio

    J M S ;61 Sh27 Jin5nicio 5mprimir G!ste es el al'oritmo principalH Leer I R M J6I7 llamado de la funcin 5mprimir G!l resultado de la funcin esAH(RJin

    Problemas Pro!estos17 %ise&e un al'oritmo "ue llene una matri de 1 X 1 y determineA

    #7 !l numero mayor almacenado en la matri7 !l numero mayor almacenado en cada ren'lnC7 La columna "ue tuo la m$:ima suma%7 !l ren'ln "ue tuo la m$:ima suma%ise&a una funcin para cada inciso.

    27 %ise&e un al'oritmo "ue lea un numero y mediante una funcin re'rese el alorde 1 si el numero es positio y =1 si es ne'atio7.

    Pg. 72

  • 8/10/2019 Apuntes Fundamentos de Programacion

    73/108

    (nidad I-5ntroduccin a la pro'ramacin.

  • 8/10/2019 Apuntes Fundamentos de Programacion

    74/108

    formato de datos compartida( tal como +icrosoft Office( el cual consiste en uninte'rador cercano procesador de palabras( -oja de calculo( base de datos( etc@ oun software de sistema( tal como un sistema de administracin de base de datos(el cual es una coleccin de los pro'ramas fundamentales "ue puede proporcionaral'

  • 8/10/2019 Apuntes Fundamentos de Programacion

    75/108

    o Cripto'raf)a Pretty Dood Priacy DI Priacy Duard

    8istemas Operatioso \indows

    o %O8o Linu:o ni:o +ac O8o O82o Palm O8o !tc.

    Licencias de softwareo Open 8ource softwareo 8oftware piracy

    Junciones>( los datos son funciones( los resultados pueden ser

    un alor o una funcin.4. L'icoA `9(J operaciones l'icos 65nteli'encia #rtificial7.*. ConcurrenteA #

  • 8/10/2019 Apuntes Fundamentos de Programacion

    76/108

    %urante a&os( los pro'ramadores se -an dedicado a construir aplicaciones muyparecidas "ue resol)an una y otra e los mismos problemas. Para conse'uir "uelos esfueros de los pro'ramadores puedan ser utiliados por otras personas secre la POO. ue es una serie de normas de realiar las cosas de manera "ueotras personas puedan utiliarlas y adelantar su trabajo( de manera "ue

    consi'amos "ue el cdi'o se pueda reutiliar.La POO no es dif)cil( pero es una manera especial de pensar( a eces subjetia de"uien la pro'rama( de manera "ue la forma de -acer las cosas puede ser diferentese'

  • 8/10/2019 Apuntes Fundamentos de Programacion

    77/108

    podemos -acer a la idea de "ue las propiedades son al'o as) como ariablesdonde almacenamos datos relacionados con los objetos.

    M+todos en las clases

    8on las funcionalidades asociadas a los objetos. Cuando estamos pro'ramandolas clases las llamamos mtodos. Los mtodos son como funciones "ue est$nasociadas a un objeto.

    3b)etos en P33Los objetos son ejemplares de una clase cual"uiera. Cuando creamos un ejemplartenemos "ue especificar la clase a partir de la cual se crear$. !sta accin de crearun objeto a partir de una clase se llama instanciar 6"ue iene de una malatraduccin de la palabra instace "ue en in'ls si'nifica ejemplar7. Por ejemplo( unobjeto de la clase fraccin es por ejemplo 3;*. !l concepto o definicin de fraccinser)a la clase( pero cuando ya estamos -ablando de una fraccin en concreto 4;0(Q;1 o cual"uier otra( la llamamos objeto.Para crear un objeto se tiene "ue escribir una instruccin especial "ue puede serdistinta dependiendo el len'uaje de pro'ramacin "ue se emplee( pero ser$ al'oparecido a esto.miCoc-e M new Coc-e67Con la palabra new especificamos "ue se tiene "ue crear una instancia de la clase"ue si'ue a continuacin. %entro de los parntesis podr)amos colocar par$metroscon los "ue inicialiar el objeto de la clase coc-e.

    Estados en ob)etosCuando tenemos un objeto sus propiedades toman alores. Por ejemplo( cuandotenemos un coc-e la propiedad color tomar$ un alor en concreto( como porejemplo rojo o 'ris metaliado. !l alor concreto de una propiedad de un objeto sellama estado.Para acceder a un estado de un objeto para er su alor o cambiarlo se utilia eloperador punto.miCoc-e.color M rojo!l objeto es miCoc-e( lue'o colocamos el operador punto y por

  • 8/10/2019 Apuntes Fundamentos de Programacion

    78/108

    3tras cosas/ay muc-o toda)a "ue conocer de la POO ya "ue slo -emos -ec-o referencia alas cosas m$s b$sicas. 9ambin e:isten mecanismos como la -erencia y elpolimorfismo "ue son unas de las posibilidades m$s potentes de la POO.La -erencia sire para crear objetos "ue incorporen propiedades y mtodos de

    otros objetos. #s) podremos construir unos objetos a partir de otros sin tener "uereescribirlo todo.!l polimorfismo sire para "ue no ten'amos "ue preocuparnos sobre lo "ueestamos trabajando( y abstraernos para definir un cdi'o "ue sea compatible conobjetos de arios tipos.8on conceptos aanados "ue cuesta e:plicar en las l)neas de ese informe. Io-ay "ue olidar "ue e:isten libros enteros dedicados a la POO y a"u) solopretendemos dar un repaso a al'unas cosas para "ue os suenen cuando ten'$is"ue poneros delante de ellas en los len'uajes de pro'ramacin "ue debe conocerun desarrollador del web.

  • 8/10/2019 Apuntes Fundamentos de Programacion

    79/108

    6%ef. por el #rc-ios usuario7 #puntadores

    Los datos se clasifican en diersas cate'or)as( se'

  • 8/10/2019 Apuntes Fundamentos de Programacion

    80/108

    !ntre los principales tipos compuestos se encuentran los si'uientesAa.@ S(/2AN3 :8on a"ullos en los "ue se especif)ca con precisin el interalode alores $lidos para un dato.!jemplosA

    ..1 6son enumeratios de tipo entero7#..T 6son enumeratios de tipo cadena7Los 0ealesno son $lidos para crear enumeratios( ya "ue su interalo no est$definido.b.@ E(ME2A*I-3S : 8on a"uellos en los "ue se definen indiidualmente losalores para un dato.!jemplosA 6(2*(4(*27 8iempre deben ponerse entre parntesis.c.@ #EFII#3S P32 EL (S(A2I3 :8on a"uellos "ue el pro'ramador crea parasatisfacer las necesidades del pro'rama en dise&o.

    Cadenas8on los datos "ue representan informacin te:tual 6palabras( frases( s)mbolos(etc7. Io representan alor al'uno para efectos numricos. Pueden distin'uirsepor"ue son delimitados por apstrofes o comillas.Se clasi0ica en dos categoras :

    %atos tipo car$cter 6c-ar7%atos tipo Cadena 6strin'7

    #atos *ipo Car"cter!s un conjunto finito y ordenado de caracteres "ue la computadora reconoce. ndato de este tipo contiene solo un car$cter.2econoce los siguientes caracteres :

    Caracteres #lfabticos 6#((C(gT(a(b(cg7Caracteres Iumricos 6(1(2(g[7Caracteres !speciales 6( =( X( ;( h( . ( @( ( ( ( gg.7

    #atos *ipo Cadena 4string5!s un sucesin de caracteres "ue se encuentran delimitados por una comilla6apstrofe7 o dobles comillas( se'

  • 8/10/2019 Apuntes Fundamentos de Programacion

    81/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    82/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    83/108

    IotaA Los operadores relacionales siempre deuelen un alor booleano./ay "ue -acer especial mencin a los operadores MM y M( adem$s de serempleados en los tipos b$sicos del len'uaje pueden ser utiliados para comparardos objetos( o m$s espec)ficamente( comparar dos referencias a objetos. #lcomparar dos referencias a objetos lo "ue realmente se comprueba es si ambas

    referencias apuntan al mismo objeto o no. Io confundir esto con comparar dosreferencias de tipo 8trin'( no se comparar)a si el te:to es el mismo( sino si ambasreferencias apuntan al mismo objeto 8trin'. Para comparar 8trin' es necesario-acerlo mediante los mtodos "ue para ellos e:isten dentro de la clase 8trin'(como por ejemplo e"ualsA8trin' cad1 M >9e:to>@8trin' cad2 M >9e:to2>@boolean resultado M cad1.e"uals6cad27@

    3peradoreslgicosA

    IotaA Los operadores lo'icos siempre deuelen un alor booleano.

    3peradores a niel de bitA

    Los operadores a niel a bit toman los operadores( los transforman a binario yrealian las operaciones trabajando con los bits uno a uno.

    3peradores de asignacinA

    IotaA !stos operadores son en realidad abreiaturas de otros operadores unidosjunto al operador asi'nacin.

    Pg. 83

  • 8/10/2019 Apuntes Fundamentos de Programacion

    84/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    85/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    86/108

    !l pro'rama saludo.e:e se ejecuta desde el s)mbolo del sistema( tecleandoAsaludo enter

    Compilacin desde Kisual 8tudio .I!91. 9odos los pro'ramas ; +icrosoft Kisual 8tudio .I!9 23; Kisual 8tudio

    .I!9 232. !n la entana +icrosoft %eelopment !nironment -acer clic en el botnIueo proyecto

    3. !n la entana Iueo proyecto( con la carpeta Proyectos de Kisual Ckabierta( ir a la parte derec-a de la entana y -acer doble clic en el icono

    #plicacin de consola.4. %espus de crearse al'unas carpetas y arc-ios para el nueo proyecto( se

    abrir$ una entana con el si'uiente te:toAusin' 8ystem@namespace Console#pplication1`;;; summary;;; %escripcin bree de Class1.;;; ;summaryclass Class1`;;; summary;;; Punto de entrada principal de la aplicacin.;;; ;summary]89#9-read^static oid +ain6strin']^ ar's7`;;;; 9O%OA a're'ar a"u) cdi'o para iniciar la aplicacin;;

    +odifi"ue este te:to para "ue luca como el arc-io saludo.cs!n la barra de men

  • 8/10/2019 Apuntes Fundamentos de Programacion

    87/108

    (nidad - Implementacin de una clase.

    &ntrod!ccin!n la fase de implementacin( una clase es un tipo o molde "ue sire para crear

    objetos.La sinta:is para declarar una clase esA]modificador^ class nombre`;; Campos de la clase;; +todos de la clase

    >.3. /odificadores de accesoLos modificadores de acceso siren para restrin'ir el acceso a los campos o a losmtodos de una clase.

    Los principales modificadores de acceso sonA priate protected public

    !l modificador priate permite "ue el campo o mtodo slo pueda ser accedidodentro de la clase donde fue declarado.!l modificador protected permite "ue el campo o mtodo slo pueda ser accedidodentro de la clase donde fue declarado y en todas las clases deriadas de ella.!l modificador public permite "ue el campo o mtodo pueda ser accedido desdecual"uier clase.

    >.4. 'ncas!lamiento de la claseLa clase se encapsula encerrando entre un par de llaes los campos y losmtodos de la clase.'jemlo"public class Punto`;; Camposint :@int y@;; +todospublic Punto6int a( int b7

    : M a@y M b@public int daS6 7`return : @

    Pg. 87

  • 8/10/2019 Apuntes Fundamentos de Programacion

    88/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    89/108

    >.E.4. Conceto de armetroLos par$metros son ariables "ue se usan para "ue los mtodos se paseninformacin.n par$metro puede pasar una copia del alor contenido 6par$metro alor7 o ladireccin 6par$metro referencia7 del contenedor de un alor.

    'jemlo de armetro alor ";; %eclaracinpublic double suma6 double :( double y7`double @ M : y @return @.............;; Comunicacin............. objeto.suma6a( b7@................

    Para utiliar los par$metros referencia se utilia la palabra ref en la l)nea decabecera del mtodo y en la instruccin de comunicacin.Puesto "ue reciben una direccin de memoria( pueden modificar el contenidoalmacenado en esa direccin.'jemlo de armetro referencia";; %eclaracinpublic double cambia6 ref double :( ref double y7`: M 1.* @y M 2. @...........;; Comunicacin..............objeto.cambia6ref a( ref b7 @

    >.E.E. Parmetros de salidan mtodo puede re'resar un slo alor por medio de la instruccin return.Los par$metros de salida son

  • 8/10/2019 Apuntes Fundamentos de Programacion

    90/108

    static oid +ain6 7`int m ( n @n M param8alida6out m7@

    8ystem.Console.\riteLine6>!l alor de m es A > m 7 @8ystem.Console.\riteLine6>!l alor de n es A > n 7 @

    >.E.B. 'l constr!ctor.!l constructor es un mtodo especial "ue sire para inicialiar el estado de unobjeto.!l constructor es utiliado por el operador new para crear un objeto de la clase a la"ue pertenece el constructor.'jemlo"class Cuadrado`public int lado@public Cuadrado6 int :7`lado M : @class Principal`static oid +ain6 7`Cuadrado c M new Cuadrado6 1 [email protected].\riteLine6>Lado M > c.lado 7 @Cuando no se declara un constructor( el compilador crea un constructorpredeterminado( sin par$metros y con el cuerpo ac)o.'jemlo"public Cuadrado6 7`Obsrese "ue el mtodo constructor debe tener el modificador de acceso public yno tener tipo de retorno.

    >.E.>. 'l destr!ctor!l mtodo destructor sire para liberar el espacio de memoria "ue se asi'no a unobjeto de una clase.La sinta:is para declarar un destructor esA]atributos^ identificador 6 7`

    Pg. 90

  • 8/10/2019 Apuntes Fundamentos de Programacion

    91/108

    ;; Cuerpo del destructor.!l identificador para el mtodo destructor es el mismo "ue para el constructor.'jemlo"public Cuadrado6 7

    !n Ck no es necesario utiliar e:pl)citamente un mtodo destructor( ya "ue e:isteun pro'rama llamado recolector de basura 6'arba'e collector7( "ue se encar'a dec-ecar cu$les objetos no est$n siendo referenciados en una aplicacin y( cuandoesto sucede( deuele la memoria ocupada por esos objetos. # partir de esemomento( la memoria deuelta puede ser utiliada para crear nueos objetos.

    Pg. 91

  • 8/10/2019 Apuntes Fundamentos de Programacion

    92/108

    (I#A# -l. Estructuras secuenciales $ selectias

    H.3. 'str!ct!ras sec!encialesna estructura secuencial consiste de una secuencia de instrucciones( como semuestra en el si'uiente dia'rama de flujo.

    %onde un lo"ue consiste de una o m$s instrucciones.

    H.4. 'ntrada 1 salida de datosLa entrada de datos consiste en colocar en la memoria principal datosproenientes desde al'

  • 8/10/2019 Apuntes Fundamentos de Programacion

    93/108

    's5!ema concet!al del e5!io de cm!to

    La consola!n los albores de la computacin( el teclado y la pantalla formaban la consola.!n la actualidad( a la combinacin de teclado y pantalla se les si'ue considerandocomo a la anti'ua consola.!n Ck( la entrada y la salida de datos se pueden manejar a tras de los mtodosde la clase Console.

    'ntrada de datos desde el tecladoPara la entrada de datos por medio del teclado se pueden utiliar los mtodosRead6 7 y ReadLine6 7 de la clase Console.'jemlos"8ystem.Console.Read6 7 @ ;; Lee el si'uiente car$cter desde el flujo de la entradaest$ndar.8ystem.Console.ReadLine6 7 @ ;; Lee la si'uiente l)nea de caracteres desde el flujode la entrada est$ndar.

    alida de datos acia la antallaLa salida de datos -acia la pantalla se puede realiar utiliando los mtodos \ritey \riteLine6 7 de la clase Console.'jemlos"8ystem.Console.\rite6 7 @ ;; !scribe el si'uiente car$cter en el flujo de la salidaest$ndar 6la pantalla7.8ystem.Console.\riteLine6 7 @ ;; !scribe la si'uiente l)nea de caracteres en el flujode la salida est$ndar.

    Pg. 93

  • 8/10/2019 Apuntes Fundamentos de Programacion

    94/108

    H.E. &nteraccin de la alicacin 1 la clase!:isten dos maneras de crear aplicacionesA una donde los campos y mtodos sedeclaran como est$ticos( en cuyo caso se dice "ue son >de clase> por"ue e:istir$un solo ejemplar "ue pertenecer$ a la clase.'jemlo"

    usin' 8ystem@class Procedimental`static double sueldo M 1.@static oid +ain6 7`Console.\riteLine6>8ueldo M > sueldo 7 @La otra manera es declarar los campos y mtodos sin el modificador static. !neste caso se dice "ue los elementos son >de instancia>( por"ue cada objeto de laclase tendr$ su propia copia de cada elemento.!n una aplicacin pueden declararse tantas clases como sea necesario( pero enuna de ellas deber$ declararse el mtodo +ain6 7.'jemlo"usin' 8ystem @class C)rculo`int :( y @ ;; priate( por omisin.public Circulo6 int a( int b7`: M a @y M b @public int daS6 7`return : @public int da?6 7`return y @class Principal`static oid +ain6 7`C)rculo circ M new C)rculo6 1(1*7@ ;; Crea e inicialia a circ.Console.\riteLine6>S M > circ.daS6 7 7 @Console.\riteLine6>? M > circ.da?6 7 7 @

    Pg. 94

  • 8/10/2019 Apuntes Fundamentos de Programacion

    95/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    96/108

    !jemplo 1Aif6calificacin M 07 estatus M >#creditado> @!jemplo 2A

    if6crdito MM true7`clae M 12 @adeudo M compra @H.B.4. electia dobleLa estructura selectia doble sire para se'uir una l)nea de ejecucin cuando secumple la condicin( o se'uir otra l)nea cuando no se cumple la condicin.Diagrama de fl!jo"

    Pg. 96

  • 8/10/2019 Apuntes Fundamentos de Programacion

    97/108

    inta2is"Caso 17if6condicin7 instruccin 1 @ ;; na sola instruccinelse instruccin 2 @Caso 27

    if6condicin7`lo"ue 1 ;; Karias instruccioneselse`lo"ue 2 ;; Karias instrucciones

    !jemplo 1Aif6calificacin M 07 estatus M >#creditado>@else estatus M >Io #creditado>@!jemplo 2Aif6crdito MM true7`clae M 12 @adeudo M compra @else`clae M 1 @adeudo M . @H.B.E. electia anidadaLa estructura selectia anidada es una cadena de estructuras selectias "ue seconectan de la parte else de la actual con la parte if de la si'uiente.

    Pg. 97

  • 8/10/2019 Apuntes Fundamentos de Programacion

    98/108

    Diagrama de fl!jo"

    inta2is"

    if6condicin17 lo"ue 1 @else if6condicin27 lo"ue 2 @else lo"ue 3@

    'jemlo"if6edad M 2 7Console.\riteLine6>eb> 7 @

    Pg. 98

  • 8/10/2019 Apuntes Fundamentos de Programacion

    99/108

    else if6edad 127Console.\riteLine6>Ii&o> 7 @else if6 edad 1Q7Console.\riteLine6>#dolescente> 7 @else Console.\riteLine 6> #dulto> 7 @

    H.B.B. electia m:ltileLa estructura selectia m

  • 8/10/2019 Apuntes Fundamentos de Programacion

    100/108

    'jemlo"

    s8itc64opcin5

    T case XAX: S$stem.Console.;riteLine4HAltasH5U breaU

    case X/X: S$stem.Console.;riteLine4H/a)asH5 U breaUcase XCX: S$stem.Console.;riteLine4HCambiosH5 U breaUde0ault: S$stem.Console.;riteLine4H3pcin in"lidaH5 U breaU

    WH.B.>. electia intentaLa estructura intenta 6 try;catc- 7 se utilia para atrapar e:cepciones. #un"ue esuna estructura de uso especialiado( ale la pena describirla breemente a"u)para compararla con al'una de las otras estructuras a"u) estudiadas.

    Pg. 100

  • 8/10/2019 Apuntes Fundamentos de Programacion

    101/108

    Diagrama de fl!jo"

    inta2is"try`;; lo"ue de instrucciones "ue pueden 'enerar una o m$s;; situaciones e:cepcionales.catc-6!:cepcin 17

    Pg. 101

  • 8/10/2019 Apuntes Fundamentos de Programacion

    102/108

    `;; lo"ue alternatio para el caso de e:istir la !:cepcin 1...catc-6!:cepcin I 7

    ;; lo"ue alternatio para el caso de e:istir la !:cepcin Ifinally ;; Opcional`;; lo"ue de instrucciones "ue siempre se ejecutan

    'jemlo"try`byte num1@byte num2@byte suma@byte cociente@num1 M 12@num2 M 2@cociente M c-eced 66byte76num1;num277@suma M c-eced 66byte76num1 num277@Console.\riteLine6suma7@Console.\riteLine6cociente7@Console.\riteLine6>Pulse enter para finaliar...>[email protected]@catc- 6 Oerflow!:ception 7`Console.\riteLine6>na operacin matem$tica produjo desbordamiento.>[email protected]@catc- 6 %iideyTero!:ception 7`Console.\riteLine6>8e intent diidir por cero.>[email protected]@finally`Console.\riteLine6>!l blo"ue finally siempre se ejecuta.>7@

    Pg. 102

  • 8/10/2019 Apuntes Fundamentos de Programacion

    103/108

    (nidad -II Estructuras de repeticin.

    Las estructuras de repeticin siren para formar bucles o ciclos en los "ue seejecuta repetidamente un blo"ue de instrucciones.

    I.3. /ientras ( +ile )!n esta estructura( de entrada se eal

  • 8/10/2019 Apuntes Fundamentos de Programacion

    104/108

  • 8/10/2019 Apuntes Fundamentos de Programacion

    105/108

    Diagrama de fl!jo"

    inta2is"do`lo"ue @ w-ile6condicin7 @

    'jemlo"usin' 8ystem