You are on page 1of 45

ANTOLOGIA

ALGORITMOS Y LENGUAJES DE PROGRAMACIN

INGENIERA INDUSTRIAL

ASESOR: I.S.C. Martha Araceli Gmez Daz

COMITN DE DOMNGUEZ, CHIAPAS, AGOSTO 2010.

INDICE GENERAL Contenido 1. Introduccin a la computacin 1.1. Nuevas tecnologas de la informacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Elementos de un sistema computacional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Sistemas operativos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4. Paquetera de software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Desarrollo de la lgica algortmica 2.1. 2.2. 2.3. 2.4. 3.1. 3.2. 3.3. 3.4. 3.5. 4.1. 4.2. 5.1. 5.2. 5.3. 6.1. 6.2. 6.3. 7.1. 7.2. 7.3. Bibliografa Metodologa para la solucin de problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Metodologa para el diseo de software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definicin de lenguajes algortmicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pruebas y depuracin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduccin a la programacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduccin y orgenes del lenguaje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estructura bsica de un programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operadores, operandos y expresiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definicin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instruccin return. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selectiva simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selectiva anidada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selectiva mltiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Repetir mientras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Repetir hasta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Repetir desde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definicin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Caractersticas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . inicializacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 12 13 18 20 21 23 23 25 30 30 31 33 33 35 36 38 40 40 41 1 2 5 8 Pg.

3. Conocimiento de programacin y un lenguaje

4. Funciones

5. Estructuras selectivas

6. Estructura de repeticin

7. Arreglos

Algoritmos y lenguajes de programacin

1. INTRODUCCIN A LA COMPUTACIN
1.1. Nuevas Tecnologas de la Informacin Resulta innegable el auge cada vez mayor de las NTIC en las diferentes esferas de la sociedad a escala mundial. El desarrollo impetuoso de la ciencia y la tecnologa ha llevado a la sociedad a entrar al nuevo milenio inmerso en lo que se ha dado en llamar era de la informacin e incluso se habla de que formamos partes de la sociedad de la informacin. Sin lugar a dudas, estamos en presencia de una revolucin tecnolgica de alcance insospechado. Pero Qu son las NTIC? Existen muchas definiciones al respecto, pero nos parece acertado definirlo como ...Un conjunto de aparatos, redes y servicios que se integran o se integraran a la larga, en un sistema de informacin interconectado y complementario. La innovacin tecnolgica consiste en que se pierden la frontera entre un medio de informacin y otro. Estas NTIC conforman un sistema integrado por: Las telecomunicaciones: Representadas por los satlites destinados a la transmisin de seales telefnicas, telegrficas y televisivas; la telefona que ha tenido un desarrollo impresionante a partir del surgimiento de la seal digital; el fax y el modem; y por la fibra ptica, nuevo conductor de la informacin en forma luminosa que entre sus mltiplex ventajas econmicas se distingue el transmitir la seal a grandes distancias sin necesidad de usar repetidores y tener ancho de banda muy amplio. La informtica: Caracterizada por notables avances en materia de hardware y software que permiten producir, transmitir, manipular y almacenar la informacin con mas efectividad, distinguindose la multimedia, las redes locales y globales (INTERNET), los bancos interactivo de informacin, los servicios de mensajera electrnica, etc. La tecnologa audiovisual: Que ha perfeccionado la televisin de libre seal, la televisin por cable, la televisin restringida (pago por evento) y la televisin de alta definicin. La denominacin de Nueva ha trado no pocas discusiones y criterios encontrados, al punto que muchos especialistas han optado por llamarles simplemente No deja de asistirles la Tecnologas de la informacin y las comunicaciones (TIC). Razn cuando comprobamos que muchas de ellas son realmente ancianas, como el telfono que data de 1876 es decir de del siglo antepasado! Lo que no puede perderse de vista es que el trmino Nueva se les asocia fundamentalmente porque en todos ellas se distinguen transformaciones que erradican las deficiencias de sus antecesoras y por su integracin como tcnicas interconectadas en una nueva configuracin fsica. La amplia utilizacin de las NTIC en el mundo, ha triado como consecuencia un importante cambio en la economa mundial, particularmente en los piases ms industrializados, sumndote a los factores tradicionales de produccin para la generacin de riquezas, un nuevo factor que resulta estratgico. El conocimiento. Es por eso que ya no se habla de la sociedad de la informacin, sino tambin de la sociedad del conocimiento. Sus efectos y alcance sobrepasan los propios marcos de la informacin y la comunicacin, y puede traer aparejadas modificaciones en las estructuras polticas, social, econmica, laboral y jurdica debido a que posibilitan obtener, almacenar, procesar, manipular y distribuir con rapidez la informacin.

Algoritmos y lenguajes de programacin

1.2. Elementos de un sistema computacional Hardware: Corresponde a todas las partes fsicas y tangibles de una computadora: sus componentes elctricos, electrnicos, electromecnicos y mecnicos; sus cables, gabinetes o cajas, perifricos de todo tipo y cualquier otro elemento fsico involucrado; contrariamente al soporte lgico e intangible que es llamado software. El trmino es propio del idioma ingls (literalmente traducido: partes blandas o suaves), su traduccin al espaol no tiene un significado acorde, por tal motivo se la ha adoptado tal cual es y suena; la Real Academia Espaola lo define como Conjunto de los componentes que integran la parte material de una computadora. El trmino, aunque es lo ms comn, no necesariamente se aplica a una computadora tal como se la conoce, as por ejemplo, un robot tambin posee hardware (y software). La historia del hardware del computador se puede clasificar en cuatro generaciones, cada una caracterizada por un cambio tecnolgico de importancia. Este hardware se puede clasificar en: bsico, el estrictamente necesario para el funcionamiento normal del equipo, y el complementario, el que realiza funciones especficas. Un sistema informtico se compone de una unidad central de procesamiento (CPU), encargada de procesar los datos, uno o varios perifricos de entrada, los que permiten el ingreso de la informacin y uno o varios perifricos de salida, los que posibilitan dar salida (normalmente en forma visual o auditiva) a los datos procesados. Clasificacin del Hardware: Una de las formas de clasificar el Hardware es en dos categoras: por un lado, el "bsico", que abarca el conjunto de componentes indispensables necesarios para otorgar la funcionalidad mnima a una computadora, y por otro lado, el "Hardware complementario", que, como su nombre indica, es el utilizado para realizar funciones especficas (ms all de las bsicas), no estrictamente necesarias para el funcionamiento de la computadora. As es que: Un medio de entrada de datos, la unidad de procesamiento y memoria y un medio de salida de datos constituye el "hardware bsico". Los medios de entrada y salida de datos estrictamente indispensables dependen de la aplicacin: desde un punto de vista de un usuario comn, se debera disponer, al menos, de un teclado y un monitor para entrada y salida de informacin, respectivamente; pero ello no implica que no pueda haber una computadora (por ejemplo controlando un proceso) en la que no sea necesario teclado ni monitor, bien puede ingresar informacin y sacar sus datos procesados, por ejemplo, a travs de una placa de adquisicin/salida de datos. Las computadoras son aparatos electrnicos capaces de interpretar y ejecutar instrucciones programadas y almacenadas en su memoria, ellas consisten bsicamente en operaciones aritmtico-lgicas y de entrada/salida. Se reciben las entradas (datos), se las procesa y almacena (procesamiento), y finalmente se producen las salidas (resultados del procesamiento). Por ende todo sistema informtico tiene, al menos, componentes y dispositivos hardware dedicados a alguna de las funciones antedichas; a saber: 1. Procesamiento: Unidad Central de Proceso o CPU 2. Almacenamiento: Memorias
2

Algoritmos y lenguajes de programacin

