Fundamentos de Programacion

28
pdfcrowd.com open in browser PRO version Are you a developer? Try out the HTML to PDF API Fundamentos de programación Texto completo ¡Ayúdanos a reducir la brecha de género en Wikipedia! Participa en nuestro concurso de edición o súmate a una de nuestras actividades < Fundamentos de programación Esta es la versión para imprimir de Fundamentos de programación. Si imprimes esta página, o eliges la opción de Vista preliminar de impresión de tu navegador, verás que desaparecen este cuadro y los elementos de navegación de arriba y de la izquierda, pues no son útiles en una versión impresa. Pulsando antes en Refrescar esta página te asegurarás de obtener los últimos cambios del libro antes de imprimirlo. Para más información, puedes ver Wikilibros:Versión para imprimir. Fundamentos de programación por es.wikibooks.org Introducción <<- Anterior (Portada) | (Algoritmos) Siguiente->> Versión para imprimir esta pagina ¡Bienvenido a este libro! . Nuestro objetivo fundamental es proveer a los lectores de un manual que cubra los aspectos esenciales del maravilloso mundo de la programación de ordenadores. En este libro se estudiarán los fundamentos de la algoritmia: la ciencia y arte de diseñar algoritmos para la resolución sistemática de problemas de cualquier índole. Aun cuando el lector no tenga una experiencia previa en la programación de ordenadores, es seguro que a lo largo de su vida ha ejecutado muchos algoritmos. Un algoritmo es la especificación detallada de los pasos necesarios para llevar a cabo una tarea específica. En la escuela, por ejemplo, aprendimos una serie de pasos para realizar sumas, restas, multiplicaciones y divisiones, estos son algoritmos (de hecho debemos la palabra 'algoritmo' al matemático musulmán Muhammad ibn Musa al-Jwarizmi). Una receta de cocina es uno de los ejemplos más claros de algoritmo. El conjunto de trámites que debe realizar en cualquier institución pública para la expedición de un documento, como por ejemplo, la licencia de conducir, también es un algoritmo. En este libro, vamos a enseñar los fundamentos básicos para crear programas. Un programa es un algoritmo hecho para ser ejecutado por un ordenador. Página discusión Leer Editar Ver historial Buscar Portada Portal de la comunidad Café Recetario Wikichicos Categorías de libros Cambios recientes Libro aleatorio Ayuda Donaciones Imprimir/exportar Crear un libro Descargar como PDF Versión para imprimir Herramientas Lo que enlaza aquí Cambios relacionados Subir archivo Páginas especiales Enlace permanente Información de la página Citar esta página Crear una cuenta Acceder

description

Bases para programar en todos los lenguajes.

