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


Algoritmos y lenguajes de programacin
1


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
2

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
Algoritmos y lenguajes de programacin
3

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.
Algoritmos y lenguajes de programacin
4

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
5

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
6

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
7

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
8

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
9

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
10

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.
Algoritmos y lenguajes de programacin
11

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
Algoritmos y lenguajes de programacin
12

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
Algoritmos y lenguajes de programacin
13

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.


Algoritmos y lenguajes de programacin
14

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.
Algoritmos y lenguajes de programacin
15

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.


Algoritmos y lenguajes de programacin
16

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"
Algoritmos y lenguajes de programacin
17

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.
Algoritmos y lenguajes de programacin
18

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
Algoritmos y lenguajes de programacin
19

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.







Algoritmos y lenguajes de programacin
20

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.
Algoritmos y lenguajes de programacin
21

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, LOD 16 8,
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).

Algoritmos y lenguajes de programacin
22

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.
Algoritmos y lenguajes de programacin
23

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).


Algoritmos y lenguajes de programacin
24

Tipo Tamao
(en bits)
Rango
byte 8 -128 a 127
short 16 -32,768 a 32,767
int 32 -2,147,483,648 a -2,147,483,647
long 64 -9,223,372,036,854,775,808L a -9,223,372,036,854,775,807L
float 32 +/-3.4E+38F (6-7 dgitos importantes)
double 64 +/-1.8E+308 (15 dgitos importantes)
char 16 Conjunto de caracteres Unicode ISO
boolean 1 Verdadero o Falso

Identificadores.
Los identificadores representan los datos de un programa (constantes, variables, tipos de datos).
Un identificador es una secuencia de caracteres que sirve para identificar una posicin en la
memoria de la computadora, que nos permite accesar a su contenido.
Ejemplo:
Nombre
Num_hrs
Calif2

Reglas para formar un Identificador
Debe comenzar con una letra (A a Z, maysculas o minsculas) y no deben contener
espacios en blanco.
Letras, dgitos y caracteres como la subraya ( _ ) estn permitidos despus del primer
carcter.
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
Algoritmos y lenguajes de programacin
25

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.
Algoritmos y lenguajes de programacin
26

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.
Aritmticos
Tipos de Operadores 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

Algoritmos y lenguajes de programacin
27

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; B = 20; C = 30
A + B > C Falso
A - B < C Verdadero
A - B = = C Falso
A * B !> C Verdadero

Ejemplos no lgicos:
A < B < C
10 < 20 < 30
T < 30 (no es lgico porque tiene diferentes operandos).


Algoritmos y lenguajes de programacin
28

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
Algoritmos y lenguajes de programacin
29

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

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













Algoritmos y lenguajes de programacin
30

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.
Algoritmos y lenguajes de programacin
31

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 Ingls
Si <condicin> If <condicin>
Entonces then
<accin Si> <accin Si>
fin_si endif


Algoritmos y lenguajes de programacin
32

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);

}
}
}

Algoritmos y lenguajes de programacin
33

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;
Algoritmos y lenguajes de programacin
34

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.





Algoritmos y lenguajes de programacin
35

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

Algoritmos y lenguajes de programacin
36

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;
Algoritmos y lenguajes de programacin
37

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);

Algoritmos y lenguajes de programacin
38

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



Algoritmos y lenguajes de programacin
39

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);
}
}
















Algoritmos y lenguajes de programacin
40


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:
Algoritmos y lenguajes de programacin
41

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 {
Algoritmos y lenguajes de programacin
42

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

























Algoritmos y lenguajes de programacin
43



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

También podría gustarte