3. Entrada: Perifricos de Entrada (E) 4. Salida: Perifricos de salida (S) 5. Entrada/Salida: Perifricos mixtos (E/S) Desde un punto de vista bsico y general, un dispositivo de entrada es el que provee el medio para permitir el ingreso de informacin, datos y programas (lectura); un dispositivo de salida brinda el medio para registrar la informacin y datos de salida (escritura); la memoria otorga la capacidad de almacenamiento, temporal o permanente (almacenamiento); y la CPU provee la capacidad de clculo y procesamiento de la informacin ingresada (transformacin). Un perifrico mixto es aqul que puede cumplir funciones tanto de entrada como de salida, el ejemplo ms tpico es el disco rgido (ya que en l se lee y se graba informacin y datos). Software: En computacin, el software -en sentido estricto- es todo programa o aplicacin programado para realizar tareas especficas. El trmino "software" fue usado por primera vez por John W. Tukey en 1957. Algunos autores prefieren ampliar la definicin de software e incluir tambin en la definicin todo lo que es producido en el desarrollo del mismo. La palabra "software" es un contraste de "hardware"; el software se ejecuta dentro del hardware. Una definicin ms amplia de software incluye mucho ms que slo los programas. Esta definicin incluye: La representacin del software: programas, detalles del diseo escritos en un lenguaje de descripcin de programas, diseo de la arquitectura, especificaciones escritas en lenguaje formal, requerimientos del sistema, etc. El conocimiento de la ingeniera del software: Es toda la informacin relacionada al desarrollo de software (por ejemplo, cmo utilizar un mtodo de diseo especfico) o la informacin relacionada al desarrollo de un software especfico (por ejemplo, el esquema de pruebas en un proyecto). Aqu se incluye informacin relacionada al proyecto, informacin sobre la tecnologa de software, conocimiento acerca de sistemas similares y la informacin detallada relacionada a la identificacin y solucin de problemas tcnicos. La informacin de la aplicacin. El software, como programa, consiste en un cdigo en un lenguaje mquina especfico para un procesador individual. El cdigo es una secuencia de instrucciones ordenadas que cambian el estado del hardware de una computadora. El software se suele escribir en un lenguaje de programacin de alto nivel, que es ms sencillo de escribir (pues es ms cercano al lenguaje natural humano), pero debe convertirse a lenguaje mquina para ser ejecutado. El software puede distinguirse en tres categoras: software de sistema, software de programacin y aplicacin de software. De todas maneras esta distincin es arbitraria y muchas veces un software puede caer en varias categoras.
3

Algoritmos y lenguajes de programacin

Software de sistema: ayuda a funcionar al hardware y a la computadora. Incluye el sistema operativo, controladores de dispositivos, herramientas de diagnstico, servidores, sistema de ventanas, utilidades y ms. Su propsito es evitar lo ms posible los detalles complejos de la computacin, especialmente la memoria y el hardware. Software de programacin: provee herramientas de asistencia al programador. Incluye editores de texto, compiladores, intrprete de instrucciones, enlazadores, debuggers, etc. Software de aplicacin: permite a los usuarios finales hacer determinadas tareas. Algunos software de aplicacin son los navegadores, editores de texto, editores grficos, antivirus, mensajeros, etc. Firmware: Firmware o programacin en firme, es un bloque de instrucciones de programa para propsitos especficos, grabado en una memoria de tipo no voltil (ROM, EEPROM, flash,...), que establece la lgica de ms bajo nivel que controla los circuitos electrnicos de un dispositivo de cualquier tipo. Al estar integrado en la electrnica del dispositivo es en parte hardware, pero tambin es software, ya que proporciona lgica y se dispone en algn tipo de lenguaje de programacin. Funcionalmente, el firmware es el intermediario (interfaz) entre las rdenes externas que recibe el dispositivo y su electrnica, ya que es el encargado de controlar a sta ltima para ejecutar correctamente dichas rdenes externas. Encontramos firmware en memorias ROM de los sistemas de diversos dispositivos perifricos, como en monitores de video, unidades de disco, impresoras, etc., pero tambin en los propios microprocesadores, chips de memoria principal y en general en cualquier circuito integrado. Muchos de los firmwares almacenados en ROM estn protegidos por Derechos de Autor. El programa BIOS de una computadora es un firmware cuyo propsito es activar una mquina desde su encendido y preparar el entorno para la instalacin de un Sistema Operativo complejo, as como responder a otros eventos externos (botones de pulsacin humana) y al intercambio de rdenes entre distintos componentes de la computadora. En un microprocesador el firmware es el que recibe las instrucciones de los programas y las ejecuta en la compleja circuitera del mismo, emitiendo rdenes a otros dispositivos del sistema. El Firmware hoy en da El firmware ha evolucionado para significar casi cualquier contenido programable de un dispositivo de hardware, no slo cdigo de mquina para un procesador, sino tambin configuraciones y datos para los circuitos integrados para aplicaciones especficas (ASICs), dispositivos de lgica programable, etc. Reproductores de msica porttiles (codecs, interfaz grfica de usuario, vida de la batera). Telfonos celulares (actualizaciones de recepcin y calidad de sonido). Automviles (sensores).

Algoritmos y lenguajes de programacin

1.3. Sistemas operativos Un sistema operativo es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar, codificar y emitir las ordenes al procesador central para que este realice las tareas necesarias y especificas para completar una orden. El sistema operativo, es el instrumento indispensable para hacer de la computadora un objeto til. Bajo este nombre se agrupan todos aquellos programas que permiten a los usuarios la utilizacin de este enredo de cables y circuitos, que de otra manera serian difciles de controlar. Un sistema operativo se define como un conjunto de procedimientos manuales y automticos, que permiten a un grupo de usuarios compartir una instalacin de computadora eficazmente. Funciones de los Sistemas Operativos. Interpreta los comandos que permiten al usuario comunicarse con el ordenador. Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el mouse. Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnticas. Gestiona los errores de hardware y la prdida de datos. Servir de base para la creacin del software logrando que equipos de marcas distintas funcionen de manera anloga, salvando las diferencias existentes entre ambos. Clasificacin de los Sistemas Operativos. Con el paso del tiempo, los Sistemas Operativos fueron clasificndose de diferentes maneras, dependiendo del uso o de la aplicacin que se les daba. A continuacin se mostrarn diversos tipos de Sistemas Operativos que existen en la actualidad, con algunas de sus caractersticas: Sistemas Operativos de multiprogramacin (o Sistemas Operativos de multitarea). Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. La conmutacin de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o ms aplicaciones se cargan al mismo tiempo, pero en el que solo se esta procesando la aplicacin que se encuentra en primer plano (la que ve el usuario). Para activar otra tarea que se encuentre en segundo plano, el usuario debe traer al primer plano la ventana o pantalla que contenga esa aplicacin. En la multitarea cooperativa, la que se utiliza en el sistema operativo Macintosh, las tareas en segundo plano reciben tiempo de procesado durante los tiempos muertos de la tarea que se encuentra en primer plano (por ejemplo, cuando esta aplicacin est esperando informacin del usuario), y siempre que esta aplicacin lo permita. En los sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atencin del microprocesador durante una fraccin de segundo. Para mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho ms lento que la velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultneas.

Algoritmos y lenguajes de programacin

Se distinguen por sus habilidades para poder soportar la ejecucin de dos o ms trabajos activos (que se estn ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al mximo su utilizacin. Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno est usando el procesador, o un procesador distinto, es decir, involucra mquinas con ms de una UCP. Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea. Sistema Operativo Monotareas. Los sistemas operativos monotareas son ms primitivos y es todo lo contrario al visto anteriormente, es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora est imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresin. Sistema Operativo Monousuario. Los sistemas monousuarios son aquellos que nada ms puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicacin que se est ejecutando. Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se est utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y estn orientados principalmente por los microcomputadores. Sistema Operativo Multiusuario. Es todo lo contrario a monousuario; y en esta categora se encuentran todos los sistemas que cumplen simultneamente las necesidades de dos o ms usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes. En otras palabras consiste en el fraccionamiento del tiempo (timesharing). Sistemas Operativos por lotes. Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interaccin entre los usuarios y los programas en ejecucin. Se renen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o ms trabajos como sucede en el procesamiento en serie. Estos sistemas son de los ms tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas. Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecucin muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecucin de los trabajos.

Algoritmos y lenguajes de programacin

Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual est orientado a procesamiento cientfico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento acadmico. Sistemas Operativos de tiempo real. Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, estn subutilizados sus recursos con la finalidad de prestar atencin a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran nmero de sucesos o eventos. Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy especficas como control de trfico areo, bolsas de valores, control de refineras, control de laminadores. Tambin en el ramo automovilstico y de la electrnica de consumo, las aplicaciones de tiempo real estn creciendo muy rpidamente. Otros campos de aplicacin de los Sistemas Operativos de tiempo real son los siguientes:

Control de trenes. Telecomunicaciones. Sistemas de fabricacin integrada. Produccin y distribucin de energa elctrica. Control de edificios. Sistemas multimedia.

Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes caractersticas: Sistemas Operativos de tiempo compartido. Permiten la simulacin de que el sistema y sus recursos son todos para cada usuario. El usuario hace una peticin a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecer en la terminal del usuario. Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusin de que tiene el sistema dedicado para s mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administracin de memoria principal y secundaria. Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10. Sistemas Operativos distribuidos. Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores est en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas bsicos de stos. Un sistema fuertemente acoplado es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los

Algoritmos y lenguajes de programacin

procesadores. En un sistema dbilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local. Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo. Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc. Sistemas Operativos de red. Son aquellos sistemas que mantienen a dos o ms computadoras unidas atravs de algn medio de comunicacin (fsico o no), con el objetivo primordial de poder compartir los diferentes recursos y la informacin del sistema. El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware. Los Sistemas Operativos de red ms ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic. Sistemas Operativos paralelos. En estos tipos de Sistemas Operativos se pretende que cuando existan dos o ms procesos que compitan por algn recurso se puedan realizar o ejecutar al mismo tiempo. En UNIX existe tambin la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). As, en lugar de esperar a que el proceso termine de ejecutarse (como lo hara normalmente), regresa a atender al usuario inmediatamente despus de haber creado el proceso. Ejemplos de estos tipos de Sistemas Operativos estn: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.