Transcript of Fundamentos de Programacion

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    Fundamentos de programacinTexto completo

    Aydanos a reducir la brecha de gnero en Wikipedia!Participa en nuestro concurso de edicin o smate a una de nuestras actividades

    < Fundamentos de programacin

    Esta es la versin para imprimir de Fundamentos de programacin.Si imprimes esta pgina, o eliges la opcin de Vista preliminar de impresin de tu navegador, vers que desaparecen este cuadro y loselementos de navegacin de arriba y de la izquierda, pues no son tiles en una versin impresa.

    Pulsando antes en Refrescar esta pgina te asegurars de obtener los ltimos cambios del libro antes de imprimirlo.

    Para ms informacin, puedes ver Wikilibros:Versin para imprimir.

    Fundamentos de programacin

    por es.wikibooks.org

    Introduccin

    Versin para imprimir esta pagina

    Bienvenido a este libro!. Nuestro objetivo fundamental es proveer a los lectores de un manual que cubra los aspectos esenciales del maravilloso mundo de la programacin

    de ordenadores. En este libro se estudiarn los fundamentos de la algoritmia: la ciencia y arte de disear algoritmos para la resolucin sistemtica de problemas de cualquier

    ndole.

    Aun cuando el lector no tenga una experiencia previa en la programacin de ordenadores, es seguro que a lo largo de su vida ha ejecutado muchos algoritmos. Un algoritmo

    es la especificacin detallada de los pasos necesarios para llevar a cabo una tarea especfica. En la escuela, por ejemplo, aprendimos una serie de pasos para realizar sumas,

    restas, multiplicaciones y divisiones, estos son algoritmos (de hecho debemos la palabra 'algoritmo' al matemtico musulmn Muhammad ibn Musa al-Jwarizmi). Una receta de

    cocina es uno de los ejemplos ms claros de algoritmo. El conjunto de trmites que debe realizar en cualquier institucin pblica para la expedicin de un documento, como por

    ejemplo, la licencia de conducir, tambin es un algoritmo. En este libro, vamos a ensear los fundamentos bsicos para crear programas. Un programa es un algoritmo hecho

    para ser ejecutado por un ordenador.

    Pgina discusin Leer Editar Ver historial Buscar

    Portada

    Portal de la comunidad

    Caf

    Recetario

    Wikichicos

    Categoras de libros

    Cambios recientes

    Libro aleatorio

    Ayuda

    Donaciones

    Imprimir/exportar

    Crear un libro

    Descargar como PDF

    Versin para imprimir

    Herramientas

    Lo que enlaza aqu

    Cambiosrelacionados

    Subir archivo

    Pginas especiales

    Enlace permanente

    Informacin de lapgina

    Citar esta pgina

    Crear una cuenta Acceder

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    La algoritmia es una ciencia: est sustentada en un conjunto de modelos matemticos. Existen una cantidad de tcnicas que han sido ampliamente estudiadas por los

    cientficos de la computacin para resolver problemas que aparecen en diversas reas de la ciencia. Por ejemplo, la traduccin de lenguajes, la clasificacin y ordenacin de

    datos, los algoritmos para cifrado y el clculo numrico, son algunas de las reas donde an en la actualidad, se mantiene muy activa la investigacin de nuevas tcnicas y el

    desarrollo de algoritmos y programas ms eficientes.

    La algoritmia tambin es un arte, pues la creacin de un algoritmo requiere de grandes dosis de heurstica y creatividad. La creacin de un programa va a estar muy influida

    por factores externos al modelo matemtico, como por ejemplo, el lenguaje de programacin que se va a usar, las limitaciones fsicas que imponen los ordenadores o incluso

    los plazos para la finalizacin de un proyecto. Por otro lado, muchos programadores buscan un aspecto esttico en la realizacin de sus programas; para esas personas,

    escribir programas es un ejercicio semejante a hacer literatura.

    Por los motivos expuestos anteriormente, pretendemos en este libro mostrar ambos aspectos de la algoritmia: por un lado, se presentarn tcnicas que ya son clsicas en la

    programacin, y por otro lado, se intentar mostrar los problemas que pueden surgir al convertir la especificacin del algoritmo en un programa que se ejecute

    satisfactoriamente. Una analoga muy ilustrativa es la de comparar un algoritmo con una receta de cocina, mientras que el programa sera anlogo al plato preparado siguiendo

    dicha receta. Si usted es un cocinero novato, aun cuando tenga la receta de cocina en su mano y siga metdicamente todos sus pasos, puede encontrar que al final el plato no

    es todo lo apetitoso que usted desea, es ah donde entra en juego el arte, la capacidad de innovar y refinar la receta con un toque personal. As como esa capacidad de

    integrar la parte cientfica y tcnica con la parte artstica hace la diferencia entre el cocinero novel y el chef ms avezado; tambin la hace entre un programador principiante y

    un experto. Esperamos que las recetas que usted consiga en este libro le sean muy tiles como base para crear las suyas propias.

    Hay que hacer una advertencia inicial al lector: este libro por s solo no pretende, ni puede ser una obra completa para la enseanza de la programacin. El lector debe

    complementar el estudio de la algoritmia, con el estudio de uno o varios lenguajes de programacin. Le recomendamos encarecidamente que realice todos los algoritmos

    presentados en este libro, usando su lenguaje de programacin favorito. Para el aprendizaje de los lenguajes de programacin ms populares, le sugerimos consultar (y por

    qu no, tambin colaborar con) los otros wikilibros de programacin.

    Finalmente, invitamos al lector a practicar: la nica forma de aprender a nadar, es lanzarse al agua y nadar. Se tratar de incluir, en medida de lo posible, ejercicios al final de

    cada seccin. Al final de cada captulo se sugerirn algunos proyectos de programacin que puede realizar. La realizacin de estos proyectos es beneficiosa por varios

    motivos: primero, ayudar a afianzar los conocimientos adquiridos en cada seccin; segundo permitir aplicar las tcnicas estudiadas en problemas prcticos, y tercero: la

    programacin puede convertirse en un hobbie que brinda muchas satisfacciones.

    En sus inicios, la programacin de computadoras se bas exclusivamente en el modelo imperativo (tambin denominado procedimental), que semeja ms la forma en que la

    mquina maneja las instrucciones u rdenes.

    Conforme la programacin de computadoras fue utilizndose para resolver nuevos tipos de problemas, se requiri la creacin de nuevos modelos o paradigmas para el

    desarrollo de las aplicaciones.

    La programacin orientada a objetos es una forma de concebir un programa de computadora. Se puede pensar en un programa como una lista de instrucciones que le indica a

    la computadora qu hacer, o un paquete de pequeos programas que responden a eventos especficos indicados por la entrada del usuario.

    La programacin orientada a objetos ve a un programa como un conjunto de objetos que cooperan entre s para resolver un problema.

    El modelo orientado a objetos sirve para desarrollar sistemas de software con un alto grado de complejidad. Este modelo es tan importante que se cre el OMG (Object

    Management Group, Grupo de Administracin de Objetos, una agrupacin no lucrativa) para establecer las normas que rigen el desarrollo de software orientado a objetos.

    En el resto de este libro se estudiarn los conceptos en que se basa el modelo orientado a objetos, as como las principales razones para utilizarlo en el desarrollo de software.

    Algoritmos y programas

    Versin para imprimir esta pagina

    Qu es un algoritmo?

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    Por algoritmo, se entiende a un conjunto finito de instrucciones que se deben seguir para resolver un problema. No obstante, desde el punto de vista de la programacin de

    ordenadores, la definicin del algoritmo como la especificacin de una serie de pasos, es incompleta. Debe observarse que los ordenadores son equipos que tienen

    limitaciones fsicas en cuanto a capacidad de almacenamiento y procesamiento. Por consiguiente debemos refinar un poco ms nuestra definicin de algoritmo para hacerla

    aplicable de manera efectiva en el mbito de la informtica.

    El algoritmo es un conjunto de pasos, instrucciones o acciones que se deben seguir para resolver un problema. Existen una gran cantidad de algoritmos, hay que coger el ms

    efectivo. Hay dos tipos de algoritmos que son los cualitativos y cuantitativos, cualitativos son todos aquellos pasos o instrucciones descritos por medio de palabras que

    sirven para llegar a la obtencion de una respuesta o solucion de un problema, y cuantitativos son todos aquellos pasos o instrucciones que involucran calculos numricos

    para llegar a un resultado sastifactorio.

    Caractersticas:

    Tiene que ser preciso.

    Tiene que estar bien definido.

    Tiene que ser finito.

    La programacin es adaptar el algoritmo al ordenador.

    El algoritmo es independiente segn donde lo implemente.

    Definicin: Un algoritmo se entiende como una sucesin finita de pasos que debe cumplir las siguientes especificaciones:

    Cada paso del algoritmo debe estar bien definido: Esto significa que la definicin de un paso debe ser suficientemente clara, para que una persona pueda entenderla yrealizarla. Si bien no se puede dar un criterio determinstico para decidir si un paso est bien definido, debemos apelar al sentido comn para decidir que un paso estespecificado sin ambigedades.

    Un algoritmo debe tener un principio y un fin: Un programa es un algoritmo escrito con un objetivo: conseguir un resultado. No tiene sentido crear un programa queespere ~ segundos (infinitos segundos) y luego escriba en pantalla "Hola Mundo!", del mismo modo que un algoritmo debe tener un principio bien definido (tampoco tienesentido el algoritmo "haz nada, y luego escribe Hola Mundo!")

    Modelos computacionalesUn modelo computacional es un modelo matemtico en las ciencias de la computacin que requiere extensos recursos computacionales para estudiar el comportamiento de un

    sistema complejo por medio de la simulacin por computadora. El sistema bajo estudio es a menudo un sistema complejo no lineal para el cual las soluciones analticas simples

    e intuitivas no estn fcilmente disponibles. En lugar de derivar una solucin analtica matemtica para el problema, la experimentacin es hecha con el modelo cambiando los

    parmetros del sistema en la computadora, y se estudian las diferencias en el resultado de los experimentos. Las teoras de la operacin del modelo se pueden derivar/deducir

    de estos experimentos de computacionales.

    Ejemplos de modelos de computacionales comunes son modelos de el pronstico del tiempo, modelos del Earth Simulator, modelos de simulador de vuelo, modelos de

    plegamiento molecular de protenas, y modelos de red neuronal.

    Se considera a los algoritmos al conjunto de pasos ordenados, que permiten resolver un problema bajo una secuencia lgica, es decir, que tenga inicio y fin (sentido concreto).

    Programas: Algoritmos para ser ejecutados por un ordenadorUn ordenador o computadora est, desde que se enciende hasta que se apaga totalmente, ejecutando un algoritmo. Por lo general, estos algoritmos, escritos para que los

    entienda una mquina, terminan siendo vagos y confusos para la mayora de quienes no han estudiado programacin. Una mquina no puede entender "escribe Hola Mundo!"

    porque no sabe lo que es "escribe" ni lo que es una letra o un espacio, ni lo que es una pantalla. En cambio, puede entender "mov eax, 0x23afb31" (escribir en el registro eax

    el nmero 0x23afb31), aunque nosotros no. Un ordenador es solo un circuito electrnico, no funciona a base de magia ni nada por el estilo.

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    Debido a lo dificil que es escribir en lenguaje mquina, e incluso en ensamblador, se crearon diferentes lenguajes de programacin, ms o menos parecidos al ingls actual y a

    cmo se redacta un algoritmo. Estos lenguajes proveen de cosas tan complejas para una mquina como los bucles for. Los compiladores se encargan de traducir esos ficheros

    al lenguaje ensamblador que corresponda, el ensamblador de traducirlos a lenguaje mquina y el enlazador de juntar todo ese cdigo mquina en un solo archivo, el

    programa. Y el microprocesador, se encarga de ir encendiendo o apagando transistores segn lo que le diga el cdigo mquina. Es facil entender el lenguaje de alto nivel en

    comparacion al lenguaje maquina pero de la evolucion surgieron.

    Qu instrucciones ejecuta un ordenador?

    Lenguaje de mquina

    Cada tipo de microprocesador contiene un conjunto de instrucciones que realizan ciertas operaciones sobre una o ms palabras de bits; las instrucciones van tambin

    codificadas en bits. No queremos hacer aqu una discusin sobre arquitectura de ordenadores, por lo que con esto debe valer por ahora.

    Se entiende que escribir slo con dos teclas, el 0 y el 1, es incmodo. Histricamente, a la hora de disear un algoritmo para que el ordenador ejecutara, se escriba mediante

    unas etiquetas memotcnicas; ste fue el origen del lenguaje ensamblador. Por ejemplo quizs en una cierta arquitectura la instruccin de borrado de memoria (Memory Clear,

    en ingls) corresponda al cdigo 010. Pronto surgieron programas que lean, siguiendo el ejemplo, MC, y lo sustituan por 010.

    Lenguaje ensamblador

    El cdigo mquina tena dos grandes inconvenientes para los programadores:

    las instrucciones eran difciles de recordar, ya que no guardaban relacin con la operacin que se est realizando.

    puede haber, y de hecho hay, diferencias entre las instrucciones de un procesador a otro.

    Todo esto ha llevado a "poner nombre" a las instrucciones de cdigo mquina de manera que a una secuencia concreta de bits que realiza una operacin se le pone un

    nombre sencillo que identifique la operacin. Esta traduccin a un lenguaje ms sencillo para las personas resulta en una mayor comodidad para el programador, adems el

    proceso de traduccin inverso de lenguaje ensamblador a cdigo mquina puede ser realizado por un sencillo programa.

    Programacin para seres humanos

    Lenguajes de alto nivel

    Sobre este lenguaje ensamblador inicial se fueron construyendo otros lenguajes de programacin de ms alto nivel; esto significa que ocultan ciertos aspectos de manera que

    el programador no se ha de preocupar sobre si en la mquina que quiere que se ejecute el algoritmo el MC corresponde a la instruccin 101 o 010. Se produce, por tanto, una

    abstraccin de datos, muy deseable para poder utilizar el trabajo de otros para avanzar un paso ms en vez de tener que "reinventar la rueda", como se suele decir. Estos

    textos en los que se codifican los algoritmos son los cdigos fuente; siguen las reglas sintcticas de un determinado lenguaje de programacin. Existen numerosos lenguajes

    de programacin, y se utiliza uno u otro segn sus caractersticas se adecen ms o menos a la resolucin de nuestro problema.

    Traductores e intrpretes

    Tras la escritura del algoritmo, un compilador o un intrprete (otros programas) transformarn el texto en cdigo mquina que el procesador es capaz de ejecutar.

    Toda esta abstraccin permite resolver problemas alejados de sumar nmeros binarios, como pueden ser la consulta de esta misma enciclopedia o jugar a un videojuego en

    3D.

    Lenguajes interpretados vs. lenguajes compilados

    Los lenguajes interpretados son como respuesta a la dificultad de manejo de los compilados. Un lenguaje compilado es slo apto para un sistema operativo o formato de

    ejecutable (en GNU/Linux y Unix System V es ELF, en Windows o incluso en BSD es muy diferente), y es tedioso de manejar: para comprobar bugs o errores el computador

    debe:

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    Compilar cada uno de los ficheros de cdigo.

    Ensamblarlos en ficheros objeto.

    Enlazar los ficheros objeto.

    Volverlos a ensamblar.

    Todo eso no es gran derroche de recursos para un ordenador medio actualmente, pero dura sus 10 o 15 segundos. En cambio, con un lenguaje interpretado, el programa

    intrprete analiza el fichero de cdigo y lo va ejecutando en tiempo real, sin compilarlo ni ensamblarlo. Otra de las ventajas de los lenguajes interpretados es que son

    multiplataforma: un programa en Perl, por ejemplo, no debe ser compilado dos veces (una para Unix y otra para Windows). Con que haya diferentes versiones del intrprete en

    cada uno de esos ordenadores, especficamente compilados para ellos, basta.

    Sus desventajas:

    Consume muchos recursos de memoria, sobre todo RAM.

    Se depende del intrprete: si no tienes instalado el intrprete que corresponda, no podrs ejecutar el programa.

    Ejemplos de lenguajes interpretados son PHP, Perl, Python, Tcl/Tk, BASIC, LISP (en algunas de sus versiones)...

    Tcnicas bsicas de programacin

    Versin para imprimir esta pagina

    La programacin estructurada sigue tres reglas: la secuencia, la iteracin y la decisin. La primera de ellas indica que las instrucciones del cdigo se leern de principio a fin;

    la segunda indica que, segn cierta condicin, un nmero de instrucciones podran repetirse un numero determinado de veces, y la tercera indica que segn unas ciertas

    condiciones se ejecutarn o no un conjunto de instrucciones. En el siguiente algoritmo para limpiar platos se aprecian estas tres caractersticas. La indentacin de las

    instrucciones indican cules son englobadas y cules no por sus predecesoras.

    mientras haya platos

    coger plato mientras haya suciedad echar jabon pasar el estropajo por el plato si plato es azul ponerlo con los azules

    En cdigo no estructurado, quedara algo ms complejo.

    1 coger plato 2 echar jabon 3 pasar el estropajo por el plato 4 si hay suciedad ir a la instruccin 2 5 si el plato no es azul ir a la instruccin 7 6 ponerlo con los azules 7 si hay ms platos ir a la instruccin 1

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    En programas ms grandes, esto es muchsimo ms complicado.

    Ahora conocemos la ejecucin de los algoritmos. Sin embargo, un programa se compone tanto de algoritmos como de una estructura de datos sobre los que operar.

    Antes de empezar un programa

    Estructura de un programa

    En la programacin estructurada hay un inicio y un fin perfectamente bien definido de acuerdo al diagrama de flujo que se plante al concebir la idea del programa.

    Un programa bien estructurado debera tener algn subprograma que capture cualquier error dentro del programa principal o de cualquier subprograma dentro de la aplicacin

    de tal modo que el subprograma que captura los errores genere un registro de datos que describa el error generado y/o en qu subprograma se gener el error para

    posteriormente corregirlo. Para facilitar la correccin de estos errores se hace uso de los comentarios agregados en el cdigo fuente.

    Variables y constantes

    Como hemos visto, el ordenador sigue una serie de instrucciones. Pero esas instrucciones tienen que operar sobre una serie de datos. El ordenador tpico slo procesa una

    instruccin a la vez, por lo que necesita 'espacios de memoria' donde guardar o depositar, a modo de cajones, por usar un smil conocido, los diversos datos con los que

    trabaja. Aqu es donde entran en juego las variables y constantes.

    En los inicios, con el ensamblador, se poda decir al ordenador, por ejemplo: 'Ejecuta la instruccin de esa posicin de memoria' o tambin 'En esa posicin de memoria est

    guardada mi edad, imprmela por pantalla'. Todo esto se deriva del hecho de que los programas tambin son datos. Esta ambigedad presenta numerosos inconvenientes

    cuando se producen errores, como el lector se imaginar fcilmente: de ah que, a medida que los lenguajes evolucionan hacia niveles superiores, se impida el tratamiento

    indistinto de los datos. A partir de entonces, un programa tiene que decirle al sistema operativo los cajones que necesita y ste se los proporciona independientemente de

    cules sean.

    Quizs suene ms complicado de lo que es. Un ejemplo: Queremos sumar dos nmeros. Nuestro programa tendr que tener tres cajones: Uno para cada nmero y otro para el

    resultado. Cada cajn tiene un nombre en vez de una posicin de memoria, de manera que slo hay que nombrarlo:

    Necesito cajones A, B y Resultado

    Lee un nmero y gurdalo en A Lee un nmero y gurdalo en B Suma A y B y gurdalo en Resultado Imprime el contenido de Resultado

    He aqu nuestro programa. Como cabe pensar, un procesador no tiene la instruccin "Imprime por pantalla"; esto es una llamada a otra porcin de cdigo que, gracias a la

    abstraccin, nosotros no hemos escrito, o hemos escrito una sola vez; a partir de lo cual podemos imprimir todo el texto que queramos en la pantalla.

    Las posiciones de memoria A y B son Variables. Si queremos leerlas o escribirlas, podemos hacerlo. Tpicamente, existirn datos que no pensamos modificar; no querremos

    que el usuario tenga que introducirlos cada vez, pues son de naturaleza ms constante que otros (como puede ser el valor Pi para calcular el permetro o rea de un crculo).

    Para evitar modificarlos por error, podemos pedir al sistema variables especiales, que no puedan ser reescritas. Son las Constantes. Un ejemplo:

    Comentario: Este programa calcula el rea de un crculo

    Constante PI = 3'14159265

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    Variable R Variable Resultado;

    Leer nmero y guardar en R Calcular PI * (R * R) y guardar en Resultado Imprimir Resultado;

    El uso de variables y constantes se asemeja al uso que se les da en el lgebra o en otras ramas matemticas.

    Ntese tambin la clara separacin entre estructuras de datos y algoritmos. Segn los lenguajes, esto puede ser o no obligatorio, pero es recomendable en aras de una mayor

    claridad del trabajo.

    Comentarios

    El til concepto del comentario: son lneas de texto que el compilador o el intrprete no consideran como parte del cdigo, con lo cual no estn sujetas a restricciones de

    sintaxis y sirven para aclarar partes de cdigo en posteriores lecturas y, en general, para anotar cualquier cosa que el programador considere oportuno.

    Uno como programador debe tener como prioridad documentar nuestro cdigo fuente ya que al momento de depurar nos ahorrar mucho tiempo de analisis para su correccin

    o estudio.

    Los programadores profesionales tienen la buena costumbre de documentar sus programas con encabezados de texto (encabezados de comentarios) en donde describen la

    funcin que va a realizar dicho programa, la fecha de creacin, el nombre del autor y en algunos casos las fechas de revisin y el nombre del revisor.

    Por lo general algunos programas requieren hacer uso de llamadas a subprogramas dentro de una misma aplicacin por lo que cada subprograma debera estar documentado,

    describiendo la funcin que realizan cada uno de estos subprogramas dentro de la aplicacin.

    Estructuras de datos y de control

    Estructuras de control

    Las estructuras de control pueden dividirse en dos: Estructuras de control Condicional y Estructuras de control Repetitivo.

    Las estructuras de control condicional son las que incluyen alternativas de seleccion con base al resultado de una operacin booleana, como por ejemplo, una comparacin

    (A==B). Segn la expresin sea cierta o falsa, se ejecutar una seccin de cdigo u otro. Es el caso de la sentencia IF THEN ELSE de Pascal o Basic:

    IF A==0 THEN PRINT "A vale 0" ELSE PRINT "A no vale 0"

    Otra sentencia de control son las de tipo SWITCH CASE. En este tipo de sentencias se especifica la variable a comparar y una lista de valores con los que comparar. Aquel que

    sea el verdadero, se ejecutar:

    SWITCH A CASE 0: PRINT "A vale 0" CASE 1:

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    PRINT "A vale 1"

    Otras herramientas imprescindibles del control de la ejecucin de nuestro cdigo son los BUCLES o CICLOS. Consisten en un mtodo que permite repetir un trozo de cdigo

    varias veces.

    Hay bsicamente dos tipos:

    - Bucle FOR:

    El bucle FOR consiste en una sentencia que engloba un grupo de instrucciones y tiene una variable cuyo valor se va modificando en cada vuelta. En general se utiliza cuando

    sabemos cuntas veces tenemos que repetir el cdigo.

    FOR A=0 TO 9 Especificamos en este caso que A variar desde 0 hasta 9, con lo que repetiremos el bucle 10 veces. PRINT "Estamos en el bucle" NEXT A Con esto cerramos el bucle e indicamos el final del bloque de instrucciones que se repiten

    - Bucle WHILE:

    El bucle WHILE consiste en un bucle en el que el cdigo se repite mientras se cumpla alguna condicin booleana (es decir, una expresin que d como resultado verdadero o

    falso). Hay variaciones, como el REPEAT...UNTIL, que se diferencia en el momento de comprobar si se hace verdadera o no la condicin.

    WHILE A(B*2) DO Aqu especificamos la expresin que evaluamos y aqu se comprueba A=A+1 Incrementamos el valor de A mientras sea distinto a B*2 DONE Como en el FOR, necesitamos especificar donde acaba el bucle y el cdigo.

    Estructuras de datos

    creo a como entero

    creo b como entero

    creo suma como entero

    a=2

    b=1

    suma = a + b

    imprimir suma

    Estructura de una aplicacin. Cualquier programa que se realice debe llevar una estructura para disminuir la tarea de depuracin ya que esta labor lleva ms tiempo del

    estimado.

    Si eres principiante en el rea de programacin debes definir el programa a realizar, documentar cada uno de los pasos que realizas en tu programa, debes de considerar

    algn metodo de captura de errores, etc.

    En este subcaptulo abarcaremos el cmo estructurar una aplicacin para mejorar o disminuir el tiempo en depuracin, as como localizar ms rpidamente los errores.

    Puedes buscar en Internet el concepto "pseudocdigo", que no es ms que la escritura de un algoritmo en un lenguaje ms cercano al natural. Es decir, la orden en lenguaje

    Javascript que repetira el proceso de quitar suciedad aadiendo agua y jabn mientras se frota sera la siguiente:

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    function frotar(cuanto){ var veces = 0; for (veces = 0; suciedad < 0 || veces < cuanto ; veces++){ suciedad = suciedad - (agua + jabn); }}

    Mientras que el algoritmo o pseudocdigo quedara as:

    funcin frotar (cuantas veces lo hago) variable veces que llevo = 0 repetir (desde que vecesquellevo = 0 mientras la suciedad < 0 vecesquellevo < cuantasveceslohago; aumentar vecesquellevo de una en una) suciedad = suciedad - (agua + jabn) fin repetirfin funcin

    En primer lugar, es muy recomendable hacer un esquema sobre el papel con toda clase de datos que se vayan a utilizar. Por ejemplo, si queremos hacer un programa para

    controlar una empresa dedicada al alquiler de coches, podramos necesitar:

    Matrcula del coche

    Marca del coche

    Modelo del coche

    Color del coche

    Estado del coche (si est alquilado, en reparacin o disponible)

    Situacin del coche (en qu lugar del garaje o en qu localidad est)

    Kilometraje del coche

    Precio por hora del coche

    por un lado, y:

    Nombre del cliente

    Apellidos del cliente

    Direccin del cliente

    DNI del cliente

    Permiso de conducir del cliente

    Nmero de cuenta del cliente

    ... etc. por otro.

    Enlaces externosPseudocdigo De Programacin

    Ejemplos de Pseudocdigos

    Introduccin a la programacin estructurada

    Versin para imprimir esta pagina

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    IntroduccinLa programacin estructurada naci como solucin a los problemas que presentaba la programacin no estructurada, la cual se emple durante mucho tiempo antes de la

    invencin de la programacin estructurada.

    Un programa no estructurado es un programa procedimental: las instrucciones se ejecutan en el mismo orden en que han sido escritas. Sin embargo, este tipo de

    programacin emplea la instruccin "goto". Una instruccin "goto" permite pasar el control a cualquier otra parte del programa. Cuando se ejecuta una instruccin "goto" la

    secuencia de ejecucin del programa contina a partir de la instruccin indicada por "goto". De esta forma, para comprender como funciona un programa es necesario simular

    su ejecucin. Esto quiere decir que en la mayora de los casos es muy difcil comprender la lgica de un programa de este tipo. Algunos compiladores crean referencias

    cruzadas a las instrucciones apuntadas por los "goto", posibilitando una navegacin rpida a travs del cdigo fuente. Sin embargo, es algo comn en muchos lenguajes de

    programacin el empleo de una variable en asociacin con el destino del "goto", no permitiendo la creacin automtica de tablas de referencias cruzadas. Existen problemas

    similares en algunos lenguajes de programacin estructurada, por ejemplo cmo implementar las vistas en diferentes idiomas, de forma que varias personas puedan visualizar

    la misma informacin, pero cada una en su idioma.

    Esto se opone a la idea de utilizar algn tipo de abstraccin que permita comprender cmo funciona realmente un programa, que es lo que hace la programacin estructurada.

    Por este motivo, Dijkstra propuso la eliminacin de la sentencia "goto".

    Introduccin a las estructuras de datos y tipos de datosLa estructura y tipos de datos varia con cada lenguaje de programacion. Estos se pueden definir como la forma y modo de programar que corresponde a una accin y le define

    una funcion especifica.

    La estructura no es mas que la forma que sigue ese lenguaje, por ejemplo:

    abrir

    ejecutar accin 1.

    ejecutar accin 2.

    cerrar.

    (esta puede ser una estructura simple, pero cada lenguaje dice cuales y como se usaran esas estructuras).

    Por ejemplo:

    En C, para poder crear una variable se necesita especificar el tipo de ella. (la estructura quedaria mas o menos asi)

    variable tipo carcter a = hola mundo.

    variable tipo numero entero b = 123

    variable tipo numero decimal c = 1.25

    imprimir a,b,c

    Esta claro que cada lenguaje usa sus propios terminos para definir sus tipos de datos. (En C quedaria as)

    #include //cabezera estandar de entrada y salida (aqui estan los ficheros necesarios). void main() //parte de la estructura de C, en dependencia del compilador se debe usar int main(){Char a[12] = Hola Mundo.;int b = 123;float c = 1.25; printf ("%s %d %f",a,b,c);} // define el fin del programa.(fin de la estructura)

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    Pueden ver estas secciones para observar la estructura y tipo de datos en C: puedes consultar en el Wikibook de C enlace a Wikipedia: Tipos de datos enlace a busqueda de

    google "tipo+dato+programacion"

    Aplicaciones de los tipos de datos estructurados

    Versin para imprimir esta pagina

    Los tipos de datos se utilizan para asignar una variable o una constante con un nombre fijo que tome una porcin de memoria y que almacene una informacin en memoria, si

    el tipo de dato es numrico solo almacenar datos numricos y si el tipo de dato es una cadena de caracteres almacenar texto.

    Y dependiendo el tipo de datos numrico se podr almacenar una cantidad de dato dependiendo la precisin que tenga la variable.

    En programacion los tipos de datos son (o pueden ser) distintos entre si, cada tipo corresponde a como se va a jugar con la memoria, es decir un dato numerico puede usar

    entre 2 y 4 byte (depende del compilador), mientras que un dato carcter usara un byte por cada carcter, es por eso que se especifica que es lo que se necesita.

    En C, algunos tipos de datos son:

    INT : Para numero enteros.

    Ej:

    Int a=5;

    CHAR : Para caracteres. Se usa [] con un valor para hacer una cadena de caracteres, por ejemplo una palabra.

    Ej:

    Char [4] a=Hola;

    FLOAT : Para numeros decimales.

    Ej:

    Float a=1.25;

    En Visual Basic / Visual.Net, algunos tipos de datos son (cabe resaltar que en este lenguaje de programacin se anticipa la instruccin "DIM" que declara y asigna espacio para

    almacenar una o ms variables).

    Integer : Para nmeros enteros

    Ej:

    Dim a as integer

    a= 4

    String: Para cadena de caracteres

    Ej:

    Dim cadena as string

    cadena="Visual Basic"

    Double: Para nmero decimales.

    Ej:

    Dim b as doubl

    b=4.12

    -

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    Hay muchos mas, pero estos son mas comunes y son usados en otros lenguajes (son como un estandar, pero no son regla).

    Archivos

    Versin para imprimir esta pagina

    Un archivo es un fichero (dato) almacenado en algun recurso de memoria, generalmente en Disco Duro, pero dependiendo del uso (en ciertos casos) son almacenados en

    RAM.

    Un Fichero tiene muchas funciones, en programacin, estos almacenan cdigos o parte de ellos (en ocasiones se divide el cdigo en varios archivos). Tambin es posible que

    se necesita almacenar datos que el usuario introduce ("Como sus datos, nombre de usuario y contrasea, etc.), estos se empaquetan en un archivo y podrn ser usados luego

    por el programa por ejemplo, cuando el usuario desee loguearse de nuevo.

    En el lenguaje C++ y otros lenguajes orientados a objetos, se suele decir, "Todo es un archivo", debido a como trabajan estos.

    Archivos, en ocasiones puede referirse a las librerias, pero creo prudente hacer diferencias, una librera es una utilidad para el lenguaje en que programamos, mientras que un

    archivo es una utilidad mas cercana a nosotros (en lo posible, desarrollado por nosotros).

    Herramientas de desarrolloLas herramientas de desarrollo son aquellos programas o aplicaciones que tengan cierta importancia en el desarrollo de un programa (programacin). Pueden ser de

    importancia vital (como un ensamblador, un compilador o un editor) o de importancia secundaria, como una IDE (Integrated Development Environment - Entorno de Desarrollo

    Integrado).

    CompiladoresLos compiladores son programas que "traducen" un fichero de cdigo fuente de cualquier lenguaje al lenguaje ensamblador, y llama cuando sea necesario al ensamblador y al

    linker (enlazador).

    Los ms importantes son GCC (para C), G++ (para C++), G77 (para Fortran 77), Microsoft Visual C++, etc.

    EnsambladoresLos ensambladores son aquellos programas que se encargan de desestructurar el cdigo en lenguaje ensamblador y traducirlo a lenguaje binario. Los archivos en lenguaje

    binario sern posteriormente enlazados en un nico fichero, el ejecutable.

    Los ms importantes son tas, gas, nasm...

    Enlazadores (Linkers)Son los programas que enlazan varios ficheros objeto en lenguaje binario para crear un nico fichero, el ejecutable del programa.

    El ms importante es ld.

    Depuradores (Debuggers)Como su nombre indica, sirve para corregir bugs. Se encargan de ejecutar, paso a paso y advirtiendo de errores, valores de variables, etc. un programa. Son particularmente

    tiles cuando el programa parece estar bien, pero no da el resultado esperado (se cuelga, da resultados errneos...).

    El ms importante es GDB. Actualmente casi todas las IDEs incluyen uno, o deberan.

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    Editores de textoSon tan importantes como un compilador (imagnate como programar sin editores), y actualmente suelen incluir funciones especficamente dedicadas a la programacin, como

    resaltado de sintaxis, autoindentacin, etc.

    Grandes editores de texto son GNU Emacs, Vim, Scite, Notepad++...

    Otras herramientasNo son tan importantes como las anteriores, pero tambin tienen su importancia:

    IDEs (Interfaz de Desarrollo Estructurada): juntan en un slo programa editor de texto, compilador, enlazador, ensamblador, depurador... Ejemplos de ellas son Anjuta, Dev-Cpp, Codeblocks...

    Programas de indentacin: sirven para aclarar el cdigo escrito confusamente. El nico que conozco es indent. De todas formas, un editor de texto medianamente decentesuele incluir sus propias funciones de indentado.

    Hola mundo

    ABAP/IV

    REPORT HOLAMUNDO.WRITE 'Hola, mundo!'.

    ABC

    WRITE "Hola mundo!"

    ActionScript

    trace("Hola, mundo!");

    ADA

    with Ada.Text_IO;

    procedure Hola_Mundo is begin Ada.Text_IO.Put_Line("Hola, mundo!"); end Hola_Mundo;

    ASP

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    ASSEMBLY

    .model small

    .stack

    .data saludo db "Hola mundo!!!", "$".codemain proc ;Init process mov ax,seg saludo mov ds,ax ;ds = ax = saludo mov ah,09 ;Function(print string) lea dx,saludo ;DX = String terminated by "$" int 21h ;Interruptions DOS Functions mov ax,4c00h ;Function (Quit with exit code (EXIT)) int 21h ;Interruption DOS Functionsmain endp ;End processend main

    AWK

    #!/bin/awk -fBEGIN{ print "Hola, mundo!";}

    Bash

    #!/bin/bashecho "Hola mundo"

    Basic

    PRINT "Hola Mundo"

    C

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    #include

    int main(void){ printf("Hola, mundo!\n"); return 0;}

    C++

    #include using namespace std; int main() { int a,b; int sum; cout

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    COBOL

    IDENTIFICATION DIVISION.PROGRAM-ID. HELLO.ENVIRONMENT DIVISION.DATA DIVISION.PROCEDURE DIVISION.MAIN SECTION.DISPLAY "Hola mundo"STOP RUN.

    ColdFusion

    #variable#

    MS-DOSEn sistemas operativos de la familia DOS como MS-DOS o PC-DOS que usan el Intrprete de comandos COMMAND.COM o sistemas que usan como intrprete de comandos

    CMD.EXE (OS/2 y Windows de la rama NT) se pueden crear archivos de proceso por lotes con extensiones BAT y CMD respectivamente con el siguiente contenido:

    @echo Hola, Mundo!

    Eiffel

    class HOLA_MUNDOcreate makefeature make is do io.put_string("%nHola mundo%N") endend -- HOLA_MUNDO

    Erlang

    -module(hola).-export([hola_mundo/0]).

    hola_mundo() -> io:fwrite("Hola mundo!\n").

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    Fortran

    PROGRAM HOLA PRINT *, 'Hola, mundo!'END

    Haskell

    holaMundo :: IO ()holaMundo = do putStrLn ("Hola mundo!")

    HTML/JavaScript

    Hola Mundo alert("Hola mundo!");

    INTERCAL

    PLEASE DO ,1

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    Java

    public class HolaMundo{ public static void main(String[] args) { System.out.println("Hola, mundo!"); }}

    Programacin en Lexico (POO en castellano)Aplicacin con un solo algoritmo:

    tarea muestre "Hola mundo"

    Aplicacin con solo clases:

    clase tareapublicos:mensajes:Principal muestre "Hola Mundo"

    Aplicacin con interfaz grfica:

    clase ventana derivada_de "System.Windows.Forms.Form"publicosmtodosventana copie "Hola mundo" en ventana.Text

    LISP

    (format t "Hola, mundo!")

    Liberty BASIC

    print "Hola, mundo!"

    MATLAB

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    close all; % cierra todas las ventanas que pueda haber clear all; % borra todas las variables clc; % limpia la pantalla disp('hola mundo'); % muestra el mensaje

    NATURAL

    WRITE 'Hola, mundo!'.

    Object REXXUtilizando los mtodos de REXX clsico:

    say "Hola Mundo"call lineout , 'Hola, mundo.'call charout , 'Hola, mundo.'||eol /* eol definido previamente */

    Utilizando objetos:

    .output~say('Hola, mundo.')

    .output~lineout('Hola, mundo.')

    .output~charout('Hola, mundo.'||eol) -- eol definido previamente

    Pascal

    Program HolaMundo;begin Writeln('Hola, mundo!');end.

    NetREXXUtilizando la instruccin say que proviene de REXX clsico:

    say "Hola Mundo"

    o directamente utilizando clases y mtodos Java:

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    System.out.println("Hola mundo!");

    OpenInventor

    #Inventor V2.1 ascii Text3 { string "Hola mundo" }

    Perl

    #!/usr/bin/perlprint "Hola, mundo.\n";

    PHP

    Python

    print "Hola mundo"

    QBasic

    PRINT "Hola mundo"

    REXX

    say "Hola Mundo"

    Ruby

    puts "Hola Mundo"

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    SAPScript

    MAINP1 Hola Mundo/

    Seed7

    $ include "seed7_05.s7i";

    const proc: main is func begin writeln("Hola Mundo"); end func;

    Smalltalk

    Transcript show: 'Hola, mundo!'

    SQLVariante de Oracle:

    SELECT 'HOLA MUNDO'FROM DUAL;

    Unlambda

    ```s``sii`ki``s``s`ks ``s``s`ks``s`k`s`kr ``s`k`si``s`k`s`k `d````````````.H.o.l.a. .m.u.n.d.o k k `k``s``s`ksk`k.*

    Visual Basic

    Sub Main() MsgBox "Hola, mundo!"

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    End Sub

    X3

    SubProg HOLAMUNDO() Infbox "Hola Mundo"End

    xBase

    ? "Hola Mundo"

    La Abstraccin y el Encapsulamiento

    Contenido [ocultar]

    1 Introduccin

    2 Algoritmos y programas2.1 Qu es un algoritmo?

    2.2 Modelos computacionales

    2.3 Programas: Algoritmos para ser ejecutados por un ordenador

    2.4 Qu instrucciones ejecuta un ordenador?2.4.1 Lenguaje de mquina

    2.4.2 Lenguaje ensamblador

    2.5 Programacin para seres humanos2.5.1 Lenguajes de alto nivel

    2.5.2 Traductores e intrpretes

    2.5.3 Lenguajes interpretados vs. lenguajes compilados

    3 Tcnicas bsicas de programacin3.1 Antes de empezar un programa

    3.1.1 Estructura de un programa

    3.1.2 Variables y constantes

    3.1.3 Comentarios

    3.2 Estructuras de datos y de control3.2.1 Estructuras de control

    3.2.2 Estructuras de datos

    3.3 Enlaces externos

    4 Introduccin a la programacin estructurada4.1 Introduccin

    5 Introduccin a las estructuras de datos y tipos de datos

    6 Aplicaciones de los tipos de datos estructurados

    7 Archivos

    8 Herramientas de desarrollo8.1 Compiladores

    8.2 Ensambladores

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    8.3 Enlazadores (Linkers)

    8.4 Depuradores (Debuggers)

    8.5 Editores de texto

    8.6 Otras herramientas

    9 Hola mundo9.1 ABAP/IV

    9.2 ABC

    9.3 ActionScript

    9.4 ADA

    9.5 ASP

    9.6 ASSEMBLY

    9.7 AWK

    9.8 Bash

    9.9 Basic

    9.10 C

    9.11 C++

    9.12 C++/CLI

    9.13 C#

    9.14 COBOL

    9.15 ColdFusion

    9.16 MS-DOS

    9.17 Eiffel

    9.18 Erlang

    9.19 Fortran

    9.20 Haskell

    9.21 HTML/JavaScript

    9.22 INTERCAL

    9.23 Java

    9.24 Programacin en Lexico (POO en castellano)

    9.25 LISP

    9.26 Liberty BASIC

    9.27 MATLAB

    9.28 NATURAL

    9.29 Object REXX

    9.30 Pascal

    9.31 NetREXX

    9.32 OpenInventor

    9.33 Perl

    9.34 PHP

    9.35 Python

    9.36 QBasic

    9.37 REXX

    9.38 Ruby

    9.39 SAPScript

    9.40 Seed7

    9.41 Smalltalk

    9.42 SQL

    9.43 Unlambda

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    9.44 Visual Basic

    9.45 X3

    9.46 xBase

    10 La Abstraccin y el Encapsulamiento10.1 Abstraccin

    10.1.1 Ejemplos de abstraccin

    10.1.2 Procedimientos

    10.1.3 Modulos

    10.1.4 Tipo abstracto de dato

    10.2 Encapsulamiento10.2.1 Ejemplos

    11 Reconocimiento de Objetos y Clases

    12 Reconocimiento de Objetos y Clases en el mundo real12.1 Objetos

    12.2 Caractersticas de los Objetos

    12.3 Ejemplos

    12.4 Clases:

    AbstraccinLa abstraccin, un principio por el cual se asla toda aquella informacin que no resulta relevante a un determinado nivel de conocimiento.

    Abstraccin: Es una descripcin de especificacin que enfatiza algunos de los detalles o propiedades de algo. La abstraccin consiste en captar las caractersticas esenciales

    de un objeto, as como su comportamiento. Es un mtodo por el cual abstraemos valga la redundancia, una determinada entidad de la realidad de sus caractersticas y

    funciones que desempean, estos son representados en clases por medio de atributos y mtodos de dicha clase.

    Ejemplos de abstraccin

    Ejemplo 1: Qu caractersticas podemos abstraer de los automviles? o Qu caractersticas semejantes tienen todos los automviles?

    Caractersticas: Marca, Modelo, Nmero de chasis, Peso llantas o cauchos, Puertas, Ventanas... Comportamiento: Acelerar, Frenar, Retroceder...

    Ejemplo 2: La gerencia de un taller mecnico necesita un sistema para controlar los vehculos que ingresan a sus instalaciones. En este caso, las caractersticas esenciales de

    la clase vehculo son: Marca, Modelo, Color, Falla detectada, Nombre del Propietario, Direccin del Propietario, Telfono del Propietario...

    A esto se le llama abstraccin. En general un programa no es ms que una descripcin abstracta de un procedimiento o fenmeno que existe o sucede en el mundo real.

    La abstraccin es crucial para comprender este complejo mundo.

    La abstraccin es esencial para el funcionamiento de una mente humana normal y es una herramienta muy potente para tratar la complejidad.

    La abstraccin es clave para disear un buen software.

    Procedimientos

    Proporcion la primera posibilidad de ocultacin de informacin.

    Modulos

    Es una tcnica que proporciona la posibilidad de dividir sus datos y procedimientos en una parte privada y una parte pblica. Proporcionan un mtodo efectivo de ocultacin de

    la informacin, pero no permiten realizar instanciacin, que es la capacidad de hacer mltiples copias de las zonas de datos.

    Tipo abstracto de dato

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    Un tipo abstracto de dato (TAD) es un tipo de dato definido por el programador que se puede manipular similarmente a los tipos de datos definidos por el sistema. Un tipo

    abstracto de dato corresponde a un conjunto (puede ser de tamao indefinido) de valores legales de datos y un nmero de operaciones primitivas que se pueden realizar

    sobre esos valores. Para construir un tipo abstracto de dato se debe:

    1. Exponer una definicin del tipo.

    1. Hacer disponible un conjunto de operaciones.

    1. Proteger los datos asociados con el tipo.

    1. Permitir instancias mltiples del tipo.

    EncapsulamientoConsiste en unir en la Clase las caractersticas y comportamientos, esto es, las variables y mtodos. Es tener todo esto en una sola entidad.

    En los lenguajes estructurados esto era imposible. Es evidente que el encapsulamiento se logra gracias a la abstraccin. La utilidad del encapsulamiento va por la facilidad

    para manejar la complejidad, ya que tendremos a las Clases como cajas negras donde slo se conoce el comportamiento pero no los detalles internos, y esto es conveniente

    porque nos interesar conocer que hace la Clase pero no ser necesario saber cmo lo hace.

    Ejemplos

    Ejemplo 1: De un televisor, el usuario conoce su apariencia y parte de su funcionamiento. Slo le importa que funcionen el selector de canales, el video y el audio; no le

    interesa saber cmo funciona cada una de las partes internas del aparato, ese detalle slo le interesan al fabricante y al tcnico de servicio.

    Ejemplo 2: De un animal no slo es necesario conocer su apariencia; tambin se requiere conocer qu sabe hacer y cmo reacciona ante determinadas situaciones.

    Caja Negra: Un objeto en el que su comportamiento y atributos son conocidos pero no as su trabajo interno, el cual continua siendo un misterio.

    Reconocimiento de Objetos y ClasesReconocimiento de Objetos y Clases

    Objetos: Los principios de la definicin de objetos ayudan a los programadores a hacer un cdigo ms robusto, mantenible y seguro; porque se pueden aislar a cada uno de

    esos objetos y tratarlos como un ente nico, con su propia personalidad, sin que haya cientos de caractersticas que tengamos que tener presentes, tal como se haca en la

    programacin orientada a procedimiento. Lo cual, desde el punto de vista econmico, que nunca hay que dejar de tener presente, si resulta viable, ya que los objetos bien

    diseados pueden ser utilizados en diversas aplicaciones, con lo cual el tiempo de desarrollo total se reduce.

    En Java, un objeto se define como una estructura que encapsula atributos (datos de configuracin, propiedades) y comportamientos (procedimientos) de una entidad con un

    papel bien definido en una aplicacin. Cada objeto tiene:

    - Estado: Se compone de atributos (propiedades estticas) y valor actual (valores dinmicos)

    - Comportamiento: Representa cmo un objeto acta y reacciona.

    - Identidad: Cada objeto es nico, ningn objeto es igual a otro.

    A continuacin se muestran algunas de las propiedades que se pueden aplicar a los objetos, tal como se han definido:

    - Los objetos son cosas.

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    - Los objetos pueden ser simples o complejos.

    - Los objetos pueden ser reales o imaginarios.

    Casi todo puede ser considerado un objeto. El dinero, el helicptero, una bicicleta, los perros, el coche. Los objetos representan cosas, simples o complejas, reales o

    imaginarias. Algunas cosas no son objetos, sino atributos, valores o caractersticas de un objeto. Es decir, no todas las cosas son objetos, ni son consideradas normalmente

    como objetos. Algunas de ellas son simplemente atributos de los objetos como el color, el tamao y la velocidad. Los atributos reflejan el estado de un objeto, la velocidad del

    objeto avin, o el tamao de un objeto edificio.

    Entender que es un objeto es la clave para entender cualquier lenguaje orientado a objetos.

    Los objetos pueden tener partes pblicas y privadas, a menudo llamadas miembros.

    1.- Miembros Pblicos: Los miembros pblicos (interfaz o mtodos) de una clase describen qu es lo que pueden hacer los objetos de esa clase.

    2.- Miembros Privados: Describen la implementacin, el cmo lo hace.

    - Interacciones entre Objetos: Los objetos contribuyen al comportamiento del sistema colaborando con otros objetos. El modelado de objetos no slo modela los objetos en

    un sistema, sino tambin sus interrelaciones. Para realizar su tarea, un objeto puede delegar trabajos en otro. Este otro puede ser parte integrante de l o ser cualquier objeto

    del sistema.

    - Intercambio de Mensajes: Los objetos interaccionan envindose mensajes unos a otros. El mtodo de envo de mensajes depende de la naturaleza de los objetos

    modelados.

    1.- Los objetos interaccionan por paso de mensajes.

    2.- Un objeto enva un mensaje a otro.

    3.- El otro puede contestar, cambiar su estado, o reaccionar de la manera apropiada.

    4.- Los objetos slo pueden interaccionar a travs de su interfaz pblico.

    Los Objetos de Software, al igual que los objetos del mundo real, tambin tienen caractersticas y comportamientos. Un objeto de Software mantiene sus caractersticas en una

    o ms variables, e implementa su comportamiento con mtodos. Un mtodo es una funcin o subrutina asociada a un objeto.

    Clases: En el mundo real, normalmente se tiene muchos objetos del mismo tipo. Por ejemplo: Un telfono celular es slo uno de los miles que hay en el mundo. Si se habla en

    trminos de la programacin orientada a objetos, se puede decir que el objeto celular de cualquier tipo es una instancia de una clase conocida como celular. Los celulares

    tienen caractersticas (marca, modelo, sistema operativo, pantalla, teclado, etc.) y comportamientos (hacer y recibir llamadas, enviar mensajes multimedia, transmisin de datos,

    etc.). Cuando se fabrican los celulares, los fabricantes aprovechan el hecho de que los celulares comparten caractersticas comunes y construyen modelos o plantillas

    comunes, para que a partir de esas se puedan crear muchos equipos celulares del mismo modelo. A ese modelo o plantilla se le llama Clase, y a los equipos que se sacan a

    partir de esta se le llaman objetos.

    Esto mismo se aplica a los objetos de Software, se puede tener muchos objetos del mismo tipo y mismas caractersticas. Por otro lado, una instancia de una clase es otra forma

    de llamar a un objeto. No existe diferencia entre un objeto y una instancia. Slo que el objeto es un trmino ms general, pero los objetos y las instancias son ambas

    representacin de una clase.

    Instancia: Es un objeto de una clase en particular.

    Reconocimiento de Objetos y Clases en el mundo real

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    Reconocimiento de Objetos y Clases en el mundo real

    ObjetosEn Java, un objeto se define como una estructura que encapsula atributos (caractersticas) y comportamientos (procedimientos) de una entidad con un papel bien definido en

    una aplicacin.

    Caractersticas de los Objetos- Estado: Conjunto de valores de los atributos en un instante de tiempo dado. El comportamiento de un objeto puede modificar el estado de este.

    - Comportamiento: Relacionado con su funcionalidad y determina las operaciones que este puede realizar o a las que puede responder ante mensajes enviados por otros

    objetos.

    - Identidad: Es la propiedad que permite a un objeto diferenciarse de otros. Generalmente esta propiedad es tal, que da nombre al objeto.

    Los objetos, concretos y abstractos, estn a nuestro alrededor, forman nuestro entorno. Podemos distinguir cada objeto en base a sus caractersticas y comportamientos.

    EjemplosEn un aula de clases observamos los siguientes objetos:

    Alumno

    Profesor

    Mesa

    Silla

    Mesa banco

    Pizarrn

    Interaccin entre objetos: Los objetos no slo tienen atributos relacionados con su forma fsica sino que, adems, exhiben comportamientos especficos de su clase.

    Alumno: Estudia, aprende.

    Profesor: Ensea, evala.

    Mesa: Ordenada, desordenada.

    Silla: Ocupada, desocupada.

    Mesa banco: Ocupado, desocupado.

    Pizarrn: Pintado, borrado

  • pdfcrowd.comopen in browser PRO version Are you a developer? Try out the HTML to PDF API

    Poltica de proteccin de datos Acerca de Wikilibros Aviso legal Desarrolladores Versin para mviles

    Esta pgina fue modif icada por ltima vez el 9 mar 2015 a las 19:01.

    El texto est disponible bajo la Licencia Creative Commons Atribucin-CompartirIgual 3.0; pueden aplicarse trminos adicionales. Vase Trminos de uso para ms detalles.

    Observamos que en el aula hay varios objetos alumno, por lo que pensamos en el grupo de alumnos, al que denominaremos como la clase alumno. De igual manera, cada

    materia es impartida por un profesor; el conjunto de profesores forman la clase Profesor. Pudiramos extender nuestro anlisis al pizarrn, la mesa, la silla,, al conjunto de

    mesa bancos, etc.

    Clases:Es la definicin de un objeto. Cuando se programa un objeto y se definen sus caractersticas y funcionalidades, realmente se programa una clase. Una clase es la descripcin

    de un conjunto de objetos; consta de datos que resumen caractersticas comunes de un conjunto de objetos. Se pueden definir muchos objetos de la misma clase. Dicho de

    otro modo, una clase es la declaracin de un tipo objeto. Las clases son similares a los tipos de datos y equivalen a mtodos y plantillas que describen como se construyen

    ciertos tipos de objetos. Cada vez que se construye un objeto a partir de una clase estamos creando lo que se llama una instancia de esa clase. Por consiguiente, los objetos

    no son ms que instancias de una clase, una instancia es una variable de tipo objeto. En general instancia de una clase y objeto son trminos intercambiables.

    Categora: Fundamentos de programacin