1.4. Paquetera de software: En informtica, Una Aplicacin es un programa informtico diseado para facilitar al usuario la realizacin de un determinado tipo de trabajo. Posee ciertas caractersticas que le diferencia de un sistema operativo (que hace funcionar a la computadora), de una utilidad (que realiza tareas de mantenimiento o de uso general) y de un lenguaje (con el cual se crean los programas informticos). Suele resultar una solucin informtica para la automatizacin de ciertas tareas complicadas como puede ser la contabilidad o la gestin de un almacn. Ciertas aplicaciones desarrolladas a medida; suelen ofrecer una gran potencia ya que estn exclusivamente diseadas para resolver un problema especfico. Otros, llamados paquetes integrados de software, ofrecen menos potencia pero a cambio incluyen varias aplicaciones, como un programa procesador de textos, de hoja de clculo y de base de datos. Los programas de aplicacin se dividen en muchos tipos, entre los cuales se pueden nombrar:

Algoritmos y lenguajes de programacin

De procesadores de texto: Lotus Word Pro, Microsoft Word, Corel WordPerfect, OpenOffice.org Writer. De hojas electrnicas o de clculo: Quattro Pro, Lotus 1-2-3, OpenOffice.org Calc, Microsoft Excel. De manejo de base de datos: MySQL, Microsoft Access, Visual FoxPro, dBase. Comunicacin de datos: Safari,Mozilla Firefox, MSN Explorer, Internet Explorer, Netscape Navigator, Kazaa, MSN Messenger Yahoo! Messenger, ICQ, AOL Instant Messenger,Opera. Multimedia: XMMS, Mplayer, Windows Media Player, Winamp, RealPlayer, QuickTime, DVX. De presentaciones: Microsoft Power Point, OpenOffice.org Impress, Corel Presentations, Windows Movie Maker. De diseo: Corel Draw, GIMP, Corel PHOTO-PAINT, Corel Painter, Adobe Photoshop, Microsoft Photo Editor, Microsoft Paint, Microsoft Publisher, AutoCAD, Macromedia Fireworks, Macromedia FreeHand. De edicin: Corel Ventura, QuarkXPress, Adobe PageMaker, Adobe InDesign, FrameMaker, Adobe Acrobat. De clculo: Maple. De finanzas: Microsoft Money. Compiladores: Visual Basic, C++, Pascal, Visual FoxPro. De correo electrnico: Outlook Express, MozillaThunderbird. De compresin de archivos: WinZip, gzip, WinRar. De presupuestacin de obras: DataObra, Presto. Algunas compaas como Microsoft, Lotus, Sun Microsystems Corel, entre otras, agrupan varios programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimtica) que sean satisfactorios para las necesidades ms apremiantes del usuario, como el caso de las siguientes suites: Microsoft Office, que incluye: Microsoft Word, Microsoft Excel, Microsoft PowerPoint, Microsoft InfoPath, Microsoft Outlook, Microsoft Access, Microsoft Publisher, entre otros segn la presentacin (bsica, estndar o profesional). OpenOffice.org, que incluye: OpenOffice.org Writer, OpenOffice.org Calc, OpenOffice.org Impress, entre otros segn la presentacin (bsica, estndar o profesional). Lotus SmartSuite, que incluye: Lotus Word Pro (antes AmiPro), Lotus 1-2-3, Lotus FreelanceGraphics, Lotus Organizer, entre otros segn la presentacin (bsica, estndar o profesional).

Algoritmos y lenguajes de programacin

2. DESARROLLO DE LGICA ALGORTMICA


2.1. Metodologa para la solucin de problemas La solucin de un problema por computadora, requiere de siete pasos, dispuestos de tal forma que cada uno es dependiente de los anteriores, lo cual indica que se trata de un proceso complementario y por lo tanto cada paso exige el mismo cuidado en su elaboracin. Los siete pasos de la metodologa son los siguientes: 1. Definicin del problema 2. Anlisis de la solucin 3. Diseo de la solucin 4. Codificacin 5. Prueba y Depuracin 6. Documentacin 7. Mantenimiento

Definicin del problema Es el enunciado del problema, el cual debe ser claro y completo. Es fundamental conocer y delimitar por completo el problema, saber que es lo se desea realice la computadora, mientras esto no se conozca del todo, no tiene caso continuar con el siguiente paso. Anlisis de la solucin Consiste en establecer una serie de preguntas acerca de lo que establece el problema, para poder determinar si se cuenta con los elementos suficientes para llevar a cabo la solucin del mismo, algunas preguntas son: Con qu cuento? Cules son los datos con los que se va a iniciar el proceso, qu tenemos que proporcionarle a la computadora y si los datos con los que cuento son suficientes para dar solucin al problema. Qu hago con esos datos? Una vez que tenemos todos los datos que necesitamos, debemos determinar que hacer con ellos, es decir que frmula, clculos, que proceso o transformacin deben seguir los datos para convertirse en resultados.
10

Algoritmos y lenguajes de programacin

Qu se espera obtener? Que informacin deseamos obtener con el proceso de datos y de que forma presentarla; en caso de la informacin obtenida no sea la deseada replantear nuevamente un anlisis en los puntos anteriores. Es recomendable que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados. Diseo de la solucin Una vez definido y analizado el problema, se procede a la creacin del algoritmo (Diagrama de flujo pseudocdigo), en el cual se da la serie de pasos ordenados que nos proporcione un mtodo explcito para la solucin del problema. Es recomendable la realizacin de pruebas de escritorio al algoritmo diseado, para determinar su confiabilidad y detectar los errores que se pueden presentar en ciertas situaciones. stas pruebas consisten en dar valores a la variable e ir probando el algoritmo paso a paso para obtener una solucin y si sta es satisfactoria continuar con el siguiente paso de la metodologa; de no ser as y de existir errores deben corregirse y volver a hacer las pruebas de escritorio al algoritmo. Codificacin Consiste en escribir la solucin del problema (de acuerdo al pseudocdigo); en una serie de instrucciones detalladas en un cdigo reconocible por la computadora; es decir en un lenguaje de programacin (ya sea de bajo o alto nivel), a esta serie de instrucciones se le conoce como PROGRAMA.

Prueba y Depuracin Prueba es el proceso de identificar los errores que se presenten durante la ejecucin del programa; es conveniente que cuando se pruebe un programa se tomen en cuenta los siguientes puntos: 1. - Tratar de iniciar la prueba con una mentalidad saboteadora, casi disfrutando la tarea de encontrar un error. 2. - Sospechar de todos los resultados que arroje la solucin, con lo cual se debern verificar todos. 3. - Considerar todas las situaciones posibles, normales y an las anormales. La Depuracin consiste en eliminar los errores que se hayan detectado durante la prueba, para dar paso a una solucin adecuada y sin errores.

Documentacin Es la gua o comunicacin escrita que sirve como ayuda para usar un programa, o facilitar futuras modificaciones. A menudo un programa escrito por una persona es usado por muchas otras, por ello la documentacin es muy importante; sta debe presentarse en tres formas: EXTERNA, INTERNA y AL USUARIO FINAL. Documentacin Interna Consiste en los comentarios o mensajes que se agregan al cdigo del programa, que explican las
11

Algoritmos y lenguajes de programacin

funciones que realizan ciertos procesos, clculos o frmulas para el entendimiento del mismo.

Documentacin Externa Tambin conocida como Manual Tcnico, est integrada por los siguientes elementos: Descripcin del Problema, Nombre del Autor, Diagrama del Flujo y/o Pseudocdigo, Lista de variables y constantes, y Codificacin del Programa, esto con la finalidad de permitir su posterior adecuacin a los cambios. Manual del Usuario Es la documentacin que se le proporciona al usuario final, es una gua que indica el usuario como navegar en el programa, presentando todas las pantallas y mens que se va a encontrar y una explicacin de los mismos, no contiene informacin de tipo tcnico.

Mantenimiento Se lleva a cabo despus de determinado el programa, cuando se ha estado trabajando un tiempo, y se detecta que es necesario hacer un cambio, ajuste y/o complementacin al programa para que siga trabajando de manera correcta. Para realizar esta funcin, el programa debe estar debida mente documentado, lo cual facilitar la tarea. 2.2. Metodologa para el diseo de software Top-down y Bottom-up son estrategias de procesamiento de informacin caractersticas de las ciencias de la informacin, especialmente en lo relativo al software. Por extensin se aplican tambin a otras ciencias sociales y exactas. En el modelo Top-down se formula un resumen del sistema, sin especificar detalles. Cada parte del sistema se refina diseando con mayor detalle. Cada parte nueva es entonces redefinida, cada vez con mayor detalle, hasta que la especificacin completa es lo suficientemente detallada para validar el modelo. El modelo "Top-down" se disea con frecuencia con la ayuda de "cajas negras" que hacen ms fcil cumplir requerimientos aunque estas cajas negras no expliquen en detalle los componentes individuales. En contraste, en el diseo Bottom-up las partes individuales se disean con detalle y luego se enlazan para formar componentes ms grandes, que a su vez se enlazan hasta que se forma el sistema completo. Las estrategias basadas en el flujo de informacin "bottom-up" se antojan potencialmente necesarias y suficientes porque se basan en el conocimiento de todas las variables que pueden afectar los elementos del sistema. En el proceso de desarrollo de software, los enfoques Top-down y Bottom-up juegan un papel crucial. El diseo Top-down fue promovido en los setenta por los investigadores de IBM Harlan Mills y Niklaus Wirth. Mills desarroll los conceptos de programacin estructurada para usos prcticos y los prob en un proyecto en 1969 para automatizar el ndice de la morgue del New York Times. El xito administrativo e ingenieril del proyecto hicieron que el enfoque top-down se esparciera por
12

Algoritmos y lenguajes de programacin

IBM y por el resto de la industria de los computadores. Niklaus Wirth, que entre sus logros est el desarrollo del lenguaje de programacin Pascal, escribi el artculo Program Development by Stepwise Refinement, que tuvo mucha influencia. Los mtodos Top-down fueron favorecidos en la ingeniera de software hasta que lleg la programacin orientada a objetos a finales de los 1980s. El enfoque top-down enfatiza la planificacin y conocimiento completo del sistema. Se entiende que la codificacin no puede comenzar hasta que no se haya alcanzado un nivel de detalle suficiente, al menos en alguna parte del sistema. Esto retrasa las pruebas de las unidades funcionales del sistema hasta que gran parte del diseo se ha completado. Bottom-up hace nfasis en la programacin y pruebas tempranas, que pueden comenzar tan pronto se ha especificado el primer mdulo. Este enfoque tiene el riesgo de programar cosas sin saber cmo se van a conectar al resto del sistema, y esta conexin puede no ser tan fcil como se crey al comienzo. La reutilizacin del cdigo es uno de los mayores beneficios del enfoque bottom-up. El desarrollo de software moderno usualmente combina tanto Top-down como Bottom-up. Aunque un conocimiento completo del sistema se considera usualmente necesario para un buen diseo, haciendo que tericamente sea un enfoque top-down, la mayora de proyectos de desarrollo de software tratan de usar cdigo existente en algn grado. El uso de mdulos existentes le dan al diseo un sabor 'bottom-up'. Algunos enfoques usan un enfoque en el que un sistema parcialmente funcional es diseado y programado completamente, y este sistema se va expandiendo para llenar los requisitos del proyecto.

2.3. Definicin de lenguajes algortmicos Definicin de Algoritmo. "Un algoritmo se define como un mtodo que se realiza paso a paso para solucionar un problema que termina en un nmero finito de pasos". Las caractersticas fundamentales que debe cumplir todo algoritmo son: Debe ser preciso. e indicar el orden de realizacin de cada paso. Debe ser definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Debe ser finito. Si se sigue un algoritmo, se debe terminar en algn momento; o sea debe tener un nmero finito de pasos. La definicin de un algoritmo debe describir tres partes: Entrada, Proceso y Salida.

13

Algoritmos y lenguajes de programacin

Disear un algoritmo para cambiar una llanta a un coche. Inicio. Traer gato. Levantar el coche con el gato. Aflojar tornillos de las llantas. Sacar los tornillos de las llantas. Quitar la llanta. Poner la llanta de repuesto. Poner los tornillos. Apretar los tornillos. Bajar el gato. Fin. Definicin de Lenguajes Algortmicos. Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle. La clasificacin de los lenguajes para algoritmos puede enunciarse de la siguiente manera: Lenguaje Natural. Lenguaje de Diagrama de Flujo. Pseudocdigo. Lenguaje de Programacin de Algoritmos. Lenguaje Natural. Es aqul que describe en espaol, para nuestro caso, los pasos a seguir utilizando un vocabulario cotidiano. Se le conoce como lenguaje jerga cuando se utilizan trminos especializados de una determinada ciencia, profesin o grupo. Lenguaje de Diagrama de Flujo. Es aqul que se vale de diversos smbolos para representar las ideas o acciones a desarrollar. Es til para organizar las acciones o pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cmputo. Diagramas que utilizan smbolos para representar y especificar detalles algortmicos de un proceso. En otras palabras, representan grficamente los pasos de un proceso. Un Diagrama de Flujo representa la esquematizacin grfica de un algoritmo, el cual muestra grficamente los pasos o procesos a seguir para alcanzar la solucin de un problema. Su correcta construccin es sumamente importante porque, a partir del mismo se escribe un programa en algn Lenguaje de Programacin. Si el Diagrama de Flujo est completo y correcto, el paso del mismo a un Lenguaje de Programacin es relativamente simple y directo.
14

Algoritmos y lenguajes de programacin

Es importante resaltar que el Diagrama de Flujo muestra el sistema como una red de procesos funcionales conectados entre s por " Tuberas " y "Depsitos" de datos que permite describir el movimiento de los datos a travs del Sistema. Este describir : Lugares de Origen y Destino de los datos , transformaciones a las que son sometidos los datos, lugares en los que se almacenan los datos dentro del sistema , los canales por donde circulan los datos.

15

Algoritmos y lenguajes de programacin

Diagrama de flujo que encuentra la suma de los primeros 50 nmeros naturales

Pseudocdigo En pseudocdigo se describen los algoritmos utilizando una mezcla de lenguaje comn, con instrucciones de programacin, palabras claves, etc. El objetivo es que el programador se centre en la solucin lgica del algoritmo y no en la implementacin en un lenguaje de programacin concreto (con las posibles complicaciones en las reglas sintcticas), o en otras palabras, slo ayudan a "pensar" un programa antes de escribirlo en un lenguaje de programacin formal. La solucin de problemas a nivel profesional se basa fundamentalmente en el anlisis previo de la situacin a resolver y el caso de la programacin de computadoras un buen pseudocdigo permitir traducir ms fcilmente un algoritmo a un lenguaje de programacin. Inicio Programa valor = 0 Mientras (valor sea menor a 20) Mostrar valor valor++ Si (valor es igual a 10) Mostrar "me gusta el 10"
16

Algoritmos y lenguajes de programacin

Fin Si Fin Mientras Fin Programa

valor = 0 Mientras (valor sea menor a 20) { mostrar valor valor = valor + 1 Si (valor es igual a 10) { mostrar "me gusta el 10" } }

El pseudocdigo es un forma de representar un algoritmo, mediante sentencias similares al lenguaje natural, pero con una precisin mayor. Lenguaje de Programacin de Algoritmos. Es aqul que se utiliza para introducir en la computadora un algoritmo especfico. Se les conoce tambin como Lenguaje de Programacin. Lenguaje de Programacin: Es un conjunto de palabras, smbolos y reglas sintcticas mediante los cuales puede indicarse a la computadora los pasos a seguir para resolver un problema. Los lenguajes de programacin pueden clasificarse por diversos criterios, siendo el ms comn su nivel de semejanza con el lenguaje natural, y su capacidad de manejo de niveles internos de la mquina. Los principales tipos de lenguajes utilizados son tres : Lenguaje Mquina. Lenguaje de bajo Nivel (ensamblador). Lenguajes de Alto Nivel. Lenguaje Mquina. Son aqullos que estn escritos en lenguajes directamente inteligibles por la mquina (computadora), ya que sus instrucciones son cadenas binarias (cadenas o series de caracteres de dgitos 0 y 1) que especifican una operacin y las posiciones (direccin) de memoria implicadas en la operacin se denominan instrucciones de mquina o cdigo mquina. El cdigo mquina es el conocido cdigo binario.
17

Algoritmos y lenguajes de programacin

Lenguajes de Bajo Nivel. Son ms fciles de utilizar que los lenguajes mquina, pero al igual que ellos, dependen de la mquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotcnicos. Por ejemplo, nemotcnicos tpicos de operaciones aritmticas son : en ingls : ADD, SUB, DIV, etc. ; en espaol : SUM, RES, DIV, etc. Una instruccin tpica de suma sera : ADD M, N, P Esta instruccin significa "sumar el contenido en la posicin de memoria M al nmero almacenado en la posicin de memoria N y situar el resultado en la posicin de memoria P" . Evidentemente es ms sencillo recordar la instruccin anterior con un nemotcnico que su equivalente en cdigo mquina. 0110 1001 1010 1011 Un programa escrito en lenguaje ensamblador, requiere de una fase de traduccin al lenguaje mquina para poder ser ejecutado directamente por la computadora. El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje mquina se conoce como programa objeto, el cual ya es directamente entendible por la computadora. Lenguajes de Alto Nivel. Estos lenguajes son los ms utilizados por los programadores. Estn diseados para que las personas escriban y entiendan los programas de un modo mucho ms fcil que los lenguajes mquina y ensambladores. Un programa escrito en lenguaje de alto nivel es independiente de la mquina (las instrucciones no dependen del diseo del hardware o de una computadora en particular), por lo que estos programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificacin en diferentes tipos de computadoras.

2.4. Pruebas y depuracin Es muy difcil elaborar procedimientos perfectos en un primer intento y la dificultad aumenta a medida que los problemas se vuelven ms complejos. Despus de traducir el algoritmo en un lenguaje de programacin, el procedimiento resultante debe ser probado y los resultados validados (revisin). A este proceso se le conoce como depuracin y contribuye a mejorar en los estudiantes la capacidad para resolver problemas puesto que la depuracin basada en la retroalimentacin es una habilidad til para toda la vida (Stager, 2003). La depuracin de un procedimiento hace parte fundamental del ciclo de programacin y desde el punto de vista educativo estimula en los estudiantes la curiosidad, la perspectiva, la comunicacin
18

Algoritmos y lenguajes de programacin

y promueve valores como responsabilidad, fortaleza, laboriosidad, paciencia y perseverancia. La programacin facilita un dilogo interior en el cual la retroalimentacin constante y el xito gradual empujan a los alumnos a ir ms all de sus expectativas (Stager, 2003). Otras dos actividades relacionadas con esta etapa, que no se tratarn, son la afinacin y la documentacin. La primera consiste en realizar retoques para lograr una mejor apariencia del programa (en pantalla o en los resultados impresos) o para ofrecer funcionalidades ms all de los resultados esperados, especificados en la fase de anlisis del problema. La segunda tiene un carcter eminentemente comunicativo, con la documentacin de un programa se pone a prueba la capacidad del estudiante para informar a otras personas qu hace su programa, cmo lo hace y el significado de cada elemento utilizado. Esta actividad se puede llevar a cabo mediante comentarios introducidos al cdigo o por medio de documentacin formal en un documento que se anexa al procedimiento elaborado. Depuracin La correccin de fallas es una de las situaciones que mayor frecuencia tienen en el mundo profesional. Con esta actividad se intenta identificar fallas sintcticas o lgicas en programas que no funcionan adecuadamente; una vez aislada la falla, esta se soluciona y se vuelve a probar el programa y a validar los resultados. Segn Jonassen (2003), para corregir fallas efectiva y eficientemente se requiere conocimiento del sistema (comprensin conceptual de cmo funciona el sistema), conocimiento procedimental (cmo llevar a cabo tanto procedimientos de solucin de fallas, como actividades de prueba) y conocimiento estratgico (saber cundo, dnde y por qu aplicar procedimientos de solucin de fallas y actividades de prueba). En caso de presentarse una falla de sintaxis, el estudiante debe: Comprender el mensaje de error que reporta el ambiente de programacin (apoyarse en las opciones de ayuda que ofrece el docente). Examinar el cdigo del programa para identificar en cul instruccin se encuentra la falla. Corregir la falla. Probar el programa de nuevo.

19

Algoritmos y lenguajes de programacin

3. CONOCIMIENTO DE PROGRAMACIN Y UN LENGUAJE ESTRUCTURADO


3.1. Introduccin a la programacin Despus que se ha diseado y pensado como resolver el problema en papel, se debe comenzar el proceso de introducir el programa en un archivo en el disco duro de la computadora. La introduccin y modificacin del programa en un archivo se hace utilizando un simple editor de texto o un editor especializado que hace la tarea de escribir un programa una tarea muy fcil. El programa que se introduzca en el editor, estar escrito en Java o C++ o cualquier otro, pero ni C++ ni Java son lenguajes mquina, muy al contrario, son lenguajes de alto nivel diseados para hacer ms fcil la programacin que utilizando el lenguaje mquina. Los lenguajes, como todo, hay que aprendrselos, pero tienen una ventaja, y es que hay varios puntos en comn. 3.1.1. Definicin de programa. Es el conjunto de instrucciones escritas en algn lenguaje de programacin y que ejecutadas secuencialmente resuelven un problema especifico. Ejemplos de instrucciones: Leer un dato del teclado. Guardar un dato en la memoria. Ejecutar una operacin sobre dos datos. Mostrar un dato en la pantalla. Las instrucciones estn en un lenguaje entendible por el programador y decodificable por la computadora, habitualmente llamado lenguaje fuente u origen. Una vez escrito el programa en lenguaje fuente, para que la computadora lo pueda ejecutar, con un programa traductor lo transforma en lenguaje de mquina u objeto. 3.1.2. Definicin de programacin. Es la accin y efecto de programar. En trminos informticos es la elaboracin de programas en un lenguaje de programacin, el cdigo fuente de un software para la resolucin de problemas mediante computadoras. 3.1.3. Definicin de lenguaje de programacin. Es un conjunto de smbolos, caracteres y reglas (programas) que les permiten a las personas comunicarse con la computadora. Los lenguajes de programacin tienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada/salida, calculo, manipulacin de textos, lgica/comparacin y almacenamiento/recuperacin.

20

Algoritmos y lenguajes de programacin

3.2. Introduccin y orgenes del lenguaje. La historia de la informtica y de la computacin se ha caracterizado fundamentalmente en la existencia de centenares de lenguajes de programacin, existen muchos realmente, aunque de estos centenares de lenguajes, son pocos los lenguajes que han pisado fuerte, que han tenido un impacto significativo. Muchos de los lenguajes de programacin actuales tienen sus races en los lenguajes que nacieron a finales de los cincuenta y primeros aos de los sesenta, tales como: COBOL, FORTRAN, BASIC, LOGO. Estos lenguajes representaron la primera alternativa a los lenguajes ensambladores. En la dcada de los setenta y primeros aos de los ochenta emergieron nuevos lenguajes como: ALGOL, BASIC, SIMULA, SMALLTAK. A mediados de los ochenta y principios de los noventa se presentaron C, C++, JAVA. El propsito de un lenguaje de programacin es permitir a las personas comunicarse con una computadora. Los lenguajes de las personas y los lenguajes de la mquina son muy diferentes, ya que las caractersticas y posibilidades de las personas y de las mquinas son muy diferentes. Los lenguajes de programacin permiten a las personas escribir en un lenguaje que sea ms apropiado a las caractersticas humanas y se puedan traducir al lenguaje mquina de diferentes tipos de mquinas. Los principales tipos de lenguajes utilizados: 1. Lenguajes mquina. Instrucciones binarias (ceros y unos). Slo la mquina puede entenderlo. 2. Lenguajes de bajo nivel (assembler). Pueden entenderlo las personas Instrucciones nemotcnicas a las binarias. Instrucciones compuestas de palabras cortas y nmeros: (LOD 15 6, ADD 15 16 17, JMP 10). 3. Lenguajes de alto nivel. Instrucciones en lenguaje fcil de leer por las personas. Es fcil escribir y entender para las personas. Los lenguajes de programacin de alto nivel existentes hoy en da son muy numerosos, aunque la prctica demuestra que los ms usados se reducen a: C PYTHON RUBY PHP C# C++ JAVA JAVASCRIPT Unos programas especiales llamados traductores (compiladores o intrpretes) convierten las instrucciones escritas en un determinado lenguaje de programacin en instrucciones escritas en el lenguaje que la mquina se sabe y entiende muy bien (0 y 1, bits).

LOD 16 8,

21

Algoritmos y lenguajes de programacin

Traductores de lenguaje. Los traductores de lenguaje son programas que traducen los programas fuente escritos en un lenguaje entendible por personas a un lenguaje que la mquina entienda. Los traductores se dividen en: Intrpretes: que son traductores que toman un programa fuente, lo traducen y a continuacin lo ejecutan. Compiladores: generan un programa equivalente que la mquina ser capaz de interpretar.

El lenguaje de programacin Java. Java surgi en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de disear un nuevo lenguaje de programacin destinado a electrodomsticos. La historia va ms o menos as: En 1991, Sun Microsystems financi un proyecto de investigacin corporativo interno. Un resultado del proyecto fue la creacin de un lenguaje basado en C y C++ que su creador, James Gosling, llam Oak, inspirado por un roble (oak, en ingls) que creca afuera de su ventana en Sun. Ms tarde se descubri que ya exista un lenguaje de programacin llamado Oak. Un da cuando un grupo de empleados de Sun visit una cafetera cerca, alguien sugiri el nombre Java (como se conoce tambin en ingls al caf), y el nombre gusto mucho. Sun anunci formalmente a Java en una conferencia importante en mayo de 1995. Aos despus de su lanzamiento oficial, Java se ha convertido en un estndar de la industria, en un lenguaje de programacin para desarrollo de aplicaciones tanto de propsito general como de Internet y tambin en un lenguaje para comenzar la formacin en programacin, al tener caractersticas adecuadas para el aprendizaje.

Caractersticas. El cdigo fuente se guarda en un archivo con extensin .java Un compilador traduce el cdigo fuente en cdigo de byte, y lo guarda en un archivo con extensin .class Un programa puede ser compuesto de varios archivos Necesita de un intrprete (Java Virtual Machine -JVM) para poder ejecutar. Orientado a objetos. Multiplataforma. Ampliamente usado: o Web (Applets, Servlets) o Dispositivos mviles (J2ME) o Mundo empresarial (J2EE) Ventajas: o Bsico, fcil de entender. o Porttil: el mismo cdigo sirve para todos los sistemas operativos.
22

Algoritmos y lenguajes de programacin

o Soporta interfaz grfica de usuario (GUI). o Apropiado para programas en Internet . Desventajas: o La ejecucin es ms lenta que algunos otros lenguajes 3.3. Estructura bsica de un programa. //importacin de la librera para poder hacer uso de ventanas import javax.swing.JOptionPane; //definicin de clase publica o accesible public class PrimeraAplicacin { // programa principal de la clase public static void main(String args[]){ // escritura por pantalla
JOptionPane.showMessageDialog(null,"Esta es mi primera aplicacin");

} } El nombre del archivo Java debe coincidir con el de la clase definida en l <NombreClase>.java

3.4. Datos. Representacin formal de hechos, conceptos o instrucciones, adecuada para su comunicacin, interpretacin y procesamientos por seres humanos o medios automticos. Tipos de Datos. Especificacin de un dominio (rango de valores) y de un conjunto vlido de operaciones a los que normalmente los traductores asocian un esquema de representacin interna propio.

Todas las variables en el lenguaje Java deben tener un tipo de dato. El tipo de la variable determina los valores que la variable puede contener y las operaciones que se pueden realizar con ella. Tipos de datos en Java. Existen 8 tipos de datos primitivos o integrados: 4 tipos enteros (byte, short, int, long). 2 tipos de coma flotante (float, double). Booleano (boolean). Carcter (char).

23

Algoritmos y lenguajes de programacin

Tipo byte short int long float double char boolean Identificadores.

Tamao (en bits) 8 16 32 64 32 64 16 1

Rango -128 a 127 -32,768 a 32,767 -2,147,483,648 a -2,147,483,647 -9,223,372,036,854,775,808L a -9,223,372,036,854,775,807L +/-3.4E+38F (6-7 dgitos importantes) +/-1.8E+308 (15 dgitos importantes) Conjunto de caracteres Unicode ISO Verdadero o Falso

Los identificadores representan los datos de un programa (constantes, variables, tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar una posicin en la memoria de la computadora, que nos permite accesar a su contenido. Ejemplo: Nombre Num_hrs Calif2 Reglas para formar un Identificador Debe comenzar con una letra (A a Z, maysculas o minsculas) y no deben contener espacios en blanco. Letras, dgitos y caracteres como la subraya ( _ ) estn permitidos despus del primer carcter. Se recomienda usar nombres pequeos. Deben ser 100% descriptivas en el nombre y tipo de informacin que almacenan. Constante. Una constante es un dato numrico o alfanumrico que no cambia durante la ejecucin del programa.

Ejemplo: pi = 3.1416 Variable. Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecucin de un proceso, su contenido puede cambia durante la ejecucin del

24

Algoritmos y lenguajes de programacin

programa. Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo. Ejemplo: Area = Pi * Radio * Radio

Las variables son: Radio, Area y la constate es Pi Nombres de Variables Un programa se refiere al valor de una variable por su nombre. Por convencin, en Java, los nombres de las variables empiezan con una letra minscula (los nombres de las clases empiezan con una letra mayscula). Un nombre de variable Java. 1. Debe ser un identificador legal de Java comprendido en una serie de caracteres Unicode. Unicode es un sistema de codificacin que soporta texto escrito en distintos lenguajes humanos. Unicode permite la codificacin de 34.168 caracteres. Esto le permite utilizar en sus programas Java varios alfabetos como el Japons, el Griego, el Ruso o el Hebreo. Esto es importante para que los programadores pueden escribir cdigo en su lenguaje nativo. 2. No puede ser el mismo que una palabra clave o el nombre de un valor booleano (true or false). 3. No deben tener el mismo nombre que otras variables cuyas declaraciones aparezcan en el mismo mbito. La regla nmero 3 implica que podra existir el mismo nombre en otra variable que aparezca en un mbito diferente. Por convencin, los nombres de variables empiezan por un letra minscula. Si una variable est compuesta de ms de una palabra, como 'nombreDato' las palabras se ponen juntas y cada palabra despus de la primera empieza con una letra mayscula.

3.5. Operadores, operandos y expresiones. Expresiones. Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales. Por ejemplo: A + (B + 3) / C.

Cada expresin toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecucin de las operaciones indicadas.

25

Algoritmos y lenguajes de programacin

Una expresin consta de operadores y operandos. Segn sea el tipo de datos que manipulan, se clasifican las en: Aritmticas Relacinales Lgicas Operadores. Son elementos que relacionan de forma diferente, los valores de una o mas variables y/o constantes. Es decir, los operadores nos permiten manipular valores. Tipos de Operadores Aritmticos Relacinales Lgicos

Operadores Aritmticos. Los operadores aritmticos permiten la realizacin de operaciones matemticas con los valores (variables y constantes). Los operadores aritmticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real. Operando (Operador) Operando

Valor (constante o variable)

Operadores aritmticos + Suma Resta * Multiplicacin / Divisin real % Residuo Ejemplos: 7 / 2 = 3.5 7%2=1 7 + 2/2 = 8 4 + 2 * 5 = 14

26

Algoritmos y lenguajes de programacin

Prioridad de los Operadores Aritmticos. 1. Todas las expresiones entre parntesis se evalan primero. Las expresiones con parntesis anidados se evalan de dentro a fuera, el parntesis mas interno se evala primero. 2. Dentro de una misma expresin los operadores se evalan en el siguiente orden. a. ^ Exponenciacin b. *, /, %, Multiplicacin, divisin, residuo. c. +, - Suma y resta. 3. Los operadores en una misma expresin con igual nivel de prioridad se evalan de izquierda a derecha. Ejemplos: 4 + 2 * 5= 14 23 * 2 / 5 = 9.2 3 + 5 * (10 - (2 + 4)) = 23 0.35 + 5.09 - 14.0 / 40 = 5.09 2.1 * (1.5 + 3.0 * 4.1) = 28.98 Operadores Relacinales. Se utilizan para establecer una relacin entre dos valores. Compara estos valores entre si y esta comparacin produce un resultado de certeza o falsedad (verdadero o falso). Los operadores relacinales comparan valores del mismo tipo (numricos o cadenas). Tienen el mismo nivel de prioridad en su evaluacin y tienen menor prioridad que los aritmticos. Operadores Relacionales > Mayor que < Menor que > = Mayor o igual que < = Menor o igual que !> Diferente = = Igual Ejemplos: Si: A = 10; A+B>C A-B<C A-B==C A * B !> C Ejemplos no lgicos: A<B<C 10 < 20 < 30 T < 30 (no es lgico porque tiene diferentes operandos). B = 20; C = 30 Falso Verdadero Falso Verdadero

27

Algoritmos y lenguajes de programacin

Operadores Lgicos: Estos operadores se utilizan para establecer relaciones entre valores lgicos. Estos valores pueden ser resultado de una expresin relacional. Operadores Lgicos And Y Or O Not Negacin

Tabla de verdad del Operador And Operando1 Operador Operando2 Resultado V Y V V V F F F V F F F F Tabla de verdad del Operador Or Operando1 Operador Operando2 Resultado V O V V V F V F V V F F F Tabla de verdad del Operador Not Operando Resultado V F F V Ejemplos: (nA < nB) and (nB < nC) (10<20) and (20<30) V Y V

V Prioridad de los Operadores Lgicos Not And Or


28

Algoritmos y lenguajes de programacin

Prioridad de los Operadores en General 1. 2. 3. 4. 5. () ^ *, /, Mod, Not +, -, And >, <, > =, < =, < >, =, Or

Ejemplos: A = 10; B = 12; C = 13; D =10 ((A > B) F V F O (A < C)) V Y ((A = C) F F O (A > = B)) F

29

Algoritmos y lenguajes de programacin

4. FUNCIONES
4.1. Definicin. En Java una funcin es un modulo de un programa separado del cuerpo principal, que realiza una tarea especfica y que puede regresar un valor a la parte principal del programa u otra funcin o procedimiento que la invoque. La forma general de una funcin es: tipodatoregresa Nom_fun(parametros) { cuerpo de instrucciones; instruccin return; } El tipo especifica el tipo de valor que la funcin regresara utilizando la instruccin return. Si no se especifica un tipo se asume de default que el tipo regresado es int. La lista de parmetros formales es una lista de variables separadas por comas (,) que almacenaran los valores que reciba la funcin, estas variables actan como locales dentro del cuerpo de la funcin. Aunque no se ocupen parmetros los parntesis son requeridos. La declaracin de parmetros es la especificacin de cada tipo de parmetro recibido. 4.2 Instruccin return Dentro del cuerpo de la funcin deber haber una instruccin return cuando menos, para regresar el valor, esta instruccin permite regresar datos. Es permitido poner ms de un return en el cuerpo de instrucciones sobre todo en condiciones, pero solo un return se ejecutara. Ejemplo; if (suma >= 10) { return 10; } else { return 20; } Las funciones le entregan al programador dos beneficios importantes: 1. Permiten que las complejas tareas computacionales puedan ser subdivididas en fragmentos lo suficientemente pequeos para caber de manera cmoda dentro de un cerebro humano. 2. Estos le permiten que se les entreguen a estos fragmentos subdivididos nombres lgicos y comprensibles, para que puedan ser manipulados de forma competente por un nico cerebro humano.

30

Algoritmos y lenguajes de programacin

5. ESTRUCTURAS SELECTIVAS
Al finalizar la unidad usted podr:

1. Crear construccin IF e IF/ELSE 2. Usar la construccin SWITCH


Los operadores relacionales permiten tomar una nica decisin en funcin de mltiples condiciones. La especificacin formal de algoritmos tiene realmente utilidad cuando el algoritmo requiere una descripcin ms complicada que una lista sencilla de instrucciones. Este es el caso cuando existen un nmero de posibles alternativas resultantes de la evaluacin de una determinada condicin. Estas estructuras se identifican porque en la fase de solucin del problema existe algn punto en el cual es necesario establecer una pregunta, para decidir si ciertas acciones deben realizarse o no. Las condiciones se especifican usando expresiones lgicas. La representacin de una estructura selectiva se hace con palabras en pseudocdigo (if - then - else o en espaol si - entonces - sino. Las estructuras selectivas o alternativas se clasifican en: a) Simples b) Dobles c) Anidadas d) Mltiples 5.1. Selectivas simples. Se identifican porque estn compuestos nicamente de una condicin. La estructura si - entonces evala la condicin y en tal caso: Si la condicin es verdadera, entonces ejecuta la accin Si (o acciones si son varias). Si la condicin es falsa, entonces no se hace nada. Espaol Si <condicin> Entonces <accin Si> fin_si Ingls If <condicin> then <accin Si> endif

31

Algoritmos y lenguajes de programacin

Ejemplo 1. Construir un algoritmo tal, que dado como dato la calificacin de un alumno en un examen, escriba Aprobado en caso que esa calificacin fuese mayor que 8. Salidas: mensaje de aprobado si se cumple la condicin. Entradas: calificacin Datos adicionales: un alumno aprueba si la calificacin es mayor que 8 Variables: Cal = calificacin Algoritmo: Inicio Leer (cal) Si cal > 8 entonces Escribir (aprobado) Fin_si Fin Ejemplo de un programa en Java: //Este programa al dar tu edad te dice si eres mayor o menor de edad. //Para este programa se utiliza la sentencia if(condicion) o en Pseudocodigo Si(condicion) y else o sino. import javax.swing.J Option Pane; class ifcondicional{ public static void main(String args[]){ //Declaracion de variables //Variable tipo cadena String a; //Variable Tipo entero. int edad; //En esta parte del programa se pide al usuario que nos de su edad a=JOptionPane.showInputDialog(Introduce Tu Edad:); edad=Integer.parseInt(a); //En esta parte se utiliza la sentencia if con la condicion de si la edad es >= 18 se imprimir el msn eres mayor de edad, if(edad>=18){ System.out.println(Eres Mayor De Edad); } //Else solo se ejecutara cuando la edad se menor a 18 y la condicion anterios no se cumpla else{ System.out.println(Eres Menor De Edad); } } }

32

Algoritmos y lenguajes de programacin

5.2 Selectivas anidadas La estructura selectiva es anidada cuando dentro de alguna accin de sta, se encuentra otra estructura selectiva y la(s) accin(es) de esta puede contener otra selectiva y esta otra ms; es decir cuando despus de una decisin se debe tomar otra, despus otra y as sucesivamente. Permite introducir ms de una expresin de comparacin. Si la primera condicin no se cumple, se compara la segunda y as sucesivamente. En el caso de que no se cumpla ninguna de las comparaciones se ejecutan las sentencias correspondientes al else. If (booleanExpresion1){ Statements1; } else If (booleanExpresion2){ Statements2; } else If (booleanExpresion3){ Statements3; } else if Las llaves {} sirven para agrupar en un bloque las sentencias que se han de ejecutar, y no son necesarias si solo hay una sentencia dentro del if. Las sentencias incluidas en el else en caso de no cumplirse la expresin de comparacin (false). 5.3 Selectiva mltiple En ingles switch La sentencia switch se utiliza para realizar sentencias condicionalmente basadas en alguna expresin. Por ejemplo, supn que tu programa contiene un entero llamado mes cuyo valor indica el mes en alguna fecha. Que tambin quieres mostrar el nombre del mes basndose en su nmero entero equivalente. Podras utilizar la sentencia switch de Java para realizar esta tarea. int mes; switch (mes) { case 1: System.out.println(Enero); break; case 2: System.out.println(Febrero);break; case 3: System.out.println(Marzo); break; case 4: System.out.println(Abril); break; case 5: System.out.println(May0); break; case 6: System.out.println(Junio); break; case 7: System.out.println(Julio); break; case 8: System.out.println(Agosto); break; case 9: System.out.println(Septiembre); break; case 10: System.out.println(Octubre); break; case 11: System.out.println(Noviembre); break;
33

Algoritmos y lenguajes de programacin

case 12: System.out.println(Diciembre); break; } La sentencia switch evala su expresin, en este caso el valor de mes, y ejecuta la sentencia case apropiada. Cada sentencia case debe ser nica y el valor proporcionado a cada sentencia case debe ser del mismo tipo que el tipo de dato devuelto por la expresin proporcionada a la sentencia switch. Otro punto de inters en la sentencia switch son las sentencias break despus de cada case. La sentencia break hace que el control salga de la sentencia switch y contine con la siguiente lnea. El formato es: switch ( expresion_entera ) { case valor_entero: sentencia; break; case valor_entero: sentencia; break; ... default: sentencia; } Cuidado: en el switch la expresin que se evala no es una expresin booleana como en el if-else, sino una expresin entera. Se ejecuta el bloque case cuyo valor coincida con el resultado de la expresin entera de la clausula switch. Se ejecuta hasta que se encuentra una sentencia break o se llega al final del switch. Si ningn valor de case coincide con el resultado de la expresin entera se ejecuta el bloque default(si est presente). default y break son opcionales.

34

Algoritmos y lenguajes de programacin

6. ESTRUCTURAS DE REPETICIN
6.1 Repetir mientras (WHILE) Es una de las estructuras de repeticin empleada en la programacin de algoritmos. While permite al programador especificar las veces que se repita una accin (ejecutando repetidamente el mismo bloque de cdigo) mientras una condicin se mantenga verdadera (hasta que se cumpla una condicin de terminacin). Hay cuatro partes en cualquier bucle. Inicializacin, cuerpo, iteracin y terminacin. La forma del while en lenguaje Java es: [inicializacin;] while(condicin){ cuerpo; iteracin; } Mientras la condicin se mantenga verdadera, el bloque de instrucciones dentro de las llaves se ejecutar "x" cantidad de veces. Es necesario que alguna vez la condicin se haga falsa, pues de lo contrario se entrara en un ciclo infinito de repeticiones (bucle infinito) y el programa se considerara bloqueado. Por lo tanto es necesario que en el bloque de instrucciones dentro de la estructura while, se ejecute alguna accin que en algn momento haga que la condicin sea falsa. Un ejemplo del funcionamiento de la estructura de repeticin while: int num; num = 0; while (num<=10) { System.out.println(Repeticin numero + num); num = num + 1; // num++; } El cdigo anterior imprimir en pantalla: Repeticin numero 0 Repeticin numero 1 Repeticin numero 2 Repeticin numero 3 Repeticin numero 4 Repeticin numero 5 Repeticin numero 6 Repeticin numero 7 Repeticin numero 8 Repeticin numero 9 Repeticin numero 10

35

Algoritmos y lenguajes de programacin

Por qu? Vemos que iniciamos la variable del tipo entero (int) num en cero. Luego, se evala por primera vez si es menor o igual a 10, al ser verdadera, se ejecuta el bloque dentro del while por primera vez. Se imprime Repeticin numero 0, pues el valor dentro de num es cero. Luego el proceso se repite hasta que num con valor 10 se le suma 1, y toma el valor 11. Se evala la condicin del while y se determina que NO se cumple, por lo tanto, salta el bloque y sigue la ejecucin del programa. Ejercicios de while. 1. Mostrar la conversin de 1 hasta 10 dlares en pesos, dlar tras dlar, suponiendo que el tipo de cambio es 12.76 pesos/dolar. public class Cambio { public static void main(String[] args) { int dolar = 1; while (dolar<=10) { System.out.println(dolar +" dolares = " + dolar*12.76 +" pesos"); dolar++; } } } 2. Una persona desea invertir $1000.00 en un banco, el cual le otorga un 2% de inters mensual. Cual ser la cantidad de dinero que esta persona tendr al cabo de un ao si todo el dinero lo reinvierte?. public class Interes { public static void main(String[] args) { double dinero = 1000; int mes = 1; while (mes<=12) { dinero = dinero * 1.02; mes++; } System.out.println(dinero); } }

6.2 Repetir hasta (DO WHILE) Es lo mismo que en el caso anterior pero aqu como mnimo siempre se ejecutara el cuerpo una vez, en el caso anterior es posible que no se ejecute ni una sola vez. Sintaxis en Java: La forma de esta estructura do while es: [inicializacin;] do{ cuerpo;
36

Algoritmos y lenguajes de programacin

iteracin; }while(condicin); Veamos un ejemplo en donde se imprimen los nmeros del 1 al 10 usando esta estructura. Al final tambin se imprime en pantalla el valor contenido en la variable principal a fin de mostrar cul es su valor final. num = 1; do { System.out.println(Numero + num); num = num + 1; //num++; } while (num<=10); printf(La variable num vale: + num); Esto imprime en pantalla: Numero 1 Numero 2 Numero 3 Numero 4 Numero 5 Numero 6 Numero 7 Numero 8 Numero 9 Numero 10 La variable num vale: 11 Ejercicios de do-while. 1. Este programa lo que hace es ir sumando n1 mientras que los valores no sean superiores a 100. class fibo{ public static void main(String args[]){ int n1=0; do{ n1++; System.out.println(n1+" "); }while(n1<100); } } 2. Realiza un programa que nos imprima los nmeros pares del 1 al 300. int n1=1; do{ if (n1%2 ==0 ) System.out.println(Valor par = + n1); n1++; }while(n1<=300);

37

Algoritmos y lenguajes de programacin

6.3 Repetir desde (FOR) El ciclo FOR, realiza las mismas operaciones que en los casos anteriores pero la sintaxis es una forma compacta. Es una de las estructuras de repeticin empleada en la programacin de algoritmos para repetir un cdigo (una o ms sentencias de programacin) dependiendo de un contador. La sintaxis de esta instruccin en lenguaje Java es:

for (inicializacin; condicin; iteracin) { sentencia1; sentencia2; } Ejemplo de cdigo en Java: int contador; for (contador = 0; contador<10; contador++) { System.out.println(Repeticin numero + contador); } Primero se crea la variable contador de tipo entero (ser la variable de control en el for). Luego se ejecuta la estructura for iniciando la variable contador en 0. Luego se verifica que se cumple la condicin contador<10 y se ejecuta el bloque dentro de la estructura, o sea, imprime en pantalla Repeticin nmero 0. Luego la variable contador es incrementada en uno con la expresin contador++ y el ciclo se inicia otra vez. La variable contador ahora vale 1, por lo tanto se verifica la condicin y se vuelve a ejecutar el cdigo. Este proceso se ejecuta hasta que contador toma el nmero 10 y la condicin se hace falsa y no ejecuta el bloque. Visualizando en pantalla: Repeticin numero 0 Repeticin numero 1 Repeticin numero 2 Repeticin numero 3 Repeticin numero 4 Repeticin numero 5 Repeticin numero 6 Repeticin numero 7 Repeticin numero 8 Repeticin numero 9

38

Algoritmos y lenguajes de programacin

Ejercicios de for. 1. Realizar un programa en Java que muestre nmeros del 1 al 100. Utilizando un bucle de tipo FOR. Public class numeros{ public static void main(String args[]){ int n1; for (n1=0;n1<100;n1++) System.out.print("Numero "+ n+1); } } 2. Visualizar en pantalla la tabla de multiplicar del 9. public class multiplica{ public static void main(String args[]){ int n1; System.out.print("Tabla del 9); for (n1=0;n1<10;n1++) System.out.print("multiplicar 9 X + n+1+ = + (n+1)*9); } }

39

Algoritmos y lenguajes de programacin

7. ARREGLOS
7.1. Definicin Los arreglos en Java son dinmicos, pero no extensibles, lo cual significa que deben ser creados con el tamao que tendrn hasta el final de su vida. Un arreglo se declara de la siguiente forma: <tipo>[] <nombre>; O sea, para declarar, por ejemplo, un arreglo de nmeros enteros utilizaremos la siguiente sentencia: int[] arrInt; Es importante notar que el arreglo an no ha sido creado, sino meramente declarado. Para crear el arreglo (reservar su memoria e inicializarlo) deberemos recurrir al operador new: arrInt = new int[10]; Este comportamientodebe comprenderse de esta forma: en Java todo es un objeto, y los objetos deben ser creados mediante el operador new. El caso de los arreglos no es diferente, el tipo de datos del arreglo (int[] en este caso) es una clase y cada una de sus instancias debe ser creada explcitamente, el tamao puede pensarse como un parmetro al constructor de la clase. A partir de este momento podemos utilizar arrInt como un arreglo de cualquier otro lenguaje. Una de las caractersticas que hacen de Java un entorno de programacin seguro, y que se relaciona con el manejo de los arreglos es que el lenguaje no permite la indexacin de arreglos fuera de rango, o sea, una asignacin de este tipo generar una excepcin: ArrInt[25] = 1; Otra forma de declararlos es la siguiente: UNIDIMENSIONALES: tipo nombre_array[]=new tipo[n]; tipo nombre_array[]={valores}; BIDIMENSIONALES: tipo nombre_array[][]=new tipo[n][n]; tipo nombre_array[][]={valores}; 7.2. Caractersticas: Algunas de sus caractersticas ms importantes de los arrays son las siguientes:
40

Algoritmos y lenguajes de programacin

1. Los arrays se crean con el operador new seguido del tipo y nmero de elementos. 2. Se puede acceder al nmero de elementos de un array con la variable miembro implcita length (por ejemplo, vect.length). 3. Se accede a los elementos de un array con los corchetes [] y un ndice que vara de length-1. 4. Se pueden crear arrays de objetos de cualquier tipo. En principio un array de objetos es un array de referencias que hay que completar llamando al operador new. 5. Los elementos de un arrayse inicializan al valor por defecto del tipo correspondiente (cero para valores numricos, el carcter nulo para char, false para boolean, null para Strings y para referencias). 6. Como todos los objetos, los arrays se pasan como argumentos a los mtodos por referencia. 7. Se pueden crear arrays annimos (por ejemplo, crear un nuevo array como argumento actual en la llamada a un mtodo). 7.3 Inicializacin de arrays: 1. Los arrays se pueden inicializar con valores entre llaves {...} separados por comas. 2. Tambin los arrays de objetos se pueden inicializar con varias llamadas a new dentro de unas llaves {...}. 3. Si se igualan dos referencias a un array no se copia el array, sino que se tiene un array con dos nombres, apuntando al mismo y nico objeto. 4. Creacin de una referencia a un array. Son posibles dos formas: double[] x; // preferible double x[]; 5. Creacin del array con el operador new: x = new double[100]; 6. Las dos etapas 4 y 5 se pueden unir en una sola: double[] x = new double[100]; Sumar el total de los valores de los elementos de un arreglo 01 // Sumar el total de los valores de los elementos de un arreglo. 02 import javax.swing.*; 03 04 public class SumarArreglo { 05 06 public static void main( String args[] ) 07 {
41

Algoritmos y lenguajes de programacin

08 int arreglo[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; 09 int total = 0; 10 11 // sumar el valor de cada elemento al total 12 for ( int contador = 0; contador < arreglo.length; contador++ ) 13 total += arreglo[ contador ]; 14 15 JOptionPane.showMessageDialog( null, 16 "Total de elementos del arreglo: " + total, 17 "Sumar los elementos de un arreglo", 18 JOptionPane.INFORMATION_MESSAGE ); 19 20 System.exit( 0 ); 21 22 } // fin de main 23 24 } // fin de la clase SumarArreglo

42

Algoritmos y lenguajes de programacin

BIBLIOGRAFA

Introduccin a la programacin. Universidad Autnoma Metropolitana. Unidad Azcapotzalco http://luda.uam.mx/curso1/index.htm Aguilar, Luis Joyanes. Fundamentos de programacin: algoritmos, estructuras de datos y objetos. McGraw-Hill, Interamericana Garca de Jaln Javier. Aprenda Java como si estuviera en primero. Escuela Superior de Ingeniero Campus Tecnolgico de la Universidad de Navarra. Flores Rosales Germn. Como programar en Java. Programacin en Java II Serie Shawn. McGraw-Hill http://www.programacionfacil.com/java_windows:ciclo_do_while http://www.programacionfacil.com/java:ciclo_for

43

You might also like