0% encontró este documento útil (0 votos)
548 vistas445 páginas

FOLLETO DE JAVA+vertical1

Este documento presenta los conceptos básicos de programación como algoritmos, datos, tipos de datos, operaciones y operadores, asignaciones, estructuras de control, diagramas de flujo y problemas propuestos. Su objetivo es brindar a los estudiantes los conocimientos fundamentales para comprender la programación en Java. Inicia explicando qué son los algoritmos y datos y los diferentes tipos de datos como numéricos, alfanuméricos y lógicos. Luego entra en detalle sobre operaciones, operadores, asignaciones y estructuras de control como selección y repetición
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
548 vistas445 páginas

FOLLETO DE JAVA+vertical1

Este documento presenta los conceptos básicos de programación como algoritmos, datos, tipos de datos, operaciones y operadores, asignaciones, estructuras de control, diagramas de flujo y problemas propuestos. Su objetivo es brindar a los estudiantes los conocimientos fundamentales para comprender la programación en Java. Inicia explicando qué son los algoritmos y datos y los diferentes tipos de datos como numéricos, alfanuméricos y lógicos. Luego entra en detalle sobre operaciones, operadores, asignaciones y estructuras de control como selección y repetición
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 445

Contenido

Parte Inicial ....................................................................................................................... 2


ENTENDIENDO LA PROGRAMACIN ................................................................. 2
1. Algoritmos ............................................................................................................... 3
2. Datos y Tipos de Datos ........................................................................................... 4
2.1. Variables ........................................................................................................... 4
2.1.1. Nombres apropiados de variables ........................................................... 5
3. Operaciones y Operadores ..................................................................................... 8
3.1. Operadores Relacinales ................................................................................. 8
3.2. Operadores Aritmticos ................................................................................ 10
3.3. Operadores Alfanumricos ........................................................................... 14
3.4. Operadores lgicos ......................................................................................... 15
4. Asignaciones .......................................................................................................... 16
5. Problemas propuestos .......................................................................................... 19
6. Entrada y Salida de datos .................................................................................... 21
7. Contadores ............................................................................................................ 25
8. Acumulador o Sumador ....................................................................................... 26
9. Estructuras ............................................................................................................ 27
9.1. Estructuras de Seleccin ............................................................................... 27
9.2. Estructuras Repetitivas ................................................................................. 33
9.2.1. Estructura de repeticin Para (Desde-Hacer) ..................................... 34
9.2.2. Estructura de repeticin Mientras ........................................................ 38
9.2.3. Estructura de repeticin Repetir .......................................................... 41
10. Problemas propuestos ....................................................................................... 44
Segunda Parte ................................................................................................................. 47
FLUJO DE DATOS ................................................................................................... 47
11. Diagramas de flujos ........................................................................................... 48
12. Reglas para la contruccin de diagramas de flujos ........................................ 49
13. Problemas suplementarios resueltos ................................................................ 51
14. Problemas suplementarios ................................................................................ 60
15. Estructuras condicionales ................................................................................. 61
15.1. Condiciones anidadas .................................................................................... 63
Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

15.2. Sentencia Case ................................................................................................ 64


16. Problemas suplementarios resueltos ................................................................ 65
17. Estructuras de Repeticin ................................................................................. 69
17.1. Estructura For Do (Para Hacer) ............................................................ 70
17.2. Ciclo While - Do(Mientras Hacer) ............................................................ 74
17.3. Ciclo Repeat Until (Repita Hasta) ........................................................... 76
18. Problemas suplementarios resueltos ................................................................ 78
19. Problemas Varios ............................................................................................... 88
20. Problemas Propuestos ....................................................................................... 90
Tercera Parte ................................................................................................................. 104
PROGRAMACIN ORIENTADA A OBJETOS .................................................. 104

[LIBRO PARA EL ESTUDIO DE LA PROGRAMACIN EN JAVA]


Es un trabajo entre estudiantes y docentes, para un mejor entendimiento de la Programacin
en Java, para nuestros estudiantes de la Universidad Politcnica Salesiana del Ecuador.

Universidad Politcnica Salesiana del Ecuador Pgina 1 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Parte Inicial
ENTENDIENDO
LA PROGRAMACIN

Universidad Politcnica Salesiana del Ecuador Pgina 2 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

1. Algoritmos

Un algoritmo es una serie de instrucciones para realizar una tarea especfica o para
obtener un resultado deseado. La forma de un algoritmo o su contenido depende
mucho de la destreza o de la lgica de la persona que lo disea.
Existen muchos algoritmos para realizar una sola tarea, de all se puede valorar a
los algoritmos por su eficiencia. Por ejemplo realicemos una serie de pasos para ir
al cine.
Metodologa 1
Paso1: Obtener Dinero
Paso2: Tomar un Taxi
Paso3: Comprar los boletos
Paso4: Entrar al cine

Para muchas personas este sera los pasos para ir al cine, pero dependiendo los
criterios se podra ser un poco ms especficos, ejemplo:

Metodologa 2
Paso1: Pedir permiso a los padres
Paso2: Si obtenemos permiso continuemos.
Caso contrario, la tarea no tiene solucin
Paso3: Obtener dinero
Paso4: Si obtenemos dinero continuemos.
Caso contrario, la tarea no tiene solucin
Paso5: Hacemos fila para comprar boletos
Paso6: Observamos las pelculas de estreno
Paso7: Si hay una pelcula que agrade, hacemos fila
para comprar boletos, caso contrario dejar de hacer la tarea
Paso6: Entrar al cine

Para muchas personas talvez no sean los paso adecuados para llegar a ver una
pelcula al cine, pero el lector debe simplemente tener el claro cuales son los pasos
para llegar a la meta.
En el mundo de la informtica los pasos para realizar varias tareas son muy
elementales para obtener un resultado deseado. Existen muchos lenguajes de
programacin que hacen esto muy fcil, otros lo hacen ms complicado.
Los primeros algoritmos que se presentan en este documento, son algoritmos
elementales para el buen desarrollo de la lgica de un programador. Cabe recalcar
que existen algoritmos mucho ms eficientes y que su forma se lo estudia en
cursos mas avanzados.
El objetivo general de este documentos es el lector tenga los conocimientos
bsicos para entender un algoritmo y llevar este al lenguaje de programacin Java.

Universidad Politcnica Salesiana del Ecuador Pgina 3 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

2. Datos y Tipos de Datos

Las cosas se definen en la computadora mediante datos, los algoritmos que se


disean en este documento van operar sobre esos datos. A nivel de la mquina los
datos se representan como una serie de bits (dgito 1 0). Los tipos de datos que
vamos a manejar a lo largo de este documento son : numricos y carcter (tambin
llamados alfanumricos), existen adems, los datos de tipo lgicos que solo
pueden tener uno de dos valores : verdadero o falso.
Los datos numricos pueden ser de varias clases: enteros, enteros largos, de doble
precisin, de simple precisin, de coma flotante, reales; cuya definicin depende
del lenguaje de programacin utilizado.
Los datos de tipo carcter o alfanumricos estn compuestos por el conjunto Finito
y ordenado de caracteres que la computadora reconoce:
caracteres alfabticos : A,B,C,.......Z ; a,b,c,.......z
caracteres numricos : 0,1,2, ......9
caracteres especiales : +, /, *, ?,%,$, #, !, ,,,{},~,etc.

Una cadena o string es una sucesin de caracteres que se encuentran delimitados


por comillas ( " " , dependiendo del lenguaje de programacin). La longitud de
la cadena es la cantidad de caracteres que la forma, incluyendo los espacios que
son un carcter ms. As:

"Guayaquil, Ecuador" es una cadena de longitud 18


"Mircoles 7 de Marzo de 2003" es una cadena de longitud 28 (el 7 y el 2001 no
son nmeros ya que pertenecen a la cadena e carcteres)

"123456" es una cadena de longitud 6, no es el nmero 123.456. Sobre "123456"


no se puede realizar ninguna operacin aritmtica como sumar, restar, etc, ya que
se trata de una cadena alfanumrica, ya que est entre comillas dobles ( ) y no
entre dobles comillas simples.
145 es un numero entero.
145.254 es un nmero real.

Si tenemos la siguiente expresin 1=2, esta expresin es falsa. La expresin toma


un valor boleano.
Todos estos datos descritos se llaman datos simples.

2.1. Variables

Toda representacin de datos debe tener un nombre, sean estos datos


numricos, alfanumricos o boleanos, entonces podemos definir como
variable al nombre que se da la al contenido o valor de un dato. En trminos
computacionales podemos decir que el contenido de una variable se almacena
un espacio de memoria del computador utilizando una posicin especfica y
nica para su almacenamiento. En todo programa de computadora o
algoritmos se declaran tantas variables como sea necesario.

Universidad Politcnica Salesiana del Ecuador Pgina 4 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

2.1.1. Nombres apropiados de variables

Por lo general en los programas de computadoras existen reglas que se


deben seguir para realizar procesos, y no queda fuera el nombramiento
de las variables. Por eso se debe seguir las siguientes:
El nombre de una variable no puede tener mas de 40 caracteres
El nombre de una variable debe empezar como mnimo una letra (a-z o A-Z)
No pueden contener espacios en blanco
El resto de los dgitos pueden ser nmeros. Se pueden incluir caracteres
especiales como el guin.

Nombres correctos de variables


X
C1
Total_Suma
CONTADOR-5
Y145
HF_145_Tem
Cant_Equipos
La_Suma_de_la_cantidad_Total (Suma un total de 28 caracteres)

Nombres incorrectos de variables


Tota Suma
5_contador
145Y
HF_%&
La_Suma_de_la_cantidad_Total_Asignada_1025
(Suma un total de 43 caracteres)

Debemos tomar en cuenta que en varios lenguajes de programacin se


exige la declaracin de las variables que se utilizarn a lo largo de todo
su cdigo e inclusive es necesario en tales lenguajes que se inicialice la
variable. Pero por lo general toda variable numrica se inicializa con
cero, una cadena de caracteres con valor nulo y una variable boleana
con falso.
Para estar familiarizado con estos lenguajes en los algoritmos tambin lo
vamos a definir.

As tenemos que para declarar variables en Pseudocdigo se tiene:

Var
Entero N
La variable N representa un dato tipo numrico
especficamente entero.
Var
Real Contador,Suma

Universidad Politcnica Salesiana del Ecuador Pgina 5 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Tambin se pueden declarar dos o ms variables en la misma lnea. En


este ejemplo declaramos que la variable Contador y Suma representan
datos Tipo numrico reales.

Var

String Nombre, Apellidos, Direccin

Declaramos en esta ocasin que las variables Nombres, Apellidos y


Direccin son variables de tipo Cadena de Caracteres

Var

Boleano bandera

La variable bandera es una variable boleana que toma un valor de


verdad (Verdadero o Falso)
Tambin se pueden declarar variables de la siguiente forma

Var
String Nombre, Apellidos, Direccin
Real Contador,Suma
Entero N
Boleano bandera

Suponiendo que en cualquier parte de nuestro algoritmo deseamos


ingresar estos valores a las siguientes variables:

Nombre=Oscar Apellidos=Muoz
Direccin= Quito 1007 y Aguirre Contador = 5.3
N=5 Bandera = falso

Las variables poseen valores adecuados para cada variable. Hay que
recordar que la cadena 1007 que se encuentra en la variable
Direccin no es de tipo numrica.
Claro est que las variables anteriormente mencionadas no podrn
poseer valores similares a los siguientes:

Nombre = "Luis" + 10 Cualquiera de estas sentencias


Bandera = 4 causar un error en la
Contador = Oscar ejecucin del programa.

Universidad Politcnica Salesiana del Ecuador Pgina 6 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Problema 1.1
Tomando en consideracin los siguientes nombres de variables:

i) 5a ii) kL_25 iii) Suma 1 iv) C1 v) =F_45


Entonces es verdad que:
a) i y iv son nombres correctos de variables
b) ii y v son nombres correctos de variables
c) ii o i son nombres correctos de variables y v o iv son nombres correctos de variables
d) i es nombre correcto de variable
e) i y ii y iii y iv y v son nombres correctos de variables

Solucin:
Se debe verificar cada una de las variables
i) 5a, no es una variable ya que no puede empezar con nmeros
ii) kL_25, si se puede definir como una variable
iii) Suma 1, no es una variable ya que no pueden contener espacios
iv) C1, si se puede definir como una variable
v) =F_45, no es una variable ya que no puede empezar con el signo igual
Entonces:
a) falso b) falso c) verdadero d) falso e)falso

Resp. Literal c

Universidad Politcnica Salesiana del Ecuador Pgina 7 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

3. Operaciones y Operadores

Para entender los ejemplos dados en la seccin anterior se debe tener


conocimiento en como realizar operaciones adecuadas utilizando las variables y
operadores correspondientes a cada operacin. Generalizando, los operadores son
de 4 tipos:
Relacionales
Aritmticos
Alfanumricos
Lgicos

3.1. Operadores Relacinales

Los operadores relacionales por lo general poseen la siguiente estructura:

<Expresin1> Operador_Relacional <Expresin2> = valor lgico

Cada uno de los cuales al ser evaluadas devuelven un valor lgico (boleano)
que puede ser verdadero o falso, siendo estos:

Operador Representacin En Java


Mayor que > >
Menor que < <
Igual a = ==
Menor o igual que <= <=
Mayor o igual que >= >=
Distinto <> !=

Problemas Numricos operadores lgicos

Operaciones Resultado
5 <= 5 Verdadero
5 <> 5 Falso
5 <> 11 Verdadero
10 <= 100 Verdadero
101 >= 10 Verdadero
10 = 14 Falso

Si A=5
B=4
C=1

Operaciones Resultado
A <= 5 Verdadero
5 <> A Falso
A <> 11 Verdadero

Universidad Politcnica Salesiana del Ecuador Pgina 8 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

B <= C Falso
101 >= B Verdadero
A -B = C Verdadero

En las comparaciones de nmeros solo se debe utilizar la regla de la recta


numrica.

Cuando se comparan cadenas alfanumricos (variables tipo String) se realiza


carcter por carcter, siempre empezando desde la izquierda hacia la derecha
considerando las siguientes normas:

1. Si las variables o los datos tienen diferente longitud, son diferentes


2. Una variable o dato es menor que otro si tiene una longitud menor y
que tenga el primer carcter igual.
3. Dos o mas variables o datos son iguales si tienen la misma longitud y
los mismos caracteres.
4. Las letras minsculas son mayores que las maysculas.
5. Un carcter numrico es menor que cualquier letra mayscula o
minscula
carcter numrico < maysculas < minsculas.
Ejemplos:
Operacin Resultado
A <= B Verdadero
AAAA > AAA Verdadero
B > AAAA Verdadero
B < b Verdadero
3 < 29 Falso

Toda comparacin se la realiza utilizando el valor ASCII (Cdigo Americano


Estndar para Intercambio de Informacin) de cada carcter. El cdigo ASCII
es un cdigo en el cual los nmeros de 0 a 255 representan letras, nmeros,
signos de puntuacin y otros caracteres. El cdigo ASCII est estandarizado
para facilitar la transmisin de texto entre varios PC o entre un PC y un
dispositivo perifrico
En el siguiente ejemplo se muestra debajo de cada carcter el cdigo ASCII

Operacin Resultado
A <= B
Verdadero
65<=66
B < b
Verdadero
66<98

Universidad Politcnica Salesiana del Ecuador Pgina 9 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

3.2. Operadores Aritmticos

Todo tipo de operacin aritmtica se evalan con los siguientes operadores:

Operador Representacin En Java Clase Math


Suma + +
Resta - -
Multiplicacin * *
Divisin / /
Potenciacin ^ ^ Math.pow(base,expo)
Resultado entero de una divisin DIV /
Resto de la divisin entera MOD %

Teniendo la siguiente estructura de evaluacin:

<Nmero1> Operador <Nmero 2> = Nmero3

Cuando las expresiones son largas se debe seguir las siguientes normas de
prioridades de evaluaciones para los operadores
1. Parntesis
2. Potencias
3. Productos y Divisiones
4. Sumas y restas
5. Concatenacin
6. Relacionales
7. Lgicos
Ejemplos
Operaciones Resultado
5+8 13
5^2 + 2
27
25 + 2
10 mod 3 1
25 div 4 6
10/2 + 25^(1/2)
10
5 + 5

Si A =5, B=4, C=3

Operaciones Resultado
A+2* B
13
5+8
A ^2+2
27
25+2
10 mod 3 1
25 div B 6

Universidad Politcnica Salesiana del Ecuador Pgina 10 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Problema 1.2
x y 1 y
Dada la siguiente Expresin x7 y
y 1
x x
Y suponiendo que xy =x^y y que = raz(y) es equivalente a:
a) x-7( (x^(y-1)-y)/(raiz(x^raiz(y-1))) )+y
b) x-7( (x(y-1)-y)/(raiz(x^raiz(y-1))+x) )+y
c) x-7( (x^(y-1)-y)/(raiz(x raiz(y-1))+x) )+y
d) x-7( (x^(y-1)-y)/(raiz(x^raiz(y-1))+x) )+y
e) Ninguna de las anteriores

Solucin:
Si consideramos que xy =x^y y y = raz(y)

x y 1 y
x7 y
y 1
x x

x-7(Expresin) + y La Expresin tiene una divisin


x-7((Expresin1)/(Expresin2)) + y La Expresin1 consta de xy-1 - y
y 1
x-7((x^(y-1)-y)/( raiz(x^raiz(y-1))+x)) + y La Expresin2 consta de x x

Es muy fcil equivocarse en estos tipos de ejercicios por la similitud de sus alternativas,
entonces verificando una por una se tiene

a) x-7((x^(y-1)-y)/(raiz(x^raiz(y-1))) )+y
Comparando con la ecuacin original falta la variable x
x-7((x^(y-1)-y)/(raiz(x raiz(y-1))+x)) + y

b) x-7((x(y-1)-y)/(raiz(x^raiz(y-1))+x) )+y
Comparando con la ecuacin original falta el operador ^
x-7((x^(y-1)-y)/( raiz(x^raiz(y-1))+x)) + y

c) x-7((x^(y-1)-y)/(raiz(x raiz(y-1))+x))+y
Comparando con la ecuacin original falta el operador ^
x-7((x^(y-1)-y)/( raiz(x^raiz(y-1))+x)) + y

d) x-7( (x^(y-1)-y)/(raiz(x^raiz(y-1))+x) )+y


Comparando con la ecuacin original es la misma
x-7( (x^(y-1)-y)/(raiz(x^raiz(y-1))+x))+y

Resp. Literal d

Universidad Politcnica Salesiana del Ecuador Pgina 11 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Problema 1.3
Si A=5 y B=6 la siguiente expresin
3*A+5^(B-A)-A-45/(B-A+2)-1
se obtiene:
a) 0
b) 9
c) 2
d) 5
e) -1

Solucin:
Reemplazando el valor de las variables A y B se tiene
3*5+5^(6-5)-5-45/(6-5+2)-1
15+5^(1)-5-45/(3)-1
15+5-5-15-1
15+5-5-15-1
-1
comprobamos
a) falso b) falso c) falso d) falso e) verdadero

Problema 1.4
Se tiene el siguiente problema: Escribir unas instrucciones que calcule el nmero
de horas, minutos y segundos que hay en N segundos
Solucin:
Paso1: Se obtiene el valor de N
Paso2: Se asigna a una variable Hora (N div 3600)
Paso3: Se asigna a una variable Minuto (( N mod 3600) div 60)
Paso4: Se asigna a una variable Segundo ( N mod 3600) +(Minutos*60)
Paso5: Se Presenta Horas : Minutos : Segundos
Entonces es verdad que:
a) Si se asignara en el Paso3 Minuto (( N mod 3600) mod 60) el algoritmo
cumplira con su objetivo
b) Si se asignara en el Paso4 Segundo ( N mod 3600) (Minutos*60) el
algoritmo cumplira con su objetivo
c) Si se asignara en el Paso2 Hora (N mod 3600) el algoritmo cumplira con
su objetivo
d) Si se asignara en el Paso4 Segundo ( N mod 3600) div (Minutos*60) el
algoritmo cumplira con su objetivo
e) El algoritmo cumple con su objetivo

Resp. Literal e

Universidad Politcnica Salesiana del Ecuador Pgina 12 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Solucin:
Se pude dar cualquier valor para N, en este caso N=3666
N 3666
Hora 3666 div 3600=1
Minuto (3666 mod 3600) div 60
66 div 60= 1
Segundo ( 3666 mod 3600) +(1*60)
66+60=120

Tendramos que en 3666 segundos existen 1 Hora, 1 Minuto y 120 Segundos


es falso, ya que en 3666 segundos existen 1 Hora, 1 Minuto y 6 Segundos. As
que el algoritmo no cumple con su objetivo.

Debemos probar todas las alternativas.


a) Si se asignara en el Paso4 Minuto (( N mod 3600) mod 60) el
algoritmo cumplira con su objetivo
N 3666
Hora 3666 div 3600=1
Minuto ( 3666 mod 3600) mod 60
66 mod 60=0
Minuto ( 3666 mod 3600) +(1*60)
66+60=120

Tendramos que en 3666 segundos existen 1 Hora, 0 Minuto y 120 Segundos


es falso.
b) Si se asignara en el Paso4 Segundo ( N mod 3600)
(Minutos*60) el algoritmo cumplira con su objetivo
N 3666
Hora 3666 div 3600=1
Minuto (3666 mod 3600) div 60
66 div 60= 1
Segundo ( 3666 mod 3600) -(1*60)
66+60=6

Tendramos que en 3666 segundos existen 1 Hora, 1 Minuto y 6 Segundos es


verdadero.
c) Si se asignara en el Paso2 Hora (N mod 3600) el algoritmo
cumplira con su objetivo.
N 3666
Hora 3666 mod 3600=66
Minuto (3666 mod 3600) div 60
66 div 60= 1
Segundo ( 3666 mod 3600) +(1*60)
66+60=120

Universidad Politcnica Salesiana del Ecuador Pgina 13 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Tendramos que en 3666 segundos existen 66 Hora, 1 Minuto y 120 Segundos


es falso.
d) Si se asignara en el Paso4 Segundo ( N mod 3600) div
(Minutos*60)el algoritmo cumplira con su objetivo.
N 3666
Hora 3666 div 3600=1
Minuto (3666 mod 3600) div 60
66 div 60= 1
Segundo ( 3666 mod 3600) div (1*60)
66 div 60=1

Tendramos que en 3666 segundos existen 1 Hora, 1 Minuto y 1 Segundos es


falso.

a) falso b) falso c) verdadero d) falso e)falso

Resp. Literal c

3.3. Operadores Alfanumricos

El nico operador alfanumrico se utiliza para unir o concatenar datos


alfanumricos es del siguiente tipo:

Signo Significado
+ Concatenacin
Ejemplos:
Operacin Resultado
"Hola" + + "Mundo" "Hola Mundo"
"145" + "145" "145145"
"Esto " + "es genial !" "Esto es genial "

El lector podr utilizar este operador solo con variables alfanumricas. Seria
errneo realizar la siguiente operacin:
HOLA + 7
Las siguientes operaciones son correctas si consideramos que las variables A, B
y C son de tipo string.
Si A=Hola, B=Mundo C=145

Operacin Resultado
A + + B "Hola Mundo"
C+C "145145"

Universidad Politcnica Salesiana del Ecuador Pgina 14 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

3.4. Operadores lgicos

Unas de las operaciones ms interesantes a nivel computacional, son las


operaciones lgicas. Los operadores lgicos combinan sus operadores de
acuerdo con las reglas del lgebra de Boole para producir un nuevo valor que
se convierte en el valor de la expresin, puede ser verdadero o falso.

Las expresiones lgicas tienen las siguientes estructuras:

Operador_Lgico <Expresin 1> = valor lgico


<Expresin 1> Operador_Lgico <Expresin 2> = valor lgico

Representacin Significado
OR Suma lgica (O)
AND Producto lgico (Y)
NOT Negacin (NO)

Ejemplos:
Expresin Resultado
Verdadadero AND Falso Falso
NOT Falso Verdad
Verdad OR Falso Verdad
NOT Veradero Falso
Verdad AND Verdad Verdad
Falso OR Verdadero Verdad

Por ejemplo, la expresin: (12 + 5) < 12 OR (7 + 3) = 10 es verdadera.


(12 + 5)<12 OR (7 + 3) = 10
17<12 OR 10 = 10
falso OR verdadero
verdadero

La expresin (12 * 5) = 60 AND NOT((3 + 2)=5) es falsa .


(12 * 5) = 60 AND NOT((3 + 2)=5)
60 = 60 AND NOT ((3 + 2)=5)
verdadero AND NOT ((5)=5)
verdadero AND NOT (verdadero)
verdadero AND falso
falso

Universidad Politcnica Salesiana del Ecuador Pgina 15 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

4. Asignaciones

En las secciones anteriores hemos supuestos que las variables contienen algn
valor, en un algoritmo la operacin de dar valor a una variable se llama asignacin.
En la mayora de los pseudocdigos el smbolo representa a la asignacin.
La estructura de la asignacin se muestra a continuacin:
Variable expresin
Si tenemos las siguientes sentencias:
X 5.5
Al leer esta lnea de cdigo el lector debe entender que la variable X es de tipo
numrica y que se le a asignado el valor de 5.5. al pasar esta lnea de cdigo la
variable X ahora posee el valor de 5.5
Nombre Rosita
En este caso tenemos una variable Nombre, la cual se le est asignando una
cadena de caracteres Rosita a travs del signo
X 5.5
C 0.5 + X
Tambin se pueden realizar las asignaciones con los operadores aritmticos, si
observamos detenidamente a la variable X se le asigna el valor de 5.5 en
primera instancia. Luego a la variable C se le asigna el resultado de la variable X
+ 0.5. en otras palabras a C se le ha asignado 6.
Talvez el lector tenga la siguiente pregunta. Por qu no utilizar el smbolo =
para la asignacin?. En la seccin 3.1 (Operadores Relacinales) utilizamos el
smbolo = para comparar dos expresiones. Si utilizamos el mismo smbolo
podramos confundirnos un poco. En la mayora de los lenguajes de
programacin se utilizan distintos smbolos para diferenciar la asignacin de la
comparacin. Veamos unos ejemplos:

Leguajes de Programacin Smbolo de comparacin Smbolo de asignacin


Java = :=
Java == =
C == =
Visual Basic = =

Smbolo de comparacin Smbolo de asignacin


Pseudocdigo =
Toda asignacin es destructiva. Esto quiere decir que el valor que tuviera antes
la variable se pierde y se reemplaza por el nuevo valor que asignamos, as
cuando se ejecuta esta secuencia:
B 25
B 100
B 77

Universidad Politcnica Salesiana del Ecuador Pgina 16 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

el valor Final que toma B ser 77 pues los valores 25 y 100 han sido destruidos.
Cuando una variable aparece en ambos lados del smbolo de asignacin como:
C C + 1
conviene inicializarlas al comenzar el programa con cero debido a que en
algunos varios lo hacen necesario.
Recordemos que no se pueden asignar valores a una variable de un tipo
diferente al suyo.

Pongamos atencin a este ejemplo de asignaciones:


A 0
B 1
C 4
AA+2*B
BC-A

Al Final de estas primeras acciones, A toma el valor 2 y B el valor 2.


C A+2*B
La expresin tomar el valor 2 + 2 * 2 = 2 + 4 = 6
C vale entonces 6.
B C A
C vale 6, A vale 2, por lo tanto B valdr 6 - 2 = 4
Como toda asignacin es destructiva, el valor anterior de B se pierde y pasa a
valer ahora 4.

Otro ejemplo:
J 33
Qu valor tiene J al Final ? Veamos.
Primero se asigna 33 a la variable J, J vale entonces 33; luego:
J J + 5
Esto es: Sumar 5 al valor de J y asignarlo a la variable J.
J 33 + 5 ; J = 38
J vale ahora 38.
El valor anterior que era 33 se destruy.
Seguimos:
J J * 3
Esto es: Multiplicar 3 al valor de J y asignarlo a la variable J.
J 38 * 3 ; J = 114
El valor Final de J es 114.

Universidad Politcnica Salesiana del Ecuador Pgina 17 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Problema 1.5
Considere las siguientes instrucciones:
A 3
B 12
C 12 div A
D A<>B
F Falso
E (B mod A=0) and D and (((C-1) = A) or ( F ))
donde A, B y C son variables numricas y D, E y F booleanas. Entonces es
verdad que:
a) E = Falso
b) E = Verdadero
c) D = Falso
d) B = (E and A) es una sentencia sin error
e) Todas las anteriores son falsas

Solucin:
Lo primero que se debe hacer en estos casos es obtener todos los valores de las
variables implicadas

A 3
B 12
C 4 Resultado de efectuar la operacin 12 div 3=4
D Verdadero Resultado de efectuar la comparacin A<>B
F Falso
E Verdadero

El valor de E se lo obtiene
E (B mod A=0) and D and (((C-1) = A) or ( F ))
Reemplazando
E (12 mod 3=0) and Verdadero and (((4-1) = 3) or ( Falso ))
E (0=0) and Verdadero and ((3 = 3) or ( Falso ))
E Verdadero and Verdadero and (Verdadero or Falso )
E Verdadero and Verdadero and Verdadero
E Verdadero
Comprobamos
E = Falso; es falso ya que E es Verdadero
E = Verdadero; E es Verdadero
D = Falso; es falso ya que D es Verdadero
B = (E and A) es una sentencia sin error es falso ya que no se puede asignar a
B la operacin lgica de
verdadero and 3
Todas las anteriores son falsas es falso ya que el literal b es Verdadero

Resp. Literal b

Universidad Politcnica Salesiana del Ecuador Pgina 18 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

5. Problemas propuestos

1. Dasos los valores correspondientes a las variables


A=5 B=7 C=4
Evaluar
( 3 + A) Div B + C
( 7 Div (38 Mod C)) * 5
3 + C* A 35/7 B * 33/11
((1580 MOD 6*2^7) >(7+8*3^4))>((15*2)=60*2/4)

2. Identifique cual de los siguientes nombres pueden ser identificadores (variables)


Suma1
5Suma
cont 5
Contador_5
Hf_58
Real
String
La_Suma_Total_por_Almacen

2. Considere que A,B y C son variables numricas de tipo entero, E y F variables


de tipo real, G de tipo String, H e I de tipo boleano, entonces identifique las
sentencias que no causaran errores
AH
AE
E A + F
G5
A A + B + C*B
G romanos
IAB
IA=B
H NOT (I)
Para las sentencias que causaran errores, describa el tipo de error.

3. Si D y E son variables boleanas y A, B y C son variables numricas determinar


los valores de las variables al final de todos los pasos
A0
B 10
C 10 Div (A + 4)+ A*B-10
D Not (C B)
ABC
D NOT (A 49) OR (43 8* 2 DIV 4 <> 3 * 2 DIV 2)
E (A=B) AND ((C MOD A<= B) OR NOT(( C DIV B) MOD 2 = 0))

Universidad Politcnica Salesiana del Ecuador Pgina 19 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

4. Describir los pasos para realizar los siguientes problemas:


Hacer una llamada telefnica
Preparar una ensalada rusa
Sumar todos los totales de todas las facturas vendidas en un almacn
Obtener el promedio de las calificaciones de la materia programacin de un
curso dado
Obtener el permetro y el lado de un cuadrado dado el valor de un lado
Colocar dos litros de agua en un recipiente que tiene una capacidad de cuatro
litros tomando en consideracin lo siguiente:
Se cuenta con otros dos envases con capacidad de 5 y 3 litros
Se puede desechar el agua al enviar agua de un recipiente a otro
Los envases no poseen medidas
Llevar a un borrego, una col y a un lobo al otro lado de la orilla de un ro por
medio de una canoa y acompaado de una persona tomando en consideracin
lo siguiente:
La canoa solo soporta el peso de la persona y a otro acompaante ms
El borrego es devorado por el lobo si estos se quedan solos
Si el borrego se queda solo con la col, ste se la come.
Como es una canoa a motor, se desea realizar el nmero menor de viajes
posibles
Colocar los discos que se encuentran en la barra A a la barra C, tal que queden
ordenados de la misma manera. Puede utilizar la barra B como puente
(describir el menor nmero de pasos para llegar a la meta)
A B C

1
2
3

5. Las siguientes expresiones algebraicas


x
2
u) x v) x y x 3

x yy x xy y2

3/ 2

x y2
x y x)
w) x x y
x y x y
5 y
x1

xy2 x y

Universidad Politcnica Salesiana del Ecuador Pgina 20 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

6. Entrada y Salida de datos


Los datos que se obtienen del usuario para ser procesados deben ser asignados
a las variables declaradas en los programas y estas a los resultados requeridos
deben ser presentados.
Una operacin de lectura por lo general realiza la tarea de leer un dato y luego
asignarlo a una variable. La instruccin para la lectura de un dato es Leer o
tambin Ingresar u Obtener. Por ejemplo:
leer (numero)
Esta instruccin pide al usuario un valor que ser asignado a la variable
numero, es decir, en numero se almacena el valor ingresado por el usuario.
leer( Edad, Peso, Sexo)
Representa la lectura de tres valores que se van a almacenar en las variables
Edad, Peso y Sexo; en ese mismo orden.

Una vez procesada cualquier operacin por medio del cdigo se requiere
mostrar el resultado del algoritmo, siendo estos: mensajes, valores, etc. Para
realizar la operacin escritura se utilizar el comando Escribir o Imprimir. Por
ejemplo:

Escribir("Hola") ; muestra en la pantalla el mensaje Hola, Hola va entre comillas


porque es una cadena de caracteres

Escribir (A);
muestra en la pantalla el valor que est almacenado en la variable A. Si A posee
el valor de 7, se muestra como resultado el nmero 7.

Escribir( "El valor de A es:", A);


Esta instruccin muestra el mensaje que est entre comillas y luego el valor de
la variable A. La coma separa el mensaje de la variable. Si A = 7, lo que se ver
en la pantalla ser:
El valor A es: 7

Tambin se puede mostrar un mensaje cuando solicitamos algn dato al


usuario por medio del comando Leer :

Escribir( "Ingrese su edad")


Leer(edad)
El valor de la variable que pedimos al usuario se asigna a edad. Esta instruccin
se ver as en la pantalla:
Ingrese su edad __
El smbolo __ aparece automticamente cada vez que usamos el comando leer.
La escritura de pseudocdigos. Las acciones de lectura y escritura se
representan por los siguientes formatos:
leer (Variable o lista de variales separadas por comas)

Universidad Politcnica Salesiana del Ecuador Pgina 21 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Ejemplos:
leer (Edad)
leer (Ciudad, Pais)
Escribir (Variable o lista de variables separadas por comas)
Ejemplos:
Escribir (promedio)
Escribir( Mes, Ao, Da)
Escribir ("As se muestra un mensaje o comentario")

En resumen: Las instrucciones disponibles para escribir un programa dependen


del lenguaje de programacin utilizado. Existen instrucciones -o acciones-
bsicas que se pueden implementar de modo general en cualquier algoritmo y
que soportan todos los lenguajes de programacin. Estas son:

Nombre del Algoritmo


Variables a utilizar
Instrucciones de inicio/Fin
Instrucciones de asignacin
Instrucciones de lectura
Instrucciones de escritura

Tipo de Instruccin Pseudocdigo


Nombre del Algoritmo Algoritmo Nombre_del_Algoritmo
Declaracin de Variables Var Entero variable1, variable2
String Nombre, Curso
Comienzo de proceso Inicio
Fin de proceso Fin
Entrada (Lectura) Leer
Salida (Escritura) Escribir o Imprimir
Asignacin

Resolucin de Problemas
Antes de resolver un problema por medio de un pseudocdigo, es necesario
definirlo y comprenderlo claramente. Leeremos con atencin el enunciado del
problema y una vez comprendido responderemos a las preguntas:

Qu informacin debe proporcionar la resolucin del problema?


Cules son los datos que necesito para resolver el problema?

La respuesta de la primera pregunta nos dice que salidas va a proporcionar el


algoritmo y la segunda qu datos se nos proporcionan para resolver el
problema y cules debemos calcularlos.

Ejemplo:
Leer las longitudes de un rectngulo y calcular la superficie y el permetro.

Universidad Politcnica Salesiana del Ecuador Pgina 22 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Para calcular el rea y el permetro de un rectngulo, se necesitan las medidas


del ancho y el alto, estas medidas sern ledas en dos variables.
Las salidas sern los valores del rea y el permetro que sern calculados
utilizando frmulas.
Entradas: largo, ancho

Salidas: permetro, rea

Se recuerda que un algoritmo es una serie de pasos que se deben cumplir en


forma ordenada. Realicemos los pasos para resolver el problema mensionado.
Paso 1: Obtener el largo y el ancho del rectngulo
Paso 2: Asignar a una variable permetro dos veces su lado mas dos
veces su ancho
Paso 3: Asignar a una variable rea el lado multiplicado por su ancho
Paso 4: Presentar El permetro y el rea

El pseudocdigo es: Algoritmo Area_Rectangulo


Var
Entero largo, ancho, rea, permetro
Inicio
leer (largo)
leer ( ancho)
permetro (largo + ancho) * 2
rea largo * ancho
Escribir(El permetro es: , permetro)
Escribir(El rea es: , rea)
Fin

Ejemplo
Escribir un pseudocdigo que intercambie el valor de dos variables.
Si se tienen, por ejemplo A = 5 y B = 10, se quiere intercambiar el valor de las
variables, as: A = 10; B = 5.
No podemos asignar directamente el valor de una a la otra porque uno de los
valores se destruira; de modo que esto no se puede hacer:
A B (el valor de A se pierde y quedara A = 10 ; B = 10) .

La solucin consiste en asignar el valor Algoritmo Cambio


de una de las variables a otra variable auxiliar. Var
Entero A,B, Auxiliar
Paso 1: Obtener el valor de A y el de B Inicio
Paso 2: Asignar a una variable Auxiliar el valor de A leer (A,B)
Paso 3: Asignar a la variable A el valor de la variable B Auxiliar A
Paso 4: Asignar a la variable A el valor de la variable B A B
Paso 4: Presentar A y Ba B Auxiliar
Escribir A,B
Fin

Universidad Politcnica Salesiana del Ecuador Pgina 23 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Sigamos paso a paso el pseudocdigo:

leer A,B ........ Se pide al usuario dos valores. Supongamos que se ha ingresado
A = 100 ; B = 5
Auxiliar A ........ Se asigna a Auxiliar el valor 100. Auxiliar vale 100.

El valor de las variables es:


A B Auxiliar
100 5 100
A B ..... Se asigna a A el valor de B para intercambiar. Ahora el valor de las
variables es:

A B Auxiliar
5 5 100
B Auxiliar ........ El valor de A que se guard en Auxiliar se asigna a B para el
intercambio.

A B Auxiliar
5 100 100

El intercambio est hecho. Luego se imprimen los respectivos valores ya


intercambiados con la lnea:
Escribir(A,B)

Problema 1.6
Para que los valores de las variables i,j intercambien sus valores en el algoritmo Cambio

Algoritmo Cambio
Var Entero i,j
Inicio
Leer(i)
Leer(j)
---------------------------------
escribir(i)
escribir(j)
fin
se tiene que asignar en las lneas las siguientes sentencias:

a) i i+j b) j i+j c) i i - j d) i i+j


j i - j j i - j j i - j j i+j
i i - j i i - j i i - j i i - j

Solucin:
Si tomamos dos valores cualquiera par i y para j en este ejemplo i=3 j =5
entonces el resultado sera i=5 j=3. veamos

Universidad Politcnica Salesiana del Ecuador Pgina 24 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

a) Si cumple
i j
i i+j i 3+5 8 5
j i - j j 8 -5 8 3
i i - j i 8 - 3 5 3

b) No cumple
i j
j i+j j 3+5 3 8
j i - j j 3 -8 3 -5
i i - j i 3 (-5) 8 3

c) No cumple
i j
ii-j i 3-5 -2 5
j i - j j -2 -5 -2 -7
i i - j i -2-(-7) -2 5

d) No cumple
i j
i i+j i 3+5 8 5
j i+j j 8 +5 8 13
i i - j i 8 - 13 -5 13

Resp. Literal a

7. Contadores
Un contador es una variable destinada a contener valores que se van
incrementando o decrementando cada vez que se ejecuta la accin que lo
contiene. El incremento o decremento es llamado paso de contador y es
siempre constante.
Por ejemplo; el marcador de un partido de futbol, cada vez que un equipo
anota un gol, aumenta su marcador en una unidad.
En las carrera de automviles, cada vez que un vehculo pasa por la lnea de
meta, se incrementa en una unidad el nmero de vueltas dadas al circuito, o
bien se hace un decremento en una unidad al nmero de vueltas que quedan
por realizar.
Aunque el incremento es siempre constante, el paso de contador no
necesariamente puede ser la unidad como en los ejemplos que se han dado
ms arriba; tambin puede incrementarse o disminuirse de dos, tres, cuatro,....
n; es decir, puede ser cualquier nmero que conserva el mismo valor durante
todo el programa.

Universidad Politcnica Salesiana del Ecuador Pgina 25 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

La sintaxis de una variable contador es:


variable variable + constante (al incrementar)
variable variable - constante (al decrementar)

Ejemplos:
gol_local gol_local + 1
vueltas vueltas + 1
faltan faltan 1
de_cinco de_cinco + 5
cc+1
x x3

Observacin: Cuando una variable aparece a ambos lados del smbolo de


asignacin, conviene inicializarlas a cero.

8. Acumulador o Sumador
Es una variable que nos permite guardar un valor que se incrementa o
decrementa en forma NO constante durante el proceso. En un momento
determinado tendr un valor y al siguiente tendr otro valor igual o distinto.
Por ejemplo; cuando realizamos un depsito en el banco, la cantidad
depositada cada vez no es siempre la misma; unas veces ser una cantidad y
otras veces distinta. Lo mismo ocurre cuando realizamos algn retiro, pero
decrementando la cantidad total.

La sintaxis es:
acumulador acumulador + variable (al incrementar)
acumulador acumulador - variable (al decrementar)

acumulador es la variable en la que se almacena el resultado.


varible contiene el nmero que estamos incrementando o decrementando

Ejemplos:
saldo saldo + entrega
saldo saldo retiro
suma suma + numero
A A + edad

Universidad Politcnica Salesiana del Ecuador Pgina 26 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

9. Estructuras
Por lo general los lenguajes de programacin de las ltimas generaciones poseen
tres tipos de estructuras:
Estructura de secuencia
Estructura de Seleccin
Estructura de Repeticin

9.1. Estructuras de Seleccin


La estructura de seleccin, se ejecuta condicionalmente, es decir, si una cierta
condicin es verdadera se ejecuta un bloque de instrucciones, si es falsa se
ejecuta un bloque diferente de instrucciones. Por ejemplo, si en el cine
proyectan "Star Wars Episode I", entonces hay que formar fila para comprar
los billetes e ingresar al cine, si no, decidimos otra actividad como ir a bailar.
Si utilizamos una seleccin es para indicar que segn el resultado cierto o falso
de una expresin vamos a tomar una decisin de realizar determinadas
acciones especificadas; seleccionamos las acciones a realizar.
La instruccin que permite tomar una decisin, basada en una condicin es
Si...Entonces. Al evaluar la condicin, Si...entonces puede devolver solo dos
resultados posibles: Verdadero o Falso; es decir, Si o No.
El formato de la estructura de seleccin es:
Si condicin > entonces
instruccin 1
instruccin 2
...................
instruccin n
Si-no
instruccin n+1
instruccin n+2
...................
instruccin m
Fin-si
Observa como el sangrado permite identificar fcilmente que grupo de
instrucciones se ejecutan en cada caso. Por ejemplo, Cuando realizamos una
llamada telefnica:
Si {seal de ocupado} entonces
Colgar el telfono
si - no
Iniciar la conversacin
Fin si
En este caso, la condicin es {seal de ocupado}, que puede ser verdadera o
falsa. Si es verdadera, entonces debemos colgar el telfono y si no, podemos
relizar la conversacin.

Universidad Politcnica Salesiana del Ecuador Pgina 27 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Ejemplo:
Si A = 5 entonces
Escribir("A es 5" )
Si - no
Escribir "A no es igual a 5"
Fin si

Tambin puede obviarse el si - no cuando no nos interesa ejecutar un bloque


de instrucciones en caso de que la condicin no se cumpla.

Si {condicin} entonces
instruccin 1
instruccin 2
.........
instruccin n
Fin si

Por ejemplo:

Si {hoy es Mircoles} entonces


Comprar entradas para el cine
Fin - si

Ejemplo1: Introducir un nmero por teclado y determinar si es positivo o


negativo.

Para saber si un nmero es positivo o negativo, debemos saber si es menor


o mayor a cero. Si es mayor, el nmero es positivo y si es menor resulta
negativo. Utilizamos Si...
para evaluar como es el nmero con respecto a cero y mostramos los
mensajes correspondientes en cada caso. As:

Algoritmo Mayor1

Var

Entero Numero
Inicio
leer Numero
Si Numero < 0 entonces
Escribir "El nmero es negativo"
Si-no
Escribir "El nmero es positivo"
Fin-si
Fin

Universidad Politcnica Salesiana del Ecuador Pgina 28 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Ejemplo 2. Dados dos nmeros, establecer cul es mayor .


Comenzamos leyendo ambos nmeros, que en el ejemplo se llamarn
NumeroA y NumeroB. Luego debemos comparar como es uno contra el otro
(puede ser NumeroA contra NumeroB o bien comparar NumeroB contra
NumeroA):
Algoritmo Mayor1
Var
Entero NumeroA, NumeroB
Inicio
leer NumeroA, NumeroB
Si NumeroA < NumeroB entonces
Escribir( "El mayor es:", NumeroB )
si-no
Escribir( "El mayor es:", NumeroA )
Fin-si
Fin

En este ejemplo, que pasara si los nmeros fueran iguales?. Hagamos la prueba
Luego de leer los nmeros, por ejemplo: NumeroA=100 y NumeroB=100 se
ejecutan las instrucciones:
Si NumeroA < NumeroB entonces
Escribir "El mayor es:", NumeroB
El resultado de la condicin
Por lo tanto, al ser falsa la condicin, se ejecuta la instruccin Escribir ("El
mayor es:", NumeroA).
Por tanto, el algoritmo ofrecer una solucin incorrecta cuando los nmeros
son iguales. Para solucionar esto, tenemos que prever el caso de que los
nmeros sean iguales.

Algoritmo Mayor1
Var
Entero NumeroA, NumeroB
Inicio
leer (NumeroA, NumeroB)
Si (NumeroA < NumeroB) entonces
Escribir( "El mayor es:", NumeroB )
Si-no
Si
Escribir ("El mayor es:", NumeroA)
Si-no
Escribir("Los nmeros son iguales")
Fin-si
Fin-si
Fin

Universidad Politcnica Salesiana del Ecuador Pgina 29 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Esta solucin contiene dos estructuras de repeticin, una dentro de la otra


(anidada). En caso de ser necesario podemos anidar tantas estructuras de
seleccin como sea necesario. El algoritmo averigua si A es menor a B, si no lo
es, tenemos otras dos posibilidades: que sea menor o igual, esto es lo que
determina la estructura anidada.

Otro ejemplo de estructuras de repeticin anidadas, consiste en dado un


nmero del 1 al 7, establecer al da de la semana.

Algoritmo Dia_Semana
Var
Entero numero
inicio
leer numero
Si numero=1 entonces
Escribir ("Domingo")
si-no
Si numero=2 entonces
Escribir ("Lunes")
si-no
Si numero=3
Escribir( "Martes")
si-no
Si numero=4 entonces
Escribir ("Miercoles")
si-no
Si Numero=5 entonces
Escribir ("Jueves")
si-no
Si numero=6 entonces
Escribir ("Viernes")
si-no
Si numero=7 entonces
Escribir ("Sbado")
si-no
Escribir ("El nmero debe estar entre 1 y 7")
Fin-si
Fin-si
Fin-si
Fin-si
Fin-si
Fin-si
Fin-si
En esta solucin notar que existen varios Si...entonces anidados, ya que si el
nmero ingreso no es 1, se tiene que preguntar si es 2 3 4...etc. El ltimo

Universidad Politcnica Salesiana del Ecuador Pgina 30 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Si...entonces es para verificar que el nmero ingresado no es 1, 2, 3, 4, 5, 6 7;


sino cualquier otro que no interese
Resulta bastante tedioso anidar un montn de Si ... entonces, como en el
ejemplo del da de la semana. Cuando queramos o necesitemos hacer
numerosas comparaciones podemos usar otra estructura de seleccin llamada
Segn Sea. El formato de estructura de seleccin Segn sea es:
Segn sea <variable>
Caso = <condicin>
Caso = <condicin>
instruccin o instrucciones
Otro caso
instruccin o instrucciones
Fin-segn
As, utilizando esta estructura, el problema del da de la semana ser as:

Algoritmo Dia_Semana
Var
Entero numero
Leer numero
Segn sea numero
Caso = 1
Escribir "Domingo"
Caso = 2
Escribir="Lunes"
Caso = 3
Escribir="Martes"
Caso = 4
Escribir "Miercoles"
Caso = 5
Escribir "Jueves"
Caso = 6
Escribir "Viernes"
Caso = 7
Escribir "Sbado"
Otro Caso
Escribir ("El nmero debe estar entre 1 y 7")
Fin-segn
Fin
Lo cual resulta menos engorroso que varios Si... entonces anidados. Esposible
anidar Si... entonces dentro de estructuras Segn sea y viceversa.
Observa que la instruccin Otro Caso ejecuta una o varias instrucciones cuando
no se cumple ningn caso de los contemplados ms arriba. Otro Caso debe
estar siempre al Final (cuando sea necesario, si no o es se puede omitir Otro
Caso)

Universidad Politcnica Salesiana del Ecuador Pgina 31 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

El uso de una u otra estructura depende de cada persona, pero en general


cuando las condiciones a evaluar son muchas, se utiliza Segn sea.-
La estructura segn sea admite varias condiciones por ejemplo:

Segn sea MES


caso= 1,3,5,7,8,10,12
TDias = 31
caso = 2,4,6,11
TDias =30
caso = 2
TDias=28
Fin-segn
Este pequeo ejemplo establece el nmero de das de un mes determinado
almacenado en la variable MES (para aos no bisiestos). En lugar de escribir
varios Caso= 1, Caso =2, etc, se puede especificar accin o acciones (en este
caso la asignacin de dias a TDias) cuando la variable tome uno de los valores
separados por comas. Es decir si TDias es 1 3 5 7 8 10 12; se ejecuta
TDias=31.

Problema 1.7
Si se ingresa h=12, m=59, s=59 en el siguiente Algoritmo

Algoritmo Misterio2
Var
Entero h,m,s,H2,M2,S2
Inicio
Leer(h,m,s)
s s+1
Si s=60 entonces
S2 0
Si- no
S2 s
Fin Si
m ((m * 60) + s) div 60
Si m=60 entonces Se Obtiene:
M2 0 a) 13:0:1
Si-No b) 12:0:0
M2 m c) 13:1:0
Fin S d) 13:0:0
H2 ( (h*60)+m) div 60 e) Ninguna de las
Si H2 =24 entonces Anteriores
H2 0
Fin -Si
Escribir(H2,:,M2,:,S2)
Fin

Universidad Politcnica Salesiana del Ecuador Pgina 32 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Solucin:
Para resolver estos tipos de problemas no es necesario realizar la prueba de
escritorio con tablas, simplemente se siguen las secuencias reemplazando las
variables correspondientes

h=12, m=59, s=59 h=12, m=59, s=59


s s+1 s 59+1
Si s=60 entonces Si 60=60 entonces
S2 0 S2 0
Si- no Si- no
S2 s S2 s
Fin Si Fin Si
m ((m * 60) + s) div 60 m ((59 * 60) + 60) div 60
Si m=60 entonces Si 60=60 entonces
M2 0 M2 0
Si-No Si-No
M2 m M2 60
Fin S Fin S
H2 ( (h*60)+m) div 60 H2 ( (12*60)+60) div 60
Si H2 =24 entonces Si 13 =24 entonces
H2 0 H2 0
Fin -Si Fin -Si
Escribir(H2,:,M2,:,S2) Escribir(13,:,0,:,0)

a) falso b) falso c) falso d) verdaero e) falso

9.2. Estructuras Repetitivas


La estructura repetitiva se utiliza cuando se quiere que un conjunto de
instrucciones se ejecuten un cierto nmero Finito de veces. Llamamos bucle o
ciclo a todo proceso que se repite un cierto nmero de veces dentro de un
pseudocdigo o un programa.

Existen dos tipos de estructuras repetitivas; la primera es aquella en donde se


tiene perfectamente establecido el nmero de veces que un grupo de
acciones se van a ejecutar (20, 5, 2 veces), y la segunda en la que el nmero
de repeticiones es desconocido y se har hasta que se cumpla o no cierta
condicin.
Un ejemplo de la primera sera Escribir los datos de los alumnos de una clase
(se conoce cuantos alumnos hay) y un ejemplo de la segunda puede ser el
mostrar un mensaje de error cada vez que el usuario pulse una determinada
tecla (no sabemos cuantas veces pulsar esa tecla).
Las acciones que forman parte del cuerpo del bucle son ejecutadas de forma
repetitiva mediante la ocurrencia o no de una condicin.

Universidad Politcnica Salesiana del Ecuador Pgina 33 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

9.2.1. Estructura de repeticin Para (Desde-Hacer)


Cuando conocemos de antemano el nmero de veces en que se desea
ejecutar una accin o grupo de acciones, se utiliza la estructura
repetitiva Para o Para.
Esta estructura ejecuta las acciones del cuerpo del bucle un nmero
especificado de veces, y de modo automtico controla el nmero de
iteraciones o pasos.

La sintaxis es:
Para variable= Valor:inicial hasta Valor_Final [incremento]
accin o acciones
Fin-Para

Donde:
variable: variable ndice
Vi: valor inicial de la variable ndice
Vf: valor Final de la variable ndice
[incremento]: el nmero que se incrementa (o decrementa) a la
variable ndice en
cada iteracin del bucle, si se omite es 1.

Ejemplo:
Escribir todos los nmeros del 1 al 100.

Algoritmo Cien
Var
Entero i
Inicio
Para i = 1 hasta 100
Escribir (i)
Fin-Para
Fin

i es la variable ndice con un valor inicial de 1, se incrementa uno en


cada paso hasta 100.
Podemos notar que la estructura Para comienza con un valor inicial de la
variable ndice y las acciones se ejecutan hasta que el valor inicial sea
MAYOR que el que el Valor Final.
La variable ndice se incremente en uno (en el ejemplo) y si este nuevo
valor del ndice no es mayor que el valor Final, se ejecuta de nuevo la
accin Escribir.
En este caso se visualizar los nmeros 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ....97,
98, 99, 100 El incremento o paso de contador es siempre 1 si no es
especifica lo contrario.

Universidad Politcnica Salesiana del Ecuador Pgina 34 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Ejemplo:
Escribir todos los nmeros pares desde el 2 hasta el 300

Algoritmo Dia_Semana
Var
Entero i
Inicio
Para i= 2 hasta 300 incremento 2
Escribir(i)
Fin-Para
Fin

Donde:
La variable ndice i comienza en 2, se imprime 2 y en el siguiente paso se
incrementa (suma) 2 a la variable ndice que pasa a valer 4; se imprime
el 4 y como 4 es menor que

300 (valor Final) , se pasa a una nueva iteracin incrementando


nuevamente en 2 el ndice, que ahora vale 6; y as sucesivamente...
Aqu se visualizan: 2, 4, 6, 8, 10, 12, 14, 16, 18, ..... 296, 298, 300

Si deseamos mostrar los impares el algoritmo es el siguiente:

Para i= 1 hasta 300 incremento 2


Escribir (i)
Fin-Para

La variable ndice toma estos valores:


ndice o Paso (veces que se ejecuta el ciclo) Valor de I
1 1
2 3
3 5
... ...
150 299

Vemos los valores: 1, 3, 5, 7, 9, 11, 13, .... , 299


El ciclo termina mostrando 299 puesto que en el siguiente paso, La
variable I valdra 301 y es mayor al lmite establecido de 300. I pasa a
valer realmente 301 en el ltimo paso, solo que la instruccin de Escribir
no se ejecuta porque el limite de 300 se supera.
Si diramos la instruccin de Escribir el valor de i, inmediatamente
despus del Fin-Para, veamos 301.

Ejemplo 3: Escribir los valores comprendidos entre el 460 y 500 en


orden inverso.

Universidad Politcnica Salesiana del Ecuador Pgina 35 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Debemos mostrar: 500, 499, 498, 497, ..... 462, 461, 460. En este caso
haremos un decremento a la variable ndice (no un incremento como en
los ejemplos anteriores). Tenemos que comenzar nuestra variable ndice
en 500 y decrementar una unidad hasta alcanzar el 460, as:

Para i= 500 hasta 460 incremento -1


Escribir I
Fin-Para
Indice o Paso (veces que se ejecuta el ciclo) Valor de I
1 500
2 499
3 498
... ...
40 461
41 460
Como salida tenemos, entonces: 500, 499, 498, 497, 496, 495, 494, ....
464, 463, 462, 461, 460.

El segundo tipo de estructura repetitiva se diferencia de la primera en


que no se conoce el nmero de repeticiones o iteraciones en que se va a
ejecutar una instruccin o un bloque de instrucciones.
Estas estructuras son bsicamente dos: Estructura mientras....Fin-
mientras y la estructura repetir.... hasta. Estas dos se diferencian en que
la verificacin de la condicin para repetir el ciclo se hace al inicio con
mientras y al Final con repetir
Tambin existen estructuras repetitivas que son combinaciones de estas
dos que mencionamos, pero aqu no las estudiaremos.

Problema 1.8
Si se ingresa un nmero n=15 en el siguiente algoritmo

Algoritmo incgnita
Var
Entero n,i
Inicio
Leer(n)
Para i=2 hasta n
Si i mod n <>0 Entonces
Escribir(i)
Fin-Si
Fin - Para
Fin

Universidad Politcnica Salesiana del Ecuador Pgina 36 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Entonces se imprime:
a) 2,4,6,7,8,9,10
b) 11,12,13,14
c) 3,5,15
d) 2,4,6,7,8,12,13,14
e) Ninguna de las anteriores

Solucin:
Realizando la tabla para la corrida se consideran dos variables n e i:

n=15 I i mod n<>0 Se imprime i si i mod n<>0 es verdadero


2 2 mod 15=2 2
3 3 mod 15=3 3
4 4 mod 15=4 4
5 5 mod 15=5 5
6 6 mod 15=6 6
7 7 mod 15=7 7
8 8 mod 15=8 8
9 9 mod 15=9 9
10 10 mod 15=10 10
11 11 mod 15=11 11
12 12 mod 15=12 12
13 13 mod 15=13 13
14 14 mod 15=14 14
15 15 mod 15=0

a) Falso b) Falso c) Falso d) Falso e) Verdadero

Resp. Literal e

Problema 1.9
Algoritmo incgnita
Si en el algoritmo siguiente
Var
se ingresa un nmero
Entero n,i,S
par positivo para n
Inicio
S 0
Leer(n)
Para i=1 hasta n
Si (n mod i )= 1 entonces
SSi
Si- no
SS+i
Fin - Si
Fin Para
Escribir(S)
Fin

Universidad Politcnica Salesiana del Ecuador Pgina 37 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Calcula:
a) S= 01+23+4....+n
b) S= 0+1+2 +34 .+n
c) S= 01234 .n
d) S= 0+12 +34.+n
e) S= 0+1 +23+4.+n

Dando valores para el primer nmero par positivo


n=2 i S n mod i=1 S S-i S S+i S Se imprime
1 0 2 mod 1=1 falso S+1 0+1
2 2 2 mod 2=1 falso S+2 0+1+2 3

Probando para el siguiente nmero par positivo


n=4 i S n mod i=1 S S-i S S+i S Se imprime
1 0 4 mod 1=1 falso S+1 0+1
2 2 4 mod 2=1 falso S+2 0+1+2 3
3 3 4 mod 3=1 verdad S-3 0+1+2-3 0
4 0 4 mod 4=1 falso S+4 0+1+2-3+4 4

Se podra seguir probando para el siguiente nmero pero sera algo


innecesario, puesto que se podra dar solucin con estos antecedentes.
Se puede observar que como n es par siempre termina la sumatoria en
+n, as que el literal c es falso.
Observamos adicional que cuando i = 3, este se suma con signo negativo
as que el literal b y d son falsos.

Por ltimo podemos percatarnos que cuando i = 1, este se suma con


signo positivo asi que el literal a es falso y el literal e es verdadero

a) falso b) falso c) falso d) falso e) verdadero

Resp. Literal e

9.2.2. Estructura de repeticin Mientras


Como su nombre lo indica, esta estructura repite el cuerpo del bucle
mientras se cumpla una determinada condicin. Su sintaxis es:

mientras {condicin}
accin 1
accin 2
accin 3
.....
accin n
Fin mientras
instruccin X

Universidad Politcnica Salesiana del Ecuador Pgina 38 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Lo primero que el computador hace es examinar la condicin, lo que


puede dar como resultado dos posibilidades:

La condicin se cumple: Se ejecutan accin 1, accin 2, accin 3, ...,


accin n. Las estar repitiendo hasta que la condicin no se cumpla,
entonces se sale del ciclo y se siguen ejecutando la o las instrucciones
que vienen a continuacin y estn fuera del bucle; instruccin X.
La condicin no se cumple: No entrar en el ciclo. Se ejecutan las
instrucciones que vienen despus del bucle, instruccin X, por ejemplo.

De esto se deduce que el cuerpo del bucle de una estructura mientras


puede repetirse cero o ms veces, veces que son determinadas por el
cumplimiento o no de la condicin.
Ejemplo
mientras contrasea < > Oscar
Escribir "La contrasea es incorrecta !"
Fin-mientras
Escribir ("Ha ingresado la contrasea correcta")

Veremos ms ejemplos de esta estructura en la seccin ejercicios. Al


analizarlos comprenderemos mejor como funciona.-
Problema 1.10
Si se ingresa a=3, b=2, c=1 y r =8 en el siguiente algoritmo

Algoritmo Misterio2
Var
Entero a,b,c,r,s
Inicio
Leer(a,b,c,r)
Mientras a+b+c <> r
Si a+b+c< r entonces
aa-1
Si-No
bb-1
Fin-Si
ca+b
Escribir(r)
Fin Mientras
Fin

se imprime:
a) 8
b) 8, 8,
c) 8,8,8,8
d) 8,8,8
e) Algo diferente a las alternativas anteriores

Universidad Politcnica Salesiana del Ecuador Pgina 39 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Solucin:
Analizando el algoritmo verificamos que hay una estructura de repeticin
Mientras, la cual siempre se genera la repeticin Mientras la condicin sea
verdadera. La condicin es a+b+c <> r

Ingresando los valores respectivos para cada variable segn el problema se


tiene
a=3 b=2 c=1 r=8

Realizando la respectiva prueba de escritorio

a+b+c <> r a b c r Se imprime


1 3+2+1<>8 verdadero 2 2 4 8 8
2 2+2+4<>8 falso

En la lnea 1 tenemos que a,b y c se evalan con los valores ingresados y se


comparan con r. Como la condicin fue verdadera se realiza la operacin
a a 1 cambiando el valor de a=3 a a=2 e imprimiendo el valor de r. Se
realiza una nueva comparacin con el nuevo valor de a=2 en la lnea 2. la
condicin fue falsa y quedamos fuera del ciclo Mientras y fuera del programa
Comparando las alternativas tenemos que
a) verdadero b) falso c) falso d) falso e) falso
Resp. Literal a

Problema 1. 11

Cuando se ingresa x=3 y n=81 en el siguiente algoritmo

Algoritmo Misterio
Var
Entero x,y,n
Inicio
y 1
i 1
Leer(x)
Leer(n)
Mientras i< n
ix*i
yy+1
Fin Mientras
Escribir(y)
Fin

Se imprime
Universidad Politcnica Salesiana del Ecuador Pgina 40 /620
Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Realizando la respectiva tabla de la corrida


X=3 n=81 i y i< n Se imprime
1 0 1<81 veradero
3 1 3<81 veradero
9 2 9<81 veradero
27 3 27<81 veradero
81 4 81<81 falso 4
a) falso b) falso c) verdadero d) falso e) falso

Resp. Literal c

9.2.3. Estructura de repeticin Repetir


La estructura repetir cumple la misma funcin que la estructura
mientras. La diferencia est en que la estructura mientras comprueba la
condicin al inicio y repetir lo hace al Final; por eso la estructura repetir
se ejecuta por lo menos una vez.La sintaxis es:
repetir
intruccin 1
instruccin 2
instruccin 3
...... hasta {condicin}
instrucin X
Repetir es opuesta a la estructura mientras. Repetir se ejecuta hasta que
se cumpla una condicin que se comprueba al Final del bucle. Esto
implica que las instrucciones que forman el cuerpo del bucle se ejecutan
por lo menos una vez. Con la estructura mientras el bucle puede
ejecutarse 0 o ms veces.
Lo que la computadora hace al ejecutar la estructura repetir es:
Se ejecutan: instruccin 1, instruccin 2, instruccin 3, ......
Se evala la condicin. Si esta es FALSA se vuelve a repetir el ciclo y se
ejecutan instruccin 1, instruccin 2, instruccin 3, ......
Si la condicin es VERDADERA se sale del ciclo y se ejecuta instruccin X.
Recordemos una vez ms las diferencias entre las estructuras mientras y
repetir
MIENTRAS REPETIR
Comprobacin de la condicin al inicio, Comprobacin de la condicin al Final,
antes de entrar al bucle despus de haber ingresado una vez al bucle
Las instrucciones del cuerpo del bucle se
Las instrucciones del cuerpo del bucle se
ejecutan en forma repetitiva si la
ejecutan si la condicin es falsa
condicin es verdadera
Las acciones del bucle se pueden Las acciones del bucle se ejecutan por lo
ejecutar 0 o ms veces menos una vez

Universidad Politcnica Salesiana del Ecuador Pgina 41 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Ejemplo:
Repetir
Escribir ("Escriba la contrasea para ingresar al sistema" )
Leer(contrasea)
Hasta contrasea = "Seron2003"
Problema 1.12
Se tiene el siguiente problema: Si se ingresa un nmero entero N, se desea
presentar el resultado (12 + 22 + 32 + ... N2 )
Solucin
Paso1: Se obtiene el valor de N
Paso2: Se asigna a un contador i el valor de Cero
Paso3: Se asigna a una variable S0
Paso4: Se asigna a S S+i*i
Paso5: Se incrementa ii+1
Paso6: Se Pregunta si i=N, si es verdad ir al paso 7, si es falso ir al paso 4
Paso7: Se Presenta S

Entonces es verdad que:


a) El Paso4 debera ser: Si asigna S S*S, para que el algoritmo cumpla con
su objetivo
b) El Paso2 debera ser: Si asigna a un contador i el valor de uno, para que el
algoritmo cumpla con su objetivo
c) El Paso3 debera ser: Si asigna a una variable S 20, para que el algoritmo
cumpla con su objetivo
d) Si se intercambian los Pasos : Paso4 y Paso5, el algoritmo cumpla con su
objetivo
e) El algoritmo cumple con su objetivo
Solucin:
Cuando no se tiene mucha experiencia con el manejo de algoritmos lo
conveniente es hacer una prueba de escritorio para resolver estos tipos de
problemas.

N=1 i=0 S=0 i S i=n Se imprime


1 0 1=1 verdadero 0
Definitivamente el algoritmo no cumple con su objetivo as que es fcil
determinar que la respuesta a esta pregunta no es el literal e, ya que por lo
menos debera imprimirse 1 si n=1
Entonces hay que realizar el respectivo anlisis por cada literal:

El Paso4 debera ser: Si asigna S S*S, para que el algoritmo cumpla con su
objetivo

N=1 i=0 S=0 i S i=n Se imprime


1 0 1=1 verdadero 0

Universidad Politcnica Salesiana del Ecuador Pgina 42 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Aqu ya deja de cumplir con el objetivo ya que si n= 1 debe imprimir 1

El Paso2 debera ser: Si asigna a un contador i el valor de uno, para que el


algoritmo cumpla con su objetivo

N=1 I=0 S=0 i S i=n Se imprime


2 1 2=1 falso
3 5 3=1 falso
. . ..

Si n=1 existe un ciclo infinito, ya que no el valor de i se incrementa y siempre la


condicin es falsa. El algoritmo no cumple con su objetivo

El Paso3 debera ser: Si asigna a una variable S 20, para que el algoritmo
cumpla con su objetivo.
Realizar este anlisis estara dems, ya que no se puede encerar una variable
de tipo sumador con una cantidad diferente de cero en este ejemplo
El algoritmo no cumple con su objetivo

Si se intercambian los Pasos : Paso4 y Paso5, el algoritmo cumpla con su


objetivo

n=1 i=0 S=0 i S i=n Se imprime


1 1 1=1 verdadero 1

n=2 i=0 S=0 i S i=n Se imprime


1 1 1=2 falso
2 5 2=2 verdadero 5

n=2 i=0 S=0 i S i=n Se imprime


1 1 1=3 falso
2 5 2=3 falso
9 5 3=3 verdadero 14

El algoritmo cumple con su objetivo, con esto se llega a la conclusin de que la


respuesta es el literal c
Resp. Literal c

Universidad Politcnica Salesiana del Ecuador Pgina 43 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

10.Problemas propuestos

Preparar un Algoritmo que solicite el nombre y el ao de nacimiento y calcule la


edad del usuario.
Escribir un Algoritmo que sume, reste, multiplique y divida dos nmeros
Escribir un Algoritmo que evale la siguiente expresin:
(a+7*c)/(b+2-a)+2*b+2
Escribir un algoritmo que determine cuntos minutos existen en n segundos.
Escribir un Algoritmo que muestre un mensaje afirmativo si el nmero introducido
es mltiplo de 5
Dado un nmero determinar si es positivo, negativo o cero.
Escribir un Algoritmo que calcula el equivalente en grados Fahrenheit o Celsius
{Regla de 3: Celsius / 5 = (Fahrenheit 32) 9}
Ingresar tres valores; M, N y P. Si M es menor a N hacer R= M*N + P. En caso
contrario, hacer R = (M+N) * P.
Dados dos nmeros, dar la relacin entre ellos. Sealar el mayor, el menor o
especificar si son iguales
Preparar un Algoritmo que calcule la media de tres nmeros.
Escribir un Algoritmo que dado un nmero del 1 a 7 escriba el correspondiente
nombre del da de la semana.
Disear un Algoritmo para resolver una ecuacin de segundo grado.
Para hallar la raz cuadrada de un nmero, lo elevamos a la potencia utilizando xy
= x^y
Leer una serie de nmero que deben finalizar con 9999. Calcular e imprimir el
promedio de los nmeros ingresados.
Determinar si un nmero Real ingresado por teclado es Entero
Determinar si un nmero Entero n ingresado por teclado puede evaluar la
siguiente expresin:
1
1 1 n
n

Leer un nmero N que sea entero positivo, e imprimir todos los pares entre 1 y H
inclusive.
Escribir un Algoritmo que calcule el equivalente en pies de una longitud de n
metros. 1 metro -------------39.27 pulgadas
12 pulgadas --------1 pie
Escribir un Algoritmo que detecte si se han introducido en orden creciente tres
nmeros introducidos por el usuario
Leer un nmero entero n que represente una cantidad de segundos, luego
presentar en formato hora, minuto y segundo
Leer un nmero entero positivo menor que 35 y calcular su factorial.
El factorial del nmero n se calcula as: 1 x*2 * 3 * 4 * ......* n-1, * n
As el factorial de 4 = 1*2*3*4 = 24
No existen factoriales de nmeros negativos.
El factorial de n = n(n-1)!.
El factorial de 0 = 1.
El factorial de 1 = 1.
Escribir un Algoritmo que imprima los primeros N trminos de la sucesin de
Fibonacci.

Universidad Politcnica Salesiana del Ecuador Pgina 44 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

La serie de Fibonacci es:


0,1,1,2,3,5,8,13,21
Se inicia en 0, luego el uno, el siguiente termino ser la suma de los dos
anteriores:
0, 1 , 0+1 = 0, 1, 1
luego
0,1,1,1+1 = 0, 1, 1, 2
y as sucesivamente
0,1,1,2, 2+1 = 0, 1, 1, 2, 3
Escribir un Algoritmo que determine si un nmero ingresado es primo
Intercambiar el valor de dos variables sin utilizar una variable auxiliar
Dados dos nmeros enteros, calcular su producto sin utilizar el operador de
multiplicacin (*)
Dados dos nmeros, N y P elevar el nmero N a la potencia P sin utilizar el
operador de potencia (^) ni el operador de multiplicacin (*)
Escribir un Algoritmo que lea tres nmeros y los imprima de forma ascendente.
Escribir un Algoritmo que pida un nmero y si el que se introduce por el teclado es
menor de 100 que vuelva a solicitarlo
Escribir un Algoritmo que calcule la suma de los cuadrados de los n primeros
nmeros enteros
Escribir un Algoritmo que lea n datos desde el teclado y sume slo aquellos que
sean negativos.
Escribir un algoritmo que muestre la suma total de todos los nmeros primos que
existen entre m y n (n>m, m>1).
Escribir un Algoritmo que imprima el total de la siguiente cantidad:
1 2 3 ... n
Donde n se ingresa por teclado
0! 1! 2! (n 1)!
Escriba un algoritmo que imprima el total de S y de f de la siguiente secuencia:
S S i * f Si i es par

f S i Si i es impar
S f Si i n

Donde n ingresa por teclado e i varia desde 1 hasta n
Escriba un algoritmo que encuentre el (los) valor(es) de x, tal que cumpla que f(x) sea
el mayor de todos que existe en un intervalo [a,b] donde a x b
x3 x2
f ( x) 6x a,b,x son nmeros enteros
3 2
Escribir un Algoritmo que determine Cuantas Horas, Minutos y Segundos hay
despus de un segundo

Universidad Politcnica Salesiana del Ecuador Pgina 45 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Universidad Politcnica Salesiana del Ecuador Pgina 46 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Segunda Parte
FLUJO DE DATOS

Universidad Politcnica Salesiana del Ecuador Pgina 47 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

11. Diagramas de flujos

Un diagrama de flujos representa la esquematizacin grfica de un algoritmo. En


realidad muestra graficamente los pasos o procesos a seguir para alcanzar la
solucin de un problema. Su correcta construccin es muy importante ya que a
partir del mismo se escribe un programa en algn lenguaje de programacin. Siel
diagrama de flujos esta completo y correcto, el paso del mismo a un lenguaje de
programacin es relativamente simple y directo.

A continuacin se presentan los siguientes simbolos y la explicacin del mismo que


se va a utilizar en el presente captulo

Smbolo Explicacin

Smbolo utilizado para marcar el inicio


y el fin de un diagrama de flujos

Smbolo utilizado para introducir datos


e impresiones de resultados.
Representa entradas y salidas

Smbolo utilizado para representar un


proceso. En su interior se expresan
asignaciones, operaciones aritmticas .

Smbolo utilizado para representar una


decisin. En su interior se almacena
V una condicin y dependiendo del
resultado de la evaluacin de la misma
se sigue por una de las ramas o
caminos alternativos. Este smbolo
F representa la estructura de decisin si-
entonces / si-entonces sino.

Smbolo utilizado para expresar la


direccin de flujo del diagrama

Universidad Politcnica Salesiana del Ecuador Pgina 48 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

12. Reglas para la contruccin de diagramas de flujos

1. Todo diagrama de flujos debe tener un inicio y un fin

INICIO

.
.
.

FIN

2. Las lneas utilizadas para indicar la direccin del flujo del diagrama deben ser
rectas, verticales u horizontales.

No deben ser inclinadas ni


tampoco deben cruzarse

3. Todas la lneas utilizadas para indicar la direccin del flujo del diagrama
deben estar conectadas. La conexin puede ser un smbolo que represente
lectura, proceso, decisin, impresin o fin del diagrama.

Universidad Politcnica Salesiana del Ecuador Pgina 49 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

4. No puede llegar mas de una lnea a un smbolo.

Diagramas no vlidos Diagrama vlidos

Etapas a seguir en un diagrama de flujos

INICIO
La mayor parte de los diagramas
de flujos tienes esta estructura
LECTURA
DE DATOS acompaado de un bloque de
decisin aunque en orden dife-
PROCESAMIENTO rentes. Con estos diagramas de
DE DATOS flujos se construyen ciclos de
repeticin, los cuales veremos en
IMPRESIN los ejemplos siguientes
DE RESULTADOS

FIN

Universidad Politcnica Salesiana del Ecuador Pgina 50 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

13. Problemas suplementarios resueltos

i. Escribir un Diagrama de flujos que calcula el area de un rectngulo ingresando su base y su altura

INICIO Inicio

Leer(base) leer (base)


Leer(altura) leer ( altura)

Area base * altura Area base * altura

Area
Escribir(El rea es: , rea)

Fin
FIN

ii. Escribir un Diagrama de flujos y un que calcula la cantidad de minutos que existen en S segundos

Inicio
INICIO

leer (S)
Leer(S)

M S/60 M S /60

M Escribir(Minutos son: , M)

Fin
FIN

Universidad Politcnica Salesiana del Ecuador Pgina 51 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

iii. Realice un Diagrama de flujos que determina si un nmero ingresado es mayor que cero

Inicio
INICIO

Leer(n) leer (n)

V Si n > 0 entonces
n>0
Escribir(Mayor a cero)
Si-no
Escribir(No es mayor a cero)
F
Fin -Si
No es mayor a 0 Mayor a 0

Fin

FIN

iv. Realice un Diagrama de Flujos que determina si un nmero es mayor que cero, menor que cero o
igual a cero

INICIO
Inicio

leer (n)
Leer(n)
Si n > 0 entonces
Escribir(Mayor a cero)
F F Si-no
n>0 n<0 Si n < 0 entonces
Escribir(Menor a cero)
V V Si-no
Escribir(Igual a cero)
Mayor a 0 Menor a 0 Igual a 0 Fin -Si
Fin -Si
Fin

FIN

Universidad Politcnica Salesiana del Ecuador Pgina 52 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

v. Realice un Diagrama de Flujos que imprime la palabra fin si se ingresa el nmero -9999

Inicio
INICIO
Repetir

Leer(n) leer (n)

n = -9999 F

Hasta n=-9999
V

Fin
Escribir(Fin)

Fin
FIN

vi. Realice un Diagrama de Flujos que calcule la suma de los primeros n nmeros enteros

Inicio
INICIO

S0
i0 S0
i0
Leer(n)
leer (n)
Mientras i < > n
ii+1
V ii+1 SS+i
i <>n SS+i
Fin-Mientras
F Escribir(S)
Fin
S
FIN

Universidad Politcnica Salesiana del Ecuador Pgina 53 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

vii Algoritmo que calcula el promedio de una serie de datos que termina con el -9999

Inicio
INICIO

S0 S0
i0 i0

Leer(n)
leer (n)

Repetir
ii+1
F ii+1
n = -9999 SS+n
SS+n
leer (n)
V Hasta n= -9999

PS/i PS/i

Escribir(P)
P

Fin
FIN

viii. Escriba un Diagrama de Flujo que calcula el valor de 2n

INICIO

R1
i0

Leer(n)

V RR*2
i< n i i + 1

F
R FIN

Universidad Politcnica Salesiana del Ecuador Pgina 54 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

ix. Escribir un Diagrama de Flujos que imprime todos los divisores de n y presente la suma de los
mismos

INICIO

S0
i0

Leer(n)

V V SS+i
i<n n mod i
i i + 1

F F

FIN

Problema 1.13
El siguiente diagrama de flujos
INICI
O

var i 1
i,n j 0

leer(n)

V i 2*I
j<n
j j+1

F i FIN

Calcula:
a) 2n b) 2n + 1 c) 2n 1 d) 22n e) N.A

Universidad Politcnica Salesiana del Ecuador Pgina 55 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Solucin
Realizando la prueba de escritorio para valores de se tiene

n=1 j=0 i=1 j<n i j Se imprime


0 < 1 verdadero 2 1
1 < 1 falso 2

n=2 j=0 i=1 j<n i j Se imprime


0 < 2 verdadero 2 1
1 < 2 verdadero 4 2
2 < 2 falso 4

Con estos dos valores ya podemos ir deduciendo que alternativa podra ser,
pero para estar mas seguros realizaremos una corrida mas para un valor de n

n=3 j=0 i=1 j<n i j Se imprime


0 < 3 verdadero 2 1
1 < 3 verdadero 4 2
2 < 3 verdadero 8 3
3 < 3 falso 8

Para n=1 se tiene 2


Para n=2 se tiene 4 que es igual a 2*2 y este a su vez igual a 2 2
Para n=3 se tiene 8 que es igual a 2*2*2 y este a su vez igual a 23
Entonces podemos deducir que lo que calcula el algoritmo es 2n que nos lleva a
deducir que la respuesta correcta es la alternativa a.

Problema 1.14
Segn el siguiente diagrama de flujos

Inicio
Se obtiene
a) 1,3,5,7,9
Var b) 5
i,n c) 4
d) 3
n 32 e) Ninguna de las anteriores
i1

V
i<n i i*2

i Fin
F

Universidad Politcnica Salesiana del Ecuador Pgina 56 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Solucin:
Realizamos la prueba de escritorio correspondiente

N=32 i i<n Se imprime


1 1<32 verdadero
2 2<32 verdadero
4 4<32 verdadero
8 8<32 verdadero
1 16<32 verdadero
6
3 32<32 falso 32
2

a) falso b) falso c) falso d) falso e) verdadero

Problema 1.15
Dado el siguiente diagrama de flujos

INICIO

Var i1
Leer(n)
i,S,n S 0

F i .i+1
i=n n mod i=0
S S+ i

V
V

S i

Entonces es verdad que:


FIN
a) Si se ingresa n = 6 se imprime solo el nmero 6
b) Si se ingresa n = 8 no se imprime el nmero 2
c) Si se ingresa n = 7 se imprime solo el nmero 7
d) Si se ingresa n = 3 se imprime solo el nmero -1
e) Si se ingresa n = 2 se imprime solo el nmero 0

Universidad Politcnica Salesiana del Ecuador Pgina 57 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Solucin
a) falso
N=6 i S i=n n mod i Se imprime
1 0 1=6 falso
2 2 6 mod 2=0 verdadero 2

b) falso
N=8 i S i=n n mod i Se imprime
1 0 1=8 falso
2 2 8 mod 2=0 verdadero 2

c) verdadero
N=7 I S i=n n mod i Se imprime
1 0 1=7 falso
2 2 7 mod 2=0 falso
2=7 falso
3 5 7 mod 3=0 falso
3=7 falso
4 9 7 mod 4=0 falso
4=7 falso
5 14 7 mod 5=0 falso
5=7 falso
6 20 7 mod 6=0 falso
6=7 falso
7 27 7 mod 7=0 verdadero 7

d) falso
N=3 I S i=n n mod i Se imprime
1 0 1=3 falso
2 2 3 mod 2=0 falso
2=3 falso
3 5 3 mod 3=0 verdadero 3

e) falso
N=2 I S i=n n mod i Se imprime
1 0 1=2 falso
2 2 2 mod 2=0 verdadero 2

a) falso b) falso c) verdadero d) falso e) falso

Resp. Literal c

Universidad Politcnica Salesiana del Ecuador Pgina 58 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Problema 1.16
El diagrama de flujos siguiente INICIO
tiene sentido?.
Si lo tiene, qu calcula?
Leer(h,m,s)

s s+1

F
s = 60 S2 s

V
S2 0
m m+1

m = 60 F M2 m

V
M2 0
h h+1

h = 24 F H2 h

V
H2 0

H2
M2
S2

FIN

La solucin se la dejamos al lector

Universidad Politcnica Salesiana del Ecuador Pgina 59 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

14. Problemas suplementarios

i. Escribir un programa en Java que sume dos nmeros


ii. Escribir un programa en Java que sume, reste, multiplique y divida dos nmeros
iii. Escribir un programa en Java que calcule el rea de un rectngulo
iv. Escribir un programa que calcule la longitud y el rea de una circunferencia
(longitud de la circunferencia = 2 * PI * radio)
rea de la circunferencia = PI * radio2
v. Escribir un programa en Java que calcule la velocidad de un proyectil que
recorre 2
Km en 5 minutos. Expresar el resultado en metros/segundo.
(Velocidad = espacio/tiempo)
vi. Escribir un programa en Java que calcule el volumen de una esfera:
radio = 3 volumen de la esfera = 4/3 * PI * radio3
vii. Escribir un programa en Java que evale la siguiente expresin:
(a+7*c)/(b+2-a)+2*b
viii. Escribir un programa en Java que evale la siguiente expresin:
(a+5) * 3 / 2 * b - b
ix. Escribir un programa en Java que calcule el rea y el volumen de un cono
x. Escribir un programa en Java que calcule el rea y el volumen de un cono
A = (PI * r * l)+ (PI * r2)
V = (PI * r2 * h)/3
xi. Escribir un programa en Java que calcule la hipotenusa de un tringulo
rectngulo
xii. Escribir un programa que lea dos nmeros enteros A y B, y obtenga los
valores A div B, A mod B.
xiii. Escribir un programa en Java que calcule el nmero de horas, minutos y
segundos que hay en n segundos.
xiv. Escribir un programa en Java que calcule el capital producido por un capital
de C de dlares, al cabo de un ao depositado a una tasa de inters del i.
xv. Escribir un programa en Java que calcula la siguiente expresin
trigonomtrica para un valor angular de 90
(sen x * cos x)/(tan x)

Universidad Politcnica Salesiana del Ecuador Pgina 60 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

15. Estructuras condicionales

Una sentencia condicional en Java para ejecutar una sola instruccin se la


muestra de la siguiente forma:
if <Expesin> then if <Expesin> then Instrucccin1;
Instrucccin1;

Se ejecuta la Instruccin1 slo si la Expresin1 es verdadera. El punto y la coma


al final de la instruccin1 cierra la estructura If - Then Ejemplo:
Escribir un programa en Java que verifique si un nmero ingresado es mayor
que cero e imprima un mensaje slo si es.
Program Programa1;
Var i: Integer;
Begin
Readln( i );
If i >0 then
Writeln( El Nmero es mayor a cero );
End.

Supongamos que se desean ejecutar mas de una instruccin en la misma


condicin. Se tiene lo siguiente:
if <Expesin> then
Begin
Instrucccin1;
Instruccin2;
...
InstruccinN;
End;

El punto y la coma que se encuentra despus del End cierra el Begin y la estructura
If Then . Ejemplo:
Escribir un programa en Java que verifique si un nmero ingresado es mayor que cero
e imprima un su raz cuadrada .

Program Programa1;
Var i : Integer;
R: Real;
Begin
Readln( i );
If i >0 then
Begin
R := sqrt( i );
Writeln( La Raz es: , R );
End;
End.

Universidad Politcnica Salesiana del Ecuador Pgina 61 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Ahora veamos el caso en que la condicional ejecute alguna instruccin en caso que no
se cumpla.
If <Expesin> then
Instrucccin1
Else
Instruccin2;

El punto y la coma que se encuentra al final de la Instruccin2 cierra la estructura de


decisin. Ejemplo

Escribir un programa en Java que verifique si un nmero ingresado es mayor que cero
e imprima un mensaje si cumple o no la condicin.

Program Programa1;
Var i: Integer;
Begin
Readln( i );
If i >0 then
Writeln( El Nmero es mayor a cero )
Else
Writeln( El Nmero no es mayor a cero );
End.

Haciendo una miscelnea de los ejemplos anteriores tenemos:


Escribir un programa en Java que verifique si un nmero ingresado es mayor que cero
e imprima un su raz cuadrada, si el nmero no es mayor que cero se debe multiplicar
por (-1) y presentar un mensaje que el nmero fue negativo y la respectiva raz
cuadrada.

Program Programa1;
Var i: Integer;
Begin
Readln( i );
If i >0 then
Begin
R := sqrt( i );
Writeln( La Raz es: , R );
End
Else
Begin
i : = i *(-1);
R := sqrt( i );
Writeln( La Raz es: , R , se ingres un nmero negativo );
End;

Universidad Politcnica Salesiana del Ecuador Pgina 62 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

15.1. Condiciones anidadas


En nuestro problema anterior notamos lo siguiente: Que pasara si se
ingresa el nmero cero?. Bueno lo ideal sera tambin validar o identificar
este nmero.
Escribir un programa en Java que identifique si un nmero es negativo
positivo o cero.
Program Programa1;
Var i: Integer;
Begin
Readln( i );
If i >0 then
Writeln( El Nmero es mayor a cero )
Else if i<0 then
Writeln( El Nmero es menor a cero )
Else
Writeln( El Nmero es igual a cero );
End.

Veamos otro ejemplo


Escribir un programa que lea un nmero e imprima el da de la semana
correspondiente al nmero.
Solucin:
Los das de la semana estn dados desde el 1 hasta el 7, si el usuario ingresa
un nmero que no corresponde a dicho rango hay que hacerle notar que ha
introducido un nmero errneo.

Program DIA;
Var i: byte;
Begin
Readln(i);
If i=1 then
Writeln('DOMINGO')
Else If i=2 then
Writeln('LUNES')
Else If i=3 then
Writeln('MARTES')
Else If i=4 then
Writeln('MIERCOLES')
Else If i=5 then
Writeln('JUEVES')
Else If i=6 then
Writeln('VIERNES')
Else If i=7 then
Writeln('SABADO')
Else
Writeln('NO ES UN DIA DE SEMANA VALIDO');
End.

Universidad Politcnica Salesiana del Ecuador Pgina 63 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

15.2. Sentencia Case

En el problema anterior notamos que el programador podra tener una


pequea confusin al escribir estas lneas de cdigo. Una manera mucho
ms fcil es utilizar la estructura de decisin Case

Case <variable> of
Valor1: <Grupo1 de expresiones>
Valor2: <Grupo2 de expresiones>
...
ValorN: <GrupoN de expresiones>
Else
<GrupoN de expresiones>
End;

Hay que tomar en consideracin que en cada grupo de expresiones es


necesario la utilizacin de un Begin y End si se desean ejecutar varias
instrucciones.
Ejemplo:
Program DIA_MEJORADO;
Var i: byte;
Begin
Readln(i);
Case i of
1: Writeln ('DOMINGO');
2: Writeln ('LUNES');
3: Writeln ('MARTES');
4: Writeln ('MIERCOLES');
5: Writeln ('JUEVES');
6: Writeln ('VIERNES');
7: Writeln ('SABADOS');
Else
Writeln('NO ES UN DIA DE SEMANA VALIDO');
End;
End.

Universidad Politcnica Salesiana del Ecuador Pgina 64 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

16. Problemas suplementarios resueltos

xv. Escribir un programa en Java que muestre un mensaje afirmativo si el numero introducido es
mltiplo de 5.
Program Cond1;
USES CRT;
Var num:Integer;
Begin
ClrScr;
Write('Introduzca un numero : '); Readln(num);
If num mod 5 = 0 Then
Write ('El numero introducido es mltiplo de 5')
Else
Write ('El numero introducido no es mltiplo de 5');
End.

xvi. Escribir un programa en Java que determine si un nmero ledo desde el teclado espar o impar.
Program Par_impar;
USES CRT;
Var num: Integer;
Begin
ClrScr;
Write (Introduzca un numero entero: '); Readln (num);
If num = 0 Then
Write ('El numero introducido no es par ni impar, es 0')
Else If ((num mod 2 = 0)) Then
Write ('El numero introducido es par')
Else
Write ('El numero introducido es impar')
End.

xvii. Escribir un programa en Java que detecte si un nmero ledo desde el teclado es mayor o
menor que 100.
Program MenMay_100;
USES CRT;
Var num: Integer;
Begin ClrScr;
Write ('Escriba un numero entero:'); Readln (num);
Writeln ('');
If num < 100 Then
Write ('El numero que ha escrito es menor de 100')
Else If num > 100 Then
Write ('El numero que ha escrito es mayor de 100')
Else
Write ('El numero es 100')
End.

Universidad Politcnica Salesiana del Ecuador Pgina 65 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

xviii. Escribir un programa en Java que lea dos nmeros desde el teclado y si el primero es mayor
que el segundo intercambie sus valores.
Program Vefifica;
USES CRT;
Var num1,num2: Integer;
Begin ClrScr;
Writeln ('Escriba dos numeros: ');
Readln (num1); Write (''); Readln (num2);
Writeln ('');
If num1 > num2 Then
Begin
Write (num2,' ',num1,'. El primer # introducido es mayor.');
Write (' Se cambia el orden.');
End
Else
Begin
Write(num1,' ',num2,'. El segundo # introducido es mayor.');
Write(' No se cambia el orden.');
End;
End.

xix. Escribir un programa en Java que dada una calificacin en valor alfabtico (A,B,C,D E) indique
su equivalente en valor numrico (4,5,6,7 u 8).
Program EJER38;
USES CRT;
Var valor:CHAR;
Begin ClrScr;
Write ('Escriba una calificacion entre a y e: ');
Readln (valor);
Writeln ('');
CASE UPCASE(valor) OF
'A': Write ('El valor correspondiente es: 4');
'B': Write ('El valor correspondiente es: 5');
'C': Write ('El valor correspondiente es: 6');
'D': Write ('El valor correspondiente es: 7');
'E': Write ('El valor correspondiente es: 8')
Else
Write ('La calificacion no existe');
End;
End.

xx. Escribir un programa en Java que lea desde teclado el importe bruto de una factura y determine
el importe neto segn los siguientes criterios.
Importe bruto menor de 2,000 -> sin descuento
Importe bruto mayor de 2,000 -> 15% de descuento

Universidad Politcnica Salesiana del Ecuador Pgina 66 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Program Factura;
USES CRT;
Var importe_bruto, descuento, total REAL;
Begin ClrScr;
Write ('Indique el importe de su factura para ver ');
Writeln ('si le "descontamos" algo');
Writeln ('');
Readln (importe_bruto);
Writeln ('');
{calcula el importe bruto con descuento del 15%}
descuento:=importe_bruto * 0.15;
If importe_bruto > 20000 Then
Begin
Writeln ('SE MERECE UN DESCUENTO DE: ',descuento:5:2);
total:=importe_bruto - descuento;
Writeln ('El total es de la factura es de: ',total:5:2,' pts')
End
Else
Write ('El Monto no alcanza el descuento')
End.

xxi. Escribir un programa en Java que una vez leda una hora en formato (horas, minutos, segundos)
indique cual ser el tiempo dentro de un segundo.
Program F_hora;
USES CRT;
{Las variables son: horas, minutos y segundos}
{Son las horas, minutos y segundos introducidos por el usuario}
Var h, m, s, h2,m2,s2: Integer;
{Son las horas, minutos y seguntos a los que se les sumara}
Begin ClrScr;
Write ('Escriba en formato horas, minutos y segundos');
Writeln (''); Write ('Horas '); Readln (h);
Write ('Minutos '); Readln (m);
Write ('Segundos '); Readln (s); Writeln ('');
Writeln Writeln ('Se le sumara un segundo a la hora actual.');
Writeln ('');
s:= s + 1;
If s = 60 Then s2 := 0
Else s2 := s;
m:= ((m * 60) + s) div 60;
If m = 60 Then m2 := 0
Else m2 := m;
h2:=((h * 60) + m) div 60;
IF h2 = 24 Then h2 := 0;
Writeln (h2,':',m2,':',s2);
End.

Universidad Politcnica Salesiana del Ecuador Pgina 67 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

xxii Escribir un programa en Java que calcule el salario semanal de un trabajador en base a las horas
trabajadas y el pago por hora trabajada.
Horas ordinarias (40 primeras horas de trabajo) 2.000 Dlares/hora
1.5 veces precio hora ordinaria
Program Salario;
USES CRT;
Var
htrab, ptsh:REAL; {Horas trabajadas y pts hora}
nhextra, hextra:REAL; {Numero de horas extra y horas extra}
salario_semanal:REAL;
Begin
ClrScr;
Write ('Introduzca las horas trabajadas y las pts/hora que se cobran ');
Writeln ('para calcular el salario semanal.');
Writeln ('');
Write ('Horas trabajadas: '); Readln (htrab);
Write ('Pts/hora: '); Readln (ptsh);
Write ('Horas extra: '); Readln (nhextra);
Writeln ('');
hextra:=nhextra * (ptsh * 1.5);
Salario_semanal:= (htrab) * (ptsh) + hextra;
Write ('El salario semanal son ',salario_semanal:5:0,' pts.');
End.

Universidad Politcnica Salesiana del Ecuador Pgina 68 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

17. Estructuras de Repeticin

En la mayor parte de los programas se necesita repetir bloques de instrucciones


tantas veces como lo requiera, la vida diaria de cualquier persona, animal o cosa
esta repleta de ejemplos de ciclos, las computadoras solo se han encargado de
copiarlos.
Cuando es necesario utilizar ciclos o estructuras de repeticin?
Veamos el siguiente ejemplo
Escribir un programa en Java que imprima los nmeros del 1 hasta el 5
Program Numeros;
Begin
Writeln ('1');
Writeln ('2');
Writeln ('3');
Writeln ('4');
Writeln ('5');
End.

Bueno el programa cumple con el objetivo. En este caso no dificulta la impresin


de esos 5 nmeros. Pero qu ocurrira si la definicin del problema cambia?
Escribir un programa en Java que imprima los nmeros del 1 hasta el 100

Program Numeros;
Begin
Writeln ('1');
Writeln ('2');
Writeln ('3');
Writeln ('4');
Writeln ('5');

Writeln ('10');
End.

Se tendra prcticamente que hacer una Plana. Este programa aunque cumple
con su objetivo, el algoritmo es ineficiente. Para solucionar estos problemas se
disearon las siguientes estructuras para Turbo Java:
For Do
Repeat - Until
While Do
En cada uno de estos daremos una solucin ms prctica al ejemplo anterior, cabe
destacar que todos funcionan hasta que se cumple con una condicin que es la
encargada de hacer parar el ciclo y continuar con el resto de instrucciones del
programa.

Universidad Politcnica Salesiana del Ecuador Pgina 69 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

17.1. Estructura For Do (Para Hacer)

Este ciclo ejecuta una serie de instrucciones incrementando o


decrementando una variable hasta un tope determinado.

SINTAXIS GENERAL
For Variable:=Valor_inicial To Valor_Final Do
Begin
{Bloque De Instrucciones}
End;

Forma Incremental
For Variable:=Valor_Menor To Valor_Mayor Do
Begin
{Bloque De Instrucciones}
End;

Forma Decremental
For Variable:=Valor_Menor downto Valor_Mayor Do
Begin
{Bloque De Instrucciones}
End;

La Variable controladora del ciclo es generalmente de tipo INTEGER, pero


tambin se puede en algunas ocasiones declarar de tipo carcter as:
For Letras:=a to z do
Begin
{En este ciclo se recorre el alfabeto de la a a la z de letra en letra}
End;
Solucionemos el problema de la impresin de los nmeros del 1 al 100

Program Numeros;
Begin
For I:= 1 to 100 do
Writeln (i);
End.

En solo 2 lneas hemos resumido 100 comparndolo con el problema


anterior . la variable controladora i toma el valor inicial de 1 y se incrementa
en uno hasta llegar al valor final 100.
En este problema el bloque de instrucciones de la estructura For do no
necesita de un Begin y un End, ya que solo consta de una sola sentencia.
Si se desean ejecutar ms de dos instrucciones dentro de la estructura de
repeticin es necesario colocarlas.

Universidad Politcnica Salesiana del Ecuador Pgina 70 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Ejemplo:
Escribir un programa que imprima los nmeros del 1 al 100 y muestre un mensaje por
cada nmero es mltiplo de 4.

Program Numeros;
Begin
For I:= 1 to 100 do
Begin
Writeln (i)
If I mod 4 = 0 then
Writeln( ES MULTIPLO DE 4 );
End;
End.

El punto y coma que se encuantra al final del primer End, cierra la estructura de
repeticin.

Problema 2.1
Si se ingresa el nmero 15 para n en el siguiente programa

Program Suma;
var i,j,n,s: integer;
begin
readln(n);
s:=0;
for i:=2 to n-1 do
if n mod i=0 then
. s:=s+i;
writeln(s);
end.
Se obtiene
a) 15 b) 8 c) 0 d) 1 e) No imprime algo

Solucin:
Realizando la respectiva corrida el lector debe notar que existe una estructura de
repeticin for que va desde 2 hasta un nmero n-1 ingresado. Segn nuestro
problema n es igual a 15, as que debe repetirse la estructura desde 2 hasta el 14.

n=15 i n mod i=0 s Se imprime


2 15 mod 2=0 falso 0
3 15 mod 3=0 verdad 3
4 15 mod 4=0 falso 3
5 15 mod 5=0 verdad 8
6 15 mod 6=0 falso 8
7 15 mod 7=0 falso 8
8 15 mod 8=0 falso 8
9 15 mod 9=0 falso 8

Universidad Politcnica Salesiana del Ecuador Pgina 71 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

1 15 mod 10=0 falso 8


0
1 15 mod 11=0 falso 8
1
1 15 mod 12=0 falso 8
2
1 15 mod 13=0 falso 8
3
1 15 mod 14=0 falso 8 8
4
Observamos que en la prueba de escritorio cuando i toma el valor de 3 y de 5 la
condicin es verdadera y se asigna a un sumador s el valor de i.
Este algoritmo lo que presenta es la suma de todos los divisores de n que existen
desde el nmero 2 hasta n-1.
Si notamos adems, los divisores que tiene el nmero 15 desde el 2 hasta el 14 son el
nmero 3 y nmero 5 y el resultado de la suma de ambos nmeros es 8 igual al valor
impreso.
a) falsob) verdadero c) falso d) falso e) falso
Resp. Literal b

Problema 2.2
Al ejecutar el siguiente programa e ingresar el nmero 20 para n y 10 para j

Program Numeros;
var i,j,n,s: integer;
begin
readln(n); readln(j);
s:=0;
if n>j then
for i:=j to n do
if i mod 2=0 then
n:=n-1
else
s:=s+n;
writeln(s);
end.

se obtiene
a) 20
b) 15
c) 57
d) 55
e) 48

Universidad Politcnica Salesiana del Ecuador Pgina 72 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Realizando la respectiva prueba de escritorio se tiene:

n=20 j=10 i i mod 2=0 n s Se imprime


1 15 15 mod 2 falso 20 20
2 16 16 mod 2 verdadero 19 20

3 17 17 mod 2 falso 19 39
4 18 18 mod 2 verdadero 18 39
5 19 19 mod 2 falso 18 57
6 20 20 mod 2 verdadero 17 57 57

a) falsob) falso c) verdadero d) falso e) falso

Explicacin:
El lector podr notar que la condicin primera (if n>j then) debe tener un valor
verdadero para que se pueda ejecutar el resto del cdigo, como se dan valores
de n=20 y j=10 el resto del cdigo se ejecuta.
Existe un ciclo de repeticin for que va desde el nmero 15 hasta 20 y por cada
valor de i que varia existe otra condicional que pregunta si ste es un nmero
par (i mod 2=0 Verdadero). Si el valor de i es un nmero par n hace un
decremento en uno lo que ocurre en las lneas 2, 4 y 6.
Si n no es un nmero par (i mod 2=0 falso), se asigna a un sumador s el valor
de n lo que ocurre en las lneas 1, 3 y 5
Resp. Literal c

Problema 2.3
Si se ingresa el nmero 5 para la variable N en el siguiente programa

Program F;
Uses Crt;
Var n,S,F,i: Integer;

Begin
S:=0;
Readln(n);
F:=1;
For i:=1 To n Do
Begin
S:=S+F;
F:=S;
Writeln(S);
End;
End.

Universidad Politcnica Salesiana del Ecuador Pgina 73 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Se Obtiene:
1,2,4,8,16
2,4,8,16,32
4,8,12,16,5
0,1,2,4,8,16
16

Solucin:
Para realizar la prueba de escritorio respectiva observamos que existe una estructura
de repeticin for que va desde 1 hasta n almacenadas en i. Par nuestro problema n= 5
entonces tenemos

n=5 S=0 F=1 i S F Se imprime


1 1 1 1
2 2 2 2
3 4 4 4
4 8 8 8
5 1 1 16
6 6

La corrida de este problema es sencillo, ya que no hay que realizar ningn tipo de
comparacin y solo hay que efectuar las operaciones respectivas las cuales son
S:=S+F;
F:=S;
Para cada valor de i
Comparando con las alternativas tenemos:
a) verdadero b) falso c) falso d) falso e) falso

Resp. Literal b

17.2. Ciclo While - Do(Mientras Hacer)

SINTAXIS
While ( Condicin ) Do
Begin
<Bloque De Instrucciones>
End;

Este estructura ejecuta una serie de instrucciones un nmero no determinado


de veces hasta que se cumpla con una condicin establecida , aunque tambin
se puede hacer que trabaje de manera similar al ciclo FOR.
Una de las ventajas del ciclo WHILE es que puede evaluar variables de muchos
mas tipos que el ciclo FOR(Recuerda que en este solo se pueden usar variables
de tipo CARCTER y ENTERAS) entre ellas destacamos las de tipo STRING,
BOOLEAN, Integer, REAL, ARREGLO.

Universidad Politcnica Salesiana del Ecuador Pgina 74 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

El ciclo WHILE evala y despus ejecuta las instrucciones


Si lleva mas de una instruccin necesita BEGIN - END

Escriba un programa que ingrese una serie de nmeros y que termine el ingreso
cuando se digita el nmero -9999

Problema 2.4
Cuando se ingresa 15,3,4 para a,b,c respectivamente

Program MIENTRAS;
var a,b,c: integer; Se imprime
begin
readln(a); readln(b); readln(c); a) 7 b) 7
while (a > (b+c))do 15 8
begin 8 15
if b>c then
b:=b+(a mod b)
else c) 15 d) 7
c:=c+(a mod c);
8 15
writeln(c);
end; 7 10
end.
e) 7
15
Realizando la respectiva prueba de escritorio se tiene: 8

a=15 b=3 C=4 b c b>c (a > (b+c)) Se imprime


3 7 falso (15 > (3+7)) verdad 7
3 8 falso (15 > (3+8)) verdad 8
3 1 falso (15 > (3+15)) falso 15
5

a) falso b) verdadero c) falso d) falso e) falso

Universidad Politcnica Salesiana del Ecuador Pgina 75 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Problema 2.5
Para calcular el factorial de un nmero en el siguiente programa

1. Program factorial
2. Var temp,num,fac:Integer;
3. BEGIN
4. fac:=1;
5. temp:=num;
6. Write('Introduzca un numero -> ');
7. READLN(num);
8. temp:=num;
9. WHILE num>=1 DO
10. BEGIN
11.
12.
13. END;
14. Write('El factorial de '); Write(temp); Write(' es '); Write(fac);
15. END.

Es necesario colocar el las lneas 11 y 12 las siguientes sentencias:


a) 11. fac:=fac*num b) 11. num:=num-1; c) 11. num:=num-2;
12. num:=num-1 12. fac:=fac*num; 12. fac:=fac*(num+1);

d) 11. fac:=fac*num; e) Ninguna de las


12. num:=num-1; anteriores

17.3. Ciclo Repeat Until (Repita Hasta)

EL CICLO "REPITA" (Como cariosamente se le llama en la jerga de los


programadores) actua de manera similar al ciclo WHILE DO, con la pequea
diferencia de que en este se ejecutan las instrucciones y despues se evalua la
condicin.
Este no necesita BEGIN ni END, aunque tampoco dice nada si se los colocas.
SINTAXIS
Repeat Program Ciclo_Repeat_Until2;
{Bloque de instrucciones} Var
Numero: Integer;
Until (Expresin_a_evaluar) Begin
Numero:= 1;
Repeat
WriteLn (Numero);
Numero := Numero + 5;
Until Numero = 200;
readln;
End.

Universidad Politcnica Salesiana del Ecuador Pgina 76 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Problema 2.6
Si se ingresa el nmero 5 para la variable c en el siguiente programa

Program Repetir; Se obtiene


var a,b,c: integer; a) 1,3,5,7,9
begin b) 2,4,6,8,10
a:=0; c) 1,2,3,4,5,6
b:=0; d) 1,2,3,4,5,6,7,8,9,10
readln(c); e) Ninguna de las
repeat anteriores
a:=a+1;
b:=a+b;
writeln(a);
until (a+b) div c> 10;
end.

Solucin:
c=2 a b (a+b) div c> 10 Se imprime
1 1 (1+1) div 2> 10 falso 1
2 3 (2+3) div 2> 10 falso 2
3 6 (3+6) div 2> 10 falso 3
4 10 (4+10) div 2> 10 falso 4
5 15 (5+15) div 2> 10 falso 5
6 21 (6+15) div 2> 10 verdadero 6
Problema 2.7
Al ejecutar el siguiente programa
se obtiene:
Program Condicionales;
var a,b,c: integer;
begin a) 1 2 4 b) 1 2 4
a:=2; 0 2 4 0 2 4
b:=2; 0 1 4 0 1 4
c:=4; 0 1 3 0 0 3
repeat
if a=0 then
if b=1 then
if (c mod 2 = 1) then c) 1 2 4 d) 1 2 4
writeln('fin')
1 2 4 0 2 4
else
c:=c-1 0 1 4 0 1 4
else 0 1 3 0 0 3
b:=b-1
else
a:=a-1; e) 1 2 4
writeln(a,' ',b,' ',c); 0 2 4
until ((a+b)=(c mod 2)) ; 0 1 4
end.
0 1 3
fin

Universidad Politcnica Salesiana del Ecuador Pgina 77 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Solucin :
Este es un problema interesante para las personas que tienen problemas con las
estructuras condicionales.

a b c c mod 2 = 1 ((a+b)=(c mod 2) Se imprime


2 2 4
1 2 4 1+2=4 mod 2 falso 1 2 4
0 2 4 0+2=4 mod 2 falso 0 2 4
0 1 4 0+1=4 mod 2 falso 0 1 4
0 1 3 4 mod 2 = 1 falso 0+1=3 mod 2 verdadero 0 1 3

a) verdadero b) falso c) falso d) falso e) falso

18. Problemas suplementarios resueltos

xii. Escribir un programa en Java que calcula el equivalente en grados Fahrenheit o Celsius de las
siguientes temperaturas. {Regla de 3: Celsius / 5 = (Fahrenheit 32)/ 9}

Program Grados;
USES Crt; Var Fahrenheit, Celsius:REAL;
T1C,T2F:REAL;
Respuesta:CHAR;
Begin ClrScr;
Repeat
Begin
Write ('Desea pasarlo a Fahrenheit o Celsius? F/C: ');
Readln (respuesta); Writeln ('');
End;
Until (respuesta='C') Or (respuesta='F') Or (respuesta='c') Or (respuesta='f');
If UPCASE(respuesta)='F' Then
Begin
Writeln ('Introduzca los grados para pasar a Fahrenheit: ');
Write ('Celsius: '); Readln (Celsius);
Fahrenheit:= ((9 * Celsius) / 5) + 32;
Write (Fahrenheit:5:2,' grados Fahrenheit.');
Writeln (' ');
End
Else If UPCASE (respuesta)='C' Then
Begin
Writeln ('Introduzca los grados para pasar a Celsius: ');
Write ('Fahrenheit: '); Readln (Fahrenheit);
Celsius:= ((Fahrenheit - 32) / 9) * 5;
Write (Celsius:5:2,' grados Celsius.');
End;
End.

Universidad Politcnica Salesiana del Ecuador Pgina 78 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

xiii. Escribir un programa en Java que realice un bucle con While y muestre en pantalla
del 1 al 10.
Program Uno_diez;
USES CRT; VAR x:Integer;
Begin
x:=0;
ClrScr;
While X <= 10 DO
Begin
Writeln (x);
x:=x+1;
End;
End.

xiv. Escribir un programa en Java que realice un bucle con Repeat y muestre en pantalla
del 1 al 10.
Program Uno_diez;
USES CRT; VAR x:Integer;
Begin
x:=0;
ClrScr;
Repeat
Writeln (x);
x:=x+1;
Until x=10;
End.

xv. Escribir un programa en Java que realice un bucle con For y muestre en pantalla del 1 al 10.
Program Uno_diez;
USES CRT; VAR x:Integer;
Begin
ClrScr;
For x:=0 To 10 Do
Writeln(x);
End.

xvi. Escribir un programa en Java que visualice en pantalla los nmeros pares entre 1 y 25.
Program pares;
USES CRT; VAR num:Integer;
Begin
num:=2;
ClrScr;
Repeat
Writeln (num);
num:= num + 2;
Until num= 26;
End.

Universidad Politcnica Salesiana del Ecuador Pgina 79 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Program pares2;
USES CRT; VAR sem:Integer;
Begin
ClrScr;
sem:=1;
While sem <= 25 DO
Begin
If sem mod 2=0 Then
Writeln(sem);
sem:=sem + 1;
End;
End.

xvii. Escribir un programa en Java que visualice en pantalla los nmeros mltiplos de 5
comprendidos entre 1 y n.

Program Multiplo_5;
USES CRT; VAR sem,n : Integer;
Begin
ClrScr;
Readln(n);
For sem:= 1 To n Do
Begin
If sem mod 5=0 Then
Writeln(sem);
End;
End.

xviii. Escribir un programa en Java que sume los nmeros comprendidos entre 1 y 10.
Program Suma10;
USES CRT; VAR num, x:Integer;
Begin
ClrScr;
num:=1;
x:=1;
While num <= 10 DO
Begin
Writeln (x);
num:= num + 1;
x:= x + num;
End;
End.

Universidad Politcnica Salesiana del Ecuador Pgina 80 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

xix. Escribir un programa en Java que genere la tabla de multiplicar de un nmero


introducido por el teclado.
Program Tabla_Mult;
USES CRT; VAR tabla, x, num:Integer;
Begin ClrScr;
Write ('Introduzca un numero para hacer su tabla de multiplicar: ');
Readln (num); Writeln ('');
Repeat
Writeln (tabla);
x:= x + 1;
tabla:= num * x;
Until x=11;
End.

xx. Escribir un programa en Java que realice la pregunta Desea continuar S/N? y que no deje de
hacerla hasta que el usuario teclee N.
Program Si_No1;
USES CRT; VAR respuesta:CHAR;
Begin ClrScr;
Repeat
Writeln ('DESEA CONTINUAR: S/N ');
Readln (respuesta);
Until respuesta='N';
{Java distingue entrebn n yN}
End.

Program si_No2;
USES CRT; VAR respuesta:STRING;
Begin ClrScr;
Repeat
Writeln ('DESEA CONTINUAR: SI/NO '); Readln (respuesta);
Until respuesta='NO';
End.

Program Si_No3;
USES CRT; VAR resp:CHAR;
Begin ClrScr;
resp:='S';
While UPCASE(resp)='S' DO
Begin
Write('Desea continuar? '); Readln(resp);
End;
End.

Universidad Politcnica Salesiana del Ecuador Pgina 81 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

xxi. Escribir un programa en Java que calcule cuantos aos tarda en duplicarse un capital
depositado al 5% de inters anual
Program Capital1;
USES CRT;
VAR tiempo, cap_ini, cap_fin:REAL;
CONST interes = 0.05;
Begin
ClrScr;
Write ('Intruduzca el capital para calcular cuanto tardara ');
Write ('en duplicarse, con un interes del 5%: ');
Readln (cap_ini);
Writeln ('');
If cap_ini < 0 Then
Begin
Write ('No se puede incluir un capital negativo');
Exit;
End;
tiempo:=0;
cap_fin:= cap_ini;
Repeat
cap_fin:=cap_fin + (cap_fin * interes);
tiempo:= tiempo + 1;
Until cap_fin > (cap_ini * 2);
Writeln ('Tardara',tiempo:3:0,' aos en duplicarse');
Writeln ('Capital final: ',cap_fin:5:2,' pts');
End.

Program Capital2;
USES CRT;
VAR cap_ini,cap_fin:REAL;
VAR num_year:Integer;
const INTERES=0.05;
Begin
ClrScr;
num_year:=0;
Write('Capital inicial -----: '); Readln(cap_ini);
cap_fin:=cap_ini;
While cap_fin < (cap_ini*2) DO
Begin
cap_fin:=cap_fin+(cap_fin*interes);
num_year:=num_year + 1;
End;
Write('Capital inicial -----: '); Writeln(cap_ini:5:2);
Write('Capital final -------: '); Writeln(cap_fin:5:2);
Write('Capital duplicado en '); Write(num_year); Write(' aos');
End.

Universidad Politcnica Salesiana del Ecuador Pgina 82 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

xxii. Escribir un programa que calcule la suma de los nmeros hasta un nmero dado (introducido
por el usuario).
Program Suma_N;
USES CRT;
VAR x, y, num:Integer;
Begin
ClrScr;
Write ('Este programa calcula la suma de los numeros hasta uno ');
Write ('introducido por el usuario: ');
Readln (num); Writeln ('');
x:=0;
While num >= 0 DO
Begin
Writeln (x);
x:= x + num;
num:=num - 1;
End;
End.

Program Suma_N2;
USES CRT;
VAR i,num:Integer;
VAR suma:LONGINT;
Begin
ClrScr;
Write('Introduzca un numero -> '); Readln(num);
FOR i:=0 TO num DO
suma:=suma+ i;
Write('Suma '); Write('0-'); Write(num); Write('---->'); Write(suma);
End.

xxiii. Escribir un programa que pida un nmero y si el que se introduce por el teclado es menor de
100 que vuelva a solicitarlo.
Program Verifica1;
USES CRT;
VAR num:Integer;
Begin
{Este programa no finaliza hasta que se escribe un numero mayor a 100}
ClrScr;
Repeat
Writeln ('Introduzca un numero: ');
Readln (num);
Until num > 100;
End.

Universidad Politcnica Salesiana del Ecuador Pgina 83 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Program Verifica2;
USES CRT;
VAR num:Integer;
Begin
ClrScr;
Write('Introduzca un numero -> '); Readln(num);
While num<=100 DO
Begin
Write('Introduzca un numero -> '); Readln(num);
End;
End.

xiv Escribir un programa en Java que detecte si un nmero es primo o no. Un nmero es primo si
slo es divisible por s mismo y por la unidad.
Ejemplo: 2,3,4,7,11,17,19 son nmeros primos
9 no es nmero primo, es divisible por 1, 9, 3
El algoritmo para resolver este problema pasa por dividir sucesivamente el nmero estudiado por
2,3,4, etc., hasta el propio nmero.

Program primo (INPUT,OUTPUT);


Uses Crt;
Var
num: Word; {Los numeros primos son enteros mayores que 1 sin
divisores enteros positivos, exceptuando el 1 y ellos
mismos. Todos los primos son impares, excepto el 2.
Solo es necesario comprobar la divisibilidad por
numeros superiores a la raiz cuadrada del numero.}
raiznum: Integer; {Guardamos el valor de la raiz del numero}
noesprimo: Boolean; {Variable para decir que un numero no es primo}
par: Boolean; {Nos sirve para marcar los numeros que son pares}
i: Byte; {Variable que usamos dentro del bucle}
Begin {p.p}
ClrScr;
Repeat
Write('Introduzca un numero entero para ver si es primo: ');
Read(num);
Writeln;
Until num > 1; {Pedimos un numero y no lo aceptamos hasta que sea > 1}
par := num mod 2 = 0; {par va a ser True cuando el numero sea par}
If num = 2 Then
Write('El 2 es primo, es el unico numero par que lo es.')
Else if par Then
Write('Todo numero par no es primo, excepto el 2.')
Else
Begin
raiznum := round(sqrt(num));
{Almacenamos la raiz del numero, redondeada}

Universidad Politcnica Salesiana del Ecuador Pgina 84 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

For i := raiznum To (num - 1) Do


Begin
If (num mod i) = 0 Then
noesprimo := true
End;
{Comprobamos la divisibilidad de los numeros superiores
a la raiz cuadrada del numero introducido. Si algun numero
divide al numero, noesprimo toma el valor true.}
If noesprimo Then
Write(num,' no es un numero primo')
Else
Write(num,' es un numero primo');
{Mostramos por pantalla si el numero es primo o no}
End;
End. {p.p}

Program Primo2;
USES CRT;
VAR i,num,flag:Integer;
Begin
ClrScr;
flag:=0;
Write('Introduzca un numero -> '); Readln(num);
FOR i:=2 TO (num-1) DO
Begin
If (num mod i)=0 Then
flag:=1;
End;
If flag=1 Then
Begin
Write(num); Write(' no es un numero primo');
End
Else
Begin
Write(num); Write(' es un numero primo');
End;
End.
xxv. Escribir un programa en Java que calcule la depreciacin de un objeto segn el
mtodo de la lnea recta. Calcular el nmero de aos que tarda en hacerse 0. En este mtodo el
valor original del objeto se divide por su vida (nmero de aos). El cociente resultante ser la
cantidad en la que el objeto se deprecia anualmente. Por ejemplo, si un objeto se deprecia 8000
dlares en diez aos, entonces la depreciacin anual ser 8000/10=800 dlares. Por tanto, el valor
del objeto habr disminuido en 800 dlares cada ao. Ntese que la depreciacin anual es la misma
cada ao cuando se utiliza este mtodo.
Program depre1;
USES CRT;

Universidad Politcnica Salesiana del Ecuador Pgina 85 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

VAR annos, valor:REAL;


VAR depreciacionanno:REAL;
VAR x:Integer;
Begin
ClrScr;
Writeln ('Escriba los datos para conocer la depreciacion anual');
Writeln ('');
Write ('Valor original: '); Readln (valor);
Write ('Numero de aos: '); Readln (annos);
Writeln ('');
depreciacionanno:= valor / annos;
x:=0;
While valor > 0.1 DO
Begin
valor:=valor - depreciacionanno;
x:= x + 1;
Writeln ('AO ',x:2,': ',valor:8:0,' pts.');
End;
End.

Program depre2;
USES CRT;
VAR val_ini,val_dep,tas_dep:REAL;
VAR i,anios:Integer;
Begin
ClrScr;
Write('Valor inicial -----> '); Readln(val_ini);
Write('Numero de a_os ----> '); Readln(anios);
tas_dep:=val_ini/anios;;
val_dep:=val_ini-tas_dep;
For I:=1 To anios Do
Begin
Write('A_o ');
Write(i:3);
Write(' ------ ');
Writeln(val_dep:10:2);
val_dep:=val_dep-tas_dep;
End;
End.

xxvi. Escribir un programa en Java que calcule la depreciacin de un objeto segn el mtodo del
balance doblemente declinante. En este mtodo, el valor del objeto disminuye cada ao en un
porcentaje constante. Por tanto, la verdadera cantidad depreciada, en dlares, variara de un ao al
siguiente. Para obtener el factor de depreciacin, dividimos por dos la vida del objeto. Este factor se
multiplica por el valor del objeto al comienzo de cada ao (y no el valor del original del objeto) para
obtener la depreciacin anual. Supongamos, por ejemplo que deseamos depreciar un objeto de
8000 dlares por diez aos; el factor de depreciacin ser 2/10=0.2. Por tanto, la depreciacin el

Universidad Politcnica Salesiana del Ecuador Pgina 86 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

primer ao ser 0,2 X 8000 = 1600 dlares, la depreciacin del segundo ao ser 0,2 X 6400=1280
dlares; la depreciacin del tercer ao ser 0,2 X 5120 = 1024 dlares, y as sucesivamente.
Program EJER58;
USES CRT;
VAR fdd:REAL; {Factor de depreciacion}
VAR vidaobj:REAL; {Vida del objeto = aos}
VAR depreciacionanno:REAL;
VAR valorobj:REAL; {Valor del objeto}
VAR x:Integer;
Begin
ClrScr;
Write ('Para calcular la depreciacin por el mtodo del balance ');
Writeln ('Doblemente declinante, escriba los datos:');
Writeln ('');
Write ('Valor del objeto: '); Readln (valorobj);
Write ('Ao: '); Readln (vidaobj);
Writeln ('');
fdd:= 2 / vidaobj;
x:=1;
Repeat
depreciacionanno:= fdd * valorobj;
valorobj:=valorobj - depreciacionanno;
Writeln ('Ao ',x:2,': ',valorobj:8:2,' dol.');
x:= x + 1;
Until x > vidaobj;
Writeln ('');
x:= x - 1;
Writeln ('El valor a Los ',x,' Aos ser de ',valorobj:6:2,' dol.');
End.

xxvii Escribir un programa en Java que calcule el factorial de un nmero.


Program factorial1
USES CRT; VAR factorial, x, num, y:REAL;
Begin {Este programa hace el factorial de un numero}
ClrScr;
Write ('Introduzca un numero para hacer su factorial: ');
Readln (num); Writeln ('');
x:=1;
While num > 1 DO
Begin
x:=x * num;
num:=num - 1;
Writeln (x);
End;
End.

Universidad Politcnica Salesiana del Ecuador Pgina 87 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Program factorial2;
USES CRT;
VAR temp,num,fac:LONGINT;
Begin
ClrScr;
fac:=1;
temp:=num;
Write('Introduzca un numero -> '); Readln(num);
temp:=num;
While num>=1 DO
Begin
fac:=fac*num;
num:=num-1;
End;
Write('El factorial de '); Write(temp); Write(' es '); Write(fac);
End.

19.Problemas Varios

Problema 2.8
Lo verdadero que se puede decir del programa y del algoritmo siguiente:

program Hor; Algoritmo Hor


Var h,m,s1,s2:integer; Var Entero h,m,s1,s2
begin Inicio
write('Introduzca segundos: '); Escribir('Introduzca segundos: ')
READLN(s1); Leer(s1)
h:=s1 div 3600; hs1 div 3600
s2:=s1 mod 3600; s2s1 mod 3600
m:=s2 div 60; ms2 div 60
s2:=s2 mod 60; s2s2 mod 60
write(s1); write(' segundos son --> '); Escribir(s1) Escribir ( segundos son --> )
write(h) write(' horas '); Escribir (h) Escribir ( horas )
write (m) write(' minutos '); Escribir (m) Escribir ( minutos )
write(s2); write( 'segundos '); Escribir (s2) Escribir (segundos )
end fin

es
Ambos estn diseado para resolver problemas diferentes
El algoritmo y el programa no pueden tener el mismo nombre
El programa tiene errores de sintaxis pero no de lgica
Estn mal declaradas las variables en el algoritmo y en el programa
Todas las anteriores son falsas

Solucin:

Universidad Politcnica Salesiana del Ecuador Pgina 88 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Falso, ya que el lector podr constatar que el algoritmo y el programa tienen la misma
lgica y si tienen la misma lgica de seguro estn diseados para cumplir el mismo
objetivo.
Falso, ya que queda a criterio del programador los nombres que se ponen el los
algoritmos y en los programas
Verdadero,
write(h) write(' horas ');
falta el punto y coma ;

write (m) write(' minutos ');


falta el punto y coma ;

d) Falso, las variables estn bien declaradas en el programa ya que primero se coloca
la palabra reservada Var luego los nombres de las variables seguido de una coma por
cada uno y al final el tipo de datos de las variables. En el algoritmo no hay problema en
la definicin de variables, ya que cada autor declara las variables a su conveniencia.
Falso, ya que el literal c es verdadero.

Comparando cada uno de las respuestas de los literales verificamos que la respuesta a
nuestro problema es el literal c

Resp. Literal c

Problema 2.9
Una de las siguientes proposiciones es falsa, identifquela
Las variables son nombres que se dan a los tipos de datos
Los tipos de datos Reales son diferentes a los datos enteros
Si A=1, B=2 y C=4 entonces A*B(1-C)/B-B=0
El punto y coma de la lnea ii cierra la lnea 1
if (i=2) then
j:=j+1;
i:=3;
Los variables booleanas solo pueden tomar dos valores: Verdadero o Falso

Solucin:
verdadero
verdadero
reemplazando los valores a las variables correspondientes tenemos:
1*2(1-4)/2-2=0
2(-3)/2-2=0
-3-2=0
falso
verdadero
verdadero

Resp. Literal c

Universidad Politcnica Salesiana del Ecuador Pgina 89 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Problema 2.10
Una de las siguientes proposiciones es falsa, identifquela
Los errores de sintaxis por lo general se lo detectan en la compilacin de los programas
La siguiente sentencia: Si (A=B) o ((B<>C) y (D>F)) entonces es equivalente a
Si((A=B) o (B<>C)) y ( (A=B) o (D>F))) entonces
Las variables en programacin son nombres que se le dan a los tipos de datos y stas
cambian en la compilacin y en la ejecucin del programa.
La siguiente estructura de repeticin
Mientras (Condicin)
...........
Fin-Mientras
deja de repetirse cuando la Condicin es falsa
Los variables boleanas solo pueden tomar dos valores: Verdadero o Falso
Solucin:
verdadero b) verdadero c) falso d) verdadero e)es verdadero
Resp. Literal b

20. Problemas Propuestos

Dados los valores correspondientes a las variables


A=5 B=7 C=4
Donde se evala lo siguiente
i ( 3 + A) Div B + C
ii ( 7 Div (38 Mod C)) * 5
iii 3 + C* A 35/7 B * 33/11
iv ((1580 MOD 6*2^7) >(7+8*3^4)) OR ((15*2)=60*2/4)

entonces determine las proposiciones falsas de:


iv es verdadero
El valor de i es 4
ii iii = 0
ii es igual a 15
Todas las anteriores son verdaderas

Dado el siguiente bucle

i0
mientras i < 6 hacer
escribir ( i )
i i +1
fin_mientras

Se puede decir que se imprime:


a) 0, 1, 2, 3, 4, 5 b) 0, 1, 2, 3, 4, 5, 6 c) 1, 2, 3, 4, 5

Universidad Politcnica Salesiana del Ecuador Pgina 90 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

d) 1, 2, 3, 4, 5, 6 e) ninguna de las anteriores

Del siguiente bucle se puede

i0
mientras i < 6 hacer
i i +1
escribir ( i )
fin_mientras

decir que se ejecuta

a) cinco veces b) ms de seis veces c) seis veces d) menos de seis veces


e) menos de cinco veces

La estructura para (desde) puede realizarse con algoritmos basados en estructuras


mientras y repetir, por lo que pueden ser intercambiables cuando as lo desee.
Cul de las siguientes algoritmos no correspondera a una equivalencia en encontrar
la solucin, con la estructura para(desde)?

para i 1 hasta n incremento 1 hacer


<acciones>
fin_para

a) b)
inicio inicio
in i1
mientras i > 0 hacer mientras i <= n hacer
<acciones> <acciones>
ii-1 ii+1
fin_mientras fin_mientras
fin fin

c) d)
inicio inicio
in in+1
repetir repetir
<acciones> <acciones>
ii-1 ii-1
hasta_que i = 1 hasta_que i = 1
fin fin

Universidad Politcnica Salesiana del Ecuador Pgina 91 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

e)
inicio
i1
repetir
<acciones>
ii+1
hasta_que i > n
fin

Si se ingresa 3 para N y 3 para P en el siguiente algoritmo

Algoritmo Incgnita1
Var
Entero N, P,i,j,x

inicio
leer (N)
leer (P)
x1
Para i 1 hasta P
suma 0
Para j 1 hasta x
suma suma + N
Fin-Para
x suma
Fin-Para
Escribir( suma)
Fin

se obtiene
a) 0 b) 27 c) 9 d) 6 e) N. Anteriores

Universidad Politcnica Salesiana del Ecuador Pgina 92 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Al ingresar N=9 en el siguiente algoritmo

Algoritmo Incgnita2
Var
Entero N,i,A,B,F
Inicio
A0
B1
Para i 1 hasta N
Imprimir A
F A+B
AB
BF
Fin-Para

Fin

se obtiene
0,1,1,2,3,5,8,13,21
0,1,1,2,3,5,8,13
0,1,1,2,3,5,8
0,1,1,2,3,5,8,13,21,34
Ninguna de las anteriores

El siguiente diagrama de flujos

INICIO
Calcula
a) 1+ 2 + 3 +. . . n
b) Suma de los nmeros primos desde 0 hasta n
S0
c) 2 + 3 + 4 + . . . (n+1)
i0
d) Suma de los nmeros que dividen a n
e) No calcula ninguna de las anteriores
Leer(n)

V V SS+i
i<n n mod i
i i + 1

F F

FIN

Universidad Politcnica Salesiana del Ecuador Pgina 93 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Consideremos un vector X de ocho elementos:


X[1] X[2] X[3] X[4] X[5] X[6] X[7] X[8]
14.0 12.0 8.0 7.0 6.41 5.23 6.15 7.25
Al cual se realizan las siguientes acciones

X[4] 45
Suma X[1] + X[3]
Suma Suma + X[4]
X[5] X[5] + 3.5
X[6] X[1] + X[2]

Entonces el vector modificado sera:

a) X[1] X[2] X[3] X[4] X[5] X[6] X[7] X[8]


14.0 12.0 8.0 45.1 9.91 25.0 22.0 68.0

b) X[1] X[2] X[3] X[4] X[5] X[6] X[7] X[8]


14.0 12.0 8.0 45.0 9.91 26.0 23.0 67.0

c) X[1] X[2] X[3] X[4] X[5] X[6] X[7] X[8]


14.0 12.0 8.0 47.0 9.92 26.0 22.0 67.0

d) X[1] X[2] X[3] X[4] X[5] X[6] X[7] X[8]


14.0 12.0 8.0 45.0 9.91 26.0 22.0 67.0

e) Ninguna de las anteriores

Universidad Politcnica Salesiana del Ecuador Pgina 94 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Escriba un algoritmo que tenga la misma interpretacin al siguiente diagrama de flujos

Algoritmo flujo
INICIO Var
Entero S,i,n
Real P
S0 Inicio
i0

Leer(n)

F ii+1
n = -9999 SS+n

PS/i

Fin
FIN

Escriba un algoritmo que lea un nmero N que sea entero positivo e imprima todos los
pares entre 1 y N inclusive.

Algoritmo Suma_par

Fin

Universidad Politcnica Salesiana del Ecuador Pgina 95 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Si D y E son variables boleanas y A, B y C son variables numricas determinar los


valores de las variables al final de todos los pasos
A0
B 10
C 10 Div (A + 4)+ A*B-10
D Not (C B)
ABC
D NOT (A 49) OR (43 8* 2 DIV 4 <> 3 * 2 DIV 2)
E (A=B) AND ((C MOD A<= B) OR NOT(( C DIV B) MOD 2 = 0))
Escriba el resultado de salida del siguiente algoritmo si se ingresa 5, 10 para n y m
respectivamente
Algoritmoprueba
Var Entero i,j,n,m
Inicio
j 0
i 0
Leer(n)
Leer(m)
Para i n hasta m
Si i>i then
ji+j
Si-no
ij+i
Fin Si
Fin-Para
Escribir(i,,j)
Fin

Dado el siguiente Problema Si se dan dos nmeros enteros positivos X y Y, se desea


presentar el resultado XY
y su solucin:
Paso1: Se obtienen los valores de X y Y enteros
Paso2: Se asigna a un contador i el valor de Cero
Paso3: Se asigna a una Variable R = 1
Paso4: Se asigna a R = R*X
Paso5: Se incrementa i = i + 1
Paso6: Se pregunta si i = Y, si es verdadero ir al paso 7, si es falso ir al paso 4
Paso7: Se presenta R

Determine los valores de Verdad para cada proposicin siguiente:


Si a i se le asignara 1 en el paso dos, el algoritmo cumplira con su objetivo
Si a R se le asignara X*X en el paso tres, el algoritmo cumplira con su objetivo
Si se preguntara es i < X en el paso 6, el algoritmo cumplira con su objetivo
Si se incrementara i = i + R en el paso 5, el algoritmo cumplira con su objetivo
Si se incrementara i = i + X en el paso 5, el algoritmo cumplira con su objetivo
El algoritmo cumple con su objetivo

Universidad Politcnica Salesiana del Ecuador Pgina 96 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Determine los valores de verdad para cada proposicin


Las variables cambian en la compilacin de un programa
Los tipo de datos reales ocupan el mismo espacio de memoria que los tipo de datos
enteros
La ejecucin de un programa solo sirve para detectar errores de lgica
El punto y coma de la lnea iv cierra la estructura de repeticin for de la lnea i
for j:=1 to 10 do
if j mod 2 = 0 then
R:=2;
Valor:=0;

Los errores de sintaxis en el siguiente programa estn en la lnea i,iii,vii


Program menu
var S: String;
integer i,j;
Begin

for i:= 1 to Length(S) do


writelm(S[i]);
end.

Determine el valor de verdad para cada proposicin correspondiente a cada pregunta


Del Siguiente programa

1. Program tipo;
2. Uses Crt;
3. Var i:Int;
4. Begin
5. Readln(i);
6. For I:=1 to N do
7. if N=j then
8. Repeat
9. I:=j+1;
10. Until j=N;
11. end;

se puede decir que:


Existe un error en la lnea 3
La variable N y J no necesitan ser declaradas
El punto y coma de la lnea 10 cierra la concisin If de la lnea 7
Es necesario colocar un Begin dentro de la estructura Repeat para que se ejecute la
asignacin
Existen 3 errores de sintaxis en el programa tipo

Universidad Politcnica Salesiana del Ecuador Pgina 97 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

De las estructuras y definiciones de puede decir que:


La estructura de repeticin While no necesita de la sentencia begin-end cuando se
desean ejecutar mas de dos sentencias internas a esta estructura
Existe diferencias cuando se declaran variables con letras maysculas y minsculas
La estructura siguiente no tiene errores de sintaxis
If a=2 then
i:=2
else
if a=5 then
a:=8
else
a:=5;
La estructura siguiente no tiene errores de sintaxis
If a=2 then
i:=2;
else
.j:=5;

Todos las dimensiones de los arreglos se pueden cambiar mientras se ejecutan los
programas

Se tiene el siguiente problema: Si se da un nmero entero N, se desea presentar el


resultado (1+2+3+....+N)/N
Solucin
Paso1: Se obtiene el valor de N
Paso2: Se asigna a un contador i el valor de Cero
Paso3: Se asigna a una Variable S = 0
Paso4: Se asigna a S = S + i
Paso5: Se incrementa i = i + 1
Paso6: Se pregunta si i >= N, si es verdadero ir al paso 7, si es falso ir al paso 4
Paso7: Se asigna a una variable P = (S+N)/N
Paso8: Se presenta P

Entonces es verdad que

Si a i se le asignara 1 en el paso 2, el algoritmo cumplira con su objetivo


El algoritmo cumple con su objetivo
Si se asigna a S=1 en el paso3 y se presenta P-1 en el paso8, el algoritmo cumplira con
su objetivo.
Si se asignara P=S/N en el paso7, el algoritmo cumplira con su objetivo
Todas las proposiciones anteriores son falsas

Se utiliza Sqrt(x) para calcular x y Pow(x,y) para calcular x y , represente en forma


de ecuacin para representar lo siguiente

Universidad Politcnica Salesiana del Ecuador Pgina 98 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

x
a x x y

Si se ingresa n igual a 34 en el siguiente diagrama de flujos

Program Incognita;
var
n: integer;
begin
Readln(n);
repeat
if (n mod 2 = 0) then
begin
n:=n div 2;
writeln(n);
end
else
begin
n:=n*3 + 1;
writeln(n);
end;
until n=1;
end.

Se obtiene:
a) 34,17,52,26,13,40,10,5,16,8,4,2,1
b) 22,34,17,52,26,13,40,20,10,5,16,8,4,2,1
c) 17,52,26,40,20,10,16,8,4,2,1
d) 17,52,26,13,40,1
e) 17,52,26,13,40,20,10,5,16,8,4,2,1

Si se ingresa un nmero entero positivo n en el siguiente algoritmo


Program incognita;
var
n:Real; i:integer;
begin
readln(n);
i:=1;
while (i>n) do
begin
n:=n*n;
i:=i+1;
end;
writeln(n);
end.

Universidad Politcnica Salesiana del Ecuador Pgina 99 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.
Entonces , se imprime:
a) ni
b) nn
c) nn-1
d) n
e) No imprime algo

Una de las siguientes proposiciones es verdadera identifquelas


Las variables cambian en la compilacin de un programa
Los tipo de datos reales ocupan el mismo espacio de memoria que los tipo de datos
enteros
La ejecucin de un programa solo sirve para detectar errores de lgica
El punto y coma de la lnea 4 cierra la estructura de repeticin for de la lnea 1
for j:=1 to 10 do
if j mod 2 = 0 then
R:=2;
Valor:=0;
Los errores de sintaxis en el siguiente programa estn en la lnea 1,3,7
Program menu
var S: String;
integer i,j;
Begin

for i:= 1 to Length(S) do


writelm(S[i]);
end.

El siguiente diagrama de flujos

INICI
O

i 1

leer(n
)

V
V
n mod i= 0 i 1+1 i <n
i

F F FIN

Universidad Politcnica Salesiana del Ecuador Pgina 100 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Calcula:

Los mltiplos de n
Los divisores de n comprendidos entre 1 y n-1
Los divisores de n comprendidos entre 1 y n
Los divisores de n comprendidos entre 1 y n+1
Los nmeros pares comprendidos entre 1y n

Si se tiene el siguiente diagrama de flujos y el algoritmo F1

1. Algoritmo F1
2. Var
3. Entero n,i,f
4. Inicio
INICIO f1
Leer(n) 5. Leer(n)
i1
6. f1
7. i0
8.
F f f*i 9. i i + 1
n=i
ii+1 10. f f * i
11.
V 12. Escribir (f)
f 13. Fin

FIN

Entonces las sentencias que faltan en la lnea 8 y 11 para que el algoritmo y el


diagrama realicen lo mismo es:

a) 8 Repetir b) 8 Repetir c) 8 Mientras i<>n


11 Hasta i=f 11 Hasta i=n 11 Fin-Mientras

e) 8 Mientras i=n d) Las sentencias


11 Fin -Mientras
correcta no se encuentra

en las alternativas

Universidad Politcnica Salesiana del Ecuador Pgina 101 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Escriba un programa en Java que evalu la siguiente funcin

x 1 ; x 1 0

f (x) x2 x ; 1 x 1
x3 1 ; x 1

Se realiza un examen, se piden las notas del nmero de alumnos introducidos por el
usuario, las cuales pueden ser nicamente enteras entre 0 y 10. Debe decirse cuantos
0, 5 y 10 han aparecido. Tambin deben decirse las notas introducidas que no sean 0, 5
o 10.
Realizar un programa que calcule el producto de dos nmeros sin utilizar el operador
de multiplicacin (*)
Realizar un programa que sume los primeros n nmeros enteros positivos donde n se
ingresa por el teclado.
Escribir un programa que, dados dos nmeros, N y P elevar el nmero N a la potencia
P sin utilizar el operador de potencia (^) ni el operador de multiplicacin (*)
Escribir un programa que imprima cuantas horas, minutos y segundos que hay en N
segundos ingresados por el teclado
Complete el siguiente programa que est diseado para verificar si una cadena de
caracteres de longitud 5 es igual a la inversa de otra cadena de longitud 5, cada una
de ellas ingresadas carcter por carcter.
Escriba un programa en Java que muestre la suma y el promedio de los factores primos
de un nmero entero positivo mayor que 2.
Escribir un programa en Java que transforme nmeros entre 1 y 999 a nmeros
romanos.
Escribir un Programa en Java que lea 2 nmeros reales positivos y devuelva la potencia
entera a la que hay que elevar el primero para que de el nmero ms prximo posible
del segundo.
El valor de PI se puede calcular sabiendo que la serie:
1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + 1/13 - 1/15.....
tiende a PI/4. Escriba un programa en Java que calcule una aproximacin al nmero
PI/3 usando un Nmero de trminos suministrado por el Usuario
Escribir un programa en Java que pida al usuario el ao, mes y da correspondiente a
cualquier fecha. El programa debe validar si los valores ingresados corresponden a una
fecha valida.
Escribir un Programa en Java que determine el nmero que mas veces se repite de n
valores ingresados.
Escribir un programa en Java que reciba un numero del 1 al 12 desde el teclado y
muestre el nmero de das correspondiente al mes que corresponda con ese da
Hacer un programa que lea los 3 lados de un triangulo desde el teclado y nos diga si es
equiltero (3 lados iguales), issceles (2 lados iguales) o escalano (3 lados desiguales).
Decir si una frase es o no un palndromo, es decir, si se lee igual de derecha a izquierda
que de izquierda a derecha.
Escribir un programa, que con funciones, verifique si un carcter introducido es un
nmero o no.

Universidad Politcnica Salesiana del Ecuador Pgina 102 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Universidad Politcnica Salesiana del Ecuador Pgina 103 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Tercera Parte
PROGRAMACIN
ORIENTADA A OBJETOS

Universidad Politcnica Salesiana del Ecuador Pgina 104 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Java
Introduccin.-
Presentaremos la Programacin en Java. Hay dos tipos de programas en Java:
aplicaciones y applets.

APLICACIONES: Una aplicacin en Java es un programa que se ejcuta utilizando el


intrprete de java.
Consta de un solo archivo .java que genera un archivo .class al ser compilado.
El cdigo fuente de nuestro programa llamado en ste ejemplo HolaMundo.java y se
muestra a continuacin:

/*Programa para
imprimir texto*/

//Nombre de la clase
public class HolaMundo {
/* El mtodo main es invocado cuando la aplicacin comienza*/
public static void main (String args []) {
System.out.print ("Hola Mundo");

} //fin del mtodo main


} //fin de la clase HolaMundo

NOTA: Los programas en Java siempre deben tener un procedimiento main.


En ste ejemplo el archivo debe llamarse "HolaMundo.java". El nombre de la clase en
public class HolaMundo, siempre debe coincidir con el nombre del archivo.
Tambin es importante el uso de comentarios ya que nos permitir tener ms
organizado nuestro programa. Los comentarios siempre deben de ir precedidos de // o
tambin entre /*Comentario*/, l ltimo se lo utiliza comnmente para comentar
varias lneas.
No olvidar que en ste caso no es necesario el uso de libreras, porque es un programa
muy sencillo, pero no olvidar que las libreras principales deben ir:

import java.io.*;
import java.lang.*;

Entonces el programa quedara as:

import java.io.*;
import java.lang.*;

/*Programa para
imprimir texto*/

Universidad Politcnica Salesiana del Ecuador Pgina 105 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

//Nombre de la clase
public class HolaMundo {
/* El mtodo main es invocado cuando la aplicacin comienza*/
public static void main (String args []) {
System.out.print ("Hola Mundo");

} //fin del mtodo main


} //fin de la clase HolaMundo

LIBRERAS

El uso de las libreras es importante y ese puede ser un error comn al olvidarnos de
colocarlos en el programa. Siempre van al pricipio del programa.

Cuando utilizamos una librera, realmente lo que estamos haciendo es importar


mtodos, sentencias, que permitarn la compilacin correcta del programa.

import java.io.*;
Es comunmente usada con la siguiente lnea:

public static void main (String args [])throws IOException{

Es decir si colocamos esa lnea debe ir a la labrera que contiene ese mtodo para
poder ejecutarla.
public static void main (String args[ ]) {

La segunda lnea de este programa en java es complicada por el diseo de Java, que
obliga a que no haya funciones globales, solo clases. Esta lnea es igual en todos los
programas, entonces vamos a estudiarla con detenimiento.
public
Esta palabra es un especificador de acceso que permite que el programador controle la
visibilidad de cada variable o metodo. En este caso public indica que cualquier clase
puede ver el mtodo main. Hay otros dos especificadores de acceso: private y
protected.
static
En Java existen otra clasificacin de variables y mtodos que pueden dividirse en
variables y metodos de clase y de instancia. Cuando las variables y los mtodos se
aplican a la clase y no a la instancia se declaran como static.
void
Significa que la funcin no retorna ningn valor.
main
El nombre de la funcin. Java es sensible a mayscular por ello ser diferente main a
Main. Cuando se le dice a la mquina virtual que implemente una clase el sistema

Universidad Politcnica Salesiana del Ecuador Pgina 106 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

busca una funcin main para ejecutar en primer lugar. El compilador puede compilar
clases que no tengan una funcin main, sin embargo, el interpretador de Java ser
incapaz de ejecutarlo.
String args[ ]
Es el vector de parmetros que se le pasa a la clase al momento de ejecucin, args es
un vector de cadenas de caracteres. Para ms informacin sobre la clase String vea
java.lang.String
PAQUETES
La palabra clave package permite agrupar clases e interfaces. Los nombres de los
paquetes son palabras separadas por puntos y comas se almacenan en directorios que
coinciden con esos nombres.
Por ejemplo, los ficheros siguientes, que contienen cdigo fuente Java:
Applet.java, AppletContext.java, AppletStub.java, AudioClip.java
contienen en su cdigo la lnea:
package java.applet;
Y las clases que se obtienen de la compilacin de los ficheros anteriores, se encuentran
con el nombre nombre_de_clase.class, en el directorio:
java/applet

Import
Los paquetes de clases se cargan con la palabra clave import, especificando el nombre
del paquete como ruta y nombre de clase (es lo mismo que #include de C/C++). Se
pueden cargar varias clases utilizando un asterisco.
import java.Date;
import java.awt.*;
Si un fichero fuente Java no contiene ningn package, se coloca en el paquete por
defecto sin nombre. Es decir, en el mismo directorio que el fichero fuente, y la clase
puede ser cargada con la sentencia import:
import MiClase;

Paquetes de Java
El lenguaje Java proporciona una serie de paquetes que incluyen ventanas, utilidades,
un sistema de entrada/salida general, herramientas y comunicaciones. En la versin
actual del JDK, los paquetes Java que se incluyen son:
java.applet
Este paquete contiene clases diseadas para usar con applets. Hay una clase Applet y
tres interfaces: AppletContext, AppletStub y AudioClip.
java.awt
El paquete Abstract Windowing Toolkit (awt) contiene clases para generar widgets y
componentes GUI (Interfaz Grfico de Usuario). Incluye las clases Button, Checkbox,
Choice, Component, Graphics, Menu, Panel, TextArea y TextField.
java.io
El paquete de entrada/salida contiene las clases de acceso a ficheros: FileInputStream
y FileOutputStream.
java.lang

Universidad Politcnica Salesiana del Ecuador Pgina 107 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Este paquete incluye las clases del lenguaje Java propiamente dicho: Object, Thread,
Exception, System, Integer, Float, Math, String, etc.
java.net
Este paquete da soporte a las conexiones del protocolo TCP/IP y, adems, incluye las
clases Socket, URL y URLConnection.
java.util
Este paquete es una miscelnea de clases tiles para muchas cosas en programacin.
Se incluyen, entre otras, Date (fecha), Dictionary (diccionario), Random (nmeros
aleatorios) y Stack (pila FIFO).

Tipos de Clases
Hasta ahora slo se ha utilizado la palabra clave public para calificar el nombre de las
clases que hemos visto, pero hay tres modificadores ms. Los tipos de clases que
podemos definir son:
public
Las clases public son accesibles desde otras clases, bien sea directamente o por
herencia, desde clases declaradas fuera del paquete que contiene a esas clases
pblicas, ya que, por defecto, las clases solamente son accesibles por otras clases
declaradas dentro del mismo paquete en el que se han declarado. Para acceder desde
otros paquetes, primero tienen que ser importadas. La sintaxis es:
public class miClase extends SuperClase implements miInterface,TuInterface {
// cuerpo de la clase
}
Aqu la palabra clave public se utiliza en un contexto diferente del que se emplea
cuando se define internamente la clase, junto con private y protected.
abstract
Una clase abstract tiene al menos un mtodo abstracto. Una clase abstracta no se
instancia, sino que se utiliza como clase base para la herencia. Es el equivalente al
prototipo de una funcin en C++.
final
Una clase final se declara como la clase que termina una cadena de herencia, es lo
contrario a una clase abstracta. Nadie puede heredar de una clase final. Por ejemplo, la
clase Math es una clase final. Aunque es tcnicamente posible declarar clases con
varias combinaciones de public, abstract y final, la declaracin de una clase abstracta y
a la vez final no tiene sentido, y el compilador no permitir que se declare una clase
con esos dos modificadores juntos.
synchronizable
Este modificador especifica que todos los mtodos definidos en la clase son
sincronizados, es decir, que no se puede acceder al mismo tiempo a ellos desde
distintos threads; el sistema se encarga de colocar los flags necesarios para evitarlo.
Este mecanismo hace que desde threads diferentes se puedan modificar las mismas
variables sin que haya problemas de que se sobreescriban.
Si no se utiliza alguno de los modificadores expuestos, por defecto, Java asume que
una clase es:

Universidad Politcnica Salesiana del Ecuador Pgina 108 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

No final
No abstracta
Subclase de la clase Object
No implementa interfaz alguno

Manejo de excepciones
A continuacin se muestra cmo se utilizan las excepciones, reconvirtiendo en primer
lugar el applet de saludo a partir de la versin iterativa de HolaIte.java:
import java.awt.*;
import java.applet.Applet;

public class HolaIte extends Applet {


private int i = 0;
private String Saludos[] = {
"Hola Mundo!",
"HOLA Mundo!",
"HOLA MUNDO!!"
};

public void paint( Graphics g ) {


g.drawString( Saludos[i],25,25 );
i++;
}
}
Normalmente, un programa termina con un mensaje de error cuando se lanza una
excepcin. Sin embargo, Java tiene mecanismos para excepciones que permiten ver
qu excepcin se ha producido e intentar recuperarse de ella.
Vamos a reescribir el mtodo paint() de esa versin iterativa del saludo:
EJERCICIO 1

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE EL MENEJO DE EXCEPCIONES.

public void paint( Graphics g ) {


try {
g.drawString( Saludos[i],25,25 );
} catch( ArrayIndexOutOfBoundsException e ) {
g.drawString( "Saludos desbordado",25,25 );
} catch( Exception e ) {
// Cualquier otra excepcin
System.out.println( e.toString() );
} finally {
System.out.println( "Esto se imprime siempre!" );
}
i++;
}

Universidad Politcnica Salesiana del Ecuador Pgina 109 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

La palabra clave finally define un bloque de cdigo que se quiere que sea ejecutado
siempre, de acuerdo a si se captur la excepcin o no.
try
Es el bloque de cdigo donde se prev que se genere una excepcin. Es como si
dijsemos "intenta estas sentencias y mira a ver si se produce una excepcin". El
bloque try tiene que ir seguido, al menos, por una clusula catch o una clusula finally.
La sintaxis general del bloque try consiste en la palabra clave try y una o ms
sentencias entre llaves.
try {
// Sentencias Java
}
Puede haber ms de una sentencia que genere excepciones, en cuyo caso habra que
proporcionar un bloque try para cada una de ellas. Algunas sentencias, en especial
aquellas que invocan a otros mtodos, pueden lanzar, potencialmente, muchos tipos
diferentes de excepciones, por lo que un bloque try consistente en una sola sentencia
requerira varios controladores de excepciones.
Tambin se puede dar el caso contrario, en que todas las sentencias, o varias de ellas,
que puedan lanzar excepciones se encuentren en un nico bloque try, con lo que
habra que asociar mltiples controladores a ese bloque. Aqu la experiencia del
programador es la que cuenta y es el propio programador el que debe decidir qu
opcin tomar en cada caso.
Los controladores de excepciones deben colocarse inmediatamente despus del
bloque try. Si se produce una excepcin dentro del bloque try, esa excepcin ser
manejada por el controlador que est asociado con el bloque try.
catch
Es el cdigo que se ejecuta cuando se produce la excepcin. Es como si dijsemos
"controlo cualquier excepcin que coincida con mi argumento". No hay cdigo alguno
entre un bloque try y un bloque catch, ni entre bloques catch. La sintaxis general de la
sentencia catch en Java es la siguiente:
catch( UnTipoTrhowable nombreVariable ) {
// sentencias Java
}
El argumento de la sentencia declara el tipo de excepcin que el controlador, el bloque
catch, va a manejar.
En este bloque tendremos que asegurarnos de colocar cdigo que no genere
excepciones. Se pueden colocar sentencias catch sucesivas, cada una controlando una
excepcin diferente. No debera intentarse capturar todas las excepciones con una
sola clusula, como esta:
catch( Excepcion e ) { ...
Esto representara un uso demasiado general, podran llegar muchas ms excepciones
de las esperadas. En este caso es mejor dejar que la excepcin se propague hacia
arriba y dar un mensaje de error al usuario.

Universidad Politcnica Salesiana del Ecuador Pgina 110 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

MOSTRAR TEXTO EN JAVA

Es importante recalcar que para mostrar texto en Java se utiliza:

System.out.print

Pero, tambin tenemos otra instruccin que sirve para mostrar texto y dar salto de
lnea al mismo tiempo y es la siguiente:

System.out.println

NOTE QUE LA LNEA 3 ES UNA LNEA EN BLANCO, LOS PROGRAMADORES


USUALMENTE DEJAN ESAS LNEAS EN BLANCO PARA FACILITAR LA LECTURA DEL
PROGRAMA.
EJERCICIO 1
REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE EL MENSAJE SIGUIENTE: Hola
Mundo.
import java.io.*;

Universidad Politcnica Salesiana del Ecuador Pgina 111 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.lang.*;

public class HolaMundo {


public static void main (String args []) {
System.out.print ("Hola Mundo");

}
}

ERROR COMN
OMITIR EL PUNTO Y COMA(;) AL FINAL DE LA INSTRUCCIN.
System.out.print ("Hola Mundo");

EJERCICIO 2
REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE UN MENSAJE CON VARIAS
INSTRUCCIONES.
import java.io.*;
import java.lang.*;

public class HolaMundo2 {


public static void main (String args []) {
System.out.print ("Hola ");
System.out.println ("Mundo");

}
}

NOTE QUE:
System.out.print ("Hola ");
System.out.println ("Mundo");

DESPUS DE ESCRIBIR HOLA HAY UN ESPACIO EN BLANCO, ESE ESPACIO ES NECESARIO


PARA QUE EL MENSAJE DE HOLA MUNDO NO SALGA JUNTO, POR EJEMPLO:

HolaMundo

Universidad Politcnica Salesiana del Ecuador Pgina 112 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

TAMBIN COMO SE LO MENCION ANTERIORMENTE ACERCA DE LA LNEA DE


System.out.println, NOS SIRVE PARA DAR SALTO DE LNEA, ES IMPORTANTE NO
OLVIDARLO PORQUE SINO EL MENSAJE VA A SALIR COMO EN EL EJERCICIO UNO.

NOTE LAS DIFERENCIAS.


EJERCICIO 3
REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE UN MENSAJE CON VARIAS
INSTRUCCIONES, UNA PALABRA POR MENSAJE.

import java.io.*;
import java.lang.*;

public class HolaMundoln {


public static void main (String args []) {
System.out.print ("Bienvenido");
System.out.print (" a");
System.out.print (" la");
System.out.print (" Programacion");
System.out.print (" en");
System.out.println (" Java");
}
}

NOTA: Se pueden realizar varias sentencias para mostrar mensajes en el mismo


mdoto Main.

NOTE EL ESPACIO QUE SE DEJA EN EL MENSAJE DESDE LA LNEA : System.out.print ("


a");
ESTE MENSAJE SE LO PUDO HABER HECHO EN UNA SLA LNEA COMO EN EL EJERCICIO
UNO Y DA EL MISMO RESULTADO.

EJERCICIO 4

Universidad Politcnica Salesiana del Ecuador Pgina 113 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO 3, QUE MUESTRE EL MISMO


RESULTADO PERO EN UNA SLA LNEA MUESTRE EL MENSAJE.

import java.io.*;
import java.lang.*;

public class HolaMundoln1 {


public static void main (String args []) {
System.out.println ("Bienvenido a la Programacion en Java");
}
}

SECUENCIAS DE ESCAPE
\n -----> Nueva Lnea.
\t -----> Tabulador.
\r -----> Retroceso de Carro.
\f -----> Comienzo de Pagina.
\b -----> Borrado a la Izquierda.
\\ -----> El caracter "\".
\' -----> El caracter "'".
\" -----> El caracter '"'.
LA BARRA DIAGONAL INVERSA SE CONOCE COMO CARCTER DE ESCAPE. ESTE
CARCTER INDICA A LOS MTODOS PRINT Y PRINTLN DE SYSTEM.OUT QUE SE VA A
IMPRIMIR UN CARACTER ESPECIAL.

EJERCICIO 5
MOSTRAR VARIAS LNEAS DE TEXTO CON UNA SLA INSTRUCCIN, UTILIZANDO LAS
SECUENCIAS DE ESCAPE NECESARIAS.
import java.io.*;
import java.lang.*;

public class HolaMundo3 {


public static void main (String args []) {

System.out.println ("Bienvenido\na\nla\nprogramacion\nen Java!!!");

}
}

Universidad Politcnica Salesiana del Ecuador Pgina 114 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 6
MOSTRAR UNA LNEA DE TEXTO USANDO LA SECUENCIA DE ESCAPE PARA TABULAR O
DAR ESPACIOS (\t).

import java.io.*;
import java.lang.*;

public class HolaMundo4 {


public static void main (String args []) {

System.out.println ("Hola\tMundo");

}
}

EJERCICIO 7
MOSTRAR UNA LNEA DE TEXTO QUE VAYA ENTRE COMILLAS DOBLES.
import java.io.*;
import java.lang.*;

public class HolaMundo5 {


public static void main (String args []) {

System.out.println ("\"Hola Mundo\"");

}
}

EJERCICIO 8
REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE UNA LNEA DE TEXTO QUE VAYA
ENTRE COMILLAS SIMPLES.
import java.io.*;
import java.lang.*;

public class HolaMundo5 {


public static void main (String args []) {
System.out.println ("\'Hola Mundo\'");

}
}

Universidad Politcnica Salesiana del Ecuador Pgina 115 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 9
REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE UNA LNEA DE TEXTO PERO QUE
BORRE UN CARCTER A LA IZQUIERDA.
import java.io.*;
import java.lang.*;

public class HolaMundo9 {


public static void main (String args []) {

System.out.println ("Hola\bMundo");

}
}

EJERCICIO 10
REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE UNA LNEA DE TEXTO PERO QUE
MUESTRE EL CARCTER \ EN EL MENSAJE.
import java.io.*;
import java.lang.*;

public class HolaMundo10 {


public static void main (String args []) {

System.out.println ("Hola\\Mundo");

}
}

USO DE CONSTANTES

Universidad Politcnica Salesiana del Ecuador Pgina 116 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Las constantes almacenan valores o cadenas de texto que se utilzarn en todo el


programa de manera fija, y para no estar escribiendo a cada momento se los almacena
en una constante.
Y si se requiere mostrar el contenido de la constante, slo se utiliza el nombre de la
variable en el mensaje (Vea el ejercicio 11.)
EJERCICIO 11
REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE EL USO DE LAS VARIABLES Y
TAMBIN DE LOS TIPOS DE DATOS.
/*Programa para mostrar el uso de variables y tipos de datos*/
class MaximosDeVariablesApli{
public static void main(String[]args){

//Enteros.
byte masGrandeByte=Byte.MAX_VALUE;
short masGrandeShort=Short.MAX_VALUE;
int masGrandeInt=Integer.MAX_VALUE;
long masGrandeLong=Long.MAX_VALUE;

//numeros de punto flotante.


float masGrandeFloat=Float.MAX_VALUE;
double masGrandeDouble=Double.MAX_VALUE;

//otros tipos primitivos.


char unChar='S';
boolean unBoolean=true;

//desplegarlos todos.
System.out.println("El valor mas grande de un byte es " +masGrandeByte);
System.out.println("El valor mas grande de un short es " +masGrandeShort);
System.out.println("El valor mas Grande de un int es " +masGrandeInt);
System.out.println("El valor mas grande de un long es " +masGrandeLong);
System.out.println("El valor mas grande de un float es " +masGrandeFloat);
System.out.println("El valor mas grande de un double es " +masGrandeDouble);
System.out.println("El valor de un caracter puede ser " +unChar);
System.out.println("El valor de un boolean puede ser " +unBoolean+" o false");
}
}

NOTA: UN TIPO DE DATO SIEMPRE EST RELACIONADO CON UNA VARIABLE.


EJEMPLO:

Universidad Politcnica Salesiana del Ecuador Pgina 117 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

int dato= 0;//Inicializo una variable con cero


int= tipo de dato
dato= variable

Los tipos de tos enteros, double se inicializan con cero para que no almacenen valor
basura a lo largo del programa.

La clase StringTokenizer
La clase StringTokenizer nos ayuda a dividir un string en substrings o tokens, en base a
otro string (normalmente un carcter) separador entre ellos denominado delimitador.
Supongamos un string consistente en el nombre, y los dos apellidos de una persona
separados por espacios en blanco. La clase StringTokenizer nos ayuda a romper dicho
string en tres substrings basado en que el carcter delimitador es un espacio en
blanco.
EJERCICIO

package tokens;

import java.util.StringTokenizer;

public class TokenApp {

public static void main(String[] args) {


String nombre="Angel Franco Garca";
StringTokenizer tokens=new StringTokenizer(nombre);
while(tokens.hasMoreTokens()){
System.out.println(tokens.nextToken());
}

String strDatos="6.3\n6.2\n6.4\n6.2";
tokens=new StringTokenizer(strDatos, "\n");
int nDatos=tokens.countTokens();
double[] datos=new double[nDatos];
int i=0;
while(tokens.hasMoreTokens()){
String str=tokens.nextToken();

Universidad Politcnica Salesiana del Ecuador Pgina 118 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

datos[i]=Double.valueOf(str).doubleValue();
System.out.println(datos[i]);
i++;
}

try {
//espera la pulsacin de una tecla y luego RETORNO
System.in.read();
}catch (Exception e) { }
}
}

Un control rea de texto, permite varias lneas de texto, cada lnea est separada de la
siguiente mediante un carcter nueva lnea '\n' que se obtiene pulsando la tecla Enter
o Retorno. Mediante una funcin denominada getText obtenemos todo el texto que
contiene dicho control. La clase StringTokenizer nos permite dividir el string obtenido
en un nmero de substrings o tokens igual al nmero de lneas de texto, basado en
que el carcter delimitador es '\n'.
Para usar la clase StringTokenizer tenemos que poner al principio del archivo del
cdigo fuente la siguiente sentencia import.
import java.util.*;
o bien
import java.util.StringTokenizer;

Los constructores
Creamos un objeto de la clase StringTokenizer llamando a uno de los tres
constructores que tiene la clase. Al primer constructor, se le pasa el string nombre que
va a ser dividido teniendo en cuenta que el espacio en blanco es el delimitador por
defecto.
String nombre="Angel Franco Garca";
StringTokenizer tokens=new StringTokenizer(nombre);
Supongamos ahora que en un control rea de texto introducimos los siguientes datos,
resultado de ciertas medidas, tal como se ve a la izquierda en la figura.

Obtenemos el texto del control rea de texto. Creamos un objeto tokens de la clase
StringTokenizer, pasndole el string strDatos y el delimitador "\n"

Universidad Politcnica Salesiana del Ecuador Pgina 119 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

String strDatos="6.3\n6.2\n6.4\n6.2";
StringTokenizer tokens=new StringTokenizer(strDatos, "\n");

Obtencin de los tokens


La clase StringTokenizer implementa el interface Enumeration, por tanto define las
funciones nextElement y hasMoreElements.
public class StringTokenizer implements Enumeration {
//...
public boolean hasMoreElements() {
//...
}
public Object nextElement() {
//...
}
}
Para el programador es ms cmodo usar las funciones miembro equivalentes
nextToken y hasMoreTokens. Para extraer el nombre, el primer apellido y el segundo
apellido en el primer ejemplo, escribiremos
String nombre="Angel Franco Garca";
StringTokenizer tokens=new StringTokenizer(nombre);
while(tokens.hasMoreTokens()){
System.out.println(tokens.nextToken());
}
El segundo ejemplo, requiere un poco ms de trabajo, ya que adems de extraer los
tokens del string strDatos, hemos de convertir cada uno de los substrings en un valor
numrico de tipo double y guardarlos en el array datos del mismo tipo. Vase la
seccin convertir un string en un valor numrico.
String str=tokens.nextToken();
datos[i]=Double.valueOf(str).doubleValue();
El nmero de tokens o de datos nDatos que hay en un string strDatos, se obtiene
mediante la funcin miembro countTokens. Con este dato establecemos la dimensin
del array datos.
int nDatos=tokens.countTokens();
double[] datos=new double[nDatos];
Una vez guardados los datos introducidos en el control rea de texto en el array datos,
podemos operar con ellos, obteniendo su valor medio, y el error cometido en las
medidas efectuadas.
El cdigo completo para extraer los tokens del string strDatos y guardarlos en un array
datos, es el siguiente.
String strDatos="6.3\n6.2\n6.4\n6.2";
StringTokenizer tokens=new StringTokenizer(strDatos, "\n");
int nDatos=tokens.countTokens();
double[] datos=new double[nDatos];
int i=0;
while(tokens.hasMoreTokens()){

Universidad Politcnica Salesiana del Ecuador Pgina 120 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

String str=tokens.nextToken();
datos[i]=Double.valueOf(str).doubleValue();
System.out.println(datos[i]);
i++;
}
La clase String
Dentro de un objeto de la clases String o StringBuffer, Java crea un array de caracteres
de una forma similar a como lo hace el lenguaje C++. A este array se accede a travs de
las funciones miembro de la clase.
Los strings u objetos de la clase String se pueden crear explcitamente o
implcitamente. Para crear un string implcitamente basta poner una cadena de
caracteres entre comillas dobles. Por ejemplo, cuando se escribe
System.out.println("El primer programa");
Java crea un objeto de la clase String automticamente.
Para crear un string explcitamente escribimos
String str=new String("El primer programa");
Tambin se puede escribir, alternativamente
String str="El primer programa";
Para crear un string nulo se puede hacer de estas dos formas
String str="";
String str=new String();
Un string nulo es aqul que no contiene caracteres, pero es un objeto de la clase
String. Sin embargo,
String str;
est declarando un objeto str de la clase String, pero an no se ha creado ningn
objeto de esta clase.

Cmo se obtiene informacin acerca del string


Una vez creado un objeto de la clase String podemos obtener informacin relevante
acerca del objeto a travs de las funciones miembro.
Para obtener la longitud, nmero de caracteres que guarda un string se llama a la
funcin miembro length.
String str="El primer programa";
int longitud=str.length();
Podemos conocer si un string comienza con un determinado prefijo, llamando al
mtodo startsWith, que devuelve true o false, segn que el string comience o no por
dicho prefijo
String str="El primer programa";
boolean resultado=str.startsWith("El");
En este ejemplo la variable resultado tomar el valor true.
De modo similar, podemos saber si un string finaliza con un conjunto dado de
caracteres, mediante la funcin miembro endsWith.
String str="El primer programa";
boolean resultado=str.endsWith("programa");
Si se quiere obtener la posicin de la primera ocurrencia de la letra p, se usa la funcin
indexOf.

Universidad Politcnica Salesiana del Ecuador Pgina 121 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

String str="El primer programa";


int pos=str.indexOf('p');
Para obtener las sucesivas posiciones de la letra p, se llama a otra versin de la misma
funcin
pos=str.indexOf('p', pos+1);
El segundo argumento le dice a la funcin indexOf que empiece a buscar la primera
ocurrencia de la letra p a partir de la posicin pos+1.
Otra versin de indexOf busca la primera ocurrencia de un substring dentro del string.
String str="El primer programa";
int pos=str.indexOf("pro");
Vemos que una clase puede definir varias funciones miembro con el mismo nombre
pero que tienen distinto nmero de parmetros o de distinto tipo.
Comparacin de strings
La comparacin de strings nos da la oportunidad de distinguir entre el operador lgico
== y la funcin miembro equals de la clase String. En el siguiente cdigo
String str1="El lenguaje Java";
String str2=new String("El lenguaje Java");
if(str1==str2){
System.out.println("Los mismos objetos");
}else{
System.out.println("Distintos objetos");
}
if(str1.equals(str2)){
System.out.println("El mismo contenido");
}else{
System.out.println("Distinto contenido");
}
Esta porcin de cdigo devolver que str1 y str2 son dstintos objetos pero con el
mismo contenido. str1 y str2 ocupan posiciones distintas en memoria pero guradan los
mismos datos.
Cambiemos la segunda sentencia y escribamos
String str1="El lenguaje Java";
String str2=str1;
System.out.prinln("Son el mimso objeto "+(str1==str2);
Los objetos str1 y str2 guardan la misma referencia al objeto de la clase String creado.
La expresin (str1==str2) devolver true.
Asi pues, el mtodo equals compara un string con un objeto cualquiera que puede ser
otro string, y devuelve true cuando dos strings son iguales o false si son distintos.
String str="El lenguaje Java";
boolean resultado=str.equals("El lenguaje Java");
La variable resultado tomar el valor true.
La funcin miembro comapareTo devuelve un entero menor que cero si el objeto
string es menor (en orden alfabtico) que el string dado, cero si son iguales, y mayor
que cero si el objeto string es mayor que el string dado.
String str="Toms";
int resultado=str.compareTo("Alberto");

Universidad Politcnica Salesiana del Ecuador Pgina 122 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

La variable entera resultado tomar un valor mayor que cero, ya que Toms est
despus de Alberto en orden alfabtico.
String str="Alberto";
int resultado=str.compareTo("Toms");
La variable entera resultado tomar un valor menor que cero, ya que Alberto est
antes que Toms en orden alfabtico.

Extraer un substring de un string


En muchas ocasiones es necesario extraer una porcin o substring de un string dado.
Para este propsito hay una funcin miembro de la clase String denominada substring.
Para estraer un substring desde una posicin determinada hasta el final del string
escribimos
String str="El lenguaje Java";
String subStr=str.substring(12);
Se obtendr el substring "Java".
Una segunda versin de la funcin miembro substring, nos permite extraer un
substring especificando la posicin de comienzo y la el final.
String str="El lenguaje Java";
String subStr=str.substring(3, 11);
Se obtendr el substring "lenguaje". Recurdese, que las posiciones se empiezan a
contar desde cero.

Convertir un nmero a string


Para convertir un nmero en string se emplea la funcin miembro esttica valueOf
(ms adelante explicaremos este tipo de funciones).
int valor=10;
String str=String.valueOf(valor);
La clase String proporciona versiones de valueOf para convertir los datos primitivos:
int, long, float, double.
Esta funcin se emplea mucho cuando programamos applets, por ejemplo, cuando
queremos mostrar el resultado de un clculo en el rea de trabajo de la ventana o en
un control de edicin.

Convertir un string en nmero


Cuando introducimos caracteres en un control de edicin a veces es inevitable que
aparezcan espacios ya sea al comienzo o al final. Para eliminar estos espacios tenemos
la funcin miembro trim
String str=" 12 ";
String str1=str.trim();
Para convertir un string en nmero entero, primero quitamos los espacios en blanco al
principio y al final y luego, llamamos a la funcin miembro esttica parseInt de la clase
Integer (clase envolvente que describe los nmeros enteros)
String str=" 12 ";
int numero=Integer.parseInt(str.trim());
Para convertir un string en nmero decimal (double) se requieren dos pasos: convertir
el string en un objeto de la clase envolvente Double, mediante la funcin miembro

Universidad Politcnica Salesiana del Ecuador Pgina 123 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

esttica valueOf, y a continuacin convertir el objeto de la clase Double en un tipo


primitivo double mediante la funcin doubleValue
String str="12.35 ";
double numero=Double.valueOf(str).doubleValue();
Se puede hacer el mismo procedimiento para convertir un string a nmero entero
String str="12";
int numero=Integer.valueOf(str).intValue();

La clase StringBuffer
En la seccin dedicada a los operadores hemos visto que es posible concatenar
cadenas de caracteres, es, decir, objetos de la clase String. Ahora bien, los objetos de
la clase String son constantes lo cual significa que por defecto, solamente se pueden
crear y leer pero no se pueden modificar.
Imaginemos una funcin miembro a la cual se le pasa un array de cadenas de
caracteres. Los arrays se estudiarn en la siguiente pgina.
public class CrearMensaje{
public String getMensaje(String[] palabras){
String mensaje="";
for(int i=0; i<palabras.length; i++){
mensaje+=" "+palabras[i];
}
return mensaje;
}
//...
}
Cada vez que se aade una nueva palabra, se reserva una nueva porcin de memoria y
se desecha la vieja porcin de memoria que es ms pequea (una palabra menos) para
que sea liberada por el recolector de basura (grabage collector). Si el bucle se realiza
1000 veces, habr 1000 porciones de memoria que el recolector de basura ha de
identificar y liberar.
Para evitar este trabajo extra al recolector de basura, se puede emplear la clase
StringBuffer que nos permite crear objetos dinmicos, que pueden modificarse.
public class CrearMensaje{
public String getMensaje(String[] palabras){
StringBuffer mensaje=new StringBuffer();
for(int i=0; i<palabras.length; i++){
mensaje.append(" ");
mensaje.append(palabras[i]);
}
return mensaje.toString();
}
//...
}

Universidad Politcnica Salesiana del Ecuador Pgina 124 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

La funcin append incrementa la memoria reservada para el objeto mensaje con una
palabra ms sin crear nueva memoria, cada vez que se ejecuta el bucle. La funcin
toString, que veremos ms adelante, convierte un objeto en una cadena de caracteres.
EJERCICIO 12

MOSTRAR UN MENSAJE UTILIZANDO UNA CONSTANTE QUE ALMACENE DICHO


MENSAJE Y LUEGO MOSTRARLO POR PANTALLA.

import java.io.*;
import java.lang.*;

public class Hola {


public static void main(String[] args){
String saludo = "Hola Mundo!!!";
System.out.println( saludo );
}
}

El mensaje que contiene la constante de tipo String debe ir entre comillas.

String saludo = "Hola Mundo!!!";

Las constantes pueden ser de tipo String(Cadena de Caracteres), Int(enteros), double,


float(coma flotante).

NOTA: CUANDO SE REQUIERE INICIALIZAR LA VARIABLE DE TIPO STRING SE INICIALIZA


CON COMILLAS DOBLES.

String saludo = "";


Se inicializan las variables para que no almacenen valor basura a lo largo del programa.

EJERCICIO 13

MOSTRAR DOS MENSAJES CON EL USO DE CONSTANTES.

import java.io.*;
import java.lang.*;

public class UsoDeConstantes{


public static void main(String args[]){
String mensaje;
mensaje = "Hola Mundo!!!";

Universidad Politcnica Salesiana del Ecuador Pgina 125 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

System.out.println( mensaje );
mensaje = ("Estoy utilizando variables");
System.out.println( mensaje );
}
}

NOTA: VEA EL EJERCICIO 13, EL RESULTADO ES EL MISMO PERO LA DIFERENCIA ES QUE


NUNCA TENDR ERROR EN MOSTRAR EL MENSAJE EN EL EJ. 13, PERO PUEDE SER QUE
SI PUEDA SUCEDER ALGN ERROR EN EL EJ. 12 EN CUALQUIER MOMENTO.

EJERCICIO 14

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO 12, PERO STA VEZ INICIALIZE LA
VARIABLE STRING.+

import java.io.*;
import java.lang.*;

public class UsoDeConstantes1{


public static void main(String args[]){
String mensaje="";
mensaje = "Hola Mundo!!!";
System.out.println( mensaje );
mensaje = ("Estoy utilizando variables");
System.out.println( mensaje );
}
}

EJERCICIO 15

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE POR PANTALLA UN CDIGO.

import java.io.*;
import java.lang.*;

Universidad Politcnica Salesiana del Ecuador Pgina 126 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public class Hola19 {


public static void main(String[] args){

String codigo = "00402";


System.out.println(codigo);
}
}

NOTA: Cuando se muestra un nmero entero en un tipo String se presenta todos los
nmeros, pero cuando el tipo de dato es entero no presenta los primeros nmeros que
son ceros, es por eso que el nmero de la cdula tiene que ser de tipo String para
mostrar todos los nmeros. (Vea el ejercicio 16)

EJERCICIO 16

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE POR PANTALLA UN CDIGO DE TIPO


ENTERO EN UN MENSAJE.

import java.io.*;
import java.lang.*;

public class Hola18 {


public static void main(String[] args){

int codigo = 0;
codigo=02;
System.out.println(codigo);
}
}

EJERCICIO 17

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE POR PANTALLA UN MENSAJE


UTILIZANDO EL CONCATENADOR DE CADENAS DE CARACTERES(+).

Universidad Politcnica Salesiana del Ecuador Pgina 127 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.io.*;
import java.lang.*;

public class Hola20 {


public static void main(String[] args){

String saludo = "Bienvenido";


String saludo1 = "Java";
System.out.println(saludo+saludo1);
}
}

NOTA: Para unir texto, palabras o caracteres se utiliza el signo +, es para concatenar
como usualmente se lo conoce en Java.

EJERCICIO 18

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE POR PANTALLA UN MENSAJE


UTILIZANDO EL CONCATENADOR DE CADENAS DE CARACTERES(+).

import java.io.*;
import java.lang.*;

public class Hola21 {


public static void main(String[] args){

String saludo = "H";


String saludo1 = "O";
String saludo2 = "L";
String saludo3 = "A";
System.out.println(saludo+saludo1+saludo2+saludo3);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 128 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Nota: Se puede concatenar ms de 2 variables.

EJERCICIO 19

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MOSTRAR EL MENSAJE: HOLA JAVA.


import java.io.*;
import java.lang.*;

public class Hola22 {


public static void main(String[] args){

String saludo = "H";


String saludo1 = "O";
String saludo2 = "L";
String saludo3 = "A";
String saludo4 = " ";
String saludo5 = "J";
String saludo6 = "A";
String saludo7 = "V";
String saludo8 = "A";
System.out.println(saludo+saludo1+saludo2+saludo3+saludo4+
saludo5+saludo6+saludo7+saludo8);
}
}

NOTA: TAMBIN SE PUEDE UTILIZAR LA VARIABLE STRING PARA ALMACENAR UN


ESPACIO

String saludo4 = " ";

CUIDADO SE PUEDE CONFUNDIR CON LA INICIALIZACIN DE UNA VARIABLE, PARA


INICIALIZAR LAS COMILLAS DOBLES VAN JUNTAS.

String saludo4 = ""; // SIN ESPACIO

EJERCICIO 20

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE POR PANTALLA UN VALOR


CONSTANTE DE TIPO ENTERO.

Universidad Politcnica Salesiana del Ecuador Pgina 129 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.io.*;
import java.lang.*;

public class Hola1 {


public static void main(String[] args){
int valor = 2;

System.out.println( valor );
}
}

NOTA: SE INICIALIZA CON UN VALOR ES PORQUE STE VALOR VA A SER CONSTANTE


DYRANTE TODO EL PROGRAMA.

EJERCICIO 21

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MULTIPLICAR EL VALOR CONSTANTE


CON OTRO NMERO. MOSTRAR RESULTADO POR PANTALLA.

import java.io.*;
import java.lang.*;

public class Hola1 {


public static void main(String[] args){
int valor = 2; int proceso=0;
proceso=valor*2;
System.out.println( proceso );
}
}

EJERCICIO 22
REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MULTIPLICAR EL VALOR CONSTANTE
CON OTRO valor CONSTANTE. MOSTRAR RESULTADO POR PANTALLA.
import java.io.*;
import java.lang.*;

Universidad Politcnica Salesiana del Ecuador Pgina 130 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public class Hola2 {


public static void main(String[] args){
int valor = 2, valor2=4, proceso=0;
proceso=valor*valor2;
System.out.println( proceso );
}
}

EJERCICIO 23
REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MULTIPLICAR EL VALOR DE UNA
CONSTANTE CON OTRO VALOR DE COMA FLOTANTE. MOSTRAR RESULTADO POR
PANTALLA.
import java.io.*;
import java.lang.*;

public class Hola16 {


public static void main(String[] args){
int valor = 2;
float proceso=0f;
proceso=valor*5.23f;
System.out.println( proceso );
}
}

Los tipos de datos float deben especificarse con una f al final, como lo muestra el
ejercicio 16. Los de tipo double no es necesario (Vea Ejercicio 24).
EJERCICIO 24
REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MULTIPLICAR EL VALOR DE UNA
CONSTANTE CON OTRO VALOR DE COMA FLOTANTE. MOSTRAR RESULTADO POR
PANTALLA.
import java.io.*;
import java.lang.*;

public class Hola17 {


public static void main(String[] args){
int valor = 2;
double proceso=0;
proceso=valor*3.141592654;
System.out.println( proceso );

Universidad Politcnica Salesiana del Ecuador Pgina 131 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
}

EJERCICIO 25
REALIZAR UN PROGRAMA EN JAVA QUE PERMITA CONCATENAR UN VALOR ENTERO
CON UNA DE CARACTERES.
import java.io.*;
import java.lang.*;

public class Hola22 {


public static void main(String[] args){

String saludo = "HOLA ";


int saludo4 = 45689;
String saludo5 = " CHAO!!!!";

System.out.println(saludo+saludo4+saludo5);
}
}

NOTA: SE PUEDE CONCATENAR STRINGS, ENTEROS, DOUBLES, ETC.


CUADROS DE DALOGOS
Para cuadros de dilogos se usa la librera:

import javax.swing.JOptionPane;

Para mostrar un mensaje en el cuadro de dilogo:

JOptionPane.showMessageDialog

Para mostrar un mensaje con un cuadro para ingresar texto se utiliza:

JOptionPane.showInputDialog

CONVERTIR UNA CADENA DE CARACTERES A ENTERO (STRING A INT)

Universidad Politcnica Salesiana del Ecuador Pgina 132 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Se utiliza Integer.parseInt, para convertir porque cuando ingresamos informacin en


un cuadro de texto, Java lo reconoce como String, para poder hacer cualquier
operacin matemtica es necesario convertirlo a entero, float o double.Ejemplo:

num1=Integer.parseInt(primerNumero);

TIPO DE CUADRO DE DILOGO DE MENSAJE

JOptionPane.PLAIN_MESSAGE. - SIN ICONO


JOptionPane.ERROR_MESSAGE.- Presenta un cuadro de dilogo con el icono de error.
JOptionPane.WARNING_MESSAGE.- Presenta un cuadro de dilogo con el icono de
advertencia.
JOptionPane.QUESTION_MESSAGE.- Presenta un cuadro de dilogo con el icono de
pregunta. Generalmente el cuadro de dilogo tiene un botn de SI o NO para que de
clic el usuario.
JOptionPane.INFORMATION_MESSAGE.- Muestra una informacin al usuario.
EJERCICIO 26
REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MOSTRAR TEXTO EN UN CUADRO DE
DILOGO.
//Paquete de Java
import javax.swing.JOptionPane; /*El programa usa JOptionPane*/

public class Cuadro0 {


/* El mtodo main es invocado cuando la aplicacin comienza*/
public static void main (String args []) {
JOptionPane.showMessageDialog(null,"Bienvenido a Java!!!");
System.exit (0); /*terminar la aplicacin con la ventana*/
}
}

EJERCICIO 27
REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MOSTRAR TEXTO EN VARIOS
CUADROS DE DILOGO, UNA PALABRA POR CUADRO DE DILOGO.
//Paquete de Java
import javax.swing.JOptionPane; /*El programa usa JOptionPane*/

public class Cuadro1 {


/* El mtodo main es invocado cuando la aplicacin comienza*/

Universidad Politcnica Salesiana del Ecuador Pgina 133 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public static void main (String args []) {


JOptionPane.showMessageDialog(null,"Bienvenido");
JOptionPane.showMessageDialog(null,"a");
JOptionPane.showMessageDialog(null,"la");
JOptionPane.showMessageDialog(null,"Programacin");
JOptionPane.showMessageDialog(null,"en");
JOptionPane.showMessageDialog(null,"Java");
System.exit (0); /*terminar la aplicacin con la ventana*/

}
}

Universidad Politcnica Salesiana del Ecuador Pgina 134 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 28
MOSTRAR TEXTO EN UN CUADRO DE DILOGO, UTILIZANDO SECUENCIAS DE ESCAPE.
//Paquete de Java
import javax.swing.JOptionPane; /*El programa usa JOptionPane*/

public class Cuadro {


/* El mtodo main es invocado cuando la aplicacin comienza*/
public static void main (String args []) {

JOptionPane.showMessageDialog(null,"Bienvenido\na\nla\nprogramacion\nen
Java!!!");
System.exit (0); /*terminar la aplicacin con la ventana*/
}
}

EJERCICIO 29

ELABORAR UN PROGRAMA QUE PERMITA EL INGRESO DE UN NMERO EN UN


CUADRO DE DILOGO Y LUEGO MOSTRARLO.

//Paquete de Java

import javax.swing.JOptionPane;
public class Cuadro {
public static void main (String args []) {

String primerNumero;
String segundoNumero;

int num1;

Universidad Politcnica Salesiana del Ecuador Pgina 135 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

/*Lee el primer nmero como una cadena de texto*/

primerNumero=JOptionPane.showInputDialog ("Escriba un nmero nmero");

/*Convierte los nmeros de tipo String a tipo int*/

num1=Integer.parseInt(primerNumero);
JOptionPane.showMessageDialog (null,"El nmero ingresado es:
"+num1);
System.exit (0);

}
}

EJERCICIO 30

ELABORAR UN PROGRAMA QUE PERMITA EL INGRESO DE DOS NMEROS EN UN


CUADRO DE DILOGO Y LUEGO MOSTRARLOS.

//Paquete de Java

import javax.swing.JOptionPane;
public class Cuadro {
public static void main (String args []) {

String primerNumero;
String segundoNumero;

int num1;
int num2;

Universidad Politcnica Salesiana del Ecuador Pgina 136 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

/*Lee el primer nmero como una cadena de texto*/

primerNumero=JOptionPane.showInputDialog ("Escriba el primer nmero");

/*Lee el segundo nmero como una cadena de texto*/

segundoNumero=JOptionPane.showInputDialog ("Escriba el segundo nmero");

/*Convierte los nmeros de tipo String a tipo int*/

num1=Integer.parseInt(primerNumero);
num2=Integer.parseInt(segundoNumero);
JOptionPane.showMessageDialog (null,"Los nmeros ingresados son:
"+num1 +" y "+num2);
System.exit (0);

}
}

NOTA: CUANDO LEEMOS UN DATO, UTILIZEMOS O NO CUADROS DE DILOGOS, POR


DEFECTO SE LEE EL DATO QUE SE INGRESA COMO TIPO STRING, ENTONCES SE
NECESITA CONVERTIRLOS AL TIPO DE DATO QUE EL PROGRAMADOR DECIDA.

Universidad Politcnica Salesiana del Ecuador Pgina 137 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 31

Elaborar un programa que permita el ingreso de su nombre y apellido y despus


mostrarlos en pantalla utilizando cuadros de dilogos.

import java.io.*;
import java.lang.*;
/*Librera utilizada para cuadros de dilogos*/
import javax.swing.JOptionPane;

public class CuadroNombre {


public static void main (String args []) {

String nombre;
String apellido;

/*Lee como una cadena de texto*/


nombre=JOptionPane.showInputDialog ("Escriba su Nombre");
apellido=JOptionPane.showInputDialog ("Escriba su Apellido");

JOptionPane.showMessageDialog (null,"Los datos ingresados son: "+"\n"+nombre


+"\n"+apellido);
System.exit (0);

}
}

Universidad Politcnica Salesiana del Ecuador Pgina 138 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

INTERACCIN CON EL USUARIO


Ejemplo muy bsico de como interactuar con el usuario del programa.

EJERCICIO 32

import java.io.*;
public class j006
{
public static void main(String[]args)throws IOException
{
BufferedReader in=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Escribe tu nombre:");
String nom=in.readLine();
System.out.println("Adios "+nom);
}
}

EJERCICIO 33

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA INGRESAR UN NMERO POR


TECLADO Y MOSTRARLO DESPUS POR PANTALLA.

import java.io.*;
public class j0006
{
public static void main(String[]args)throws IOException
{

Universidad Politcnica Salesiana del Ecuador Pgina 139 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

BufferedReader in=new BufferedReader(new


InputStreamReader(System.in));
System.out.println("Ingrese un numero:");
String num=in.readLine();
System.out.println("El numero ingresado es "+num);
}
}

NOTA: EN STE EJERCICIO NOTE QUE UTILIZAMOS UN TIPO DE DATO STRING PARA
ALMACENAR EL VALOR ENTERO, ESTO SE PUEDE HACER SINO SE VA A SUMAR O
REALIZAR ALGUNA OPERACIN MATEMTICA.

EJRCICIO 34

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA INGRESAR UN NMERO POR


TECLADO Y MOSTRARLO DESPUS POR PANTALLA.

import java.io.*;
public class j0023
{
public static void main(String[]args)throws IOException
{
BufferedReader in=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese su nombre:");
String nom=in.readLine();
System.out.println("Ingrese su edad:");
String edad=in.readLine();
System.out.println("Hola "+nom+" Tienes:"+edad+"");
}
}

EJERCICIO 35

Universidad Politcnica Salesiana del Ecuador Pgina 140 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA INGRESAR UN NMERO POR


TECLADO Y MOSTRARLO DESPUS POR PANTALLA.

import java.io.*;
public class j0023
{
public static void main(String[]args)throws IOException
{
BufferedReader in=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese su ID");
String id=in.readLine();
System.out.println("Su numero de cedula es:"+id);
}
}

EJERCICIO 36

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA INGRESAR UN NMERO POR


TECLADO Y MOSTRARLO DESPUS POR PANTALLA.

import java.io.*;
public class j0023
{
public static void main(String[]args)throws IOException
{
BufferedReader in=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese un valor decimal");
String decimal=in.readLine();
System.out.println("El valor con punto decimal es:"+decimal);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 141 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

NOTA: UNA VARIBALE STRING PUEDE ESTAR ASOCIADO CON VALORES ENTEROS O
DOUBLES, PERO TENER CUIDADO PORQUE SON VALORES COMO CADENAS DE
CARACTERES, NO SON VALORES PARA REALIZAR OPERACIONES MATEMTICAS COMO
SE LO MENCIONA EN EL CAPTULO DE OPERACIONES MATEMTICAS.

OPERACIONES MATEMTICAS
EJERCICIO 37

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MOSTRAR

import java.io.*;
public class j0062
{
public static void main(String[]args)throws IOException
{
BufferedReader in=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese dos numeros enteros:");
String num=in.readLine();
String num1=in.readLine();
int valor= Integer.parseInt(num);
int valor1= Integer.parseInt(num1);
int suma=valor+valor1;

System.out.println("La suma es: "+suma);


}
}

Universidad Politcnica Salesiana del Ecuador Pgina 142 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

NOTA: CUANDO UTILIZAMOS TIPOS DE DATOS STRING PARA ALMACENAR DATOS DE


TIPO ENTEROS O DOUBLES SE TIENE QUE CONVERTIR DE TIPO STRING A TIPO ENTERO
SI SE DESEA REALIZAR ALGUNA OPERACIN CON LOS DATOS. POR EJEMPLO:

int valor= Integer.parseInt(num);


double valor= Double.parseDouble(num);

VEA EL EJERCICIO 29 CON CUADROS DE DILOGOS, SE REALIZA EL MISMO


PROCEDIMIENTO.

TAMBIN VEA EL EJERCICIO SIGUIENTE, EL EJERCICIO 34, SE MUESTRA UNA SUMA DE


NMEROS INGRESADOS POR TECLADO PERO SE LO HACE DE OTRA MANERA, PERO ES
LO MISMO.
NOTE LAS DIFERENCIAS.

EJERCICIO 38

REALIZAR UN PROGRAMA QUE PERMITA SUMAR DOS NMEROS INGRESADOS POR


TECLADO.

import java.lang.*;
import java.io.*;

public class SumNum {

/*Main es invocado cuando la aplicacin comienza*/


public static void main(String args[]) throws IOException{
BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int num1=0, num2=0, suma;


System.out.println("Suma de dos numeros");

System.out.print("Ingrese el primer numero: ");


num1=Integer.parseInt(temp.readLine());
System.out.print("Ingrese el segundo numero: ");
num2=Integer.parseInt(temp.readLine());

suma= num1+num2;
System.out.println("Resultado= "+ suma);

Universidad Politcnica Salesiana del Ecuador Pgina 143 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
}

EJERCICIO 39

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO 34, PERO STA VEZ UTILIZE CUADROS
DE DILOGOS.

//Paquete de Java
import javax.swing.JOptionPane;

public class SumaCuadro {


public static void main (String args []) {

String primerNumero;
String segundoNumero;
int num1;
int num2;
int suma;
primerNumero=JOptionPane.showInputDialog("Escriba el primer
nmero"); segundoNumero=JOptionPane.showInputDialog("Escriba el segundo
nmero");

/*Convierte los nmeros de tipo String a tipo int*/


num1=Integer.parseInt(primerNumero);
num2=Integer.parseInt(segundoNumero);
suma=num1+num2;

JOptionPane.showMessageDialog(null,"La suma es:


"+suma,"Resultados",JOptionPane.INFORMATION_MESSAGE);

System.exit(0);

}
}

Universidad Politcnica Salesiana del Ecuador Pgina 144 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 40

REALIZAR UN PROGRAMA QUE PERMITA INGRESAR 3 NMEROS Y PRESENTAR EL


PROMEDIO EN PANTALLA.

import java.io.*;
import java.lang.*;

class Promedio {

public static void main (String arg[]) throws IOException{

BufferedReader temp = new BufferedReader (new InputStreamReader (System.in));

int num1, num2, num3, suma;


float prom=0f;

System.out.println ("PROMEDIO");
System.out.println ("Ingrese tres numeros: ");
num1=Integer.parseInt (temp.readLine ());
num2=Integer.parseInt (temp.readLine ());
num3=Integer.parseInt (temp.readLine ());

Universidad Politcnica Salesiana del Ecuador Pgina 145 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

suma=num1+num2+num3;
prom=suma/3;

System.out.println ("El promedio de los numeros ingresados es: "+ prom);

EJERCICIO 41

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO 28 (PROMEDIO), PERO STA VEZ


HACERLO CON CUADROS DE DILOGOS.

//Paquete de Java
import javax.swing.JOptionPane;
public class PromedioC {
public static void main (String args []) {

String primerNumero="";
String segundoNumero="";
String tercerNumero="";

int num1=0;
int num2=0;
int num3=0;
int suma=0;
float prom=0.f;

primerNumero=JOptionPane.showInputDialog("Escriba el primer nmero");


segundoNumero=JOptionPane.showInputDialog("Escriba el segundo
nmero");
tercerNumero=JOptionPane.showInputDialog("Escriba el tercer nmero");

/*Convierte los nmeros de tipo String a tipo int*/

Universidad Politcnica Salesiana del Ecuador Pgina 146 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

num1=Integer.parseInt(primerNumero);
num2=Integer.parseInt(segundoNumero);
num3=Integer.parseInt(tercerNumero);
suma=num1+num2+num3;
prom=suma/3;
JOptionPane.showMessageDialog(null,"El promedio
es:"+prom,"Resultados",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 147 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

TIPOS DE DATOS EN JAVA


Las variables en Java deben tener un tipo de dato asociado. El tipo de dato de esa
variable indicara los valores que la variable puede contener y las operaciones que se
pueden realizar con ella. Podemos diferenciar los datos en Java en dos categoras de
datos principales: los tipos primitivos y los tipos referenciados.
Los tipos primitivos contienen un slo valor e incluyen los tipos como los enteros,
coma flotante, los caracteres, de tipo booleano etc...
Los tipos referenciados se llaman as porque el valor de una variable de referencia es
una referencia (un puntero) hacia el valor real. En Java tenemos los arrays, las clases y
los interfaces como tipos de datos referenciados.
1. Enteros: Estos tipos son byte, short, int y long, que guardan el signo valor, estos
representan un nmero y no pueden representar elementos fraccionarios.
2. Nmeros en coma flotante: Estos son float y double y pueden almacenar nmeros
en coma flotante y con signo, esto quiere decir que nos permiten representar nmeros
decimales.
El valor 2.6 es de tipo float pero debe especificarse con una f al final 2.6f, as:
valor=2.6f
3. El tipo Caracter: Estos son de tipo char, que almacena la representacin de los
caracteres (letras o nmeros), un carcter esta almacenado en 16 bits, y siguen un
estndar que es el Unicoide.

Los caracteres en Java se pueden especificar de forma normal o con secuencias de


escape, utilizando la barra invertida "\" seguida de una letra:( \r) o utilizando la barra
invertida con una "u" seguida de un numero hexadecimal (\u0000d), en este caso
hemos especificado la secuencia de escape \r y su cdigo unicoide correspondiente del
retorno de carro.
TABLA DE TIPOS DE DATOS
Tipos de datos Rango de valores Descripcin
Nmeros enteros
byte 8-bit complemento a 2 Entero de un Byte
short 16-bit complemento a 2 Entero corto
int 32-bit complemento a 2 Entero
long 64-bit complemento a 2 Entero largo
Nmeros reales
float 32-bit IEEE 754 Coma flotante de precisin simple
double 64-bit IEEE 754 Coma flotante de precisin doble
otros tipos
char 16-bit Caracter Un slo carcter

Universidad Politcnica Salesiana del Ecuador Pgina 148 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

boolean true o false Un valor booleano (verdadero o falso)

Tipos de datos string (las cadenas)

En realidad una variable de tipo string, ms que un tpo propio de Java es una clase
tratada con todo rigor como un objeto ms de Java.

EJERCICIO 42

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE LOS TIPOS DE DATOS ENTEROS.

import java.io.*;
import java.lang.*;

public class Enteros


{
public static void main(String[] arg)
{
byte midato1 = 1;
short midato2 = 100;
int midato3 = 10000;
long midato4 = 100000000;

System.out .println("Tipo de dato byte = " + midato1);


System.out .println("Tipo de dato short = " + midato2);
System.out .println("Tipo de dato int= " + midato3);
System.out .println("Tipo de dato long = " + midato4);
}
}

NOTA: EN ESTOS EJERCICIOS SE INICIALIZA LAS VARIABLES CON UN NMERO, ESTAS


VARIABLES SE LES PUEDE CAMBIAR EL VALOR DURANTE EL PROGRAMA Y NO DAR
ERROR, EN CAMBIO UTILIZANDO LA PALABRA RESERVADA FINAL QUE SE VE EN EL
CAPTULO SIGUIENTE SI DAR UN ERROR AL TRATAR DE MODIFICAR EL VALOR INICIAL.

EJERCICIO 43

Universidad Politcnica Salesiana del Ecuador Pgina 149 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE LOS TIPOS DE DATOS FLOAT.

import java.io.*;
import java.lang.*;

public class ComaFlotante


{
public static void main(String[] arg)
{
float valor;
valor = 2.6f;
System.out .println("Valor del dato= " + valor);

}
}

EJERCICIO 44

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE EL TIPO DE DATO BYTE.

import java.io.*;
import java.lang.*;

public class Nuevo


{
public static void main(String[] arg)
{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/
byte unaConstante =4;
System.out.println(unaConstante);
}
}

EJERCICIO 45

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE EL TIPO DE DATO INT.

Universidad Politcnica Salesiana del Ecuador Pgina 150 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.io.*;
import java.lang.*;

public class Nuevo1


{
public static void main(String[] arg)
{
// se puede modificar el valor durante la ejecucin del programa//
//si tratamos de modificarla el compilador no dar ningn error//
int unaConstante = 20;
System.out.println(unaConstante);
}
}

EJERCICIO 46

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO ANTERIOR PERO STA VEZ


MODIFIQUE EL VALOR DE LA VARIABLE ENTERA.

import java.io.*;
import java.lang.*;

public class Nuevo2


{
public static void main(String[] arg)
{
// se puede modificar el valor durante la ejecucin del programa//
//si tratamos de modificarla el compilador no dar ningn error//
int unaConstante = 20;
unaConstante = 10*8;
System.out.println(unaConstante);
}
}

Nota: Al modificar el valor de la variable, se perdi el valor inicial.

Universidad Politcnica Salesiana del Ecuador Pgina 151 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 47

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE EL TIPO DE DATO CHAR.

import java.io.*;
import java.lang.*;

public class Nuevo3


{
public static void main(String[] arg)
{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/
char unaconstante ='J';
System.out.println(unaconstante);
}
}

EJERCICIO 48

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE EL TIPO DE DATO CHAR, PERO


MODIFIQUE SU CONTENIDO.

import java.io.*;
import java.lang.*;

public class Nuevo3


{
public static void main(String[] arg)
{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/
char unaconstante ='J';
unaconstante ='H';
System.out.println(unaconstante);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 152 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Nota: Al modificar el valor de la variable, se perdi el valor inicial.

EJERCICIO 49

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE EL TIPO DE DATO STRING.

import java.io.*;
import java.lang.*;

public class Nuevo4


{
public static void main(String[] arg)
{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/

String unaConstante = "Bienvenido a Java";


System.out.println(unaConstante);
}
}

EJERCICIO 50

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO ANTERIOR, PERO STA VEZ


MODIFIQUE EL VALOR DE LA VARIABLE STRING.

import java.io.*;
import java.lang.*;

public class Nuevo4


{
public static void main(String[] arg)

Universidad Politcnica Salesiana del Ecuador Pgina 153 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/

String unaConstante = "Bienvenido a Java";


unaConstante = "Hola Mundo";
System.out.println(unaConstante);
}
}

Nota: Al modificar el valor de la variable, se perdi el valor inicial.


EJERCICIO 51

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE EL TIPO DE DATO FLOAT.

import java.io.*;
import java.lang.*;

public class Nuevo5


{
public static void main(String[] arg)
{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/
float unaConstante = 1e-10f;
System.out.println(unaConstante);
}
}

EJERCICIO 52

Universidad Politcnica Salesiana del Ecuador Pgina 154 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO ANTERIOR, PERO STA VEZ


MODIFIQUE EL VALOR DE LA VARIABLE FLOAT.

import java.io.*;
import java.lang.*;

public class Nuevo5


{
public static void main(String[] arg)
{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/
float unaConstante = 1e-10f;
unaConstante = 400f;
System.out.println(unaConstante);
}
}

Nota: Al modificar el valor de la variable, se perdi el valor inicial.

EJERCICIO 53

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE EL TIPO DE DATO DOUBLE.

import java.io.*;
import java.lang.*;

public class Nuevo6


{
public static void main(String[] arg)
{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/
double unaConstante = 3.112455454215461;
System.out.println(unaConstante);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 155 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 54

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO ANTERIOR, PERO STA VEZ


MODIFIQUE EL VALOR DE LA VARIABLE DOUBLE.

import java.io.*;
import java.lang.*;

public class Nuevo6


{
public static void main(String[] arg)
{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/
double unaConstante = 3.11245545421546462323;
unaConstante = 45.45456456121542;
System.out.println(unaConstante);
}
}

Nota: Al modificar el valor de la variable, se perdi el valor inicial.

LA PALABRA RESERVADA FINAL


En una aplicacin posiblemente nos encontremos con algn valor que permanece
constante durante la ejecucin. Podemos definirla como una variable comn pero
perderamos el control. Por all, en algn descuido, se cambiara de valor pero no nos
enteraramos. Podemos agregar a la definicin de variable el modificador final. La
sintaxis es la siguiente:
final tipo_variable nombre de variable [= valor];
Por ejemplo :
final int unaConstante = 10;

Universidad Politcnica Salesiana del Ecuador Pgina 156 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 55

LA PALABRA RESERVADA FINAL UTILIZANDO UNA VARIBALE DE TIPO BYTE Y TRATE DE


MODIFICAR SU VALOR.

import java.io.*;
import java.lang.*;

public class PalabraReservada


{
public static void main(String[] arg)
{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/
final byte unaConstante =4;
unaConstante =10; //ERROR
System.out.println(unaConstante);
}
}

NOTA:CUANDO SE UTILIZA LA PALABRA RESERVADA FINAL EN LA DECLARACIN DE LA


VARIABLE NO SE PUEDE MODIFICAR EL VALOR DURANTE LA EJECUCIN DEL
PROGRAMA, CONVIRTIENDO LA VARIABLE EN CONSTANTE.

EJERCICIO 56

LA PALABRA RESERVADA FINAL UTILIZANDO UNA VARIBALE DE TIPO BYTE.

import java.io.*;
import java.lang.*;

public class PalabraReservada


{
public static void main(String[] arg)
{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/
final byte unaConstante =4;
System.out.println(unaConstante);

Universidad Politcnica Salesiana del Ecuador Pgina 157 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
}

EJERCICIO 57

LA PALABRA RESERVADA FINAL UTILIZANDO UNA VARIABLE TIPO INT.

import java.io.*;
import java.lang.*;

public class PalabraReservadaI


{
public static void main(String[] arg)
{
// no se modificar el valor durante la ejecucin del programa
//si tratamos de modificarla el compilador dar un error
final int unaConstante = 20;
System.out.println(unaConstante);

}
}

EJERCICIO 58

LA PALABRA RESERVADA FINAL UTILIZANDO UNA VARIABLE TIPO CHAR.

import java.io.*;
import java.lang.*;

public class PalabraReservada


{

Universidad Politcnica Salesiana del Ecuador Pgina 158 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public static void main(String[] arg)


{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/
final char unaconstante ='J';
System.out.println(unaconstante);
}
}

EJERCICIO 59

LA PALABRA RESERVADA FINAL UTILIZANDO VARIAS VARIABLES TIPO CHAR.

import java.io.*;
import java.lang.*;

public class PalabraReservada


{
public static void main(String[] arg)
{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/
final char cons ='J';
final char cons1 ='A';
final char cons2 ='V';
final char cons3 ='A';
System.out.println(cons+""+cons1+""+cons2+""+cons3);
}
}

EJERCICIO 60

LA PALABRA RESERVADA FINAL UTILIZANDO UNA VARIABLE TIPO STRING.

Universidad Politcnica Salesiana del Ecuador Pgina 159 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.io.*;
import java.lang.*;

public class PalabraReservadaS


{
public static void main(String[] arg)
{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/

final String unaConstante = "Bienvenido a Java";


System.out.println(unaConstante);
}
}

EJERCICIO 61

LA PALABRA RESERVADA FINAL UTILIZANDO UNA VARIABLE TIPO FLOAT.

import java.io.*;
import java.lang.*;

public class PalabraReservadaF


{
public static void main(String[] arg)
{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/
final float unaConstante = 1e-10f;
System.out.println(unaConstante);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 160 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

OPERADORES ARITMTICOS
EJERCICIO 62

REALIZAR UNA SUMA UTILIZANDO EL OPERADOR ARITMTICO ADECUADO CON


VALORES INICIALIZADOS.

import java.io.*;
import java.lang.*;

public class OSuma{


public static void main(String[] args){
int i = 12;
int j = 10;
int suma = i + j;

System.out.println("Suma");
System.out.println("Respuesta: "+i+"+"+j+"="+suma );
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 161 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 63
MOSTRAR LAS UMA DE DOS NMEROS ASIGNANDO VALORES INICIALES.NOTE LAS
DIFERENCIAS CON ELE EJERCICIO ANTERIOR (EJERCICIO 38).
import java.io.*;
import java.lang.*;

class suma {
public static void main (String args []) throws IOException {
int a=4, b=3, suma;
suma = a+b;
System.out.println ("La suma de "+a+" + "+b+" es "+suma);
}
}

EJERCICIO 64

REALIZAR UNA RESTA UTILIZANDO EL OPERADOR ARITMTICO ADECUADO CON


VALORES INICIALIZADOS.

import java.io.*;
import java.lang.*;

public class OResta{


public static void main(String[] args){
int i = 12;
int j = 10;
int resta = i - j;

System.out.println("Resta");
System.out.println("Respuesta: "+i+"-"+j+"="+resta );
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 162 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 65

REALIZAR UNA RESTA UTILIZANDO EL OPERADOR ARITMTICO ADECUADO CON


VALORES INICIALIZADOS. NOTE LAS DIFERENCIAS CON EL EJERCICIO ANTERIOR
(EJERCICIO 40)

import java.io.*;
import java.lang.*;

public class OResta{


public static void main(String[] args){
int i = 12;
int j = 10;
int resta = 0;
resta = i - j;

System.out.println("Resta");
System.out.println("Respuesta: "+i+"-"+j+"="+resta );
}
}

EJERCICIO 66

REALIZAR UNA MULTIPLICACIN UTILIZANDO EL OPERADOR ARITMTICO ADECUADO


CON VALORES INICIALIZADOS.

import java.io.*;
import java.lang.*;

Universidad Politcnica Salesiana del Ecuador Pgina 163 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public class OMullt{


public static void main(String[] args){
int i = 12;
int j = 10;
int mult = i * j;

System.out.println("Multiplicacion");
System.out.println("Respuesta: "+i+"*"+j+"="+mult );
}
}

EJERCICIO 67

REALIZAR UNA MULTIPLICACIN UTILIZANDO EL OPERADOR ARITMTICO ADECUADO


CON VALORES INICIALIZADOS. NOTE LAS DIFERENCIAS CON EL EJERCICIO ANTERIOR
(EJERCICIO 42).

import java.io.*;
import java.lang.*;

public class OMullt{


public static void main(String[] args){
int i = 12;
int j = 10;
int mult = 0;
mult = i * j;

System.out.println("Multiplicacion");
System.out.println("Respuesta: "+i+"*"+j+"="+mult );
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 164 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 68

REALIZAR UNA DIVISIN UTILIZANDO EL OPERADOR ARITMTICO ADECUADO CON


VALORES INICIALIZADOS.

import java.io.*;
import java.lang.*;

public class ODivi{


public static void main(String[] args){
int i = 12;
int j = 10;
float divi = i / j;

System.out.println("Division");
System.out.println("Respuesta: "+i+"/"+j+"="+divi );
}
}

EJERCICIO 69

REALIZAR UNA DIVISIN UTILIZANDO EL OPERADOR ARITMTICO ADECUADO CON


VALORES INICIALIZADOS. NOTE LAS DIFERENCIAS CON EL EJERCICIO ANTERIOR
(EJERCICIO 44).

import java.io.*;
import java.lang.*;

public class ODivi{

Universidad Politcnica Salesiana del Ecuador Pgina 165 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public static void main(String[] args){


int i = 12;
int j = 10;
float divi = 0f;
divi = i / j;

System.out.println("Division");
System.out.println("Respuesta: "+i+"/"+j+"="+divi );
}
}

EJERCICIO 70

REALIZAR UN PROGRAMA QUE PERMITA OBTENER EL RESIDUO DE UN ADIVISIN CON


VALORES INICIALIZADOS.

import java.io.*;
import java.lang.*;

public class OResi{


public static void main(String[] args){
int i = 12;
int j = 10;
int resi = i % j;

System.out.println("Residuo");
System.out.println("Respuesta: "+i+"%"+j+"="+resi );
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 166 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 71

REALIZAR UN PROGRAMA QUE PERMITA OBTENER EL RESIDUO DE UN ADIVISIN CON


VALORES INICIALIZADOS. NOTE LAS DIFERENCIAS CON EL EJERCICIO ANTERIOR
(EJERCICIO 46).

import java.io.*;
import java.lang.*;

public class OResi{


public static void main(String[] args){
int i = 12;
int j = 10;
int resi = 0;
resi = i % j;

System.out.println("Residuo");
System.out.println("Respuesta: "+i+"%"+j+"="+resi );
}
}

EJERCICIO 72

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA REALIZAR LAS OPERACIONES


FUNDAMENTALES ( SUMA, RESTA, MULTIPLICACIN, DIVISIN Y RESIDUO),
UTILIZANDO LOS OPERADORES ARITMTICOS.

import java.io.*;
import java.lang.*;

public class Matematica{


public static void main(String[] args){
int i = 12;
int j = 10;
int suma = i + j;
int resta = i - j;
int mult = i * j;
int div = i / j;

Universidad Politcnica Salesiana del Ecuador Pgina 167 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

int modulo = i % j;

System.out.println("Suma :");
System.out.println("Respuesta: "+i+"+"+j+"="+suma );
System.out.println("Resta :");
System.out.println("Respuesta: "+i+"-"+j+"="+resta);
System.out.println("Multiplicacion :");
System.out.println("Respuesta: "+i+"*"+j+"="+mult);
System.out.println("Division :");
System.out.println("Respuesta: "+i+"/"+j+"="+div);
System.out.println("Modulo :");
System.out.println("Respuesta: "+i+"%"+j+"="+modulo);

OPERADORES RELACIONALES
Error con los operadores relacionales
Uno de los errores ms frecuentes es invertir el orden de los operadores relacionales.

Ejemplo:
CORRECTO INCORRECTO
!= (DIFERENTE) =!
>= (MAYOR IGUAL) =>
<= (MENOR IGUAL) <=

NOTA.- IMPORTANTE:
= = IGUALDAD
= ASIGNACIN

EJEMPLO:
ASIGNAR A LA VARIABLE N UN VALOR DE 100

Universidad Politcnica Salesiana del Ecuador Pgina 168 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

N = 100
LA VARIABLE N ES IGUAL A LA VARIABLE M
N==M
Comnmente la igualdad se la realiza para comparar lo que contenga cada variable.

EJERCICIO 73
REALIZAR UN PROGRAMA QUE COMPARE TIPOS DE DATOS CHAR INICIALIZADOS Y QUE
MUESTRE POR PANTALLA SI ES VERDADERA O FALSA LA COMPARACIN. LAS LETRAS
SON IGUALES.

import java.io.*;
import java.lang.*;

public class New0 {


public static void main(String args[]){
char letra= 'a';
char letra2='b';

boolean b1 = letra==letra2;

System.out.println( letra + " == " + letra2 + " = " + b1);

}
}

EJERCICIO 74
REALIZAR UN PROGRAMA QUE COMPARE TIPOS DE DATOS BYTE INICIALIZADOS Y QUE
MUESTRE POR PANTALLA SI ES VERDADERA O FALSA LA COMPARACIN. LOS
NMEROS SON DIFERENTES.

import java.io.*;
import java.lang.*;

public class New2 {


public static void main(String args[]){
byte num1=8;
byte num2=10;

boolean b1 = num1!=num2;

Universidad Politcnica Salesiana del Ecuador Pgina 169 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

System.out.println( num1 + " != " + num2 + " = " + b1);

}
}

EJERCICIO 75
REALIZAR UN PROGRAMA QUE COMPARE TIPOS DE DATOS INT INICIALIZADOS Y QUE
MUESTRE POR PANTALLA SI ES VERDADERA O FALSA LA COMPARACIN. EL PRIMER
NMERO ES MAYOR AL SEGUNDO.

import java.io.*;
import java.lang.*;

public class New3 {


public static void main(String args[]){
int num1=8956;
int num2=1000;

boolean b1 = num1>num2;

System.out.println( num1 + " > " + num2 + " = " + b1);

}
}

EJERCICIO 76
REALIZAR UN PROGRAMA QUE COMPARE TIPOS DE DATOS INT INICIALIZADOS Y QUE
MUESTRE POR PANTALLA SI ES VERDADERA O FALSA LA COMPARACIN. EL NMERO
8956 ES MENOR QUE 1000.

import java.io.*;
import java.lang.*;

public class New4 {


public static void main(String args[]){
int num1=8956;
int num2=1000;

Universidad Politcnica Salesiana del Ecuador Pgina 170 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

boolean b1 = num1<num2;

System.out.println( num1 + " < " + num2 + " = " + b1);

}
}

EJERCICIO 77
REALIZAR UN PROGRAMA QUE COMPARE TIPOS DE DATOS INT INICIALIZADOS Y QUE
MUESTRE POR PANTALLA SI ES VERDADERA O FALSA LA COMPARACIN. LOS
NMEROS SON MAYORES O IGUALES.

import java.io.*;
import java.lang.*;

public class New5 {


public static void main(String args[]){
int num1=1000;
int num2=1000;

boolean b1 = num1>=num2;

System.out.println( num1 + " >= " + num2 + " = " + b1);

}
}

EJERCICIO 78
REALIZAR UN PROGRAMA QUE COMPARE TIPOS DE DATOS INT INICIALIZADOS Y QUE
MUESTRE POR PANTALLA SI ES VERDADERA O FALSA LA COMPARACIN. EL PRIMER
NMERO ES MENOR O IGUAL.

import java.io.*;
import java.lang.*;

public class New6 {


public static void main(String args[]){
int num1=1000;

Universidad Politcnica Salesiana del Ecuador Pgina 171 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

int num2=1000;

boolean b1 = num1<=num2;

System.out.println( num1 + " <= " + num2 + " = " + b1);

}
}

EJERCICIO 79
REALIZAR UN PROGRAMA QUE COMPARE TIPOS DE DATOS FLOAT INICIALIZADOS Y
QUE MUESTRE POR PANTALLA SI ES VERDADERA O FALSA LA COMPARACIN. AMBOS
NMEROS SON IGUALES.

import java.io.*;
import java.lang.*;

public class New7 {


public static void main(String args[]){
float num1=102.5f;
float num2=50.23f;

boolean b1 = num1==num2;

System.out.println( num1 + " == " + num2 + " = " + b1);

}
}

EJERCICIO 80
REALIZAR UN PROGRAMA QUE COMPARE TIPOS DE DATOS FLOAT INICIALIZADOS Y
QUE MUESTRE POR PANTALLA SI ES VERDADERA O FALSA LA COMPARACIN. EL
PRIMER NMERO ES MAYOR QUE EL SEGUNDO.

import java.io.*;
import java.lang.*;

Universidad Politcnica Salesiana del Ecuador Pgina 172 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public class New8 {


public static void main(String args[]){
float num1=100.4855f;
float num2=54.1258f;

boolean b1 = num1>num2;

System.out.println( num1 + " > " + num2 + " = " + b1);

}
}

EJERCICIO 81
REALIZAR UN PROGRAMA QUE COMPARE TIPOS DE DATOS sTRING INICIALIZADOS Y
QUE MUESTRE POR PANTALLA SI ES VERDADERA O FALSA LA COMPARACIN. LAS
CADENAS DE TEXTO SON IGUALES.

import java.io.*;
import java.lang.*;

public class New9 {


public static void main(String args[]){
String a="Bienvenido a Java";
String b="Bienvenido a Jav";

boolean b1 = a==b;

System.out.println( a + " == " + b + " = " + b1);

}
}

EJERCICIO 82
REALIZAR UN PROGRAMA QUE COMPARE TIPOS DE DATOS STRING INICIALIZADOS Y
QUE MUESTRE POR PANTALLA SI ES VERDADERA O FALSA LA COMPARACIN. LAS
CADENAS DE TEXTO SON IGUALES.

Universidad Politcnica Salesiana del Ecuador Pgina 173 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.io.*;
import java.lang.*;

public class New10 {


public static void main(String args[]){
String a="Bienvenido a Java";
String b="Bienvenido a Java";

boolean b1 = a==b;

System.out.println( a + " == " + b + " = " + b1);

}
}

EJERCICIO 83
REALIZAR UN PROGRAMA QUE COMPARE TIPOS DE DATOS DOUBLE INICIALIZADOS Y
QUE MUESTRE POR PANTALLA SI ES VERDADERA O FALSA LA COMPARACIN. EL
PRIMER VALOR ES MAYOR QUE EL SEGUNDO.

import java.io.*;
import java.lang.*;

public class New11 {


public static void main(String args[]){
double a=-1.23552;
double b=3.1245586;

boolean b1 = a<b;

System.out.println( a + " < " + b + " = " + b1);

}
}

EJERCICIO 84
REALIZAR UN PROGRAMA QUE COMPARE VALORES INICIALIZADOS Y QUE MUESTRE
POR PANTALLA SI ES VERDADERA O FALSA LA COMPARACIN.

Universidad Politcnica Salesiana del Ecuador Pgina 174 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.io.*;
import java.lang.*;

public class Relacionales {


public static void main(String args[]){
int i = -3;
byte b = 5;
float f = 1e-10f;
double d = 3.14;
boolean b1 = i > i;
boolean b2 = i < b;
boolean b3 = b <= f;
boolean b4 = f >= d;
boolean b5 = d != 0;
boolean b6 = 1 == f;

System.out.println( i + " > " + i + " = " + b1);


System.out.println( i + " < " + b + " = " + b2);
System.out.println( b + " <= " + f + " = " + b3);
System.out.println( f + " >= " + d + " = " + b4);
System.out.println( d + " != " + 0 + " = " + b5);
System.out.println( 1 + " == " + f + " = " + b6);
}

OPERADORES BOOLEANOS
Nombre Operador Utilizacin Resultado
verdadero cuando A y B son verdaderos. Evaluacin
AND && A && B
condicional.
verdadero cuando A o B son verdaderos. Evaluacin
OR || A || B
condicional.

Universidad Politcnica Salesiana del Ecuador Pgina 175 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

NOT ! !A verdadero si A es falso.


verdadero cuando A y B son verdaderos. Siempre
AND & A&B
evala ambos operandos.
verdadero cuando A o B son verdaderos. Siempre
OR | A|B
evala ambos operandos.
XOR ^ A^B verdadero cuando A y B son diferentes

OPERADOR AND Y OR
Existen dos operadores AND, uno con dos smbolos && y el otro con uno solo (&).
Tambin tenemos dos operadores OR. Se obtiene la misma tabla de verdad.
boolean x1 = operando1 && operando2;
boolean x2 = operando1 & operando2;

boolean y1 = operando1 || operando2;


boolean y2 = operando1 | operando2;
Parece extrao, sobre todo porque tienen la misma tabla de verdad. Pero
internamente tienen un comportamiento diferente.
Cuando estamos en presencia de un operador con un solo smbolo, siempre se evalan
ambos operandos. En cambio para el operador con el smbolo repetido, su evaluacin
cambia segn el valor del primer operando, es decir evala slo la primera condicin.
(Revise Ejercicio 9 y 10)
EJERCICIO 85
REALIZAR UN PROGRAMA QUE MUESTRE LA TABLA DE VERDAD DEL OPERADOR AND.
import java.io.*;
import java.lang.*;

public class OperadorAnd {


public static void main(String args[]){
boolean x = true;
boolean y = false;
boolean a1 = x && x;
boolean a2 = x && y;
boolean a3 = y && x;
boolean a4 = y && y;

System.out.println("Tabla de verdad del Operador And");


System.out.println( x + " AND " + x + " = " + a1 );
System.out.println( x + " AND " + y + " = " + a2 );
System.out.println( y + " AND " + x + " = " + a3 );
System.out.println( y + " AND " + y + " = " + a4 );
}

Universidad Politcnica Salesiana del Ecuador Pgina 176 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 86
REALIZAR UN PROGRAMA QUE MUESTRE LA TABLA DE VERDAD UTILIZANDO UN SOLO
OPERADOR BOOLEANO. NOTE LAS DIFERENCIAS CON EL EJERCICIO ANTERIOR
import java.io.*;
import java.lang.*;

public class OperadorAnd {


public static void main(String args[]){
boolean x = true;
boolean y = false;
boolean a1 = x & x;
boolean a2 = x & y;
boolean a3 = y & x;
boolean a4 = y & y;

System.out.println("Tabla de verdad del Operador And");


System.out.println( x + " AND " + x + " = " + a1 );
System.out.println( x + " AND " + y + " = " + a2 );
System.out.println( y + " AND " + x + " = " + a3 );
System.out.println( y + " AND " + y + " = " + a4 );
}

NOTA: APARENTEMENTE NO HAY DIFERENCIAS, PERO AL PRINCIPIO DE ESTE CAPTULO


SE MENCIONA QUE EL DOBLE OPERADOR AND (&&) EVALA LA PRIMERA CONDICIN ,
SI SE CUMPLE YA NO EVALA LA SEGUNDA CONDICIN, SI LA PRIMERA CONDICIN NO
SE CUMPLE AH EVALUAR LA SEGUNDA CONDICIN.
EL OPEARADOR SIMPLE AND (&) EVLA LAS DOS CONDICIONES OBLIGATORIAMENTE.
LO MISMO CON EL OPERADOR OR.

EJERCICIO 87
REALIZAR UN PROGRAMA QUE MUESTRE LA TABLA DE VERDAD DEL OPERADOR OR.
import java.io.*;

Universidad Politcnica Salesiana del Ecuador Pgina 177 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.lang.*;

public class TablaOr {


public static void main(String args[]){
boolean x = true;
boolean y = false;
boolean a1 = x || x;
boolean a2 = x || y;
boolean a3 = y || x;
boolean a4 = y || y;

System.out.println("Tabla de verdad del Operador Or");


System.out.println( x + " OR " + x + " = " + a1 );
System.out.println( x + " OR " + y + " = " + a2 );
System.out.println( y + " OR " + x + " = " + a3 );
System.out.println( y + " OR " + y + " = " + a4 );
}

SI TIENE DUDAS VUELVA A REVISAR LA NOTA DEL EJERCICIO 86.


EJERCICIO 88
REALIZAR UN PROGRAMA QUE MUESTRE LA TABLA DE VERDAD UTILIZANDO UN SOLO
OPERADOR BOOLEANO. NOTE LAS DIFERENCIAS CON EL EJERCICIO ANTERIOR.
import java.io.*;
import java.lang.*;

public class TablaOr1 {


public static void main(String args[]){
boolean x = true;
boolean y = false;
boolean a1 = x | x;
boolean a2 = x | y;
boolean a3 = y | x;
boolean a4 = y | y;

System.out.println("Tabla de verdad del Operador Or");


System.out.println( x + " OR " + x + " = " + a1 );
System.out.println( x + " OR " + y + " = " + a2 );
System.out.println( y + " OR " + x + " = " + a3 );
System.out.println( y + " OR " + y + " = " + a4 );
}

Universidad Politcnica Salesiana del Ecuador Pgina 178 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 89
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL DOBLE
CONDICIONAL AND (&&).
import java.io.*;
import java.lang.*;

public class CondiAnd1 {


public static void main(String args[]){
int x = 0;
int y = 2;
boolean b = ( x != 0 ) && ( ( y / x ) != 0 );
System.out.println (b);
}
}

/*No sale un error porque solo evala la primera condicin cuando se utiliza &&*/

EJERCICIO 90
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL SIMPLE
CONDICIONAL AND (&).
import java.io.*;
import java.lang.*;

public class Old1 {


public static void main(String args[]){
int x = 0;
int y = 2;
boolean b = ( x != 0 ) & ( ( y * x ) == 0 );
System.out.println (b);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 179 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

/*El condicional & evala las dos condiciones obligatoriamente, si la primera condicin
se cumple, pero la segunda condicin no dar falso o viceversa*/
EJERCICIO 91
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL DOBLE
CONDICIONAL OR (||).
import java.io.*;
import java.lang.*;

public class Old2 {


public static void main(String args[]){
int x = -1;
int y = 2;
boolean b = ( x == -1 ) || ( y <0 ) ;
System.out.println (b);
}
}

/*El operador || or Compara la primera condicin, si sta es verdadera ya no compara


la segunda condicin*/
EJERCICIO 92
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL DOBLE
CONDICIONAL OR (&&).

import java.io.*;
import java.lang.*;

public class Old2 {


public static void main(String args[]){
int x = -1;
int y = 2;
boolean b = ( x > 0 ) || ( y >0 ) ;
System.out.println (b);
}
}

EJERCICIO 93
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL SIMPLE
CONDICIONAL OR (|).

import java.io.*;
import java.lang.*;

Universidad Politcnica Salesiana del Ecuador Pgina 180 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public class Old2 {


public static void main(String args[]){
int x = -1;
int y = 2;
boolean b = ( x > 0 ) | ( y >0 ) ;
System.out.println (b);
}
}

EJERCICIO 94
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL DOBLE
CONDICIONAL AND (&&).
import java.io.*;
import java.lang.*;

public class Old2 {


public static void main(String args[]){
int x = -1;
int y = 2;
boolean b = ( x > 0 ) && ( y <0 ) ;
System.out.println (!b);
}
}

EJERCICIO 95
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL DOBLE
CONDICIONAL AND (&&).
import java.io.*;
import java.lang.*;

public class Old2 {


public static void main(String args[]){
int x = -1;
int y = 2;
boolean b = ( x > 0 ) && ( y <0 ) ;
System.out.println (b);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 181 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 96
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL DOBLE
CONDICIONAL AND (&&).
import java.io.*;
import java.lang.*;

public class Old2 {


public static void main(String args[]){
int x = 0;
int y = 2;
boolean b = ( x != 0 ) && ( y!=5 ) ;
System.out.println (b);
}
}

EJERCICIO 97
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL SIMPLE
CONDICIONAL OR (|).
import java.io.*;
import java.lang.*;

public class Old2 {


public static void main(String args[]){
int x = 0;
int y = 2;
boolean b = ( x != 0 ) | ( y!=5 ) ;
System.out.println (b);
}
}

EJERCICIO 98
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL SIMPLE
CONDICIONAL AND (&).
import java.io.*;
import java.lang.*;

Universidad Politcnica Salesiana del Ecuador Pgina 182 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public class Old2 {


public static void main(String args[]){
int x = 0;
int y = 2;
boolean b = ( x == 0 ) & ( y!=2 ) ;
System.out.println (b);
}
}

EJERCICIO 99
REALIZAR UN PROGRAMA EN JAVA QUE EVALE UNA CONDICIN UTILIZANDO UN
SOLO CONDICIONAL AND (&).
import java.io.*;
import java.lang.*;

public class CondiAnd2 {


public static void main(String args[])throws IOException {
int x = 0;
int y = 2;
boolean b = ( x != 0 ) & ( ( y / x ) != 0 );
System.out.println(b);
}
}
/*Sali un error porque al tratar de evaluar la segunda condicin no puede dividirse
para cero cuando se utiliza &*/

EJERCICIO 100
REALIZAR UN PROGRAMA EN JAVA QUE EVALE UNA CONDICIN UTILIZANDO UN
SOLO CONDICIONAL AND (&).

import java.io.*;
import java.lang.*;

public class Old2 {


public static void main(String args[]){
int x = 5;
int y = 2;

Universidad Politcnica Salesiana del Ecuador Pgina 183 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

boolean b = ( x < 0 ) || (( y*x)>=10 ) ;


System.out.println (b);
}
}

VARIOS
EJERCICIO 101

ELABORAR UN PROGRAMA QUE PERMITE EL INGRESO DE TRES NMEROS Y


MOSTRARLOS POR PANTALLA.

import java.io.*;
import java.lang.*;

class Numeros {

public static void main (String arg[]) throws IOException{

BufferedReader temp = new BufferedReader (new InputStreamReader (System.in));

int valor1, valor2, valor3;

System.out.println ("Ingrese tres numeros: ");


valor1=Integer.parseInt (temp.readLine ());
valor2=Integer.parseInt (temp.readLine ());
valor3=Integer.parseInt (temp.readLine ());

System.out.println ("El numero 1 es: "+ valor1);


System.out.println ("El numero 2 es: "+ valor2);
System.out.println ("El numero 3 es: "+ valor3);
}

Universidad Politcnica Salesiana del Ecuador Pgina 184 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 102
REALIZAR UN PROGRAMA EN JAVA QUE PERMITA ENCONTRAR EL REA DEL
CUADRADO INGRESANDO EL LADO, PRESENTAR EL RESULTADO POR PANTALLA.

import java.io.*;
import java.lang.*;

class AreaCuadrado{

public static void main(String arg[]) throws IOException{

BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

float lado, area;

System.out.println("Area del cuadrado");


System.out.println("Ingrese el lado: ");
lado=Float.parseFloat(temp.readLine());

area=lado*lado;

System.out.println("El area del cuadrado es: "+ area);

EJERCICIO 103

Universidad Politcnica Salesiana del Ecuador Pgina 185 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA ENCONTRAR EL REA DEL


CUADRADO CON VALORES INICIALIZADOS, PRESENTAR EL RESULTADO POR PANTALLA.

import java.io.*;
import java.lang.*;

class AreaCuadradoI{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

float lado=5f, area=0f;

System.out.println("Area del cuadrado");


area=lado*lado;
System.out.println("El area del cuadrado es: "+ area);
}
}

EJERCICIO 104

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA CALCULAR EL REA DE UN


TRINGULO CON VALORES INICIALIZADOS.

rea= (base*altura)/2

import java.io.*;
import java.lang.*;

class AreaTriangI{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

float b=4f, h=5f, area=0f;

area=(b*h)/2;
System.out.println("El area del triangulo es: "+ area);

Universidad Politcnica Salesiana del Ecuador Pgina 186 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
}

EJERCICIO 105

REALIZAR UN PROGRAMA QUE PERMITA OBTENER LA LONGITUD DE UNA


CIRCUNFERENCIA.
LONGITUD = 2**R

import java.io.*;
import java.lang.*;

public class LongitudCir{


public static void main(String[] args){
int radio = 4;
final float pi = 3.14f;
float l =0f;
l = 2*pi*radio;

System.out.println("Longitud de la Circunferencia");
System.out.println("Respuesta: "+l);
}
}

EJERCICIO 106

REALIZAR UN PROGRAMA QUE PERMITA OBTENER EL AREA DE UNA CIRCUNFERENCIA.


AREA = *R^2.

import java.io.*;
import java.lang.*;

public class AreaCir{


public static void main(String[] args){

Universidad Politcnica Salesiana del Ecuador Pgina 187 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

int radio = 4;
final float pi = 3.14f;
float area =0f;
area = pi*(radio*radio);

System.out.println("Area de la Circunferencia");
System.out.println("Respuesta: "+area);
}
}

EJERCICIO 107

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA CALCULAR EL REA DE UN


TRINGULO CON VALORES INGRESADOS POR TECLADO.

rea= (base*altura)/2

import java.io.*;
import java.lang.*;

class AreaTriang{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

float b=0f, h=0f, area=0f;

System.out.println("Area del triangulo");


System.out.println("Ingrese la base: ");
b=Float.parseFloat(temp.readLine());
System.out.println("Ingrese la altura: ");
h=Float.parseFloat(temp.readLine());
area=(b*h)/2;
System.out.println("El area del triangulo es: "+ area);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 188 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 108

REALIZAR UN PROGRAMA QUE PRESENTE POR PANTALLA EL MAYOR NMERO DE


LOS NMEROS INGRESADOS POR PANTALLA.

import java.io.*;
import java.lang.*;

class Maximo{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int num1 =0, num2=0, mayor=0;


System.out.print("Ingrese el primer numero: ");
num1=Integer.parseInt(temp.readLine());
System.out.print("Ingrese el segundo numero: ");
num2=Integer.parseInt(temp.readLine());

mayor=Math.max(num1,num2);

System.out.println("\n"+"El numero mayor entre " +num1+ " y " +num2+ " es:
"+mayor);

}
}

EJERCICIO 109

REALIZAR UN PROGRAMA QUE PRESENTE POR PANTALLA EL MENOR NMERO DE


LOS NMEROS INGRESADOS POR PANTALLA.

Universidad Politcnica Salesiana del Ecuador Pgina 189 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.io.*;
import java.lang.*;

class Minimo{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int num1 =0, num2=0, mayor=0;

System.out.print("Ingrese el primer numero: ");


num1=Integer.parseInt(temp.readLine());
System.out.print("Ingrese el segundo numero: ");
num2=Integer.parseInt(temp.readLine());

mayor=Math.min(num1,num2);

System.out.println("\n"+"El numero menor entre " +num1+ " y " +num2+ " es:
"+mayor);

}
}

EJERCICIO 110

REALIZAR UN PROGRAMA QUE MUESTRE POR PANTALLA EL COSENO DE UN NMERO


INGRESADO POR PANTALLA. EL NMERO QUE SEA ENTERO.

import java.io.*;
import java.lang.*;

class Coseno{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int num=0;

Universidad Politcnica Salesiana del Ecuador Pgina 190 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

double cose=0;
System.out.print("Ingrese un numero numero: ");
num=Integer.parseInt(temp.readLine());

cose=Math.cos(num);

System.out.println("\n"+"El coseno de " +num+ " es: " +cose);

}
}

OPERACIONES CON MATH.


La Clase Math
La clase Math representa la librera matemtica de Java. Las funciones que contiene
son las de todos los lenguajes, parece que se han metido en una clase solamente a
propsito de agrupacin, por eso se encapsulan en Math, y lo mismo sucede con las
dems clases que corresponden a objetos que tienen un tipo equivalente (Character,
Float, etc.). El constructor de la clase es privado, por los que no se pueden crear
instancias de la clase. Sin embargo, Math es public para que se pueda llamar desde
cualquier sitio y static para que no haya que inicializarla.
Funciones Matemticas
Si se importa la clase, se tiene acceso al conjunto de funciones matemticas estndar:
Math.abs( x )
para int, long, float y double

Math.sin( double a )
devuelve el seno del ngulo a en radianes
Math.cos( double a )
devuelve el coseno del ngulo a en radianes

Math.tan( double a )
devuelve la tangente del ngulo a en radianes

Math.asin( double r )
devuelve el ngulo cuyo seno es r

Universidad Politcnica Salesiana del Ecuador Pgina 191 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Math.acos( double r )
devuelve el ngulo cuyo coseno es r

Math.atan( double r )
devuelve el ngulo cuya tangente es r

Math.atan2(double a,double b)
devuelve el ngulo cuya tangente es a/b

Math.exp( double x )
devuelve e elevado a x

Math.log( double x )
devuelve el logaritmo natural de x

Math.sqrt( double x )
devuelve la raz cuadrada de x

Math.ceil( double a )
devuelve el nmero completo ms pequeo mayor o igual que a

Math.rint( double a )
devuelve el valor double truncado de a

Math.pow( double x,double y )


devuelve y elevado a x

Math.round( x )
para double y float

Math.random()
para double y float, GENERA NMEROS ALEATORIOS

Math.max( a,b )
para int, long, float y double

Math.min( a,b )
para int, long, float y double

Math.E
para la base exponencial, aproximadamente 2.72

Math.PI
para PI, aproximadamente 3.14

Universidad Politcnica Salesiana del Ecuador Pgina 192 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 111

REALIZAR UN PROGRAMA QUE PERMITA REDONDEAR UN NMERO INGRESADO POR


PANTALLA.

import java.io.*;
import java.lang.*;

class Redondear{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

double num=0,redondeo=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());

redondeo=Math.round(num);

System.out.println("\n"+"Redondeando el numero es: " +redondeo);

}
}

EJERCICIO 112

REALIZAR UN PROGRAMA QUE MUESTRE POR PANTALLA EL SENO DE UN NMERO


INGRESADO POR PANTALLA, EL NMERO QUE SEA DOUBLE.

import java.io.*;
import java.lang.*;

class NumSeno{

public static void main(String arg[]) throws IOException{

Universidad Politcnica Salesiana del Ecuador Pgina 193 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

BufferedReader temp = new BufferedReader( new


InputStreamReader(System.in));

double num=0,seno=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());

seno=Math.sin(num);

System.out.println("\n"+"El seno del numero es: " +seno);


}
}

EJERCICIO 113

REALIZAR UN PROGRAMA QUE MUESTRE POR PANTALLA EL VALOR ABSOLUTO DE


CUALQUIER NMERO INGRESADO POR TECLADO. EJEMPLO: -8 VALOR ABSOLUTO ES 8.

import java.io.*;
import java.lang.*;

class NumAbs{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

double num=0,proc=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());

proc=Math.abs(num);

System.out.println("\n"+"El seno del numero es: " +proc);

}
}

Universidad Politcnica Salesiana del Ecuador Pgina 194 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 114

REALIZAR UN PROGRAMA QUE MUESTRE POR PANTALLA LA TANGENTE DE CUALQUIER


NMERO INGRESADO POR TECLADO.

import java.io.*;
import java.lang.*;

class NumAbs{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

double num=0,tangente=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());

tangente=Math.tan(num);

System.out.println("\n"+"La tangente del nmero es: "+tangente);


}
}

EJERCICIO 115

REALIZAR UN PROGRAMA QUE MUESTRE POR PANTALLA EL LOGARITMO NATURAL DE


UN NMERO INGRESADO POR PANTALLA.

import java.io.*;
import java.lang.*;

class NumLn{

public static void main(String arg[]) throws IOException{

Universidad Politcnica Salesiana del Ecuador Pgina 195 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

BufferedReader temp = new BufferedReader( new


InputStreamReader(System.in));

double num=0,lognatural=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());

lognatural=Math.log(num);

System.out.println("\n"+"El logaritmo natural del numero es: "+lognatural);


}
}

EJERCICIO 116

REALIZAR UN PROGRAMA QUE MUESTRE POR PANTALLA EL COSENO INVERSO DE UN


NMERO INGRESADO POR PANTALLA.

import java.io.*;
import java.lang.*;

class CosenoInverso{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

double num=0,cosinv=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());

cosinv=Math.acos(num);

System.out.println("\n"+"El coseno inverso del numero es: "+cosinv);


}
}

Universidad Politcnica Salesiana del Ecuador Pgina 196 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 117

REALIZAR UN PROGRAMA QUE MUESTRE POR PANTALLA EL SENO INVERSO DE UN


NMERO INGRESADO POR PANTALLA.

import java.io.*;
import java.lang.*;

class SenoInverso{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

double num=0,seninv=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());

seninv=Math.asin(num);

System.out.println("\n"+"El seno inverso del numero es: "+seninv);


}
}

EJERCICIO 118

REALIZAR UN PROGRAMA QUE MUESTRE POR PANTALLA LA TANGENTE INVERSA DE


UN NMERO INGRESADO POR PANTALLA.

import java.io.*;
import java.lang.*;

class TangenteInversa{

Universidad Politcnica Salesiana del Ecuador Pgina 197 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

double num=0,taninv=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());

taninv=Math.atan(num);

System.out.println("\n"+"La tangente inversa del numero es: "+taninv);


}
}

EJERCICIO 119

REALIZAR UN PROGRAMA QUE CONVIERTA UN NMERO INGRESADO POR PANTALLA


DE GRADOS A RADIANES.

import java.io.*;
import java.lang.*;

class GradosRadian{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

double num=0,proc=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());

proc=Math.toRadians(num);

System.out.println("\n"+"El numero en radianes es: "+proc);


}

Universidad Politcnica Salesiana del Ecuador Pgina 198 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 120

REALIZAR UN PROGRAMA QUE CONVIERTA UN NMERO INGRESADO POR PANTALLA


DE RADIANES A GRADOS.

import java.io.*;
import java.lang.*;

class RadianGrados{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

double num=0,proc=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());

proc=Math.toDegrees(num);

System.out.println("\n"+"El numero en grados es: "+proc);


}
}

EJERCICIO 121

REALIZAR UN PROGRAMA QUE PERMITA ENCONTRAR LA RAZ CUADRADA DE UN


NMERO ASUMIENDO QUE EL NMERO ES POSITIVO.

import java.io.*;
import java.lang.*;

class RaizCuadrada{

Universidad Politcnica Salesiana del Ecuador Pgina 199 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public static void main(String arg[]) throws IOException{

BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

double num, raiz;

System.out.println("Raiz Cuadrada");
System.out.println("Ingrese un numero positivo: ");
num=Float.parseFloat(temp.readLine());

raiz=Math.sqrt(num);

System.out.println ("La raiz cuadrada es: "+ raiz);

}
}

EJERCICIO 122

Realizar un programa que permita elevar al cuadrado cualquier nmero ingresado por
pantalla.

import java.io.*;
import java.lang.*;

class Cuadrado{

public static void main(String arg[]) throws IOException{

BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

double num, cuad;

System.out.println("Cuadrado de un Numero");
System.out.println("Ingrese un numero positivo o negativo: ");

Universidad Politcnica Salesiana del Ecuador Pgina 200 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

num=Double.parseDouble(temp.readLine());
cuad=Math.pow(num,2);

System.out.println("Elevado al cuadrado es: "+ cuad);

EJERCICIO 123

Realizar un programa en Java que permitaconvertir de grados Celsius a grados


Fahrenheit.

//Programa de conversion de temperaturas, de C a F.


import java.io.*;
import java.text.*;
public class j008
{
public static void main(String[]args)throws IOException
{
System.out.println("Programa de conversion de temperaturas en Celsius
a Farenheit.");
BufferedReader in=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Dame la temperatura en grados Celsius:");
double temp=Double.valueOf(in.readLine().trim()).doubleValue();
double f;
f=((9/5)*temp)+32;
System.out.println("La temperatura de "+temp+" grados Celsius es igual
a "+f+" grados Farenheit");
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 201 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Universidad Politcnica Salesiana del Ecuador Pgina 202 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

SENTENCIA DE CONTROL
CONDICIN IF SIMPLE
Esta construccin provoca que la ejecucin atraviese un conjunto de estados
booleanos que determinan que se ejecuten distintos fragmentos de cdigo. La clusula
else es opcional. Cada una de las sentencias puede ser una sentencia compuesta y la
expresin-booleana podra ser una variable simple declarada como boolean, o una
expresin que utilice operadores relacionales para generar el resultado de una
comparacin.
SINTAXIS
CONDICIN IF
1. if (condicin) sentencia;
2. if (condicin) sentencia 1;
else sentencia 2;
3. if (condicin) {
sentencia;
} else {
sentencia;
}
Conjuncin
if (condicin1 && condicin2){
sentecia1;
} else {
sentencia2;
}

2. if ( condicin1 ) {
if ( condicin2 ) {
sentencia1;
} else {
sentencia2;
}
} else {
sentencia2;
}
Disyuncin
1. if ( condicin1 || condicin2 ) {
sentencia1;
} else {

Universidad Politcnica Salesiana del Ecuador Pgina 203 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

sentencia2;
}

2. if ( condicin1 ){
sentencia1;
} else {
if ( condicin2 ) {
sentencia1;
} else {
sentencia2;
}
}
Negacin
1. if ( ! condicin1) {
sentencia1;
} else {
sentencia2;
}

2. if ( condicin1) {
sentencia2;
} else {
sentencia1;
}
EJERCICIO 124

Realizar un programa que realice una divisin siempre y cuando y=0.


if (condicin) sentencia;

public class DivisionSegura {


public static void main(String args[]){
int x = 12;
int y = 0;
int z = 0;
if( y !=0 ) z = x / y;
System.out.println("El resultado es : " + z);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 204 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 125

Realizar un programa que realice la divisin de un nmero utilizando la condicin:


if (condicin) sentencia 1;
else sentencia 2;

public class DivisionSegura {


public static void main(String args[]){
int x = 12;
int y = 0;
int z = 0;
if( y !=0 ) z = x / y;
else System.out.println("Atencion! se pretende dividir por 0");
System.out.println("El resultado es : " + z);
}
}

EJERCICIO 126

Realizar un programa que realice la divisin de un nmero utilizando la condicin:


if (condicin) sentencia 1;
else sentencia 2;

public class DivisionSegura {


public static void main(String args[]){
int x = 12;
int y = 2;
int z = 0;
if( y !=0 ) {
z = x / y;
System.out.println("El resultado es : " + z);
} else {
System.out.println("Atencin! se pretende dividir por 0");
}
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 205 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 127

REALIZAR UN PROGRAMA COMPARANDO DOS NMEROS INGRESADOS, UTILIZANDO


LOS OPERADORES RELACIONALES.

//Paquete de Java
import javax.swing.JOptionPane;

public class Comparacion {


public static void main (String args []) {

String primerNumero;
String segundoNumero;
String resultado;

int numero1;//primer nmero a comparar


int numero2;//segundo nmero a comparar

primerNumero=JOptionPane.showInputDialog("Escriba el primer nmero");


segundoNumero=JOptionPane.showInputDialog("Escriba el segundo nmero");

/*Convierte los nmeros de tipo String a tipo int*/


numero1=Integer.parseInt(primerNumero);
numero2=Integer.parseInt(segundoNumero);

//Inicializar el resultado con cadena vaca


resultado="";

if(numero1==numero2)
resultado= resultado +numero1+"=="+numero2;

if(numero1!=numero2)
resultado= resultado +numero1+"!="+numero2;

if(numero1<numero2)
resultado= resultado+"\n" +numero1+"<"+numero2;

if(numero1>numero2)
resultado= resultado+"\n"+numero1+">"+numero2;

Universidad Politcnica Salesiana del Ecuador Pgina 206 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

if(numero1<=numero2)
resultado= resultado+"\n" +numero1+"<="+numero2;

if(numero1>=numero2)
resultado= resultado+"\n" +numero1+">="+numero2;

//Mostrar los resultados

JOptionPane.showMessageDialog (null, resultado,"Resultados de la comparacin:


",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);

}
}

EJERCICIO 128

REALIZAR UN PROGRAMA QUE PERMITA VALIDAR UNA CLAVE DE ACCESO


COMPARANDO EL USUARIO CON LA CLAVE, SOLAMENTE SI SON IGUALES PRESENTAR
UN MENSAJE DE ACCESO PERMITIDO, CASO CONTRARIO MOSTRAR ACCESO
DENEGADO.

Universidad Politcnica Salesiana del Ecuador Pgina 207 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.io.*;
import java.lang.*;

class Clave{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

int usuario, clave=24654;

System.out.println("Ventana de Acceso");
System.out.println("Ingrese su usuario: ");
usuario=Integer.parseInt(temp.readLine());
if(usuario==clave)
System.out.println("Acceso Permitido");
else
System.out.println("Acceso Denegado");

EJERCICIO 129

REALIZAR UN PROGRAMA QUE PERMITA VERIFICAR SI UN NMERO INGRESADO POR


EL USUARIO ES POSITIVO O NEGATIVO.

import java.io.*;
import java.lang.*;

class PosiNega{

public static void main(String arg[]) throws IOException{

BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

float numero;

Universidad Politcnica Salesiana del Ecuador Pgina 208 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

System.out.println("Ingrese un numero");
numero=Float.parseFloat(temp.readLine());

if(numero>0)

System.out.println("El numero es positivo");

else

System.out.println("El numero es negativo");

EJERCICIO 130

ELABORAR UN PROGRAMA EN JAVA QUE CALCULE EL MAYOR DE LOS DOS NMEROS


INGRESADOS POR TECLADO.

CONDICIN IF..ELSE

import java.io.*;
import java.lang.*;

class Mayor {

public static void main (String args[])


throws IOException{

BufferedReader temp = new BufferedReader ( new


InputStreamReader (System.in));

int a, b, mayor;

System.out.println("Ingrese los valores de a y b");


a=Integer.parseInt(temp.readLine());
b=Integer.parseInt(temp.readLine());
if(a>b)
mayor=a;
else

Universidad Politcnica Salesiana del Ecuador Pgina 209 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

mayor=b;
System.out.println("El nmero mayor es:"+mayor);
}
}

EJERCICIO 131

CALCULAR EL SALDO FINAL DE UN TRABAJADOR, SI SU SULEDO ES INFERIOR A $200


TENDR UN AUMENTO DEL 12%, SI SU SUELDO EST ENTRE $200 Y $300 TENDR UN
AUMENTO DEL 10%, SI NO TENDR UN AUMENTO DEL 8%.

import java.io.*;
import java.lang.*;

class Sueldo{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

float sueldo, p=0,sfinal=0;

System.out.println("Ingrese su sueldo");
sueldo=Float.parseFloat(temp.readLine());

if(sueldo<200){
p=(sueldo*12)/100;
sfinal=(p+sueldo); System.out.println("El
sueldo final es: "+sfinal);

}else if(( sueldo>=200) && (sueldo <=300)){

p=(sueldo*10)/100;
sfinal=(p+sueldo);
System.out.println("El sueldo final es: "+sfinal);

}
else{

p=(sueldo*8)/100;
sfinal=(p+sueldo);
System.out.println("El sueldo final es: "+sfinal);

}
}

Universidad Politcnica Salesiana del Ecuador Pgina 210 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 132

REALIZAR UN PROGRAMA EN JAVA QUE CALCULE LA DISTANCIA ENTRE DOS


NMEROS.

import java.io.*;
import java.lang.*;

public class Distancia{


public static void main(String args[]){
int a = 23;
int b = 12;
int j;
if ( a > b ) {
j = a - b;
} else {
j = b - a;
}
System.out.println("El resultado es: " + j );
}
}

EJERCICIO 133

REALIZAR UN PROGRAMA EN JAVA QUE REALICE LO MISMO DEL EJERCICIO 84


(ANTERIOR) CON EL OPERADOR IF-ELSE Y VEA LAS DIFERENCIAS.

import java.io.*;
import java.lang.*;

Universidad Politcnica Salesiana del Ecuador Pgina 211 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public class Distancia1{


public static void main(String args[]){
int a = 23;
int b = 12;
int j = a > b ? a - b : b - a;
System.out.println("El resultado es: " + j );
}
}

EJERCICIO 134

RELIZAR EL MISMO EJERCICIO 33 CON EL OPERADOR IF ELSE CON UNA VARIANTE.

import java.io.*;
import java.lang.*;

public class Distancia2{


public static void main(String args[]){
int a = 11;
int b = 12;
int j = (a > b ? a : b ) - ( a <= b ? a : b);
System.out.println("El resultado es: " + j );
}
}

EJERCICIO 135

Universidad Politcnica Salesiana del Ecuador Pgina 212 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Vamos a desarrollar una calculadora totalmente elemental. Sin muchas caractersticas


salvo de realizar operaciones aritmticas con dos operandos. Disponemos de una
variable de tipo char que nos indicar que tipo de operacin se debe efectuar.
Realizamos la operacin y mostramos el resultado en la pantalla.

import java.io.*;
import java.lang.*;

public class MiniCalculadora {


public static void main(String args[]){
int a = 16;
int b = 8;
char op = '*';
System.out.print("El resultado es : ");
if ( op == '+' ) {
System.out.println( a + b);
} else if ( op == '-') {
System.out.println( a - b);
} else if ( op == '*') {
System.out.println( a * b);
} else if ( op == '/') {
System.out.println( a / b);
}
}
}

EJERCICIO 136

COLOCAR DISCOS EN UNA TORRE ORDENADAMENTE, HAY 3 TORRES. UNA


CONDICIN ES QUE NO DEBE QUEDAR UN DISCO GRANDE SOBRE UNO PEQUEO.

TORRES DE HANOI

import java.io.*;
import java.text.*;

Universidad Politcnica Salesiana del Ecuador Pgina 213 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

/**
* Programa recursivo para resolver <I>Las Torres de Hanoi</I>
* @author CTE, Javier Ruiz
**/
public class TowersOfHanoi
{

private final static BufferedReader stdIn = new BufferedReader(new


InputStreamReader(System.in));
private final static PrintWriter stdOut = new PrintWriter(System.out, true);
private final static PrintWriter stdErr = new PrintWriter(System.err, true);

//private static void main(String[] args) throws IOException,


NumberFormatException
public static void main(String[] args) throws IOException,
NumberFormatException

{
stdErr.print("Cuantos discos son? ");
stdErr.flush();
int numDisks = Integer.parseInt(stdIn.readLine());

move(numDisks, 1, 3, 2);
}

protected static void move(int n, int from, int to, int temp)
{
if (n==1)
{
System.out.println("Mover el disco superior de la torre " + from +
" a la torre " + to);
}
else
{
move(n-1, from, temp, to);
move(1, from, to, temp);
move(n-1, temp, to, from);
}

}
}

Universidad Politcnica Salesiana del Ecuador Pgina 214 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

SENTENCIA SWITCH
La sentencia switch proporciona una forma limpia de enviar la ejecucin a partes
diferentes del cdigo en base al valor de una nica variable o expresin. La expresin
puede devolver cualquier tipo bsico, y cada uno de los valores especificados en las
sentencias case debe ser de un tipo compatible.
En Java no se puede realizar una comprobacin contra caracteres como en C++,
porque el tipo char en C++ es en realidad un entero de 8 bits, lo que no es cierto en
Java.
La sentencia switch funciona de la siguiente manera: el valor de la expresin se
compara con cada uno de los valores literales de las sentencias case. Si coincide con
alguno, se ejecuta el cdigo que sigue a la sentencia case. Si no coincide con ninguno
de ellos, entonces se ejecuta la sentencia default (por defecto), que es opcional. Si no
hay sentencia default y no coincide con ninguno de los valores, no hace nada. Al igual
que en otros lenguajes, cada constante en sentencia case debe ser nica.

SINTAXIS

Universidad Politcnica Salesiana del Ecuador Pgina 215 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

switch( expresin ) {
case constante1:
sentencia1;
...
break;
...
case constanteN:
sentenciaN;
...
break;
default:
sentencia;
...
break
}

EJERCICIO 137

RELIZAR EL MISMO PROGRAMA DEL EJERCICIO 36 PERO UTILIZANDO LA ESTRUCTURA


DE SELCCIN MLTIPLE SWITCH.

public class MiniCalculadora1{


public static void main(String args[]){
int a = 16;
int b = 8;
char op = '/';
System.out.print("El resultado es : ");
switch ( op ) {
case '+':
System.out.println( a + b );
break;
case '-':
System.out.println( a - b );
break;
case '*':
System.out.println( a * b );
break;
case '/':
System.out.println( a / b );
break;
default:
System.out.println("error" );
break;

Universidad Politcnica Salesiana del Ecuador Pgina 216 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
}
}

EJERCICIO 138

REALIZAR UN PROGRAMA QUE PERMITA EJECUTAR MS DE UNA ALTERNATIVA AL


MISMO TIEMPO.

public class Lineas{


public static void main(String args[]){
int j = 3;
switch (j) {
case 5:
System.out.println("********");
case 4:
System.out.println("********");
case 3:
System.out.println("********");
case 2:
System.out.println("********");
case 1:
System.out.println("********");
}
}
}

EJERCICIO 139

Universidad Politcnica Salesiana del Ecuador Pgina 217 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

MOSTRAR UN DA DE LA SEMANA, DE ACUERDO AL DA QUE INGRES POR TECLADO,


UTILIZANDO LA SENTENCIA SWITCH.

import java.io.*;
import java.lang.*;

class DiasSemana{

public static void main(String arg[]) throws IOException{

BufferedReader temp = new BufferedReader( new


InputStreamReader(System.in));

int dia;

System.out.println("Dias de la semana");
System.out.println("Ingrese el dia: ");
dia=Integer.parseInt(temp.readLine());

switch (dia ) {
case 1:
System.out.println("Lunes");
break;
case 2:
System.out.println("Martes");
break;
case 3:
System.out.println("Mircoles");
break;
case 4:
System.out.println("Jueves");
break;
case 5:
System.out.println("Viernes");
break;
case 6:
System.out.println("Sabado");
break;
case 7:
System.out.println("Domingo");
break;
default:
System.out.println("No es un da de la semana");
break;

Universidad Politcnica Salesiana del Ecuador Pgina 218 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
}

Universidad Politcnica Salesiana del Ecuador Pgina 219 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

ESTRUCTURAS DE ITERACIN
WHILE
El bucle while es la sentencia de bucle ms bsica en Java. Ejecuta repetidamente una
vez tras otra una sentencia, mientras una expresin booleana sea verdadera. Las
partes de inicializacin e iteracin, que se presentan entre corchetes, son opcionales.
Esta sentencia while se utiliza para crear una condicin de entrada. El significado de
esta condicin de entrada es que la expresin condicional que controla el bucle se
comprueba antes de ejecutar cualquiera de las sentencias que se encuentran situadas
en el interior del bucle, de tal modo que si esta comprobacin es false la primera vez,
el conjunto de las sentencias no se ejecutar nunca.
SINTAXIS
[inicializacin;]
while( terminacin-expresin-booleana ) {
sentencias;
[iteracin;]
}

EJERCICIO 140

REALIZAR UN PROGRAMA QUE PERMITA PRESENTAR UN MENSAJE SLO SI EL VALOR


ES MAYOR A CERO.

import java.io.*;
import java.lang.*;

class Prueba1{

public static void main(String arg[]) throws IOException{

int num=0;
while ( num > 0 ) System.out.println("Esto nunca lo
vers");

Universidad Politcnica Salesiana del Ecuador Pgina 220 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 141

REALIZAR UN PROGRAMA QUE MUESTRE UN MENSAJE SLO SI LA CONDICIN ES


VERDADERA, PERO SLO UNA VEZ.

import java.io.*;
import java.lang.*;

class Prueba3{

public static void main(String arg[]) throws IOException{


boolean prueba = true;
while ( prueba ) {
System.out.println("Esto lo veras una vez");
prueba = false;
}
}
}

EJERCICIO 142

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO 41, PERO STA VEZ EL MENSAJE TIENE
QUE PRESENTARSE INFINITAS VECES.

import java.io.*;
import java.lang.*;

Universidad Politcnica Salesiana del Ecuador Pgina 221 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

class Prueba3{

public static void main(String arg[]) throws IOException{


boolean prueba = true;
while ( prueba ) {
System.out.println("Esto lo veras infinitas veces");

}
}
}

EJERCICIO 143

REALIZAR UN PROGRAMA QUE CONVIERTA UN NMERO DECIMAL A BINARIO,


MIENTRAS EL DECIMAL SEA MAYOR A CERO.

import java.io.*;
import java.lang.*;

public class DecABin{


public static void main(String args[])throws IOException{

int decimal = 252222;


String binario = "";
while ( decimal > 0 ) {
binario = decimal % 2 + binario;
decimal /= 2;
}
System.out.println(binario);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 222 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 144

REALIZAR UN PROGRAMA QUE MUESTRA POR PANTALLA UNA LNEA DE CARACTERES


MIENTRAS EL CONTADOR SEA IGUAL A CINCO.

import java.io.*;
import java.lang.*;

public class Asterisco{


public static void main(String args[]){
int contador = 1;
while ( contador <= 5 ) {
System.out.println("*****");
contador++;
}
}
}

EJERCICIO 145

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO 44, PERO COLOCANDO UN SOLO


CARCTER EN EL MENSAJE (UTILIZE UN SEGUNDO CONTADOR).

import java.io.*;
import java.lang.*;

class Asterisco2{
public static void main (String args []) throws IOException
{
int contador = 1;
while (contador <= 5)

Universidad Politcnica Salesiana del Ecuador Pgina 223 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

{
int contador2 = 1;
while (contador2 <= 5)
{
System.out.print ("*"); contador2++;
}
System.out.println (); contador++;
}
}
}

EJERCICIO 146

REALIZAR UN PROGRAMA QUE PERMITA PRESENTAR LOS 5 PRIMEROS NMEROS


POSITIVOS.

import java.io.*;
import java.lang.*;

class Positivos{

public static void main(String arg[]) throws IOException{

int n =0;
while (n<5){
n=n+1;
System.out.println("Los numeros son: "+n);
}
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 224 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 147

GENERAR LOS 15 PRIMEROS NMEROS PARES.

import java.io.*;
import java.lang.*;

class Pares{

public static void main(String arg[]) throws IOException{

int par =0, cont=0;


while (cont<15){
par=par+2;
cont=cont+1;
System.out.println("Los numeros pares son: "+par);
}
}
}

EJERCICIO 148

REALIZAR UN PROGRAMA QUE GENERE LOS 5 PRIMEROS NMEROS PARES Y LOS 5


PRIMEROS NMEROS IMPARES DENTRO DE UN MISMO CICLO.

import java.io.*;
import java.lang.*;

class ParesImpares{
public static void main(String arg[]) throws IOException{
int par =0, impar=-1, cont=0;
while (cont<5){
par=par+2;
impar=impar+2;
cont=cont+1;

Universidad Politcnica Salesiana del Ecuador Pgina 225 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

System.out.println("Impar: "+impar);
System.out.println("Par: "+par);

}
}
}

EJERCICIO 149

SE DESEA INTRODUCIR POR TECLADO TRES NMEROS A, B, C, SUMARLOS. SI LA SUMA


ES IGUAL A 100 PRESENTAR POR PANTALLA DICHO RESULTADO Y FINALIZAR EL
PROGRAMA, CASO CONTRARIO INTRODUCIR NUEVOS VALORES.

import java.io.*;
import java.lang.*;

class SumaPrueba{
public static void main(String arg[]) throws IOException{

BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

int a,b,c,suma =0;


while (suma<100){
System.out.println("Ingrese el primer numero: "); a=Integer.parseInt(temp.readLine());

System.out.println("Ingrese el segundo numero: ");


b=Integer.parseInt(temp.readLine());

System.out.println("Ingrese el tercer numero: ");


c=Integer.parseInt(temp.readLine());
suma= a+b+c;
}
System.out.println("El resultado de la suma: "+suma);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 226 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 150

REALIZAR UN PROGRAMA QUE PERMITA OBTENER LA SUMATORIA DE LOS 10


PRIMEROS NMEROS IMPARES.

import java.io.*;
import java.lang.*;

class SumaImpares{

public static void main(String arg[]) throws IOException{

int cont=0, acu=-1, suma=0;


while (cont<10){
cont=cont+1;
acu=acu+2;
suma=suma+acu;
}
System.out.println("Resultado: "+suma);
}
}

EJERCICIO 151

REALIZAR UN PROGRAMA QUE PERMITA OBTENER LA SUMATORIA DE LOS 10


PRIMEROS NMEROS PARES.

Universidad Politcnica Salesiana del Ecuador Pgina 227 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.io.*;
import java.lang.*;

class SumaPares{

public static void main(String arg[]) throws IOException{

int cont=0, acu=0, suma=0;


while (cont<10){
cont=cont+1;
acu=acu+2;
suma=suma+acu;
}
System.out.println("Resultado: "+suma);
}
}

EJERCICIO 152

REALIZAR UN PROGRAMA QUE PRESENTE LA SUMATORIA DE TODOS LOS NMEROS


ENTEROS POSITIVOS DESDE EL CERO HASTA EL DATO INGRESADO POR TECLADO.

import java.io.*;
import java.lang.*;

class SumaPositivos{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));
int cont=-1, num=0, suma=0;
System.out.println("Ingrese un numero positivo:");
num=Integer.parseInt(temp.readLine());
while (cont<num){
cont=cont+1;
suma=suma+cont;
}
System.out.println("Resultado: "+suma);

Universidad Politcnica Salesiana del Ecuador Pgina 228 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
}

EJERCICIO 153

REALIZAR UN PROGRAMA QUE PERMITA SUMAR 5 VECES EL NMERO INGRESADO


POR EL USUARIO.

import java.io.*;
import java.lang.*;

class SumaNum{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));
int num=0, cont=0, sum=0;
System.out.println("Ingrese un numero positivo:");
num=Integer.parseInt(temp.readLine());
while (cont<5){
sum=sum+num;
cont=cont+1;
}
System.out.println("Resultado: "+sum);
}
}

EJERCICIO 154

REALIZAR UN PROGRAMA QUE PERMITA MOSTRAR LA SIGUIENTE SUCESIN:


4,8,16,32,64,128.

import java.io.*;
import java.lang.*;

Universidad Politcnica Salesiana del Ecuador Pgina 229 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

class Sucesion{

public static void main(String arg[]) throws IOException{

int a=2;
while (a<128){
a=a*2;
System.out.println(a);
}
}
}

EJERCICIO 155

REALIZAR UN PROGRAMA QUE PERMITA MOSTRAR POR PANTALLA SLO LOS


NMEROS INGRESADOS POR EL USUARIO QUE SEAN DE TRES DGITOS. (MAYORES A 99
Y MENORES A 1000)

import java.io.*;
import java.lang.*;

class TresDigitos{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));
int n=0;
System.out.println("Ingrese un numero de tres digitos: ");
n=Integer.parseInt(temp.readLine());
while ((n>99) &&(n<1000)){
System.out.println("El numero ingresado fue:"+n);
n=0;

}
}

Universidad Politcnica Salesiana del Ecuador Pgina 230 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 156

REALIZAR UN PROGRAMA QUE MUESTRE LA TABLA DE MULTIPLICAR DEL 5.

import java.io.*;
import java.lang.*;

class Tabla{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

int acu =0, cont=0;


while (cont<12){
cont=cont+1;
acu=cont*5;
System.out.println(acu);
}
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 231 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 157

REALIZAR UN PROGRAMA QUE MUESTRE EL PROMEDIO DE LOS NMEROS


INGRESADOS POR TECLADO.

import java.io.*;
import java.lang.*;

class PromedioPrueba{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

int x=0,num=0, cont=0, acu=0;


float prom=0f;

System.out.println("Ingrese cuantos numeros va a ingresar");


x=Integer.parseInt(temp.readLine());
while (cont<x){
System.out.println("Ingrese un numero");
num=Integer.parseInt(temp.readLine());
cont=cont+1;
acu=acu+num;
prom=acu/x;
}
System.out.println("El promedio es:"+prom);
}
}

EJERCICIO 158

INGRESE DOS NMEROS, SIENDO EL PRIMERO MAYOR QUE EL SEGUNDO. SE TRATA DE


ELABORAR UN PROGRAMA QUE OBTENGA LA SUMA DE TODOS LOS NMEROS
ENTEROS COMPRENDIDOS ENTRE ESOS DOS NMEROS, INCLUDOS STOS.

import java.io.*;
import java.lang.*;

Universidad Politcnica Salesiana del Ecuador Pgina 232 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

class PromedioPrueba{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

int a=0,b=0,acu=0;

System.out.print("Ingrese el primer numero:");


a=Integer.parseInt(temp.readLine());
System.out.print("Ingrese el segundo numero:");
b=Integer.parseInt(temp.readLine());
while (b<=a){
acu=acu+b;
b=b+1;
}
System.out.println("\n"+"La suma del rango es: "+acu);
}
}

EJERCICIO 159

REALIZAR UN PROGRAMA QUE CUENTE LA CANTIDAD DE DIGITOS QUE POSEE UN


NMERO. PARA ELLO TENDREMOS QUE DIVIDIR POR DIEZ EL NMERO QUE NOS
HAN DADO, HASTA QUE EL RESULTADO SE VUELVA CERO.

public class CuentaDigitos{


public static void main(String args[]){
int nmero = 4557888;
int dgitos = 0;
while ( nmero > 0 ) {
nmero /=10;
dgitos++;
}
System.out.println(dgitos);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 233 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 160

REALIZAR UN PROGRAMA QUE PRESENTE POR PANTALLA LA SERIE DE ULAM.

LA SERIE DE ULAM:

SI EL NUMERO ES PAR: N=N/2


SI EL NMERO ES IMPAR: N=N*3+1

import java.io.*;
import java.lang.*;

class SerieUlam{
public static void main(String arg[]) throws IOException{
BufferedReader temp = new BufferedReader(new
InputStreamReader(System.in));
int num;
System.out.println("Ingrese un numero: ");
num = Integer.parseInt(temp.readLine());

while(num!=1){
System.out.print(" "+num+" ");
if((num%2)==0)
num = num / 2;
else
num = num * 3 + 1;
}
System.out.println(" "+num+" ");
}

Universidad Politcnica Salesiana del Ecuador Pgina 234 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

ESTRUCTURAS DE ITERACIN
DO-WHILE
A veces se puede desear el ejecutar el cuerpo de un bucle while al menos una vez,
incluso si la expresin booleana de terminacin tiene el valor false la primera vez. Es
decir, si se desea evaluar la expresin de terminacin al final del bucle en vez de al
principio como en el bucle while. Esta construccin do-while hace eso exactamente.
SINTAXIS
[inicializacin;]
do {
sentencias;
[iteracin;]
}while( terminacin-expresin-booleana );
EJERCICIO 161

REALIZAR UN PROGRAMA SENCILLO CON DO-WHILE, PRESENTANDO SLO UN


MENSAJE.

import java.io.*;
import java.lang.*;

class MensajeD{

public static void main(String arg[]) throws IOException{

do
System.out.println("Se ejecuta al menos una vez");

while ( false );
}

Universidad Politcnica Salesiana del Ecuador Pgina 235 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERICIO 162

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO 60, PERO STA VEZ EL MENSAJE TIENE
QUE PRESENTARSE INFINITAS VECES.

import java.io.*;
import java.lang.*;

class MensajeD{

public static void main(String arg[]) throws IOException{

do
System.out.println("Se ejecuta al menos una vez");

while ( true );
}

EJERCICIO 163

REALIZAR UN PROGRAMA QUE PERMITA PRESENTAR LOS PRIMEROS 10 NMEROS


ENTEROS POSITIVOS.

import java.io.*;
import java.lang.*;

public class EnterosPosi{


public static void main(String args[]) throws IOException{
int a=0;
System.out.println("Presentar los 10 primeros numeros enteros");
do {
a++;
System.out.println("\t"+a);
}while(a<10);

Universidad Politcnica Salesiana del Ecuador Pgina 236 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
}

EJERCICIO 164

REALIZAR UN PROGRAMA QUE PRESENTE LOS 5 PRIMEROS NMEROS PARES.

import java.io.*;
import java.lang.*;

class Par{

public static void main(String arg[]) throws IOException{


int par =0, cont=0;
do{
par=par+2;
cont=cont+1;
System.out.println(par);
}while (cont<5);
}
}

EJERCICIO 165

REALIZAR UN PROGRAMA QUE PERMITA MOSTRAR LOS SIGUIENTES NMEROS


4,8,16,32,64,128.

Universidad Politcnica Salesiana del Ecuador Pgina 237 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.io.*;
import java.lang.*;

class Sucesion{

public static void main(String arg[]) throws IOException{


int x=2;
do{
x=x*2;
System.out.println(x);
}while (x<128);
}
}

EJERCICIO 166

REALIZAR UN PROGRAMA QUE GENERE 4 NMEROS CONSECUTIVOS DESPUS DEL


NMERO INGRESADO POR TECLADO Y LUEGO SUMARLOS.

import java.io.*;
import java.lang.*;

class Sucesion{
public static void main(String arg[]) throws IOException{
BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

int num=0, cont=0, sum=0;


System.out.println("Ingrese un numero:");
num=Integer.parseInt(temp.readLine());
do{
num=num+1;
sum=sum+num;
cont++;
}while (cont<4);
System.out.println("Total: "+sum);
}

Universidad Politcnica Salesiana del Ecuador Pgina 238 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 167

REALIZAR UN PROGRAMA QUE GENERE UN LISTADO DE LOS 5 PRIMEROS NMEROS


MLTIPLOS DE 5.

import java.io.*;
import java.lang.*;

class Multi5{

public static void main(String arg[]) throws IOException{

BufferedReader temp = new BufferedReader( new


InputStreamReader(System.in));
int n =0, cont=0;
System.out.println("Multiplos de 5");
do{
cont=cont+1;
n=n+5;
System.out.println("\t"+n);
}while (cont<5);
}
}

EJERCICIO 168

SE DESEA INGRESAR POR TECLADO 3 NMEROS A, B, C SUMARLOS. SI LA SUMA ES


IGUAL A 100 PRESENTAR POR PANTALLA DICHO RESULTADO Y FINALIZAR EL PROCESO,
CASO CONTRARIO, INTTRODUCIR NUEVOS VALORES. REALIZAR UN PROGRAMA QUE
PERMITA AUTOMATIZAR DICHO PROCESO.

Universidad Politcnica Salesiana del Ecuador Pgina 239 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.io.*;
import java.lang.*;

class SumaPrueba2{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

int a,b,c,suma =0;


do{
System.out.println("Ingrese el primer numero: "); a=Integer.parseInt(temp.readLine());

System.out.println("Ingrese el segundo numero: ");


b=Integer.parseInt(temp.readLine());

System.out.println("Ingrese el tercer suma= a+b+c;


}while (suma<100);
System.out.println("El resultado de la suma: "+suma);
}
}

EJERCICIO 169

SE DESEA OBTENER LA SUMATORIA DE LOS 10 PRIMEROS NMEROS IMPARES.


REALIZAR UN PROGRAMA EN JAVA QUE AUTOMATIZE DICHO PROCESO.

import java.io.*;
import java.lang.*;

class SumaNum2{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));
int num=0, cont=-1, acu=0;
System.out.println("Suma de los 5 primeros # impares");
do{
cont=cont+2;
acu=acu+cont;
num=num+1;
}while (num<5);

Universidad Politcnica Salesiana del Ecuador Pgina 240 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

System.out.println("\n"+"\t"+"Resultado: "+acu);
}
}

EJERCICIO 170

RFALIZAR UN PROGRAMA QUE PERMITA GENERAR LOS 10 PRIMEROS NMEROS


PARES.

import java.io.*;
import java.lang.*;

class Pares2{
public static void main(String arg[]) throws IOException{
int par =0, cont=0;
System.out.println("Los 10 primeros numeros pares");
do{
par=par+2;
cont=cont+1;
System.out.println("\t"+par);
}while (cont<10);
}
}

EJERCICIO 171

RUN HACENDADO DESEA SABER CUL ES EL REA DE SUS 10 HACIENDAS QUE TIENEN
LA FORMA DE UN TRINGULO. INGRESE LOS DATOS POR TECLADO Y PRESENTAR CADA
UNO DE LOS RESULTADOS. REALIZAR UN PROGRAMA EN JAVA QUE AUTOMATIZE
DICHO PROCESO.

Universidad Politcnica Salesiana del Ecuador Pgina 241 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.io.*;
import java.lang.*;

class SumaPrueba{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

int a,b,cont=0;
float area=0f;
do{
System.out.println("Ingrese la altura: ");
a=Integer.parseInt(temp.readLine());
System.out.println("Ingrese la base: "); b=Integer.parseInt(temp.readLine());
cont=cont+1;
area= (b*a)/2;
System.out.println("Area: "+area);
}while (cont<5);
}
}

EJERCICIO 172

REALIZAR UN PROGRAMA QUE PRESENTE DE FORMA AUTOMTICA TODOS LOS


NMEROS ENTEROS POSITIVOS DESDE EL CERO HASTA EL DATO INGRESADO POR
TECLADO.

import java.io.*;
import java.lang.*;

class NumPosi{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));
int num=0,c=-1;

Universidad Politcnica Salesiana del Ecuador Pgina 242 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

System.out.print("Ingrese un numero positivo: ");


num=Integer.parseInt(temp.readLine());
do{
c++;
System.out.println("\t"+c);
}while (c<num);
}
}

EJERCICIO 173

REALIZAR UN PROGRAMA QUE PERMITA EL INGRESO DE 5 NMEROS POSITIVOS, SI


EL NMERO INGRESADO ES NEGATIVO PRESENTAR UN MENSAJE Y TENDR QUE
INGRESAR UN NMERO POSITIVO.

import java.io.*;
import java.lang.*;

class Negativos{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));
int num=0,cont=0;
do{
System.out.print("Ingrese un numero: ");
num=Integer.parseInt(temp.readLine());
cont++;
if(num<0)
System.out.println("Ingrese un numero positivo: ");
}while(cont<5);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 243 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJEERCICIO 174

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO 72, PERO STA VEZ SE TERMINA EL
PROGRAMA SI EL NMERO INGRESADO ES CERO O ES NEGATIVO

import java.io.*;
import java.lang.*;

class Negativos2{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));
int num=0,cont=0;
do{
System.out.print("Ingrese un numero: ");
num=Integer.parseInt(temp.readLine());
cont++;
}while((cont<5)&&(num>0));
}
}

EJERCICIO 175

REALIZAR UN PROGRAMA QUE MUESTRE LOS 5 PRIMEROS NMEROS PARES E


IMPARES EN EL MISMO CICLO.

import java.io.*;
import java.lang.*;

Universidad Politcnica Salesiana del Ecuador Pgina 244 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

class ParesImpares2{

public static void main(String arg[]) throws IOException{

int par =0, impar=-1, cont=0;


do{
par=par+2;
impar=impar+2;
cont=cont+1;
System.out.println("Impar: "+impar);
System.out.println("Par: "+par);
}while (cont<5);
}
}

ESTRUCTURA DE ITERACIN
CICLO FOR
Un bucle for, normalmente involucra a tres acciones en su ejecucin:
Inicializacin de la variable de control
Comprobacin del valor de la variable de control en una expresin condicional
Actualizacin de la variable de control
La clusula de inicio y la clusula de incremento pueden estar compuestas por varias
expresiones separadas mediante el operador coma (,), que en estos bucles Java
tambin soporta.
for( a=0,b=0; a < 7; a++,b+=2 )
El operador coma garantiza que el operando de su izquierda se ejecutar antes que el
operando de su derecha. Las expresiones de la clusula de inicio se ejecutan una sola
vez, cuando arranca el bucle. Cualquier expresin legal se puede emplear en esta

Universidad Politcnica Salesiana del Ecuador Pgina 245 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

clusula, aunque generalmente se utiliza para inicializacin. Las variables se pueden


declarar e inicializar al mismo tiempo en esta clusula:
for( int cnt=0; cnt < 2; cnt++ )
SINTAXIS

for({valor inicial};{condicin de termino};{factor de incremento del valor inicial}){


//ac va lo que se repetir n veces de acuerdo a la condicin de termino
}

FOR INFINITO
Bucle infinito: no hay control, entonces no se detiene
SINTAXIS
for ( ;;){}

EJERCICIO 176

REALIZAR UN PROGRAMA EN JAVA QUE PRESENTE EL MENSAJE HOLA 10 VECES.

import java.io.*;
import java.lang.*;

class HolaF{

public static void main(String arg[]) throws IOException{


int cont=0;
for(cont=0;cont<5;cont=cont+1){
System.out.println("Hola");
}
}
}

EJERCICIO 177

REALIZAR UN PROGRAMA EN JAVA QUE PRESENTE LA SERIE DEL 5 HASTA LLEGAR A


20.

Universidad Politcnica Salesiana del Ecuador Pgina 246 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.io.*;
import java.lang.*;

class Serie{

public static void main(String arg[]) throws IOException{


int cont=0;
for(cont=5;cont<=50;cont=cont+5){
System.out.println("\t"+cont);
}
}
}

EJERCICIO 178

REALIZAR UN PROGRAMA QUE MUESTRE UN LISTADO DE LOS 20 PRIMEROS


NMEROS PARES.

import java.io.*;
import java.lang.*;

class ParesF{

public static void main(String arg[]) throws IOException{

int par =0, cont=0;


for(cont=0;cont<10;cont++){
par=par+2;
System.out.println("Los numeros pares son: "+par);
}
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 247 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 179

REALIZAR UN PROGRAMA QUE PERMITA EL INGRESO DE UN NMERO Y SUMAR LOS


4 NMEROS ENTEROS POSITIVOS QUE LE SIGUEN. PRESENTAR EL RESULTADO Y
FINALIZAR.

import java.io.*;
import java.lang.*;

class SumaF{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

int num =0, cont=0, sum=0;


System.out.println("Ingrese un numero: ");
num=Integer.parseInt(temp.readLine());
for(cont=0;cont<4;cont++){
num=num+1;
sum=sum+num;
}
System.out.println("Resultado: "+sum);
}
}

EJERCICIO 180

REALIZAR UN PROGRAMA QUE PERMITA PRESENTAR LA SIGUIENTE SERIE:


4,8,16,32,64,128.

import java.io.*;

Universidad Politcnica Salesiana del Ecuador Pgina 248 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.lang.*;

class SerieF{

public static void main(String arg[]) throws IOException{

for(int x=4;x<=128;x=x*2){
System.out.println(x);
}
}
}

EJERCICIO 181

UN HACENDADO DESEA SABER CUL ES EL REA DE LAS 5 HACIENDAS QUE TIENEN


LA FORMA DE UN TRINGULO. INGRESE LOS DATOS POR TECLADO Y PRESENTAR
CADA UNO DE LOS RESULTADOS.

import java.io.*;
import java.lang.*;

class HaciendaF{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int a,b,cont=0;
float area=0f;
for(cont=0;cont<5;cont++){
System.out.print("Ingrese la altura: ");
a=Integer.parseInt(temp.readLine());
System.out.print("Ingrese la base: ");
b=Integer.parseInt(temp.readLine());
area= (b*a)/2;
System.out.println("Area: "+area);
}

Universidad Politcnica Salesiana del Ecuador Pgina 249 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
}

EJERCICIO 182

SE DESEA VISUALIZR EL RESULTADO DE LA TABLA DE MULTIPLICAR DE UN NMERO


INGRESADO POR TECLADO.

import java.io.*;
import java.lang.*;

class TablaF{

public static void main(String arg[]) throws IOException{

BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));

int num=0, acu =0, cont=0;


System.out.print("Ingrese un nmero: ");
num=Integer.parseInt(temp.readLine());
for(cont=0;cont<12;cont++){
acu=cont*num;
System.out.println(cont+"*"+num+"="+acu);
}
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 250 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 183

REALIZAR UN PROGRAMA QUE PERMITA VISUALIZAR LOS 10 PRIMEROS MLTIPLOS


DE UN VALOR INGRESADO POR EL TECLADO.

import java.io.*;
import java.lang.*;

class MultiF{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int n =0, cont=0, r=0;


System.out.print("Ingrese cualquier numero positivo: ");
n=Integer.parseInt(temp.readLine());
System.out.println("Primeros multiplos de 5");
for(cont=0;cont<5;cont++){
r=r+n;
System.out.println(r);
}
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 251 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 184

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO 82 PERO ESTA VEZ UTILIZANDO


SECUENCIAS DE ESCAPE PARA MEJORAR LA APRIENCIA DEL PROGRAMA.

import java.io.*;
import java.lang.*;

class Multiplo{

public static void main(String arg[]) throws IOException{

BufferedReader temp = new BufferedReader( new


InputStreamReader(System.in));

int n =0, cont=0, r=0;


System.out.print("\t"+"Ingrese cualquier numero positivo: ");
n=Integer.parseInt(temp.readLine());
System.out.println("\n"+"\t"+"5 Primeros multiplos de 5");
for(cont=0;cont<5;cont++){
r=r+n;
System.out.println("\n"+"\t"+r);

}
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 252 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 185

REALIZAR UN PROGRAMA QUE MUESTRE EL FACTORIAL DE UN NMERO INGRESADO


POR TECLADO.

import java.io.*;
import java.lang.*;

class factorial1{
public static void main(String arg[]) throws IOException{
BufferedReader temp = new BufferedReader ( new InputStreamReader(System.in));
int n, i, acum=1;

System.out.println("Ingrese un numero: ");


n = Integer.parseInt(temp.readLine());

for(i=1; i<=n; i++){


acum = acum * i;
}

System.out.println("El factorial es: "+acum);

Universidad Politcnica Salesiana del Ecuador Pgina 253 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 186

REALIZAR UN PROGRAMA QUE PERMITA MOSTRAR LA SUMATORIA DE LOS 10


PRIMEROS NMEROS.

import java.io.*;
import java.lang.*;

class sumatoria{
public static void main (String a[]) throws IOException{
int i, suma=0;
for(i=1; i<=10; i= i + 1){
suma = suma + i;
}
System.out.println("La sumatoria es "+suma);
}
}

EJERCICIO 187

REALIZAR UN PROGRAMA QUE PERMITA PRESENTAR POR PANTALLA LA SERIE


FIBONACCI, PERO SLO HASTA EL NMERO INGRESADO POR TECLADO. POR
EJEMPLO: INGRESO EL DOS, SLO SE PRESENTAR 2 NMEROS DE LA SERIE
FIBONACCI.

import java.io.*;
import java.lang.*;

class fibonacci{
public static void main(String arg[]) throws IOException{
BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));
int num,i=0;
int a=-1, b=1, c=0;
System.out.println("Ingrese un numero: ");
num=Integer.parseInt(temp.readLine());

for(i=1; i<=num; i++){


c = a + b;

Universidad Politcnica Salesiana del Ecuador Pgina 254 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

a = b;
b = c;
System.out.println("Fibonacci: "+" "+c+" ");
}
}
}

EJERCICIO 188

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA PRESENTAR DESDE EL CERO HASTA


EL NMERO INDICADO POR EL USUARIO.

//Uso de un ciclo for


import java.text.*;
import java.io.*;
import java.lang.*;
public class j007
{
public static void main(String[]args)throws IOException
{
System.out.println("Programa para ilustrar el uso del ciclo for en Java.");
BufferedReader in=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Hasta que numero deseas que se imprima?");
double num=Double.valueOf(in.readLine().trim()).doubleValue();
for(int i=0;i<=num;i++)
{
System.out.println(i);
}
System.out.println("Como se observa el ciclo for tiene un inicio,fin,y
paso.");
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 255 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 189

Imprime una etiqueta en pantalla las veces que quieras.

import java.text.*;
import java.io.*;
import java.lang.*;
class j019
{
public static void main(String [] args) throws IOException
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
System.out.print("Numero de etiquetas: ");
double etiq=Double.valueOf(in.readLine().trim()).doubleValue();
System.out.println();
for (int i=0;i<etiq;i++)
{
System.out.println("================");
System.out.println("| H O L A |");
System.out.println("================");
System.out.println("\n\n");
}
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 256 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 190

Muestra una tabla de temperaturas de Celsius a Fahrenheit.

import java.io.*;
import java.lang.*;

class j021 {
/* Tabla de temperaturas Celsius Farenheit */
public static void main(String [] args)
{
System.out.println("Tabla de conversion de Temperaturas");
System.out.println("===================================");
System.out.println();
System.out.println("C\tF");
for (int c=5;c<=20;c++)
{
System.out.print(c+"\t");
System.out.println(Math.round(c*9/5+32));
}
}
}

EJERCICIO 191

VARIACIN DEL CDIGO ANTERIOR

import java.io.*;
import java.lang.*;

Universidad Politcnica Salesiana del Ecuador Pgina 257 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

class j022
{
static final int colsPorLinea=5;
static final int maxNoLinea=10;
static final String hueco="\t";
public static void main(String[]args)
{
System.out.println("\tTabla conversion temperaturas");
System.out.println("\t=============================");
System.out.println();
for(int col=0;col<colsPorLinea;col++)
System.out.print("C F"+hueco);
System.out.println();
for(int linea=0;linea<maxNoLinea;linea++)
impLinea(linea);
}
static void impLinea(int estalinea)
{
for(int col=0;col<colsPorLinea;col++)
{
int c=estalinea*colsPorLinea+col;
System.out.print(c+" ");
System.out.print(fahrenheit(c)+hueco);
}
System.out.println();
}
static int fahrenheit(int Celsius)
{
return Math.round(Celsius*9/5+32);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 258 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 191

SUMAR LOS ENTEROS PARES DEL 2 AL 100, UTILIZANDO CUADROS DE DILOGOS.

//Paquete de Java
import javax.swing.JOptionPane;
public class SumaFor {
public static void main (String args []) {

int total=0;//inicializar el total

//sumar los enteros pares del 2 al 100


for(int numero=2;numero<=100; numero+=2 )
total+=numero;

//mostrar el resultado
JOptionPane.showMessageDialog(null,"La suma es: "+total,
"Suma de los enteros pares del 2 al 100
",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);

}
}

CLCULO DEL INTERS COMPUESTO

Universidad Politcnica Salesiana del Ecuador Pgina 259 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

UNA PERSONA INVIERTE $1000.00 EN UN ACUENTA DE AHORRO QUE PRODUCE EL


5% DE INTRS. SUPONIENDO QUE TODO EL INTERS SE DEPOSITA EN LACUENTA,
CALCULE E IMPRIMA EL MONTO DE LA CUENTA AL FINAL DE CADA AO, DURANTE 10
AOS. USE LA SIGUIENTE FRMULA PARA CALCULAR ,LOS MONTOS:
C= P(1+T)^N

EN DONDE
P ES EL MONTO QUE SE INVIRTI INICIALMENTE (ES DECIR EL MONTO PRINCIPAL)
T ES LA TASA DE INTERS ANUAL
N ES EL NMERO DE AOS
C ES LA CANTIDAD DEPOSITADA AL FINAL DEL N-SIMO AO.

//Paquete de Java
import java.text.NumberFormat; //calse para el formato numrico
import java.util.Locale; //clase para informacin especfica de cada pas.

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class InteresFor {


public static void main (String args []) {
double cantidad=0; //cantidad depositada al final de cada ao
double principal=1000.0; //cantidad inicial sin intereses
double tasa=0.05; //tasa de inters

//Crear NumberFormat para la moneda en dlares


NumberFormat
formatoMoneda=NumberFormat.getCurrencyInstance(Locale.US);

//Crear JTextArea para mostrar la salida


JTextArea areaTextoSalida=new JTextArea();
areaTextoSalida.setText("Ao\tCantidad en Depsito\n");

//Calcular la cantidad de depsito para cada uno de los 10 aos

for(int anio=2;anio<=10; anio++ )


{ //Calcular la nueva cantidad para el ao especificado
cantidad= principal*Math.pow(1.0+tasa, anio);
//Anexar una lnea de texto a areaTextoSalida

areaTextoSalida.append(anio+"\t"+formatoMoneda.format(cantidad)+"\n");
}
//mostrar el resultado

Universidad Politcnica Salesiana del Ecuador Pgina 260 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

JOptionPane.showMessageDialog(null,areaTextoSalida,
"Inters Compuesto",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);

}
}

SALTOS
SENTENCIA BREAK
La sentencia break puede utilizarse en una sentencia switch o en un bucle. Cuando se
encuentra en una sentencia switch, break hace que el control del flujo del programa
pase a la siguiente sentencia que se encuentre fuera del entorno del switch. Si se
encuentra en un bucle, hace que el flujo de ejecucin del programa deje el mbito del
bucle y pase a la siguiente sentencia que venga a continuacin del bucle.

Universidad Politcnica Salesiana del Ecuador Pgina 261 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 192
Este programa cuenta los dgitos de un nmero y en caso de que dicho nmero tenga
5 o ms dgitos nos muestra por consola el mensaje "el nmero tiene 5 o ms
dgitos". Vase la lnea "if (dgitos ==5) break;" cuya presencia hace que en caso de
que el nmero haya llegado a los 5 dgitos se rompa la iteracin del bucle.
import java.io.*;
import java.lang.*;

public class CuentaDigitosBr{


public static void main(String args[]){
int nmero = 4557888;
int dgitos = 0;
while ( nmero > 0 ) {
nmero /=10;
dgitos++;
if (dgitos ==5) break;
}
if (dgitos ==5) System.out.println("El numero tiene 5 o mas digitos");
}
}

EJERCICIO 193

REALIZAR UN PROGRAMA QUE PRESENTE POR PANTALLA EL MAYOR NMERO DE


LOS NMEROS INGRESADOS POR PANTALLA.

import java.io.*;
import java.lang.*;

Universidad Politcnica Salesiana del Ecuador Pgina 262 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

class Maximo{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int num1 =0, num2=0, mayor=0;


System.out.print("Ingrese el primer numero: ");
num1=Integer.parseInt(temp.readLine());
System.out.print("Ingrese el segundo numero: ");
num2=Integer.parseInt(temp.readLine());

mayor=Math.max(num1,num2);

System.out.println("\n"+"El numero mayor entre " +num1+ " y " +num2+ " es:
"+mayor);

}
}

EJERCICIO 194

REALIZAR UN PROGRAMA QUE SIMULE UN CAJERO AUTOMTICO.

import java.io.*;
import java.lang.*;

class cajero{
public static void main(String a[]) throws IOException{
BufferedReader t=new BufferedReader(new InputStreamReader(System.in));
int i;
String nombre;
System.out.println(" CAJERO AUTOMATICO");
System.out.println("");
System.out.print(" NOMBRE: ");
nombre=t.readLine();
System.out.println("");
System.out.println(" (1) $10 (2) $20");
System.out.println(" (3) $30 (4) $40");
System.out.println("");

Universidad Politcnica Salesiana del Ecuador Pgina 263 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

System.out.println("");
//INGRESO DE LA OPCION
System.out.print(" OPCION: ");
i=Integer.parseInt(t.readLine());
System.out.println("");
System.out.println("");
switch(i)
{case 1:System.out.println(" Ud. "+nombre+" ha retirado $10.
Gracias por su preferencia");break;
case 2:System.out.println(" Ud. "+nombre+" ha retirado $20.
Gracias por su preferencia");break;
case 3:System.out.println(" Ud. "+nombre+" ha retirado $30.
Gracias por su preferencia");break;
case 4:System.out.println(" Ud. "+nombre+" ha retirado $40.
Gracias por su preferencia");break;
}
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 264 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Declaracin de Paquetes
Los paquetes se declaran utilizando la palabra package seguida del nombre del
paquete. Esto debe estar al comienzo del fichero fuente, en concreto, debe ser la
primera sentencia ejecutable del cdigo Java, excluyendo, claro est, los comentarios y
espacios en blanco. Por ejemplo:
package mamiferos;
class Ballena {
...
}
En este ejemplo, el nombre del paquete es mamiferos. La clase Ballena se considera
como parte del paquete. La inclusin de nuevas clases en el paquete es muy sencilla,
ya que basta con colocar la misma sentencia al comienzo de los ficheros que
contengan la declaracin de las clases. Como cada clase se debe colocar en un fichero
separado, cada uno de los ficheros que contengan clases pertenecientes a un mismo
paquete, deben incluir la misma sentencia package, y solamente puede haber una
sentencia package por fichero.
Tambin se pueden incluir varias clases en uno o ms paquetes. Por ejemplo:
package mamiferos.acuaticos;

La clase Ballena pertenece al paquete mamiferos.acuaticos, acuaticos es un


subpaquete del paquete mamferos.

EJERCICIO 195

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MOSTRAR POR PANTALLA EL


MENSAJE Hola Mundo, PERO COLOQUELO EN UN PAQUETE.
package saludos;

import java.io.*;
import java.lang.*;

public class HolaMundo {


public static void main (String args []) {
System.out.print ("Hola Mundo");

}
}
/*El nombre del paquete es saludos y nuestra clase HolaMundo pertenece a ese
paquete*/

Universidad Politcnica Salesiana del Ecuador Pgina 265 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 196

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MOSTRAR POR PANTALLA EL


MENSAJE Hola Mundo EN DOS SENTENCIAS, PERO COLOQUELO EN EL MISMO
PAQUETE SALUDOS.

package saludos;
import java.io.*;
import java.lang.*;

public class HolaMundo2 {


public static void main (String args []) {
System.out.print ("Hola ");
System.out.println ("Mundo");

}
}

EJERCICIO 197

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE UN MENSAJE CON VARIAS


INSTRUCCIONES, UNA PALABRA POR MENSAJE Y COLOQUELO EN EL MISMO PAQUETE
SALUDOS.

package saludos;
import java.io.*;
import java.lang.*;

public class HolaMundoln {


public static void main (String args []) {
System.out.print ("Bienvenido");
System.out.print (" a");
System.out.print (" la");
System.out.print (" Programacion");

Universidad Politcnica Salesiana del Ecuador Pgina 266 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

System.out.print (" en");


System.out.println (" Java");
}
}

NOTA: Se pueden realizar varaias sentencias para mostrar mensajes en el mismo


mdoto Main.

EJERCICIO 198

MOSTRAR VARIAS LNEAS DE TEXTO CON UNA SLA INSTRUCCIN, UTILIZANDO LAS
SECUENCIAS DE ESCAPE NECESARIAS. Y COLOQUELO EN EL PAQUETE SENTENCIAS.

package sentencias;
import java.io.*;
import java.lang.*;

public class HolaMundo3 {


public static void main (String args []) {

System.out.println ("Bienvenido\na\nla\nprogramacion\nen Java!!!");

}
}

EJERCICIO 199

MOSTRAR UNA LNEA DE TEXTO QUE VAYA ENTRE COMILLAS DOBLES. Y COLOQUELO
EN EL PAQUETE SENTENCIAS.

package sentencias;

Universidad Politcnica Salesiana del Ecuador Pgina 267 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.io.*;
import java.lang.*;

public class HolaMundo5 {


public static void main (String args []) {

System.out.println ("\"Hola Mundo\"");

}
}

EJERCICIO 200
MOSTRAR UNA LNEA DE TEXTO QUE VAYA ENTRE COMILLAS DOBLES. Y COLOQUELO
EN EL PAQUETE SENTENCIAS.

package sentencias;

import java.io.*;
import java.lang.*;

public class HolaMundo5 {


public static void main (String args []) {

System.out.println ("\"Hola Mundo\"");

}
}

EJERCICIO 201
REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE UNA LNEA DE TEXTO QUE VAYA
ENTRE COMILLAS SIMPLES.
package sentencias.escape;

import java.io.*;
import java.lang.*;

public class HolaMundo5 {

Universidad Politcnica Salesiana del Ecuador Pgina 268 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public static void main (String args []) {


System.out.println ("\'Hola Mundo\'");

}
}

EJERCICIO 202
REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE UNA LNEA DE TEXTO PERO QUE
BORRE UN CARCTER A LA IZQUIERDA.
package sentencias.escape;

import java.io.*;
import java.lang.*;

public class HolaMundo9 {


public static void main (String args []) {

System.out.println ("Hola\bMundo");

}
}

EJERCICIO 203
REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE UNA LNEA DE TEXTO PERO QUE
MUESTRE EL CARCTER \ EN EL MENSAJE.
package sentencias.escape;

import java.io.*;
import java.lang.*;

public class HolaMundo10 {


public static void main (String args []) {

System.out.println ("Hola\\Mundo");

Universidad Politcnica Salesiana del Ecuador Pgina 269 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

PROGRAMACIN ORIENTADA A OBJETOS


El elemento fundamental de la OOP es, como su nombre lo indica, el objeto. Podemos
definir un objeto como un conjunto complejo de datos y programas que poseen
estructura y forman parte de una organizacin.
Esta definicin especifica varias propiedades importantes de los objetos. En primer
lugar, un objeto no es un dato simple, sino que contiene en su interior cierto nmero
de componentes bien estructurados. En segundo lugar, cada objeto no es un ente
aislado, sino que forma parte de una organizacin jerrquica o de otro tipo.
ESTRUCTURA DE UN OBJETO
Un objeto puede considerarse como una especie de cpsula dividida en tres partes:
1 - RELACIONES
2 - PROPIEDADES
3 - METODOS
Cada uno de estos componentes desempea un papel totalmente independiente:
Las relaciones permiten que el objeto se inserte en la organizacin y estn formadas
esencialmente por punteros a otros objetos.
Las propiedades distinguen un objeto determinado de los restantes que forman parte
de la misma organizacin y tiene valores que dependen de la propiedad de que se
trate. Las propiedades de un objeto pueden ser heredadas a sus descendientes en la
organizacin.
Los mtodos son las operaciones que pueden realizarse sobre el objeto, que
normalmente estarn incorporados en forma de programas (cdigo) que el objeto es
capaz de ejecutar y que tambin pone a disposicin de sus descendientes a travs de
la herencia.

Encapsulamiento y ocultacin
Esta propiedad (encapsulamiento), es una de las caractersticas fundamentales en la
OOP, el hecho de que cada objeto sea una cpsula facilita enormemente que un
objeto determinado pueda ser transportado a otro punto de la organizacin, o incluso
a otra organizacin totalmente diferente que precise de l. Si el objeto ha sido bien
construdo, sus mtodos seguirn funcionando en el nuevo entorno sin problemas.
Esta cualidad hace que la OOP sea muy apta para la reutilizacin de programas.
HERENCIA

La herencia es especfica de la programacin orientada a objetos, donde una clase


nueva se crea a partir de una clase existente. La herencia (a la que habitualmente se
denomina subclases) proviene del hecho de que la subclase (la nueva clase creada)

Universidad Politcnica Salesiana del Ecuador Pgina 270 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

contiene las atributos y mtodos de la clase primaria. La principal ventaja de la


herencia es la capacidad para definir atributos y mtodos nuevos para la subclase, que
luego se aplican a los atributos y mtodos heredados.
Esta particularidad permite crear una estructura jerrquica de clases cada vez ms
especializada. La gran ventaja es que uno ya no debe comenzar desde cero cuando
desea especializar una clase existente. Como resultado, se pueden adquirir bibliotecas
de clases que ofrecen una base que puede especializarse a voluntad (la compaa que
vende estas clases tiende a proteger las datos miembro usando la encapsulacin).

Jerarqua de clase
La relacin primaria-secundaria entre clases puede representarse desde un punto de
vista jerrquico, denominado vista de clases en rbol. La vista en rbol comienza con
una clase general llamada superclase (a la que algunas veces se hace referencia como
clase primaria, clase padre, clase principal, o clase madre; existen muchas metforas
genealgicas). Las clases derivadas (clase secundaria o subclase) se vuelven cada vez
ms especializadas a medida que van descendiendo el rbol. Por lo tanto, se suele
hacer referencia a la relacin que une a una clase secundaria con una clase primaria
mediante la frase "es una" x o y.

Herencia mltiple
Algunos lenguajes orientados a objetos, como C++ permiten herencias mltiples, lo
que significa que una clase puede heredar los atributos de otras dos superclases. Este
mtodo puede utilizarse para agrupar atributos y mtodos desde varias clases dentro
de una sola.

Universidad Politcnica Salesiana del Ecuador Pgina 271 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

POLIMORFISMO
Se denomina polimorfismo a la capacidad que tienen los objetos de una clase de
responder al mismo mensaje o evento en funcin de los parmetros utilizados durante
su invocacin. Un objeto polimrfico es una entidad que puede contener valores de
diferentes tipos durante la ejecucin del programa.
EJERCICIO

CLASE 1: NOMBRE DE LA CLASE 1. ATRIBUTOS DE LA CLASE.

CLASE 2: NOMBRES DE LA CLASE: TRIANGULO 1. ATRIBUTOS: BASE Y ALTURA.

CLASE 3: EN DNDE SE CREEN OBJETOS TRINGULOS, SE PUEDE OBTENER EL REA Y


EL PERMETRO. TAMBIN DEBE DECIR COMO OBTENER LA NORMA DEL VECTOR QUE
GENERA EL PUNTO Y LA DISTANCIA ENTRE LOS OBJETOS DE TIPO PUNTO.

CLASE PUNTO

package IOp;

class Punto{
int a=0,b=0;
Punto(int x, int y){
a=x;
b=y;
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 272 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

CLASE TRINGULO

package IOp;

public class Triangulo{


public int Base;
public int Altura;

public Triangulo(int base, int altura){


Base=base;
Altura=altura;
}

void Area(){
float a;
a=(Base*Altura)/2;
System.out.println(a);
}

void Perimetro(){
float r,n,h;
n=(float)(Math.sqrt(Math.pow(Base,2))+(Math.pow(Altura,2)));
r= Base+Altura +n;
System.out.println(r);
}
}

CLASE APLICACIN

package IOp;

class Aplicacion{
public static void main(String arg[])
{
Triangulo triangulo1= new Triangulo(8,9);
triangulo1.Area();
triangulo1.Perimetro();
Punto p1=new Punto (2,8);
Punto p2=new Punto(3,5);
float p;
p=(float)(Math.sqrt(Math.pow((p1.a-p2.a),2)+ (Math.pow((p1.b-p2.b),2))));
System.out.println(p);
}

Universidad Politcnica Salesiana del Ecuador Pgina 273 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

HERENCIA
EJERCICIO 204

package Militar2.Clases.Deber;

public class Persona{


public String nombre,sexo;
public int edad,cedula;
public Persona(String n, int e, String s,int c){
nombre=n;
edad=e;
sexo=s;
cedula=c;
}
}

NOTA: LO QUE EST ENCERRADO ES EL MTODO CONSTRUCTOR, LAS VARIABLES QUE


SE ENCUENTRAN EN PARNTESIS SON VARIABLES DEL MTODO CONSTRUCTOR QUE SE
LAS DEBE ASIGNAR A LAS VARIABLES ASIGNADAS EN LA CLASE EN ESTE CASO LA CLASE
PERSONA.
ERROR COMN
El mtodo constructor tien que tener el mismo nombre de la clase. Por ejemplo:

La clase se llama Persona, el mtodo constructor debe llamarse tambin Persona.

CLASE TRABAJADORES

package Militar2.Clases.Deber;

public class Trabajadores extends Persona{


public double sueldo;
public Trabajadores(String n, int e, String s, int c,double su){
super(n,e,s,c);
sueldo=su;
}
}

NOTA: LO QUE EST ENCERRADO EN UN CRCULO ES EL MTODO CONSTRUCTOR DE


LA CLASE TRABAJADORES, LO QUE EST EN UN CUADRADO ES LO QUE SE DENOMINA
HERENCIA, YA QUE LA CLASE TRABAJDORES TIENE ATRIBUTOS QUE TIENE LA CLASE
PERSONA.

Universidad Politcnica Salesiana del Ecuador Pgina 274 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

LA HERENCIA TAMBIN CONOCIDO COMO REUTILIZACIN DE CDIGO, UN TRABAJDOR


ES UNA PERSONA POR LO TANTO TIENE ATRIBUTOS QUUE TIENE UNA PERSONA,
ATRIBUTOS SON LAS VARIABLES, PERO EN LA PROGRAMACIN ORIENTADA A OBJETOS
SE DENOMINA ATRIBUTOS.
EN ESTE CASO SUPER LLAMA A TODOS LOS ATRIBUTOS DE LA CLASE PERSONA.

/*Mtodo Constructor de la Clase Persona*/


public Persona(String n, int e, String s,int c){
nombre=n;
edad=e;
sexo=s;
cedula=c;
}
}

super(n,e,s,c);

Los atributos que coloco en el mtodo constructor debe coincidir con los que ponga
con super en la clase del mtodo constructor que quiero que herede.

CLASE POLTICO

public class Politico extends Trabajadores{


public String partido;
public Politico(String n, int e, String s, int c, double su, String p){
super(n,e,s,c,su);
partido=p;
}
}

NOTA: LA CLASE POLTICO HEREDA DE LA CLASE TRABAJADORES, SE DEBEN COLOCAR


TODOS LOS ATRIBUTOS QUE SE HAN VENIDO HEREDANDO CON EL MTODO SUPER, ES
LA FORMA MS FCIL DE PROGRAMAR REUTILIZANDO CDIGO.

CLASE MILITAR

package Militar2.Clases.Deber;

public class Militar extends Trabajadores{


public String rango;
public Militar(String n, int e, String s, int c,double su, String r){
super(n,e,s,c,su);
rango=r;
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 275 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

NOTA: LA CLASE MILITAR NO PUEDE HEREDAR DE LA CLASE POLTICO PORQUE NO


TIENE UNA SECUENCIA LGICA, EN CAMBIO SI SE PUEDE DECIR QUE UN MILITAR SI
ES UN TRABAJADOR Y TIENE ATRIBUTOS DE UN TRABAJADOR.

CLASE LEER
STA CLASE ES REUTILIZABLE, PORQUE PERMITE LEER EN CUADROS DE DILOGOS,
CADENAS DE TEXTO, ENTEROS Y DOUBLES. VEA SU UTILIZACIN EN LA CLASE
APLICACIN.

package Militar2.Clases.Deber;

public class Leer{


public String leerTexto(String texto){
return javax.swing.JOptionPane.showInputDialog(null,texto);

}
public int leerInt(String texto ) {
String t= javax.swing.JOptionPane.showInputDialog(null,texto);
return Integer.parseInt(t);
}

public double leerDouble(String texto ){


String t= javax.swing.JOptionPane.showInputDialog(null,texto);
return Double.parseDouble(t);
}
}
CLASE MOSTRAR

STA CLASE EVITA TENER QUE ESCRIBIR DENTRO DE LA MISMA CLASE


JOptionPane.showMessageDialog.
package Militar2.Clases.Deber;

public class Mostrar{


public void mensaje(String m){
javax.swing.JOptionPane.showMessageDialog(null,m);
}

}
Se coloca javax.swing si no se coloca la librera tambin se puede hacer as:

package Militar2.Clases.Deber;

Universidad Politcnica Salesiana del Ecuador Pgina 276 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import javax.swing.*;

public class Mostrar{


public void mensaje(String m){
JOptionPane.showMessageDialog(null,m);
}

CLASE APLICACIN
- linea.leerTextollama al mtodo en la clase leer y lo mismo hace leerInt ya que se
encuentra en la clase leer, esto ayuda a tener un orden en el programa, ya que las
clase leer y mostrar se las puede utilizar con todos los programas muchas veces, pero
si lo hicieramos en el mismo programa lo utilizaramos una sla vez.

package Militar2.Clases.Deber
public class Aplicacion{
public static void prueba(){
Leer linea = new Leer();
Mostrar m= new Mostrar();
String n= linea.leerTexto("Ingrese el nombre");
int e= linea.leerInt("Ingrese la edad");
String s= linea.leerTexto("Ingrese su sexo: ");
int c=linea.leerInt("Ingrese su nmero de cdula: ");
Persona p= new Persona(n,e,s,c);
n="El nombre es:" +p.nombre+"\nEdad:"+p.edad+"\nSexo:"+p.sexo+"\nCdula:";
m.mensaje(n);
}
public static void main(String arg[]){
Mostrar m = new Mostrar();
Leer linea= new Leer();
m.mensaje("Bienvenido");
m.mensaje("\tSistema de Ingreso \t\nAutor: Gabriela Montesdeoca");
String n=linea.leerTexto("Ingrese el nombre");
m.mensaje(" Su nombre es: " +n);
int x=linea.leerInt("Ingrese la edad");
m.mensaje(" Su edad es:" +x);
String b=linea.leerTexto("Ingrese su sexo");
m.mensaje(" Su sexo es: " +b);

String a=linea.leerTexto("Ingrese el nmero de la cdula: ");


m.mensaje(" Su cedula es:" +a);
double z=linea.leerDouble("Ingrese el sueldo");

Universidad Politcnica Salesiana del Ecuador Pgina 277 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

m.mensaje(" Su sueldo es: " +z);


String r=linea.leerTexto("Ingrese el rango");
m.mensaje(" Su rango es: " +r);
String p=linea.leerTexto("Ingrese el partido");
m.mensaje(" Su partido es: " +p);
m.mensaje("Gracias por preferirnos");
}
}

MULTIHILOS
Considerando el entorno multithread (multihilo), cada thread (hilo, flujo de control del
programa) representa un proceso individual ejecutndose en un sistema. A veces se
les llama procesos ligeros o contextos de ejecucin. Tpicamente, cada hilo controla un
nico aspecto dentro de un programa, como puede ser supervisar la entrada en un
determinado perifrico o controlar toda la entrada/salida del disco. Todos los hilos
comparten los mismos recursos, al contrario que los procesos, en donde cada uno
tiene su propia copia de cdigo y datos (separados unos de otros). Grficamente, los
hilos (threads) se parecen en su funcionamiento a lo que muestra la figura siguiente:

Hay que distinguir multihilo (multithread) de multiproceso. El multiproceso se refiere a


dos programas que se ejecutan "aparentemente" a la vez, bajo el control del Sistema
Operativo. Los programas no necesitan tener relacin unos con otros, simplemente el
hecho de que el usuario desee que se ejecuten a la vez.
Multihilo se refiere a que dos o ms tareas se ejecutan "aparentemente" a la vez,
dentro de un mismo programa.
Se usa "aparentemente" en ambos casos, porque normalmente las plataformas tienen
una sola CPU, con lo cual, los procesos se ejecutan en realidad "concurrentemente",
sino que comparten la CPU. En plataformas con varias CPU, s es posible que los
procesos se ejecuten realmente a la vez.
Tanto en el multiproceso como en el multihilo (multitarea), el Sistema Operativo se
encarga de que se genere la ilusin de que todo se ejecuta a la vez. Sin embargo, la
multitarea puede producir programas que realicen ms trabajo en la misma cantidad
de tiempo que el multiproceso, debido a que la CPU est compartida entre tareas de
un mismo proceso. Adems, como el multiproceso est implementado a nivel de
sistema operativo, el programador no puede intervenir en el planteamiento de su
ejecucin; mientras que en el caso del multihilo, como el programa debe ser diseado

Universidad Politcnica Salesiana del Ecuador Pgina 278 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

expresamente para que pueda soportar esta caracterstica, es imprescindible que el


autor tenga que planificar adecuadamente la ejecucin de cada hilo, o tarea.
Actualmente hay diferencias en la especificacin del intrprete de Java, porque el
intrprete de Windows '95 conmuta los hilos de igual prioridad mediante un algoritmo
circular (round-robin), mientras que el de Solaris 2.X deja que un hilo ocupe la CPU
indefinidamente, lo que implica la inanicin de los dems.
EJERCICIO 205

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MOSTRAR POR PANTALLA UN


HOLA MUNDO CON UN HILO.

// Definimos unos sencillos hilos. Se detendrn un rato


// antes de imprimir sus nombres y retardos

class TestTh extends Thread {


private String nombre;
private int retardo;

// Constructor para almacenar nuestro nombre


// y el retardo
public TestTh( String s,int d ) {
nombre = s;
retardo = d;
}

// El metodo run() es similar al main(), pero para


// threads. Cuando run() termina el thread muere
public void run() {
// Retasamos la ejecucin el tiempo especificado
try {
sleep( retardo );
} catch( InterruptedException e ) {
;
}

// Ahora imprimimos el nombre


System.out.println( "Hola Mundo! "+nombre+" "+retardo );
}
}

CLASE MULTIHOLA

public class MultiHola {


public static void main( String args[] ) {
TestTh t1,t2,t3;

Universidad Politcnica Salesiana del Ecuador Pgina 279 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

// Creamos los threads


t1 = new TestTh( "Thread 1",(int)(Math.random()*2000) );
t2 = new TestTh( "Thread 2",(int)(Math.random()*2000) );
t3 = new TestTh( "Thread 3",(int)(Math.random()*2000) );

// Arrancamos los threads


t1.start();//SE INICIALIZA
t2.start();
t3.start();
}
}

NOTA: EL HILO 2 LLEG PRIMERO.

NOTA: EL HILO 1 LLEG PRIMERO

POLIMORFISMO

CLASE FORMAS

Universidad Politcnica Salesiana del Ecuador Pgina 280 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJEMPLO 206

package Pol;

import java.io.*;
import java.awt.*;

class Forma {
void dibujar() {}
void borrar() {}
}

public class Formas {


public static Forma formaAleatoria() {
switch((int)(Math.random() * 3)) {
default:
case 0: return new Circulo();
case 1: return new Cuadrado();
case 2: return new Tringulo();
}
}
public static void main(String[] args) {
Forma[] s = new Forma[9];
// Rellenar el array con varias formas:
for(int i = 0; i < s.length; i++)
s[i] = formaAleatoria();
// llamar a los mtodo para ver el polimorfismo:
for(int i = 0; i < s.length; i++)
s[i].dibujar();
}
}

CLASE CIRCULO

class Circulo extends Formas {


void dibujar() {
System.out.println("Circulo.dibujar()");
}
void borrar() {
System.out.println("Circulo.borrar()");
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 281 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

CLASE CUADRADO

class Cuadrado extends Formas {


void dibujar() {
System.out.println("Cuadrado.dibujar()");
}
void borrar() {
System.out.println("Cuadrado.borrar()");
}
}

CLASE TRIANGULO

class Tringulo extends Formas {


void dibujar() {
System.out.println("Triangulo.dibujar()");
}
void borrar() {
System.out.println("Triangulo.borrar()");
}
}

TRABAJO CON PANELES


EJERCICIO PRUEBA

REALIZAR UN PROGRAMA QUE MUESTRE UNA VENTANA. UTILIZE SLO UNA


APLICACIN. LUEGO VEA EL EJERCICIO 1 QUE UTILIZA DOS APLICACIONES.

import java.awt.*;

Universidad Politcnica Salesiana del Ecuador Pgina 282 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public class Ventana extends Frame{


public Ventana(){
show();
}
public static void main(String arg[]){
new Ventana();
}
}

NOTA: EL PROGRAMA QUE SE EJECUTA EN DONDE EST EL MTODO MAIN.

/*show(), se debe poner para mostrar la ventana*/

EJERCICIO 207

REALIZAR UN PROGRAMA PARA CREAR DOS APLICACIONES Y QUE UNA DE LAS


APLICACIONES LLAME A LA OTRA. CREE UNA VENTANA SIMPLE.

package awt.Ejemplo1;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
show();
}
}

package awt.Ejemplo1;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

/* SE EJECUTA LA CLASE APLICACIN*/


/* CREA UNA VENTANA SIN NINGN TAMAO, ES POR ESO QUE APARECE SLO CON
LOS BOTONES DE MINIMIZAR, MAXIMIZAR Y CERRAR, PARA ESTABLECER UN TAMAO
A LA VENTANA SE UTILIZA LA OPCIN setsize (ANCHO,LARGO). VEA EL EJERCICIO 2*/
EJERCICIO 153

Universidad Politcnica Salesiana del Ecuador Pgina 283 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO 1, PERO STA VEZ COLOQUE UN


TAMAO FIJO EN LA VENTANA.

package awt.Ejemplo2;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
setSize(250,150);
show();
}
}

package awt.Ejemplo2;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

EJERCICIO 208

CON REFERENCIA AL EJERCICIO 2, COLOCAREMOS UN TTULO EN LA VENTANA.

package awt.Ejemplo3;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
setTitle("MI PRIMERA VENTANA");
setSize(250,150);
show();
}
}

package awt.Ejemplo3;
public class Aplicacion{
public static void main(String arg[]){

Universidad Politcnica Salesiana del Ecuador Pgina 284 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

new Ventana();
}
}

/* PARA AGREGAR TTULO A LA VENTANA UTILIZE setTitle(Hola); */

EJERCICIO 209

CON REFERENCIA AL EJERCICIO 3 REALIZAR UN PROGRAMA QUE PERMITA AADIR


UN BOTN A LA VENTANA.

package awt.Ejemplo4;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
setTitle(" Ventana con un boton");
Button A;
A=new Button("Aceptar");
setSize(250,150);
show();
}
}

package awt.Ejemplo4;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

/* NO APARECE EL BOTN PORQUE CUANDO SE CREA UN BOTN DEBE AADIRSE AL


PANEL CON LA OPCIN ADD QUE SE VER EN EL EJERCICIO 5 COMPARE LOS
EJERCICIOS 4 Y 5 Y VEA LAS DIFERENCIAS. */

Universidad Politcnica Salesiana del Ecuador Pgina 285 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 209

CON REFERENCIA AL EJERCICIO 4, CORRIJA EL ERROR PARA QUE APAREZCA EL


BOTN.

package awt.Ejemplo5;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
setTitle(" Ventana con un boton");
Button A;
A=new Button("Aceptar");
add(A);
setSize(300,400);
show();
}
}

package awt.Ejemplo5;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

EJERCICIO 210

HAGA REFERENCIA AL EJERCICIO ANTERIOR, STA VEZ AADA DOS BOTONES AL


PANEL.

Universidad Politcnica Salesiana del Ecuador Pgina 286 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

package awt.Ejemplo6;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
setTitle(" Ventana con un boton");
Button A;
A=new Button("Aceptar");
add(A);
Button B=new Button("Cancelar");
add(B);
setSize(250,150);
show();
}
}

package awt.Ejemplo6;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

/* NO APARECE EL BOTN ACEPTAR PORQUE EL BOTN CANCELAR EST SOBRE EL


BOTN ACEPTAR, PARA PONER DOS BOTONES EN EL PANEL SE NECESITA DIVIDIR EL
PANEL, VEA EL EJERCICIO 7*/

EJERCICIO 211

HAGA REFERENCIA AL EJERCICIO 6 Y AADA LOS DOS BOTONES CORRIEGIENDO EL


ERROR DEL EJERCICIO 6. COMPARE LAS DIFERENCIAS ENTRE EL EJERCIO ANTERIOR Y
STE.

package awt.Ejemplo7;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){

Universidad Politcnica Salesiana del Ecuador Pgina 287 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

setTitle(" Ventana con dos botones");


setLayout(new GridLayout(1,2));
Button A;
A=new Button("Aceptar");
add(A);
Button B=new Button("Cancelar");
add(B);
setSize(250,150);
show();
}
}

package awt.Ejemplo7;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

/* setLayout(new GridLayout(1,2));
Esta lnea crea dos columnas y 1 fila en el panel, esto debe hacerse para aadir ms
objetos al panel. */

EJERCICIO 213

HAGA REFERENCIA AL EJERCICIO 7, PERO STA VEZ AADA 4 BOTONES AL PANEL.

package awt.Ejemplo8;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
setLayout(new GridLayout (2,2));
setSize(250,150);
setTitle(" Ventana con cuatro botones");
Button A=new Button("A");

Universidad Politcnica Salesiana del Ecuador Pgina 288 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

add(A);
Button B=new Button("B");
add(B);
Button C=new Button("C");
add(C);
Button D=new Button("D");
add(D);
//setSize(250,150);/*SE PUEDE COLOCAR TAMBIN AQU O ARRIBA*/
show();
}
}

package awt.Ejemplo8;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

/* ESTA VEZ AGREGAMOS UNA FILA MS, ES DECIR HAY DOS FILAS Y DOS
COLUMNAS.
setLayout(new GridLayout (2,2));*/

EJERCICIO 214

SE NECESITAN CREAR 20 BOTONES PARA STO UTILIZE LA AYUDA DE UNA


ESTRUCTURA DE ITERACIN, PONGA MUCHA ATENCIN TAMBIN SE UTILIZA UN
ARREGLO DE BOTONES PARA AGREGARLOS AL PANEL.

package awt.Ejemplo9;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){

setLayout(new GridLayout (5,4));


setSize(300,400);
setTitle(" Ventana con 20 botones");
Button [] A =new Button[20];

Universidad Politcnica Salesiana del Ecuador Pgina 289 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

for(int i=0;i<=19;i++)
{
A[i]=new Button("A-"+i);
add(A[i]);
}
show();
}
}

package awt.Ejemplo9;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

EJERCICIO 215

REALIZAR UN PROGRAMA QUE MUESTRE UNA ETIQUETA EN UNA VENTANA.

package awt.Ejemplo10;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){

setLayout(new GridLayout (1,1));

setTitle(" Ventana con una etiqueta");


Label L1=new Label("Etiqueta 1");
add(L1);
pack();
show();
}
}

package awt.Ejemplo10;
public class Aplicacion{
public static void main(String arg[]){

Universidad Politcnica Salesiana del Ecuador Pgina 290 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

new Ventana();
}
}

/* UTILIZAMOS PACK(); PORQUE STE SIRVE PARA DARLE UN TAMAO A LA


VENTANA DE ACUERDO A LOS OBJETOS QUE SE LE COLOQUE, ES DECIR EL TAMAO
VA AUMENTANDO A MEDIDA QUE AGREGAMOS MS OBJETOS A LA VENTANA.
POR ESO YA NO SE UTILIZA SETSIZE.*/

EJERCICIO 216

HAGA REFERENCIA AL EJERCICIO 10, PERO STA VEZ AGREGAMOS UNA ETIQUETA
MS.

package awt.Ejemplo11;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){

setLayout(new GridLayout (2,1));


setTitle(" Ventana con dos etiquetas");

Label L1=new Label("Etiqueta 1");


add(L1);
Label L2=new Label("Etiqueta 2");
add(L2);
pack();
show();
}
}

package awt.Ejemplo11;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 291 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 217

HAGA REFERENCIA AL EJERCICIO 11, PARA STA VEZ CREAR 25 ETIQUETAS EN LA


VENTANA.

package awt.Ejemplo12;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){

setLayout(new GridLayout (5,5));


setTitle(" Ventana con 25 botones");

Label [] L =new Label[25];


for(int i=0;i<=24;i++)
{ add(L[i]=new Label("Etiqueta -"+(i+1)));
}
pack();
show();
}
}

package awt.Ejemplo12;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

/* SE UTILIZA UNA ESTRUCTURA DE ITERACIN FOR Y UN ARREGLO PARA GENERRAR


LAS 25 ETIQUETAS. */

EJERCICIO 218

REALIZAR UN PROGRAMA QUE MUESTRE UNA CAJA DE TEXTO EN LA VENTANA.

Universidad Politcnica Salesiana del Ecuador Pgina 292 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

package awt.Ejemplo13;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){

setLayout(new GridLayout (1,1));


setTitle(" Ventana con caja de texto");
TextField T1=new TextField();
add(T1);
pack();
show();
}
}

package awt.Ejemplo13;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

EJERCICIO 219

HAGA REFERENCIA AL EJERCICIO 13 PERO STA VEZ COLOQUE DOS CAJAS DE TEXTO
A LA VENTANA.

package awt.Ejemplo14;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){

setLayout(new GridLayout (2,1));


setTitle(" Ventana con cajas de texto");
TextField T1=new TextField();
add(T1);
TextField T2=new TextField();
add(T2);
pack();
show();
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 293 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

package awt.Ejemplo14;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

EJERCICIO 220

TOME COMO REFERENCIA EL EJERCICIO 14, PERO STA VEZ CREE 25 CAJAS DE TEXTO.

package awt.Ejemplo15;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){

setLayout(new GridLayout (5,5));


setTitle(" Ventana con caja de texto");
TextField [] T1 =new TextField[25];
for(int i=0;i<=24;i++)
add(T1[i]=new TextField("Texto -"+(i+1)));
pack();
show();
}
}

package awt.Ejemplo15;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 294 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

/* SE UTILIZA UNA ESTRUCTURA DE ITERACIN FOR Y UN ARREGLO PARA GENERRAR


LAS 25 CAJAS DE TEXTOS. */

EJERCICIO 221

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE UNA ETIQUETA DE NOMBRE, UNA


CAJA DE TEXTO PARA INGRESAR EL NOMBRE Y UN BOTN PARA GUARDAR Y OTRO
PARA SALIR.

import java.awt.*;
public class Ventana extends Frame{
public Ventana(){

setLayout(new GridLayout (2,2));


setTitle(" Registro");

Label L1=new Label("NOMBRE");


add(L1);
TextField T1=new TextField();
add(T1);

Button B1= new Button ("Guardar");


add(B1);
Button B2= new Button ("Salir");
add(B2);
pack();
show();
}
}

public class Aplicacion{


public static void main(String arg[]){
new Ventana();
}
}

EJERCICIO 222

Universidad Politcnica Salesiana del Ecuador Pgina 295 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE UNA ETIQUETA DE NOMBRE,


APELLIDO, UNA CAJA DE TEXTO PARA INGRESAR EL NOMBRE Y APELLIDO Y DOS
BOTONES, UNO PARA GUARDAR Y OTRO PARA SALIR.

import java.awt.*;
public class Ventana extends Frame{
public Ventana(){

setLayout(new GridLayout (3,2));


setTitle(" Registro");

Label L1=new Label("NOMBRE");


add(L1);
TextField T1=new TextField();
add(T1);
Label L2=new Label("APELLIDO");
add(L2);
TextField T2=new TextField();
add(T2);

Button B1= new Button ("Guardar");


add(B1);
Button B2= new Button ("Salir");
add(B2);
pack();
show();
}
}

public class Aplicacion{


public static void main(String arg[]){
new Ventana();
}
}

EJERCICIO 223

REALIZAR UN PROGRAMA QUE MUESTRE POR PANTALLA UN EJEMPLO SENCILLO DE


REGISTRO QUE CONTENGA COMO ETIQUETAS EL CODIGO, NOMBRE, DIRECCIN Y
QUE TENGA 4 BOTONES CONSULTAR, GUARDAR, ELIMINAR Y SALIR.

Universidad Politcnica Salesiana del Ecuador Pgina 296 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.awt.*;
public class Ventana extends Frame{
public Ventana(){

setLayout(new GridLayout (5,2));


setTitle(" Registro");
Label L1=new Label("CODIGO");
add(L1);
TextField T1=new TextField();
add(T1);
Label L2=new Label("NOMBRES");
add(L2);
TextField T2=new TextField();
add(T2);
Label L3=new Label("DIRECCION");
add(L3);
TextField T3=new TextField();
add(T3);

Button B1= new Button ("Consultar");


add(B1);
Button B2= new Button ("Eliminar");
add(B2);
Button B3= new Button ("Guardar");
add(B3);
Button B4= new Button ("Salir");
add(B4);
pack();

show();
}
}

public class Aplicacion{


public static void main(String arg[]){
new Ventana();
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 297 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

VARIOS PANELES EN UNA VENTANA


EJERCICIO 224

REALIZAR UN PROGRAMA EN JAVA PARA MOSTRAR LA INTERFAZ DEL JUEGO DE TRES


EN RAYA, COLOQUE TAMBIN DOS BOTONES PARA JUGAR Y SALIR.

package Estandarizacion.Ejemplo1;
import java.awt.*;

public class Ventana extends Frame{


Panel P1,P2;
Button[] B=new Button[11];
public Ventana(){
setTitle(" JUEGO EN TRES EN RAYA ");
setLayout(new GridLayout(2,1));
P1=new Panel();
P2=new Panel();
P1.setLayout(new GridLayout(3,3));
P2.setLayout(new GridLayout(1,2));

for(int i=0;i<=8;i++)
P1.add(B[i]=new Button());
P2.add(B[9]=new Button ("JUGAR"));
P2.add(B[10]=new Button("SALIR"));
add(P1);
add(P2);

setSize(250,150);
show();
}
}

package Estandarizacion.Ejemplo1;

public class Aplicacion{

Universidad Politcnica Salesiana del Ecuador Pgina 298 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public static void main(String arg[]){


new Ventana();
}
}

/* SE PUEDEN COLOCAR DOS PANELES EN UNA VENTANA, EN EL EJERCICIO 19, UN


PANEL LO UTILIZAMOS PARA COLOCAR LOS BOTONES DE TRES EN RAYA Y EL OTRO
PANEL LO UTILIZAMOS PARA COLOCAR LOS BOTONES DE JUGAR Y SALIR. */

EJERCICIO 225

REALIZAR UN PROGRAMA EN JAVA QUE PRESENTE LA SIGUIENTE INTERFAZ.

package Estandarizacion.Ejemplo2;
import java.awt.*;

public class Ventana extends Frame{


Panel P1,P2,P3,P4;
Button O1,O2,O3,O4,N1,N2,N3,N4,S1,S2,S3,S4;
List L;
Label L1,L2,L3,meta,acumulado;
public Ventana(){
setTitle(" JUEGO DE CIFRAS ");

Universidad Politcnica Salesiana del Ecuador Pgina 299 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

setLayout(new GridLayout(4,1));
P1=new Panel();
P2=new Panel();
P3=new Panel();
P4=new Panel();

P1.setLayout(new GridLayout(2,4));
P2.setLayout(new GridLayout(2,2));
P3.setLayout(new GridLayout(1,2));
P4.setLayout(new GridLayout(2,2));

P1.add(O1=new Button("+"));
P1.add(O2=new Button("-"));
P1.add(O3=new Button("x"));
P1.add(O4=new Button("/"));
P1.add(N1=new Button());
P1.add(N2=new Button());
P1.add(N3=new Button());
P1.add(N4=new Button());

P2.add(L1=new Label ("NUMERO"));


P2.add(meta=new Label());
P2.add(L2=new Label ("APROXIMADO"));
P2.add(acumulado=new Label());
P3.add(L3=new Label ("POSICIONES"));
P3.add(L=new List());
P4.add(S1=new Button ("REESTABLECER"));
P4.add(S2=new Button("NUEVO JUEGO"));
P4.add(S3=new Button ("MEJOR"));
P4.add(S4=new Button("SALIR"));

add(P1);
add(P2);
add(P3);
add(P4);

setSize(250,200);
show();
}
}
package Estandarizacion.Ejemplo2;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 300 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 226

REALIZAR UN PROGRAMA EN JAVA QUE PRESENTE LA SIGUIENTE INTERFAZ.

package Estandarizacion.Ejemplo3;
import java.awt.*;

public class Ventana extends Frame{


Panel P1,P2,P3;
Button O1,O2,O3,O4,O5,O6;
Label L1,L2,L3,L4,L5,L6;
public Ventana(){
setTitle(" DEBER ");
setLayout(new GridLayout(3,2));
P1=new Panel();
P2=new Panel();
P3=new Panel();

Universidad Politcnica Salesiana del Ecuador Pgina 301 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

P1.setLayout(new GridLayout(1,3));
P2.setLayout(new GridLayout(3,2));
P3.setLayout(new GridLayout(1,3));

P1.add(O1=new Button());
P1.add(O2=new Button());
P1.add(O3=new Button());

P2.add(L1=new Label ("ACIERTOS"));


P2.add(L2=new Label());
P2.add(L3=new Label ("FRACASOS"));
P2.add(L4=new Label());
P2.add(L5=new Label ("TOTAL"));
P2.add(L5=new Label());

P3.add(O4=new Button("JUGAR"));
P3.add(O5=new Button("BORRAR"));
P3.add(O6=new Button("SALIR"));
add(P1);
add(P2);
add(P3);

setSize(250,250);
show();
}
}

package Estandarizacion.Ejemplo3;

public class Aplicacion{


public static void main(String arg[]){
new Ventana();
}
}

EJERCICIO 227

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE LA SIGUIENTE INTERFAZ.

Universidad Politcnica Salesiana del Ecuador Pgina 302 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

package Estandarizacion.Ejemplo4;
import java.awt.*;

public class Ventana extends Frame{


Panel P1,P2,P3;
TextField O1,O2,O3;
Label L1,L2,L3;
Button O4,O5;
public Ventana(){
setTitle(" DEBER ");
setLayout(new GridLayout(3,2));
P1=new Panel();
P2=new Panel();
P3=new Panel();

P1.setLayout(new GridLayout(1,3));
P2.setLayout(new GridLayout(1,3));
P3.setLayout(new GridLayout(1,2));

P1.add(O1=new TextField());
P1.add(O2=new TextField());
P1.add(O3=new TextField());

P2.add(L1=new Label ());


P2.add(L2=new Label());
P2.add(L3=new Label ());

P3.add(O4=new Button("A-Z"));
P3.add(O5=new Button("Z-A"));
add(P1);
add(P2);
add(P3);

Universidad Politcnica Salesiana del Ecuador Pgina 303 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

setSize(250,150);
show();
}
}

package Estandarizacion.Ejemplo4;

public class Aplicacion{


public static void main(String arg[]){
new Ventana();
}
}

EJERCICIO 228

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE LA SIGUIENTE INTERFAZ.

package Estandarizacion.Ejemplo5;
import java.awt.*;

public class Ventana extends Frame{


Panel P1,P2,P3,P4;
Label L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15;
Button O4,O5,O6,O7;
public Ventana(){
setTitle("Juego del 21");
setLayout(new GridLayout(4,2));
P1=new Panel();
P2=new Panel();
P3=new Panel();
P4=new Panel();
P1.setLayout(new GridLayout(1,2));
P2.setLayout(new GridLayout(3,2));
P3.setLayout(new GridLayout(2,4));

Universidad Politcnica Salesiana del Ecuador Pgina 304 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

P4.setLayout(new GridLayout(1,2));
P1.add(O4=new Button("Pedir Carta"));
P1.add(O5=new Button("Parar"));
P2.add(L1=new Label ("Carta"));
P2.add(L2=new Label());
P2.add(L3=new Label ("Acumulado"));
P2.add(L4=new Label());
P2.add(L6=new Label("Datos del jugador 1"));
P2.add(L7=new Label("Datos del jugador 2"));
P3.add(L8=new Label ("Partidas Ganadas"));
P3.add(L9=new Label());
P3.add(L10=new Label ("Partidas Ganadas"));
P3.add(L11=new Label());
P3.add(L12=new Label ("Partidas Perdidas"));
P3.add(L13=new Label());
P3.add(L14=new Label ("Partidas Perdidas"));
P3.add(L15=new Label());
P4.add(O6=new Button("Nuevo Juego"));
P4.add(O7=new Button("Salir"));
add(P1);
add(P2);
add(P3);
add(P4);
setSize(500,200);
show();
}
}

package Estandarizacion.Ejemplo5;

public class Aplicacion{


public static void main(String arg[]){
new Ventana();
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 305 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

COLOCANDO OBJETOS CON BORDERLAYOUT


EJERCICIO 229

COLOCAR BOTONES ARRIBA, ABAJO, A LA DERECHA, IZQUIERDA Y EN EL CENTRO DE


LA VENTANA.

package Estandarizacion.Ejemplo6;
import java.awt.*;

public class Ventana extends Frame{


Button B1,B2,B3,B4,B5;
public Ventana(){
setTitle(" DEBER ");
setLayout(new BorderLayout());
add(B1=new Button("Al NORTE"),BorderLayout.NORTH);
add(B2=new Button("Al SUR"),BorderLayout.SOUTH);
add(B3=new Button("Al CENTRO"),BorderLayout.CENTER);
add(B4=new Button("Al ESTE"),BorderLayout.EAST);
add(B5=new Button("Al OESTE"),BorderLayout.WEST);
setSize(200,200);
show();
}
}

package Estandarizacion.Ejemplo6;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 306 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

/* setLayout(new BorderLayout());
add(B1=new Button("Al NORTE"),BorderLayout.NORTH);
stas dos lneas permiten agregar en ste caso un botn al norte del panel, esto es
importante ya que podemos colocar objetos en un lugar especfico dentro del panel.
*/

EJERCICIO 230

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE LA SGUIENTE INTERFAZ.

package Estandarizacion.Ejemplo7;
import java.awt.*;

public class Ventana extends Frame{


Panel P1,P2,P3;
TextField T1,T2;
Choice C1;
Label L1,L2,L3;
Button O4,O5,O6,O7,O8,O9,O10,O11,O12;
public Ventana(){
setTitle("Juego del 21");
setLayout(new BorderLayout());
add(P1=new Panel(), BorderLayout.NORTH);
add(P2=new Panel(), BorderLayout.CENTER);
add(P3=new Panel(), BorderLayout.SOUTH);
P1.add(O4=new Button("Jugador1"));
P1.add(O6=new Button("Jugador2"));
P1.add(O5=new Button("Jugador3"));
P1.add(O7=new Button("Jugador4"));
P1.add(O8=new Button("Jugador5"));
P2.add(L1=new Label ("Nombre"));
P2.add(T1=new TextField());

Universidad Politcnica Salesiana del Ecuador Pgina 307 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

P2.add(L2=new Label ("Ciudad"));


P2.add(C1=new Choice());
P2.add(L3=new Label("Telefono"));
P2.add(T2=new TextField());
P3.add(O9=new Button("Nuevo"));
P3.add(O10=new Button ("Cancelar"));
P3.add(O11=new Button("Salir"));
C1.add("Guayaquil");
C1.add("Quito");
C1.add("Cuenca");
P1.setLayout(new GridLayout(1,5));
P2.setLayout(new GridLayout(3,2));
P3.setLayout(new GridLayout(1,3));
pack();
show();
}
}

package Estandarizacion.Ejemplo7;

public class Aplicacion{


public static void main(String arg[]){
new Ventana();
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 308 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EVENTOS EN JAVA
EJERCICIO 231

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MOSTRAR UN MENSAJE SI


PRESIONO UN BOTN, EN ESTE CASO SE LLAMAR EL BOTN SALUDO.

package Eventos.Ejemplo1;
import java.awt.*;

public class Ventana extends Frame{


Mostrar m=new Mostrar();
public Ventana(){
setTitle(" Ventana con un Botn ");

Button B=new Button("Saludo");


add(B);
pack();
show();
}
public boolean action(Event evt, Object ar){
if(evt.target instanceof Button){
m.mensaje(" Hola Mundo ");
return true;

return false;
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 309 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

package Eventos.Ejemplo1;
public class Mostrar{
public void mensaje(String m){
javax.swing.JOptionPane.showMessageDialog(null ,m);
}

package Eventos.Ejemplo1;

public class Aplicacion{


public static void main(String arg[]){
new Ventana();
}
}

/* STE EJEMPLO TIENE TRE CLASES:


* VENTANA
* MOSTRAR
* APLICACIN
*/

/*LOS EVENTOS SON LOS PROCESOS O LOS RESULTADOS QUE SE VAN A PRESENTAR
O REALIZAR CUANDO PRESIONAMOS O DAMOS CLIC SOBRE UN BOTN. */

/*PRIMERO SE EJECUTA MOSTRAR, LUEGO VENTANA Y AL FINAL LA CLASE


APLICACIN QUE ES LA CLASE QUE TIENE EL MTODO MAIN*/

EJERCICIO 232

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO 27 PERO EN UNA SLA CLASE.

package Eventos.Ejemplo1;
import java.awt.*;

Universidad Politcnica Salesiana del Ecuador Pgina 310 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public class Ventana extends Frame{


Mostrar m=new Mostrar();
public Ventana(){
setTitle(" Ventana con un Botn ");

Button B=new Button("Saludo");


add(B);
pack();
show();
}
public boolean action(Event evt, Object ar){
if(evt.target instanceof Button){
m.mensaje(" Hola Mundo ");
return true;

return false;
}

public class Mostrar{


public void mensaje(String m){
javax.swing.JOptionPane.showMessageDialog(null ,m);
}
}

public static void main(String arg[]){


new Ventana();
}
}

EJERCICIO 233

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MOSTRAR UN MENSAJE SI


PRESIONO UN BOTN, EN ESTE CASO SE AGREGARN DOS BOTONES Y MOSTRARN
LOS DOS BOTONES EL MISMO MENSAJE AL SER PRESIONADOS.

package Eventos.Ejemplo2;

Universidad Politcnica Salesiana del Ecuador Pgina 311 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.awt.*;

public class Ventana extends Frame{


Mostrar m=new Mostrar();
public Ventana(){
setLayout(new GridLayout(1,2));
Button A=new Button("Salir");
add(A);
Button B=new Button("Saludo");
add(B);
pack();
show();
}
public boolean action(Event evt, Object ar){
if(evt.target instanceof Button){
m.mensaje(" Hola Mundo ");
return true;
}

return false;
}
}

package Eventos.Ejemplo2;
public class Mostrar{
public void mensaje(String m){
javax.swing.JOptionPane.showMessageDialog(null ,m);
}

package Eventos.Ejemplo2;

public class Aplicacion{


public static void main(String arg[]){
new Ventana();
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 312 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 234

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MOSTRAR UN MENSAJE SI


PRESIONO UN BOTN, EN ESTE CASO SE AGREGARN DOS BOTONES Y MOSTRARN
LOS DOS BOTONES COMO MENSAJE EL MISMO NOMBRE QUE TIENEN LOS BOTONES.
EJEMPLO SI EL BOTN SE LLAMA SALIR EL MENSAJE DEBER DECIR SALIR.

package Eventos.Ejemplo3;
import java.awt.*;

public class Ventana extends Frame{


Mostrar m=new Mostrar();
public Ventana(){
setLayout(new GridLayout(1,2));
Button A=new Button("Salir");
add(A);
Button B=new Button("Saludo");
add(B);
pack();
show();
}
public boolean action(Event evt, Object ar){
if(evt.target instanceof Button){
m.mensaje(ar.toString());
return true;
}
return false;
}
}

package Eventos.Ejemplo3;
public class Mostrar{
public void mensaje(String m){
javax.swing.JOptionPane.showMessageDialog(null ,m);
}

Universidad Politcnica Salesiana del Ecuador Pgina 313 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

package Eventos.Ejemplo3;

public class Aplicacion{


public static void main(String arg[]){
new Ventana();
}
}

EJERCICIO 235

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE UN MENSAJE SLO SI PRESIONO


EL BOTN SALUDO, SI PRESIONO EL BOTN SALIR SALDR DE LA VENTANA.

package Eventos.Ejemplo4;
import java.awt.*;

public class Ventana extends Frame{


Mostrar m=new Mostrar();
public Ventana(){
setLayout(new GridLayout(1,2));
Button A=new Button("Salir");
add(A);
Button B=new Button("Saludo");
add(B);

Universidad Politcnica Salesiana del Ecuador Pgina 314 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

pack();
show();
}
public boolean action(Event evt, Object ar){
if(evt.target instanceof Button){
if(ar.toString().equals("Salir"))
System.exit(0);

if(ar.toString().equals("Saludo"))
m.mensaje(" Hola Mundo");
return true;
}

return false;
}
}

package Eventos.Ejemplo4;
public class Mostrar{
public void mensaje(String m){
javax.swing.JOptionPane.showMessageDialog(null ,m);
}

package Eventos.Ejemplo4;

public class Aplicacion{


public static void main(String arg[]){
new Ventana();
}
}

EJERCICIO 236

REALIZAR EL MISMO PROGRAMA DEL EJERCICIO 30, NOTE LAS DIFERENCIAS. EN STE
EJERCICIO UTILIZAREMOS EL EVT.TARGET PARA COMPARAR EL EVENTO DE CADA
BOTN.

package Eventos.Ejemplo5;
import java.awt.*;

Universidad Politcnica Salesiana del Ecuador Pgina 315 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public class Ventana extends Frame{


Mostrar m=new Mostrar();
Button A,B;

public Ventana(){
setLayout(new GridLayout(1,2));
A=new Button("Salir");
add(A);
B=new Button("Saludo");
add(B);
pack();
show();
}
public boolean action(Event evt, Object ar){
if(evt.target instanceof Button){
if(evt.target==A)
System.exit(0);

if(evt.target==B)
m.mensaje(" Hola Mundo");
return true;
}
return false;
}
}

package Eventos.Ejemplo5;
public class Mostrar{
public void mensaje(String m){
javax.swing.JOptionPane.showMessageDialog(null ,m);
}

package Eventos.Ejemplo5;

public class Aplicacion{


public static void main(String arg[]){
new Ventana();
}
}

/* if(evt.target==A)/* A ES EL BOTN SALIR*/


System.exit(0);/* PARA SALIR DE LA VENTANA*/

Universidad Politcnica Salesiana del Ecuador Pgina 316 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

if(evt.target==B)/* B ES EL BOTN SALUDO*/


m.mensaje(" Hola Mundo");*/PARA MOSTRAR EL MENSAJE*/
*/

EJERCICIO 237

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA COPIAR TEXTO DE UN CUADRO DE


TEXTO A OTRO.

package Eventos.Ejemplo6;
import java.awt.*;

public class Ventana extends Frame{


Mostrar m=new Mostrar();
Button A,B;
TextField t,t1;
public Ventana(){
setLayout(new GridLayout(2,2));
t=new TextField();
add(t);
t1=new TextField();
add(t1);
A=new Button("Pasar el contenido de t a t1");
add(A);
B=new Button("Mostrar el contenido de t1");
add(B);
pack();
show();
}
public boolean action(Event evt, Object ar){
if(evt.target instanceof Button){
if(evt.target==A){
String texto=t.getText();
t1.setText(texto);
}
if(evt.target==B)
m.mensaje(t1.getText());
return true;
}
return false;

Universidad Politcnica Salesiana del Ecuador Pgina 317 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
}

package Eventos.Ejemplo6;
public class Mostrar{
public void mensaje(String m){
javax.swing.JOptionPane.showMessageDialog(null ,m);
}

package Eventos.Ejemplo6;

public class Aplicacion{


public static void main(String arg[]){
new Ventana();
}
}

/* String texto=t.getText();
Esta lnea permite capturer el texto
t1.setText(texto);

Universidad Politcnica Salesiana del Ecuador Pgina 318 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Esta lnea asigna el texto al otro cuadro de texto.


*/

/* setText .- ASIGNA TEXTO


getText .- CAPTURA TEXTO
*/

EJERCICIO 238

REALIZAR EL SIGUIENTE PROGRAMA EN JAVA:


LOS BOTONES SON: +,-,*,/,DIV,%,RAIZ(X), ALEATORIO ENTRE X y Y Y SALIR.

package Eventos.Ejemplo7;
import java.awt.*;

public class Ventana extends Frame{


Label label1,label2,label3,lblResultado;
TextField txtX,txtY;
Button btnSuma,btnResta,btnMultiplicacion,btnDivision,btnDiv;
Button btnMod,btnXY,btnAleatorio,btnAleatorioX,btnAleatorioXY;
Button btnSalir,btnRaizX;
Panel p1,p2;
public Ventana(){
setTitle("PRIMEROS EVENTOS");
setLayout(new GridLayout(2,1));
add(p1= new Panel());
add(p2= new Panel());
p1.setLayout(new GridLayout(3,2));
p2.setLayout(new GridLayout(3,4));

p1.add(label1=new Label("X"));
p1.add(this.txtX= new TextField());
p1.add(this.label2= new Label("Y"));
p1.add(this.txtY= new TextField());
p1.add(this.label3= new Label("Resultado"));
p1.add(this.lblResultado= new Label());

p2.add(this.btnSuma= new Button("+"));


p2.add(this.btnResta= new Button("-"));

Universidad Politcnica Salesiana del Ecuador Pgina 319 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

p2.add(this.btnMultiplicacion= new Button("X"));


p2.add(this.btnDivision = new Button("/"));
p2.add(this.btnDiv= new Button("DIV"));
p2.add(this.btnMod= new Button("%"));
p2.add(this.btnRaizX= new Button("Raiz(x)"));
p2.add(this.btnXY= new Button("X^Y"));
p2.add(this.btnAleatorio= new Button("ALEATORIO"));
p2.add(this.btnAleatorioX= new Button("ALEATORIO X"));
p2.add(this.btnAleatorioXY= new Button("ALEATORIO ENTRE X y Y"));
p2.add(this.btnSalir= new Button("SALIR"));

pack();
show();
}
public boolean action(Event evt, Object ar){
if(evt.target instanceof Button){
double x= Double.parseDouble(this.txtX.getText());
double y= Double.parseDouble(this.txtY.getText());
double r= 0;
if(evt.target==this.btnSuma)
r=x+y;

if(evt.target==this.btnResta)
r=x-y;

if(evt.target==this.btnMultiplicacion)
r=x*y;

if(evt.target==this.btnDivision)
r=x/y;

if(evt.target==this.btnSalir)
System.exit(0);

if(evt.target==this.btnAleatorio)
r=Math.random();

if(evt.target==this.btnRaizX)
r=Math.sqrt(x);

if(evt.target==this.btnXY)
r=Math.pow(x,y);

if(evt.target==this.btnAleatorioX)
r=(int)((Math.random()*x)+1);

Universidad Politcnica Salesiana del Ecuador Pgina 320 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

if(evt.target==this.btnAleatorioXY)
{if(x<y)
r=(int)((Math.random()*(y-x)+1)+x);
else
r=(int)((Math.random()*(x-y)+1)+y);
}
if(evt.target==this.btnDiv)
r=(int)(x/y);

if(evt.target==this.btnMod)
r=(int)(x%y);

this.lblResultado.setText(String.valueOf(r));

return true;
}

return false;
}
}

package Eventos.Ejemplo7;

public class Aplicacion{


public static void main(String arg[]){
new Ventana();
}
}

/*EJEMPLO CON EL BOTN +*/

EJERCICIO 239

Escriba una clase en java que cumpla con los siguientes requisitos:
Nombre de la clase:

Universidad Politcnica Salesiana del Ecuador Pgina 321 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Pull
Atributos:
Nombre del jugador
Puntos Acumulados
Mtodo Constructor
Que reciba el atributo Nombre
Mtodo Juega
p.juega(puntos); // puntos es un entero desde 6 hasta 15 y debe generarse
aleatoriamente
q.juega(puntos);
el mtodo juega debe aumentar los puntos a cada objeto cada vez que se lo llame.
Mtodos Imprimir
Debe imprimir el nombre del objeto que posea el mayos puntaje.
Todos los valores son ingresados por teclado.

package Prog.EjerciciosNormales.Ejercicio_5;
import java.awt.*;
public class Llamadas extends Frame{
Pull p,q;
Button b,b1;
int ppuntos,qpuntos;
public Llamadas() {
setLayout(new GridLayout(1,2));
add(b=new Button("LLamar"));
add(b1=new Button("Salir"));
show();
pack();
}

public static void main(String arg[]){


new Llamadas();
}

void jugar(){
p=new Pull("Mariana A.");
ppuntos += p.puntos;
q=new Pull("Maria C.");
qpuntos += q.puntos;

if(ppuntos==qpuntos)
System.out.println("Sus puntajes son iguales p="+ppuntos+" y q="+qpuntos);
else{
if(ppuntos>qpuntos)

Universidad Politcnica Salesiana del Ecuador Pgina 322 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

System.out.println("P="+ppuntos+" Q="+qpuntos+" Objeto Mayor


p="+ppuntos);
else
System.out.println("P="+ppuntos+" Q="+qpuntos+" Objeto Mayor
q="+qpuntos);
}
}

public boolean action(Event evt,Object ar){


if(evt.target instanceof Button){
if(evt.target==b) {jugar();}
if(evt.target==b1){dispose(); System.exit(0);}
return true;
}
else
return false;
}

package Prog.EjerciciosNormales.Ejercicio_5;

public class Pull {


public int puntos=0;
public Pull(){}

public Pull(String nombre) {


puntos=aleatorio();
}

int aleatorio(){
int c=0;
while(c<6)
c=(int)(Math.random()*15);
return c;
}

EJERCICIO 240

Escriba un programa en Java que simule el Juego siguiente:

U
Bi
Universidad Politcnica Salesiana del Ecuador Pgina 323 /620

M
Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Interfase
Cuando se presiona cualquiera de los botones Bi,
En el Label U aparece el texto del Botn presionado
Se genera de forma aleatoria en el Label M la palabra roca, papel o tijera
Se realiza una comparacin entre los dos Jugadores y se los asignan en los Label
correspondiente al ganador o si existe empates.
El botn salir, sale del juego
E Botn nuevo juego restablece todo para inicializar el juego

package Ej1;
import java.awt.*;
public class PiedraPapelTijera extends Frame{
String v1="",v2="";
int cont1=0,cont2=0,emp=0;
Button bpiedra,bpapel,btijera,bn,bs;
Panel p1,p2,p3,p21,p22;
Label l1,l2,l3,l4,l5,l6;

public PiedraPapelTijera() {
setLayout(new BorderLayout());

p1=new Panel();
p1.setLayout(new GridLayout(1,3));
p1.add(bpiedra=new Button("piedra"));
p1.add(bpapel=new Button("papel"));
p1.add(btijera=new Button("tijera"));
add("North",p1);

p2=new Panel();

Universidad Politcnica Salesiana del Ecuador Pgina 324 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

p2.setLayout(new BorderLayout());
p21=new Panel();
p21.setLayout(new GridLayout(2,1));
p21.add(l1=new Label("Usuario: "+v1));
p21.add(l2=new Label("Mquina: "+v2));

p22=new Panel();
p22.setLayout(new GridLayout(3,1));
p22.add(l4=new Label("Usuario: "+cont1));
p22.add(l5=new Label("Mquina: "+cont2));
p22.add(l6=new Label("Empates: "+emp));

p2.add("North",p21);
p2.add("Center",l3=new Label("-----------Resultados-----------"));
p2.add("South",p22);
add("Center",p2);

p3=new Panel();
p3.setLayout(new GridLayout(1,2));
p3.add(bn=new Button("Nuevo"));
p3.add(bs=new Button("Salir"));
add("South",p3);
setSize(150,200);
show();
}

public boolean action(Event evt,Object ar){


if(evt.target instanceof Button){
if(evt.target==bs){dispose(); System.exit(0);}
if(evt.target==bn){
cont1=0; emp=0;
cont2=0; v1="";
v2="";
l1.setText("Usuario: "+v1);
l2.setText("Mquina: "+v2);
l4.setText("Usuario: "+cont1);
l5.setText("Mquina: "+cont2);
l6.setText("Empates: "+emp);
}

if(evt.target==bpiedra || evt.target==bpapel || evt.target==btijera){


v1=ar.toString();
l1.setText("Usuario: "+v1);
jugar();
}
return true;

Universidad Politcnica Salesiana del Ecuador Pgina 325 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
else
return false;
}

void jugar(){
int c=0;
while(c==0){
c=(int)(Math.random()*3);
}
switch(c){
case 1:v2="piedra";break;
case 2:v2="papel";break;
case 3:v2="tijera";break;
}

l2.setText("Mquina: "+v2);
if(v1.equals(v2))
emp++;
else{
if(v1.equals("piedra") && v2.equals("tijera"))
cont1++;
else{
if(v1.equals("tijera")&&v2.equals("papel"))
cont1++;
else{
if(v1.equals("papel") && v2.equals("piedra"))
cont1++;
else
cont2++;
}
}
}

l4.setText("Usuario: "+cont1);
l5.setText("Mquina: "+cont2);
l6.setText("Empates: "+emp);

public static void main(String arg[]){


new PiedraPapelTijera().setLocation(400,300);
}

Universidad Politcnica Salesiana del Ecuador Pgina 326 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 243

Escriba una clase en java que realice el siguiente juego:


Juego de tres en raya

Nuevo

Metodologa:
El boton Nuevo habilta todos los 9 botones y borra el contenido de sus etiquetas
Al presionar cualquier boton de los 9 para jugar, y si es pro primera vez, aparece una X es su
etiqueta y se deshabilta el botn. Si se presiona un segundo botn, aparece un 0 y se deshabilita el
botn. Si se presiona otro botn X, as susesivamente hasta que uno de los dos signos hagan tres en
raya.

package Ej11;
import java.awt.*;
public class TresEnRaya extends javax.swing.JFrame{
Button B[]=new Button[9];
int K[]=new int[9];
Button b1,b2;
Panel p1,p2;
int vez=0;
int cont=0;

public TresEnRaya() {
getContentPane().setLayout(new BorderLayout());

p1=new Panel();
p1.setLayout(new GridLayout(3,3));
for(int i=0;i<9;i++){
p1.add(B[i]=new Button());
}

p2=new Panel();
p2.setLayout(new GridLayout(2,1));
p2.add(b1=new Button("Nuevo Juego"));
p2.add(b2=new Button("Salir"));

getContentPane().add("North",p1);
getContentPane().add("South",p2);
pack();
show();

Universidad Politcnica Salesiana del Ecuador Pgina 327 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public static void main(String arg[]){


new TresEnRaya().setLocation(400,300);
}

public boolean action(Event evt,Object ar){


if(evt.target instanceof Button){
if(evt.target==b2){dispose(); System.exit(0);}
if(evt.target==b1){
for(int i=0;i<9;i++){
B[i].setLabel("");
B[i].enable();
}
vez=0;
}
for(int i=0;i<9;i++){
if(evt.target==B[i]){
if(B[i].getLabel().equals("")){
if(vez==0){
B[i].setLabel("X");
K[i]=1;
vez=1;
B[i].disable();
}
else{
if(vez==1){
B[i].setLabel("0");
K[i]=0;
vez=0;
B[i].disable();}

}
}
b1.requestFocus();
cont++;
}
}
if(cont>=5){
ganador("X");
ganador("0");
}

return true;
}

Universidad Politcnica Salesiana del Ecuador Pgina 328 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

else
return false;
}

void ganador(String ic){


boolean ok=false;
if(B[0].getLabel().equals(ic) && B[1].getLabel().equals(ic) &&
B[2].getLabel().equals(ic)){
ok=true;
}
if(B[0].getLabel().equals(ic) && B[4].getLabel().equals(ic) &&
B[8].getLabel().equals(ic)){
ok=true;
}
if(B[0].getLabel().equals(ic) && B[3].getLabel().equals(ic) &&
B[6].getLabel().equals(ic)){
ok=true;
}
if(B[3].getLabel().equals(ic) && B[4].getLabel().equals(ic) &&
B[5].getLabel().equals(ic)){
ok=true;
}
if(B[1].getLabel().equals(ic) && B[4].getLabel().equals(ic) &&
B[7].getLabel().equals(ic)){
ok=true;
}
if(B[6].getLabel().equals(ic) && B[7].getLabel().equals(ic) &&
B[8].getLabel().equals(ic)){
ok=true;
}
if(B[2].getLabel().equals(ic) && B[5].getLabel().equals(ic) &&
B[8].getLabel().equals(ic)){
ok=true;
}

if(ok){
for(int i=0;i<9;i++){
B[i].disable();
}
javax.swing.JOptionPane.showMessageDialog(null,"Gan "+ic);
}

Universidad Politcnica Salesiana del Ecuador Pgina 329 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 244

Escriba una clase en java que realice el siguiente juego:


Juego del Siete afortunado

L1 L2 L3

ACIERTOS L4

FRACASOS L5

JUGAR

RESTABLECER

SALIR

Metodologa:
El Salir, sale del sistema
El botn restablecer borra el contenido de las etiquetas L1, L2, L3, L4 y L5.
El botn jugar genera tres nmeros aleatorios que se muestran en los los Label L1, L2
y L3. Si alguno de estos nmeros es siete, se suma a los aciertos que se encapsula en
L4, y si ninguno de los nmeros es siete, se suma en L5.

package Ej7;
import java.awt.*;
public class Juego7 extends javax.swing.JFrame{
Button b1,b2,b3,b4,b5,b6,b7;
Label L1,L2,L3;
Panel p1,p2,p3;
int ac=0,fra=0;
public Juego7() {
getContentPane().setLayout(new BorderLayout());

p1=new Panel();
p1.setLayout(new GridLayout(1,3));
p1.add(L1=new Label(""));
p1.add(L2=new Label(""));
p1.add(L3=new Label(""));

p2=new Panel();

Universidad Politcnica Salesiana del Ecuador Pgina 330 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

p2.setLayout(new GridLayout(2,2));
b4=new Button("Aciertos");
b4.setBackground(new java.awt.Color(51, 51, 51));
b4.setForeground(new java.awt.Color(255, 255, 255));//BLANCO COLOR AL TEXTO
p2.add(b4);
p2.add(b5=new Button(""));
b6=new Button("Fracasos");
b6.setBackground(new java.awt.Color(51, 51, 51));
b6.setForeground(new java.awt.Color(255, 255, 255));
p2.add(b6);
p2.add(b7=new Button(""));
b4.disable(); b5.disable(); b6.disable(); b7.disable();

p3=new Panel();
p3.setLayout(new GridLayout(3,1));
p3.add(b1=new Button("JUGAR"));
p3.add(b2=new Button("RESTABLECER"));
p3.add(b3=new Button("SALIR"));

getContentPane().add("North",p1);
getContentPane().add("Center",p2);
getContentPane().add("South",p3);

pack();
show();
}

public static void main(String arg[]){


new Juego7().setLocation(400,300);
}

void jugar(){
L1.setText(String.valueOf(aleatorio()));
L2.setText(String.valueOf(aleatorio()));
L3.setText(String.valueOf(aleatorio()));

if(L1.getText().equals("7") || L2.getText().equals("7") || L3.getText().equals("7"))


ac++;
else
fra++;
b5.setLabel(String.valueOf(ac));
b7.setLabel(String.valueOf(fra));

Universidad Politcnica Salesiana del Ecuador Pgina 331 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

void reestablecer(){
ac=0;
fra=0;
L1.setText("");
L2.setText("");
L3.setText("");
b5.setLabel("");
b7.setLabel("");
}

public boolean action(Event evt,Object ar){


if(evt.target instanceof Button){
if(evt.target==b1) jugar();
if(evt.target==b2) reestablecer();
if(evt.target==b3){dispose(); System.exit(0);}
return true;
}
else
return false;
}

int aleatorio(){
int c=(int)(Math.random()*8);
return c;
}
}

EJERCICIO 245

Escriba un Programa que simule el juego de Traga-Monedas.

Boton B1, B2, B3

Interfaz
Cuando presiona el botn jugar se presentan en forma aleatoria en cada Botn B1,
B2 y B3 las letras X, Y o Z
La letra Z tiene que tener 6/10 posibilidad de salir
La letra Y tiene que tener 3/10 posibilidad de salir
La letra X tiene que tener 1/10 posibilidad de salir

Universidad Politcnica Salesiana del Ecuador Pgina 332 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

En el Label Mensaje debe presentarse la cantidad ganada considerando las ganancias


descritas en el Frame

package Ej15;
import java.awt.*;

public class Ejercicio15 extends Frame{


Button b[]=new Button[3];
Button b4,b5;
Label l1,l2,l3,l4,l5,l7;
javax.swing.JLabel l6;
Panel p1,p2;
String s[]=new String[10];

public Ejercicio15() {
setLayout(new BorderLayout());
p1=new Panel();
p1.setLayout(new GridLayout(6,1));
p1.add(l7=new Label(" Ganancias"));
p1.add(l1=new Label(" 3 - X 1000"));
p1.add(l2=new Label(" 3 - Y 500"));
p1.add(l3=new Label(" 3 - Z 250"));
p1.add(l4=new Label(" 2 - X 100"));
p1.add(l5=new Label(" 2 - Y 50"));
add("North",p1);

Panel p11=new Panel();


p11.setLayout(new GridLayout(1,3));
for(int i=0;i<3;i++) p11.add(b[i]=new Button(""));

Panel p12=new Panel();


p12.setLayout(new GridLayout(1,2));
p12.add(b4=new Button("Jugar"));
p12.add(b5=new Button("Salir"));

p2=new Panel();
p2.setLayout(new GridLayout(3,1));
p2.add(p11);
p2.add(p12);
p2.add(l6=new javax.swing.JLabel("Mensaje"));
l6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
add("South",p2);
setTitle("Traga-Monedas");
pack();
show();
}

Universidad Politcnica Salesiana del Ecuador Pgina 333 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

String letras(int n){


s[0]="Y"; s[1]="Z"; s[2]="Y"; s[3]="Y"; s[4]="Z";
s[5]="Z"; s[6]="Z"; s[7]="X"; s[8]="Z"; s[9]="Z";
return s[n];
}

void jugar(){
int c=0,contx=0,conty=0,contz=0;
l6.setText("");
for(int i=0;i<3;i++){
c=(int)(Math.random()*9);
b[i].setLabel(letras(c));
}

for(int i=0;i<3;i++){
if(b[i].getLabel().equals("X")) contx++;
if(b[i].getLabel().equals("Y")) conty++;
if(b[i].getLabel().equals("Z")) contz++;
}
if(contx==3) l6.setText("1000");
if(conty==3) l6.setText("500");
if(contz==3) l6.setText("250");
if(contx==2) l6.setText("100");
if(conty==2) l6.setText("50");
}

public static void main(String arg[]){


new Ejercicio15().setLocation(400,300);
}

public boolean action(Event evt,Object ar){


if(evt.target instanceof Button){
if(evt.target==b4)jugar();
if(evt.target==b5){dispose(); System.exit(0);}
return true;
}
else
return false;
}

EJERCICIO 246

Universidad Politcnica Salesiana del Ecuador Pgina 334 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Construir una clase en java que posea lo siguiente:


Nombre de la Clase Estudiante
Atributos:
Nombres
Apellidos
Materia
Nota1
Nota2
Promedio
Mtodos:
2 mtodos constructores aplicando sobrecarga ( no se debe ingresar notas en los
mtodos)
1 mtodo que imprima los atributos del objeto
1 mtodo que asigne la nota, en cada nota correspondiente (se debe realizar el
clculo del promedio)
1 mtodo que se rectifique la nota por otra x
El mtodo main donde se creen 3 objetos de tipo Estudiante y se apliquen los
mtodos creados

package Ej19;
import java.awt.*;

public class Ejercicio19 extends javax.swing.JFrame{


Button b1,b2,b3;
Panel p1,pp;
javax.swing.JPanel PR;
Label l1,l11,l2,l3,l4,l5;
TextField t1,t2,t3,t4;
double nota1,nota2;
double prom;
String nomb,mater;

public Ejercicio19(String nombre) {


init();
l11.setText(nombre);
nomb=nombre;

pack();
show();
}

void panelrectificador(){
try{

Universidad Politcnica Salesiana del Ecuador Pgina 335 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

String x=javax.swing.JOptionPane.showInputDialog(null,"Nota 1="+nota1+" por ");


if(!x.equals("")) nota1=Double.parseDouble(x);

String y=javax.swing.JOptionPane.showInputDialog(null,"Nota 1="+nota2+" por


");
if(!y.equals("")) nota2=Double.parseDouble(y);

prom=(nota1+nota2)/2;

this.t1.setText(String.valueOf(nota1));
this.t2.setText(String.valueOf(nota2));
this.t3.setText(String.valueOf(prom));
}
catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,"Ingrese solo numeros");
}

public Ejercicio19(String nombre,String Materia) {


init();
l11.setText(nombre);
t4.setText(Materia);
nomb=nombre;
mater=Materia;
pack();
show();
}

void init(){
p1=new Panel();
p1.setLayout(new GridLayout(6,2));
p1.add(l1=new Label("Nombre")); p1.add(l11=new Label(""));
p1.add(l2=new Label("Materia")); p1.add(t4=new TextField());
p1.add(l3=new Label("Nota 1")); p1.add(t1=new TextField());
p1.add(l4=new Label("Nota 2")); p1.add(t2=new TextField());
p1.add(l5=new Label("Promedio Total")); p1.add(t3=new TextField());
p1.add(b1=new Button("Rectificar")); p1.add(b2=new Button("Imprimir"));

pp=new Panel();
pp.setLayout(new BorderLayout());
pp.add("Center",p1);
pp.add("South",b3=new Button("Salir"));
getContentPane().add(pp);

Universidad Politcnica Salesiana del Ecuador Pgina 336 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

show();
}

void imprimir(){
System.out.println(":::::::::::::::::::::::::::::::::::::::");
System.out.println("---------------------------------------");
System.out.println("Nombre : "+nomb);
System.out.println("Materia: "+mater);
System.out.println("Nota 1 : "+nota1);
System.out.println("Nota 2 : "+nota2);
System.out.println("Promedio: "+prom);
}

public static void main(String arg[]){


new Ejercicio19("Mariana").setLocation(400,300);

new Ejercicio19("Mariana","Programacion II").setLocation(400,300);


new Ejercicio19("Cualquier nombre").setLocation(400,300);
}

public boolean action(Event evt,Object ar){


if(evt.target instanceof Button){
if(evt.target==b3){dispose();}
if(evt.target==b2) imprimir();
if(evt.target==b1) this.panelrectificador();
return true;
}
if(evt.target instanceof TextField){
if(evt.target==t4){mater=t4.getText(); t1.requestFocus();}
if(evt.target==t1){nota1=Integer.parseInt(t1.getText()); t2.requestFocus();}
if(evt.target==t2){nota2=Integer.parseInt(t2.getText());
prom=(double)((nota1+nota2)/2); t3.setText(String.valueOf(prom));}
return true;
}
else

Universidad Politcnica Salesiana del Ecuador Pgina 337 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

return false;
}
}

EJERCICIO 247

Escriba un Programa que simule el juego de Traga-Monedas.

El Sobre tiene que tener 6 veces o menos posibilidad de salir


El Sof tiene que tener 3 veces o menos posibilidad de salir
La carta tiene que tener 1 veces o menos posibilidad de salir

package Ej23;
import java.awt.*;

public class Ejercicio23 extends javax.swing.JFrame{


Label l1,l2,l3,l4,l5,l7;
int contcarta=0,contfoco=0,contsofa=0;
Panel p1,p2,p3,p4;
javax.swing.JLabel jL[]=new javax.swing.JLabel[3];
javax.swing.JLabel l6;
Button b1,b2;
String dir="";
public Ejercicio23() {
getContentPane().setLayout(new BorderLayout());
p1=new Panel();
p1.setLayout(new GridLayout(6,1));
p1.add(l7=new Label(" Ganancias"));
p1.add(l1=new Label(" 3 Focos 1000"));
p1.add(l2=new Label(" 3 Sof 500"));
p1.add(l3=new Label(" 3 Sobres 250"));
p1.add(l4=new Label(" 2 Focos 100"));
p1.add(l5=new Label(" 2 Sof 50"));
getContentPane().add("West",p1);

Panel p11=new Panel();


p11.setLayout(new GridLayout());
for(int i=0;i<3;i++) p11.add(jL[i]=new javax.swing.JLabel());

p2=new Panel();
p2.setLayout(new GridLayout(1,2));

Panel p3=new Panel();

Universidad Politcnica Salesiana del Ecuador Pgina 338 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

p3.setLayout(new GridLayout(1,2));
p3.add(b1=new Button("Jugar"));
p3.add(b2=new Button("Salir"));

p2.add(l6=new javax.swing.JLabel("Mensaje"));
l6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
p2.add(p3);

getContentPane().add("Center",p11);
getContentPane().add("South",p2);
setTitle("Traga-Monedas");
setSize(450,200);
show();
}

public static void main(String arg[]){


new Ejercicio23().setLocation(400,300);
}

int aleatorio(){
int c=0;
c=(int)(Math.random()*9);
return c;
}

String direcciones(int y){


String d="";
if(y==0 || y==2 || y==3 || y==4 || y==6 || y==8){
d="/Prog/EjerciciosNormales/carta.jpg";
contcarta++;
}
if(y==1 || y==5 || y==9){
d="/Prog/EjerciciosNormales/sofa.jpg";
contsofa++;
}
if(y==7){
d="/Prog/EjerciciosNormales/foco.jpg";
contfoco++;
}
return d;
}

Universidad Politcnica Salesiana del Ecuador Pgina 339 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

void jugar(){
l6.setText("");
contfoco=0; contsofa=0; contcarta=0;
dir="";
jL[0].setIcon(new
javax.swing.ImageIcon(getClass().getResource(direcciones(aleatorio()))));
jL[1].setIcon(new
javax.swing.ImageIcon(getClass().getResource(direcciones(aleatorio()))));
jL[2].setIcon(new
javax.swing.ImageIcon(getClass().getResource(direcciones(aleatorio()))));
if(contfoco==3) l6.setText("1000");
if(contsofa==3) l6.setText("500");
if(contcarta==3) l6.setText("250");
if(contfoco==2) l6.setText("100");
if(contsofa==2) l6.setText("50");
}

public boolean action(Event evt,Object ar){


if(evt.target instanceof Button){
if(evt.target==b2){dispose(); System.exit(0);}
if(evt.target==b1){jugar();}
return true;
}
else
return false;
}
}

EJERCICIO 248

Escriba una clase en java que cumpla con los siguientes requisitos

A-Z Z-A

Metodologa: ingresar tres nmeros en tres Texfield, y cuando se presionan los


botones A-Z o Z-A se mostrarn sus respectivas ordenaciones en los Label

Universidad Politcnica Salesiana del Ecuador Pgina 340 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

package Ej6;
import java.awt.*;

public class Ejercicio6 extends javax.swing.JFrame{


TextField t1,t2,t3;
Button b1,b2,b3;
Label l1,l2,l3;
Panel p1,p2,p3;
int mayor,intermedio,menor;

public Ejercicio6() {
this.getContentPane().setLayout(new GridLayout(4,1));
setTitle("Ejercicio6::Juego");
p1=new Panel();
p1.setLayout(new GridLayout(1,3));
p1.add(t1=new TextField());
p1.add(t2=new TextField());
p1.add(t3=new TextField());

p2=new Panel();
p2.setLayout(new GridLayout(1,2));
p2.add(b1=new Button("A-Z"));
p2.add(b2=new Button("Z-A"));

p3=new Panel();
p3.setLayout(new GridLayout(1,3));
p3.add(l1=new Label());
p3.add(l2=new Label());
p3.add(l3=new Label());

getContentPane().add(p1);
getContentPane().add(p2);
getContentPane().add(p3);
getContentPane().add(b3=new Button("Salir"));
pack();
show();
}

public static void main(String arg[]){


new Ejercicio6().setLocation(400,300);
}

void ubicar(int a,int b,int c,int m){


mayor=0;

Universidad Politcnica Salesiana del Ecuador Pgina 341 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

intermedio=0;
menor=0;
if(a>=b){
if(a>=c){
if(b>=c){
mayor=a; intermedio=b; menor=c;
}
}
else{
mayor=c; intermedio=a; menor=b;
}
}
else{
if(b>=c){
if(a>=c){
mayor=b; intermedio=a; menor=c;
}
else{
mayor=b; intermedio=c; menor=a;
}
}
}
if(m==1){
this.l1.setText(String.valueOf(mayor));
this.l2.setText(String.valueOf(intermedio));
this.l3.setText(String.valueOf(menor));
}
else{
this.l1.setText(String.valueOf(menor));
this.l2.setText(String.valueOf(intermedio));
this.l3.setText(String.valueOf(mayor));
}

public boolean action(Event evt, Object ar){


if(evt.target instanceof Button){
if(evt.target==b3){dispose(); System.exit(0);}
if(evt.target==b1){
try{
if(!(t1.getText().equals("") && t2.getText().equals("") &&
t3.getText().equals(""))){

ubicar(Integer.parseInt(t1.getText()),Integer.parseInt(t2.getText()),Integer.parseInt(t3.
getText()),1);
}

Universidad Politcnica Salesiana del Ecuador Pgina 342 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,"Ingrese solo numeros
enteros");
}
}

if(evt.target==b2){
try{
if(!(t1.getText().equals("") && t2.getText().equals("") &&
t3.getText().equals(""))){

ubicar(Integer.parseInt(t1.getText()),Integer.parseInt(t2.getText()),Integer.parseInt(t3.
getText()),0);
}
}
catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,"Ingrese solo numeros
enteros");
}
}

return true;
}
if(evt.target instanceof TextField){
if(evt.target==t1){
t2.requestFocus();
}
if(evt.target==t2) t3.requestFocus();
if(evt.target==t3) b1.requestFocus();
return true;
}
else
return false;
}
}

EJERCICIO 249

Escriba una clase con las siguientes caractersticas:


Nombre de la clase : Tarjeta
Atributos : Nombre
Nmero
Saldo //disponible para comprar

Universidad Politcnica Salesiana del Ecuador Pgina 343 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Cupo //cupo total de la tarjeta


Mtodos: : Compra(double c)
//Mtodo que resta el saldo de la tarjeta
Pago(double p)
//Mtodo que aumenta el saldo de la tarjeta
El programa debe validar que solo pueda comprar un valor menor al saldo
El mtodo pago debe validar que se pueda pagar el valor correspondiente para que
se aumente su saldo(El pago No puede ser mayor al cupo-saldo)

package Ej14;
import java.awt.*;
public class Tarjeta extends javax.swing.JFrame{
double cupo=300, saldo=300;
Button b1,b2,b3;
Label l1,l2,l3,l4,l5,l6,l7;
TextField t1,t2,t3;
Panel p1;
/*Nombre de la clase : Tarjeta
Atributos : Nombre
Nmero
Saldo //disponible para comprar
Cupo //cupo total de la tarjeta
Mtodos : Compra(double c)
//Mtodo que resta el saldo de la tarjeta
Pago(double p)
//Mtodo que aumenta el saldo de la tarjeta
a) El programa debe validar que solo pueda comprar un valor menor al saldo
b) El mtodo pago debe validar que se pueda pagar el valor correspondiente para
que se
aumente su saldo (El pago No puede ser mayor al cupo-saldo)
*/

public Tarjeta() {
getContentPane().setLayout(new BorderLayout());

setTitle("Tarjeta");
p1=new Panel();
p1.setLayout(new GridLayout(6,2));
p1.add(l1=new Label("Nombre"));
p1.add(t1=new TextField());
p1.add(l2=new Label("Nmero"));
p1.add(t2=new TextField());
p1.add(l3=new Label("Saldo"));
p1.add(l4=new Label("$ "+String.valueOf(saldo)));
p1.add(l5=new Label("Cupo"));
p1.add(l6=new Label("$" +String.valueOf(cupo)));

Universidad Politcnica Salesiana del Ecuador Pgina 344 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

p1.add(l7=new Label("Valor"));
p1.add(t3=new TextField());
p1.add(b1=new Button("Compra"));
p1.add(b2=new Button("Pago"));

getContentPane().add("North",p1);
getContentPane().add(b3=new Button("Salir"));
setSize(150,200);
show();
}

void compra(double c){


if(c<=saldo && c<=cupo)
saldo -= c;
else{
javax.swing.JOptionPane.showMessageDialog(null,"Su saldo no es suficiente");
t3.setText("");
t3.requestFocus();
}
l4.setText("$ "+String.valueOf(saldo));

void pago(double p){


if(p<=cupo && (saldo+p)<=cupo)
saldo +=p;
else{
javax.swing.JOptionPane.showMessageDialog(null,"Pago sobrepasa su saldo-
cupo");
t3.setText("");
t3.requestFocus();
}
l4.setText("$ "+String.valueOf(saldo));
}

public boolean action(Event evt,Object ar){


if(evt.target instanceof Button){
if(evt.target==b3){dispose(); System.exit(0);}
try{
if(evt.target==b1)
compra(Double.parseDouble(t3.getText()));
if(evt.target==b2)
pago(Double.parseDouble(t3.getText()));

t3.requestFocus();

Universidad Politcnica Salesiana del Ecuador Pgina 345 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,"No digito ningun
valor");
t3.requestFocus();}
return true;
}
if(evt.target instanceof TextField){
if(evt.target==t1) t2.requestFocus();
if(evt.target==t2) t3.requestFocus();
return true;
}
else
return false;

public static void main(String arg[]){


new Tarjeta().setLocation(400,300);
}

EJERCICIO 250

(Paseo del caballo) Uno de los enigmas mas interesantes para los entusiastas del
ajedrez es el problema del Paseo del caballo, propuesto originalmente por el
matemtico Euler. Puede la pieza de ajedrez , conocida como caballo, moverse
alrededor de un tablero de ajedrez vaco y tocar cada una de las 64 posiciones una y
sola una vez? A continuacin estudiaremos detalladamente este intrigante
problema. El caballo realiza solamente movimientos en forma de L (dos espacios en
una direccin perpendicular). Por lo tanto, como se muestra en la figura, desde una
posicin cerca del centro de un tablero de ajedrez vaco, el caballo (etiquetado como
C) puede hacer ocho movimientos distintos (numerados del 0 al 7)

0 1 2 3 4 5 6 7
0
1 2 1
2 3 0
3 k
4 4 7
5 5 6
6
7

Universidad Politcnica Salesiana del Ecuador Pgina 346 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Dibuje un tablero de ajedrez de ocho por ocho en una hoja de papel, e intente
realizar un Paseo del caballo en forma manual. Ponga un 1 en la posicin inicial, un 2
en la segunda posicin, un 3 en la tercera, etc. Antes de empezar el paseo, estime
qu tan lejos podr avanzar, recordando que un paseo completo consta de 64
movimientos. Qu tan lejos lleg? Estuvo esto cerca de su estimacin?
Ahora desarrollaremos un programa para mover el caballo alrededor de un tablero
de ajedrez. El tablero estar presentado por un arreglo bidiminsional llamado
tablero, de ochopor ocho. Cada posicin se inicializar con cero. Describiremos cada
uno delos ocho posibles

package Ej24;

public class Juego {

int x, y;
int nuevax = 0, nuevay = 0, solx = 0, soly = 0, total = 0;

public Juego(int x, int y) {


this.x = x;
this.y = y;
}

public boolean jugar(Tablero tabla) {

for (int num = 1; num < tabla.longitud * tabla.longitud + 1; num++) {


tabla.tabla[x][y] = num;

if ( (mover(tabla, x, y, num) == false &&


num < tabla.longitud * tabla.longitud - 1))
return false;
}

return true;
}

public boolean mover(Tablero tabla, int xx, int yy, int num) {

int acesible, minacesible;


minacesible = 9;
solx = xx;
soly = yy;

for (int i = 1; i < 9; i++) {


if (saltar(tabla, i, x, y, nuevax, nuevay) == true) {
acesible = contar(tabla, nuevax, nuevay);

Universidad Politcnica Salesiana del Ecuador Pgina 347 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

if ( (acesible < minacesible) && ((acesible > 0) ||


((acesible == 0) && (num ==tabla.longitud * tabla.longitud - 1)) ) ) {

minacesible = acesible;
solx = nuevax;
soly = nuevay;
}
}
}
x = solx;
y = soly;
return (minacesible < 9);
}

public boolean saltar(Tablero tabla, int i, int valex, int valey, int nx,int ny) {
nuevax = nx;
nuevay = ny;
switch (i) {
case 1:
nuevax = valex - 1;
nuevay = valey - 2;
break;
case 2:
nuevax = valex - 2;
nuevay = valey - 1;
break;
case 3:
nuevax = valex - 2;
nuevay = valey + 1;
break;
case 4:
nuevax = valex - 1;
nuevay = valey + 2;
break;
case 5:
nuevax = valex + 1;
nuevay = valey + 2;
break;
case 6:
nuevax = valex + 2;
nuevay = valey + 1;
break;
case 7:
nuevax = valex + 2;
nuevay = valey - 1;
break;

Universidad Politcnica Salesiana del Ecuador Pgina 348 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

case 8:
nuevax = valex + 1;
nuevay = valey - 2;
break;

default:
javax.swing.JOptionPane.showMessageDialog(null,"La opcion elegida es
incorrecta." + "\n");
}

return ( (0 <= nuevax) && (nuevax < tabla.longitud) && (0 <= nuevay) &&
(nuevay < tabla.longitud) && (tabla.tabla[nuevax][nuevay] == 0));
}

public int contar(Tablero tabla, int x, int y) {

int accion = 0, i, nx = 0, ny = 0;

for (i = 1; i < 9; i++) {


if (saltarSimulado(tabla, i, x, y, nx, ny))
accion++;
}
return accion;
}

public boolean saltarSimulado(Tablero tabla, int i, int valex, int valey,


int nx, int ny) {

switch (i) {
case 1:
nx = valex - 1;
ny = valey - 2;
break;
case 2:
nx = valex - 2;
ny = valey - 1;
break;
case 3:
nx = valex - 2;
ny = valey + 1;
break;
case 4:
nx = valex - 1;
ny = valey + 2;
break;
case 5:

Universidad Politcnica Salesiana del Ecuador Pgina 349 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

nx = valex + 1;
ny = valey + 2;
break;
case 6:
nx = valex + 2;
ny = valey + 1;
break;
case 7:
nx = valex + 2;
ny = valey - 1;
break;
case 8:
nx = valex + 1;
ny = valey - 2;
break;

default:
javax.swing.JOptionPane.showMessageDialog(null,"La opcion elegida es
incorrecta." + "\n");
}

return ( (0 <= nx) && (nx < tabla.longitud) && (0 <= ny) &&
(ny < tabla.longitud) && (tabla.tabla[nx][ny] == 0));
}

package Ej24;

import java.io.*;

public class Principal {

BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));


Tablero tablero;
int longitud, inix, iniy;
Juego juego;

public Principal() {

try {
do {

javax.swing.JOptionPane.showMessageDialog(null,"Bienvenido");

Universidad Politcnica Salesiana del Ecuador Pgina 350 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

String y=javax.swing.JOptionPane.showInputDialog(null,"introduzca el tamano del


tablero: (n debe ser mayor que4)");
longitud = Integer.parseInt(y);
}
while (longitud < 5);
tablero = new Tablero(longitud);

do {

String x1=javax.swing.JOptionPane.showInputDialog(null,"introduzca la posicion


inicial del caballo: (x,y) \n"+
"x (numero de fila: 0..n-1)=>");
inix = Integer.parseInt(x1);

}
while (inix >= longitud);

do{
String y1=javax.swing.JOptionPane.showInputDialog(null,"y (numero de fila: 0..n-
1)=>");
iniy = Integer.parseInt(y1);
}
while(iniy >= longitud);
}
catch (Exception e) {

javax.swing.JOptionPane.showMessageDialog(null,"Hay un error al introducir los


datos");
}

tablero.mostrar(longitud);
juego = new Juego(inix-1, iniy-1);

if (juego.jugar(tablero) == true) {
System.out.print("\n" + "\n");
tablero.mostrar(longitud);
tablero.mostrarb();
}
else
{
System.out.print("\n" + "\n");
tablero.mostrar(longitud);
tablero.mostrarb();

javax.swing.JOptionPane.showMessageDialog(null,"no es posible recorrer el


tablero");

Universidad Politcnica Salesiana del Ecuador Pgina 351 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
}

public static void main(String[] args) {


Principal principal1 = new Principal();
}

package Ej24;
import java.awt.*;
public class Tablero extends javax.swing.JFrame{
Panel p1;
int busqueda;
int[][] tabla;
Button[][] b;
int g =0;
int longitud;
public Tablero(int longitud) {
tabla = new int[longitud][longitud];
this.longitud = longitud;
}

public void mostrar(int longitud) {


for (int i = 0; i < longitud; i++)
for (int j = 0; j < longitud; j++) {
if (j < longitud - 1) {
if (tabla[i][j] < 10){

g++;
}
else {
if (tabla[i][j] < 100)

g++;
else

g++;
}
}
else

g++;
}
} //Mostrar en el output

Universidad Politcnica Salesiana del Ecuador Pgina 352 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

//***Mostrar en interfaz***//
public void mostrarb() {
getContentPane().setLayout(new GridLayout(1,1));
p1=new Panel();
b=new Button[longitud][longitud];
p1.setLayout(new GridLayout(longitud,longitud));
for(int i=0;i<longitud;i++){
for(int j=0;j<longitud;j++){
p1.add(b[i][j]=new Button(String.valueOf(this.tabla[i][j])));
b[i][j].disable();
if(b[i][j].getLabel().equals("1")){
b[i][j].setBackground(new Color(51, 0, 255));
b[i][j].setForeground(new Color(204, 255, 255));
b[i][j].enable();
}
}
}

addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});

getContentPane().add(p1);
pack();
setLocation(400,300);
show();
}

private void exitForm(java.awt.event.WindowEvent evt) {


dispose();
System.exit(0);
}

public boolean action(Event evt,Object ar){


if(evt.target instanceof Button){
for(int m=0;m<longitud;m++){
for(int k=0;k<longitud;k++){
if(evt.target==b[m][k]){
busqueda=Integer.parseInt(b[m][k].getLabel());
busqueda(busqueda);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 353 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
return true;
}
else
return false;
}

void busqueda(int x){


int y=x+1;
for(int m=0;m<longitud;m++){
for(int k=0;k<longitud;k++){
if(b[m][k].getLabel().equals(String.valueOf(y))){
b[m][k].enable();
b[m][k].setBackground(new Color(153, 0, 51));
b[m][k].setForeground(new Color(255,255,255));
}
}
}
}

public static void main(String arg[]){

MTODOS EN JAVA
EJERCICIO 251

Universidad Politcnica Salesiana del Ecuador Pgina 354 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

REALIZAR UN PROGRAMA EN JAVA QUE PRESENTE UN NMERO UTILIZANDO UN


MTODO.

import java.io.*;
import java.lang.*;

class Metodo1{

public static void main(String arg[]) throws IOException{

int num=10, valor;


numero(num);
}

public static void numero(int num){


System.out.println("El numero es: "+num);
}
}

EJERCICIO 252

REALIZAR UN PROGRAMA EN JAVA QUE PRESENTE UN NOMBRE Y UN APELLIDO


UTILIZANDIO MTODOS.

import java.io.*;
import java.lang.*;

class Metodo2{

public static void main(String arg[]) throws IOException{


nombre();
apellido();
}

public static void nombre(){


System.out.print("Ana");
}

public static void apellido(){


System.out.println(" Molina");
}

Universidad Politcnica Salesiana del Ecuador Pgina 355 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 253

REALIZAR UN PROGRAMA EN JAVA QUE REALICE LA SUMA DE DOS NMEROS EN UN


MTODO.

import java.io.*;
import java.lang.*;

class MetodoSuma{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int a=0,b=0,r=0;

System.out.print("Ingrese el primer numero: ");


a=Integer.parseInt(temp.readLine());
System.out.print("Ingrese el segundo numero: ");
b=Integer.parseInt(temp.readLine());

r=suma(a,b);
System.out.println("\nResultado: "+r);
}

public static int suma(int num1,int num2){


int resultado_local=0;
resultado_local=num1+num2;
return resultado_local;
}

Universidad Politcnica Salesiana del Ecuador Pgina 356 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 254

REALIZAR UN PROGRAMA EN JAVA QUE REALICE LA RESTA DE DOS NMEROS EN UN


MTODO.

import java.io.*;
import java.lang.*;

class MetodoResta{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int a=0,b=0,r=0;

System.out.print("Ingrese el primer numero: ");


a=Integer.parseInt(temp.readLine());
System.out.print("Ingrese el segundo numero: ");
b=Integer.parseInt(temp.readLine());

r=resta(a,b);
System.out.println("\nResultado: "+r);
}

public static int resta(int num1,int num2){


int resultado_local=0;
resultado_local=num1-num2;
return resultado_local;
}
}

EJERCICIO 255

REALIZAR UN PROGRAMA EN JAVA QUE REALICE LA MULTIPLICACIN DE DOS


NMEROS EN UN MTODO.

import java.io.*;

Universidad Politcnica Salesiana del Ecuador Pgina 357 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.lang.*;

class MetodoMult{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int a=0,b=0,r=0;

System.out.print("Ingrese el primer numero: ");


a=Integer.parseInt(temp.readLine());
System.out.print("Ingrese el segundo numero: ");
b=Integer.parseInt(temp.readLine());

r=multiplicacion(a,b);
System.out.println("\nResultado: "+r);
}

public static int multiplicacion(int num1,int num2){


int resultado_local=0;
resultado_local=num1*num2;
return resultado_local;
}
}

EJERCICIO 256

REALIZAR UN PROGRAMA EN JAVA QUE REALICE LA DIVISIN DE DOS NMEROS EN


UN MTODO.

import java.io.*;
import java.lang.*;

class MetodoDiv{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int a=0,b=0,r=0;

Universidad Politcnica Salesiana del Ecuador Pgina 358 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

System.out.print("Ingrese el primer numero: ");


a=Integer.parseInt(temp.readLine());
System.out.print("Ingrese el segundo numero: ");
b=Integer.parseInt(temp.readLine());

r=division(a,b);
System.out.println("\nResultado: "+r);
}

public static int division(int num1,int num2){


int resultado_local=0;
resultado_local=num1/num2;
return resultado_local;
}
}

EJERCICIO 257

REALIZAR UN PROGRAMA QUE PERMITA OBTENER LA POTENCIA DE UN NMERO.

import java.io.*;
import java.lang.*;

public class Potencia1 {


public static void main(String[] args) {
double a= 10.0, b;
int x= 3;
System.out.println("Main: a= " + a + ", x= " + x);
b= potencia(a, x);
System.out.println("Main: Result b= " + b);
}

public static double potencia(double d, int i){


System.out.println("Potencia: d= " + d + ", i= " + i);
double x= d;
for (int j= 1; j < i; j++)
x *= d; // x = x * d;
return x;}
}

Universidad Politcnica Salesiana del Ecuador Pgina 359 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 258

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA OBTENER EL RESIDUO DE DOS


NMEROS EN UN MTODO.

import java.io.*;
import java.lang.*;

class MetodoResiduo{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int a=0,b=0,r=0;

System.out.print("Ingrese el primer numero: ");


a=Integer.parseInt(temp.readLine());
System.out.print("Ingrese el segundo numero: ");
b=Integer.parseInt(temp.readLine());

r=residuo(a,b);
System.out.println("\nResultado: "+r);
}

public static int residuo(int num1,int num2){


int resultado_local=0;
resultado_local=num1%num2;
return resultado_local;
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 360 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 259

REALIZAR UN PROGRAMA EN JAVA QUE ELEEVE CUALQUIER NMERO AL CUADRADO


EN UN MTODO.

import java.io.*;
import java.lang.*;

class MetodoPotencia{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int a=0,r=0;

System.out.print("Ingrese un numero entero positivo: ");


a=Integer.parseInt(temp.readLine());

r=cuadrado(a);
System.out.println("\nResultado: "+r);
}

public static int cuadrado(int num1){


int resultado_local=0;
resultado_local=num1*num1;
return resultado_local;
}
}

EJERCICIO 260

REALIZAR UN PROGRAMA EN JAVA QUE ENCUENTRE EL FACTORIAL DE CUALQUIER


NMERO INGRESADO POR TECLADO.

FACTORIAL DE 5 ES : 1*2*3*4*5= 120

import java.io.*;
import java.lang.*;

class MetodoFactor{

Universidad Politcnica Salesiana del Ecuador Pgina 361 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int a=0;
double p=0;

System.out.print("Ingrese un numero: ");


a=Integer.parseInt(temp.readLine());

p=factorial(a);
System.out.println("\nFactorial de "+a+" es: "+p);
}

public static double factorial(int n){


double fac=1;
int i=1;
for(i=1;i<=n;i++)
fac=fac*i;
return fac;
}
}

EJERCICIO 261

CODIFIQUE UN MTODO EN JAVA QUE PERMITA ENCONTRAR LA SOLUCIN DEL


SIGUIENTE POLINOMIO:
y=x^3-x^2+1

import java.io.*;
import java.lang.*;

class MetodoEcua{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int x=0,r=0;

Universidad Politcnica Salesiana del Ecuador Pgina 362 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

System.out.println("\ty=x^3-x^2+1");
System.out.print("Ingrese elvalor de x: ");
x=Integer.parseInt(temp.readLine());

r=polinomio(x);
System.out.println("\nEl resultado del polinomio es: "+r);
}

public static int polinomio(int num1){


int y=0;
y=(num1*num1*num1)-(num1*num1)+1;
return y;
}

EJERCICIO 262

CODIFIQUE UN MTODO EN JAVA QUE PERMITA ENCONTRAR EL AREA Y EL


PERIMETRO DE UN CUADRADO.

AREA=L*L
PERIMETRO=L+L+L+L

import java.io.*;
import java.lang.*;

class MetodoCuadro{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int lado=0,area=0, perimetro=0,r=0,r2=0;

System.out.print("Ingrese el lado: ");


lado=Integer.parseInt(temp.readLine());

Universidad Politcnica Salesiana del Ecuador Pgina 363 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

r=area(lado);
r2=perimetro(lado);
System.out.println("\n\tArea del Cuadrado: "+r);
System.out.println("\tPerimetro del Cuadrado: "+r2);
}

public static int area(int l){


return(l*l);
}

public static int perimetro(int l){


return(l+l+l+l);
}
}

SOBRECARGA DE MTODOS
Se denomina sobrecarga de mtodos cuando en una misma clase existen dos o ms
mtodos con el mismo nombre, pero con diferentes parmetros. Vea el siguiente
ejemplo:

EJERCICIO 263

REALIZAR UN PROGRAMA EN JAVA QUE TENGA DOS MTODOS CON EL MISMO


NOMBRE PERO DIFERENTES ARGUMENTOS(UN MTODO CON ARGUMENTOS
ENTEROS Y OTRO MTODO CON ARGUMENTOS DOUBLE) Y QUE PERMITA OBTENER
EL REA DE UN CUADRADO.

import java.io.*;
import java.lang.*;

class MetodoCuadro{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int intlado=0,doublelado=0,area=0;

Universidad Politcnica Salesiana del Ecuador Pgina 364 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

System.out.println("El cuadrado del valor Integer 7 es: "+area(7));


System.out.println("El cuadrado del valor double 7.5 es : "+area(7.5));
}

public static int area(int intlado){


System.out.println("\t\nSe llamo al Metodo Cuadrado con argumentos
int");
return(intlado*intlado);
}

public static double area(double doublelado){


System.out.println("\t\nSe llamo al Metodo Cuadrado con argumentos
double");
return(doublelado*doublelado);
}
}

EJERCICIO 264

REALIZAR UN PROGRAMA EN JAVA QUE CONTENGA 4 MTODOS: SUMA, RESTA,


MULTIPLICACIN Y DIVISIN.

import java.io.*;
import java.lang.*;

class MetodoFactor{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int a=0,b=0,s=0,r=0,m=0;
float d=0f;

System.out.print("Ingrese el primer numero: ");


a=Integer.parseInt(temp.readLine());
System.out.print("Ingrese el segundo numero: ");

Universidad Politcnica Salesiana del Ecuador Pgina 365 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

b=Integer.parseInt(temp.readLine());

s=suma(a,b);
r=resta(a,b);
m=multiplicacion(a,b);
d=division(a,b);
System.out.println("\n\tSuma: "+s);
System.out.println("\tResta: "+r);
System.out.println("\tMultiplicacion: "+m);
System.out.println("\tDivision: "+d);
}

public static int suma(int x, int y){


return(x+y);
}

public static int resta(int x, int y){


return(x-y);
}

public static int multiplicacion(int x, int y){


return(x*y);
}

public static float division(int x, int y){


return(x/y);
}
}

EJERCICIO 265

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA INGRESAR UN NMERO Y QUE


PRESENTE POR PANTALLA SI EL NMERO ES POSITIVO O NEGATIVO.

import java.io.*;
import java.lang.*;

class MetodoPosi_Nega{

Universidad Politcnica Salesiana del Ecuador Pgina 366 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int num=0;

System.out.print("Ingrese un numero: ");


num=Integer.parseInt(temp.readLine());

Posi_Nega(num);
}

public static void Posi_Nega(int x){

if(x>0)
System.out.println("El numero es positivo");
else
System.out.println("El numero es negativo");
}
}

EJERCICIO 266

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA INGRESAR UN NMERO Y QUE


PRESENTE POR PANTALLA SI EL NMERO ES PAR O IMPAR.

import java.io.*;
import java.lang.*;

class MetodoParOImpar{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int num=0;

System.out.print("Ingrese un numero: ");

Universidad Politcnica Salesiana del Ecuador Pgina 367 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

num=Integer.parseInt(temp.readLine());

Par_Impar(num);
}

public static void Par_Impar(int x){


int p=0;
p=x%2;
if(p==0)
System.out.println("El numero es par");
else
System.out.println("El numero es impar");
}
}

EJERCICIO 267

REALIZAR UN MTODO QUE PERMITA INGRESAR UN NMERO Y QUE PRESENTE POR


PANTALLA LA RAZ CUADRADA DEL NMERO INGRESADO.

import java.io.*;
import java.lang.*;

class MetodoRaiz{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int num=0;
double raiz=0;
System.out.print("Ingrese un numero: ");
num=Integer.parseInt(temp.readLine());

raiz=Raiz(num);
System.out.println("La raiz de "+num+" es: "+raiz);
}

public static double Raiz(int x){


double r=0;

Universidad Politcnica Salesiana del Ecuador Pgina 368 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

r=Math.sqrt(x);
return r;
}
}

EJERCICIO 268

REALIZAR UN MTODO QUE PERMITA INGRESAR UN NMERO Y QUE PRESENTE POR


PANTALLA EL CUBO DEL NMERO INGRESADO.(EJEMPLO: 2 ELEVADO AL CUBO ES 8.)
import java.io.*;
import java.lang.*;

class MetodoCubo{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int num=0;
double cubo=0;
System.out.print("Ingrese un numero: ");
num=Integer.parseInt(temp.readLine());

cubo=Cubo(num);
System.out.println("El cubo de "+num+" es: "+cubo);
}

public static double Cubo(int x){


double r=0;
r=Math.pow(x,3);
return r;
}
}

EJERCICIO 269

Universidad Politcnica Salesiana del Ecuador Pgina 369 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

REALIZAR UN PROGRAMA QUE PERMITA ENCONTRAR EL VALOR DE LA HIPOTENUSA


DE UN TRINGULO RECTNGULO.

import java.io.*;
import java.lang.*;

class MetodoHipotenusa{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int x,y;
double hipotenusa=0;
System.out.print("Ingrese el valor de a: ");
x=Integer.parseInt(temp.readLine());
System.out.print("Ingrese el valor de b: ");
y=Integer.parseInt(temp.readLine());

hipotenusa=Hipotenusa(x,y);
System.out.println("El valor de la hipotenusa es: "+hipotenusa);
}

public static double Hipotenusa(int a, int b){


double r=0;
r=Math.sqrt((Math.pow(a,2)+Math.pow(b,2)));
return r;
}
}

EJERCICIO 270

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA INGRESAR DOS NMEROS, EL


PROGRAMA MOSTRAR QUE NMERO INGRESADO ES EL MAYOR.

import java.io.*;
import java.lang.*;

class MetodoMayor{

public static void main(String arg[]) throws IOException{

Universidad Politcnica Salesiana del Ecuador Pgina 370 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

BufferedReader temp = new BufferedReader( new


InputStreamReader(System.in));

int num1=0,num2=0;

System.out.print("Ingrese el primer numero: ");


num1=Integer.parseInt(temp.readLine());
System.out.print("Ingrese el segundo numero: ");
num2=Integer.parseInt(temp.readLine());

Mayor(num1,num2);
}

public static void Mayor(int x, int y){

if(x>y)
System.out.println("El numero mayor es:"+x);
else
System.out.println("El numero mayor es:"+y);
}
}

EJERCICIO 271

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA INGRESAR UN NMERO, EL


PROGRAMA MOSTRAR SI EL NMERO INGRESADO ES POSITIVO O NEGATIVO Y SI
ES PAR O IMPAR.

import java.io.*;
import java.lang.*;

class MetodoM{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int num1=0,num2=0;

System.out.print("Ingrese el primer numero: ");


num1=Integer.parseInt(temp.readLine());

Universidad Politcnica Salesiana del Ecuador Pgina 371 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Par_Impar(num1);
Posi_Nega(num1);
}

public static void Par_Impar(int x){


int p=0;
p=x%2;
if(p==0)
System.out.println("El numero es par");
else
System.out.println("El numero es impar");
}

public static void Posi_Nega(int x){

if(x>0)
System.out.println("El numero es positivo");
else
System.out.println("El numero es negativo");
}
}

EJERCICIO 272

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA INGRESAR UN NMERO Y


PRESENTAR EL NMERO 10 VECES.

import java.io.*;
import java.lang.*;

class MetodoMultiplo{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

int num1=0,num2=0;

System.out.print("Ingrese un numero: ");


num1=Integer.parseInt(temp.readLine());

Universidad Politcnica Salesiana del Ecuador Pgina 372 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Numero(num1);
}

public static void Numero(int x){


int cont=0;
do{
cont=cont+1;
System.out.println(x);
}while(cont<5);
}
}

EJERCICIO 273

REALIZAR UN PROGRAMA EN JAVA QUE GENERE LOS 5 PRIMEROS NMEROS PARES.

import java.io.*;
import java.lang.*;

class MetodoPares{

public static void main(String arg[]) throws IOException{


System.out.println("Primeros 5 numeros pares");
Par();
}

public static void Par(){


int cont=0, acu=0;
do{
cont=cont+1;
acu=acu+2;
System.out.println("\t"+acu);
}while(cont<5);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 373 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 274

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA OBTENER EL PROMEDIO DE LOS


NMEROS INGRESADOS POR TECLADO.

import java.io.*;
import java.lang.*;

class MetodoPromedio{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));
int cont=0,n1=0,n2,n3;
float r=0.f;

System.out.print("Ingrese un numero: ");


n1=Integer.parseInt(temp.readLine());
System.out.print("Ingrese un numero: ");
n2=Integer.parseInt(temp.readLine());
System.out.print("Ingrese un numero: ");
n3=Integer.parseInt(temp.readLine());

r=Promedio(n1,n2,n3);
System.out.println("El promedio es: "+r);
}

public static float Promedio(int x, int y, int z){


int cont=0, acu=0,p=0;
p=(x+y+z)/3;

return p;
}

Universidad Politcnica Salesiana del Ecuador Pgina 374 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

ARREGLOS EN JAVA
Introduccin:
Un arreglo es una coleccin de objetos numerados del mismo tipo, en donde cada
variable o celda en el arreglo tiene un ndice. Las celdas estn numeradas del 0 al N-1,
donde N es el nmero de celdas del arreglo es decir su capacidad.
Los ndices de un arreglo en Java deben estar dentro de los lmites, 0 N-1, de lo
contrario se generar un error durante la ejecucin.

Java implementa los arreglos como objetos que pueden ser tratados como cualquier
otro objeto.

Para utilizar un arreglo en Java:


Declare una variable para que contenga el arreglo
Cree un nuevo arreglo de objeto y asgnelo a la variable de arreglo
Almacene informacin en ese arreglo
Realice operaciones de almacenamiento y recuperacin con los elementos del arreglo
Declaracin:

Se agrega un par de corchetes vacos

[]

al objeto o tipo de datos, o al nombre de variable.


Ejemplos:
String palabrasDificiles [ ];
Point hits [ ];

Universidad Politcnica Salesiana del Ecuador Pgina 375 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

int donaciones [ ];

O bien:

String [ ] palabrasDificiles;
Point [ ] hits;
int [ ] donaciones;
Creacin de objetos de arreglos:

Despus de haber declarado la variable arreglo, el siguiente paso es crear un arreglo


de objetos y asignarlo a esa variable. Las formas de hacerlo son:
a travs del operador new
inicializando directamente el contenido del arreglo
Ejemplos:

String [ ] nombreJugadores = new String [10];


int [ ] temps = new int [99];

Todas las posiciones se inicializan automticamente (0 para arreglos numricos, false


para booleanos, \0 para arreglos de carcter y null para objetos)

Tambin se puede crear e inicializar un arreglo al mismo tiempo. Encierre los


elementos del arreglo entre llaves, separndolos con comas:

String [ ] chiles = { jalapeno, de rbol, serrano, habanero};

Al crear elementos con valores iniciales, el arreglo es del mismo tamao que la
cantidad de elementos que ha incluido en las llaves.
El tamao de un arreglo se almacena en la variable length, que puede ser accesada a
travs del operador . y el nombre del arreglo:

nombreArreglo.length
EJERCICIO 275

EN ESTE EJERCICIO SE UTILIZA LA PALABRA NEW PARA CREAR UN ARREGLO DE 10


ELEMENTOS INT, LOS CUALES INICIALMENTE TIENEN EL VALOR DE CERO.

import java.io.*;
import java.lang.*;

class Arreglo1{

public static void main(String arg[]) throws IOException{


int arreglo[];
arreglo=new int[10];

Universidad Politcnica Salesiana del Ecuador Pgina 376 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

String salida ="indice\tvalor\n";

for(int contador=0;contador<arreglo.length;contador++)
salida+=contador+"\t"+arreglo[contador]+"\n";
System.out.print(salida);
}
}

EJERCICIO 276

EN ESTE EJERCICIO NO ES NECESARIO LA PALABRA NEW PARA CREAR UN ARREGLO, A


STE SE LE DENOMINA LISTA INICIALIZADORA, YA QUE EL TAMAO DEL ARREGLO
DEPENDER DE LOS ELEMENTOS PUESTOS EN EL ARREGLO.

import java.io.*;
import java.lang.*;

class Arreglo2{

public static void main(String arg[]) throws IOException{


int arreglo[]={32,27,64,18,95,14,90,70,60,37};

String salida ="indice\tvalor\n";

for(int contador=0;contador<arreglo.length;contador++)
salida+=contador+"\t"+arreglo[contador]+"\n";
System.out.print(salida);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 377 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 277

REALIZAR UN PROGRAMA EN JAVA PARA CREAR UN ARREGLO DE 10 ELEMENTOS Y


ASIGNA A CADA UNO DE ELLOS UNO DE LOS ENTEROS PARES DEL 2 AL 20 (2,4,620).

import java.io.*;
import java.lang.*;

class Arreglo2{

public static void main(String arg[]) throws IOException{


final int LONGITUD_ARREGLO= 10; //constante
int arreglo[];//referencia a un arreglo int
arreglo=new int [LONGITUD_ARREGLO];//crea el arreglo

for(int contador=0;contador<arreglo.length;contador++)
arreglo[contador]=2+2*contador;

//calcular el valor para cada elemento del arreglo


String salida ="indice\tvalor\n";
for(int contador=0;contador<arreglo.length;contador++)
salida+=contador+"\t"+arreglo[contador]+"\n";
System.out.print(salida);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 378 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 278

REALIZAR UN PROGRAMA EN JAVA QUE SUME LOS ELEMNTOS DE UN ARREGLO.

import java.io.*;
import java.lang.*;

class Arreglo4{

public static void main(String arg[]) throws IOException{

int arreglo[]={1,2,3,4,5,6,7,8,9,10};//declara,crea e inicializa


int total=0;

//sumar el valor de cada elemento al total


for(int contador=0;contador<arreglo.length;contador++)
total += arreglo[contador];
System.out.println("Suma de los elementos del arreglo es: "+total);
}
}

EJERCICIO 279

REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE LOS DATOS REPRESENTADOS EN


UN HISTOGRAMA.

import java.io.*;
import java.lang.*;

class Arreglo5{

public static void main(String arg[]) throws IOException{

int arreglo[]={19,3,15,7,11,9,13,5,17,1};/*declara,crea e inicializa*/


int total=0;

String salida ="#\tValor\tHistograma";


/*para cada elemento del arreglo, mostrar una barra en el histograma*/
for(int contador=0;contador<arreglo.length;contador++){

Universidad Politcnica Salesiana del Ecuador Pgina 379 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

salida += "\n"+contador+"\t"+arreglo[contador]+"\t";
//imprimir barra de asteriscos
for(int estrellas=0;estrellas<arreglo[contador];estrellas++)
salida += "*";
}//fin del for externo
System.out.println(salida);
}
}

EJERCICIO 280

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA LANZAR UN DADO DE 6 LADOS


6000 VECES Y QUE MUESTRE CUANTAS VECES EL LADO 1, LADO2.LADO6, SALIERON.

import java.io.*;
import java.lang.*;

class Arreglo6{

public static void main(String arg[]) throws IOException{

int frecuencia[]= new int [7];/*declara, crea*/

/*Tirar un dado 6000 veces; usar el valor del dao como indice de frecuencia*/
for(int tiro=1;tiro<=6000;tiro++)

++frecuencia[1+(int)(Math.random()*6)];

String salida ="Cara\tFrecuencia";

/*anexar frecuencias al String salida*/

for(int cara=1;cara<frecuencia.length;cara++)
salida+="\n"+cara+"\t"+frecuencia[cara];

System.out.println(salida);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 380 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 281

SE PIDI A 40 ESTUDIANTES QUE CALIFICARAN LA CALIDAD DE LA COMIDA EN LA


CAFETERA EN UNA ESCALA DEL 1 AL 10(EN DONDE EL UNO SIGINIFICA PSIMO Y EL
10 EXCELENTE). COLOQUE LAS 40 RESPUESTAS EN UN ARREGLO ENTERO Y SINTETICE
LOS RESULTADOS DE LA ENCUESTA.

import java.io.*;
import java.lang.*;

class Arreglo7{

public static void main(String arg[]) throws IOException{

int respuestas[]= {1,2,6,4,8,5,9,7,8,10,1,6,3,8,6,10,3,8,2,7,6,5,7,6,


8,6,7,5,6,6,5,6,7,6,5,4,8,6,8,10};
int frecuencia[]=new int[11];

/* para cada respuesta, seleccionar el elemento de respuestas y usar


ese valor como indice en frecuencia para determinar elemento a incrementar*/
/*Tirar un dado 6000 veces; usar el valor del dao como indice de frecuencia*/
for(int respuesta=1;respuesta<respuestas.length;respuesta++)
++frecuencia[respuestas[respuesta]];

String salida ="Calificacion\tFrecuencia\n";

/*anexar frecuencias al String salida*/


for(int calificacion=1;calificacion<frecuencia.length;calificacion++)
salida+=calificacion+"\t\t"+frecuencia[calificacion]+"\n";

System.out.println(salida);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 381 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 282

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA OBTENER LA VARIANZA, LA


MEDIANA, EL PROMEDIO Y QUE ORDENE LOS ELEMNTOS DEL ARREGLO.

import java.io.*;

public class Estadistica


{
double a[];

/* Constructor */

public Estadistica(double arr[])


{
if (arr.length > 0)
{
a = new double[arr.length];

for(int i = 0; i < a.length; i++)


{
a[i] = arr[i];
}
}
}

private void ordenar()


{
double tmp;
int i,k;

Universidad Politcnica Salesiana del Ecuador Pgina 382 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

/* algoritmo de la burbuja */

for(k = 0; k < a.length; k++)


for(i = 0; i < a.length - 1 ; i++)
{
if (a[i] > a[i+1])
{
/* intercambio de posicion */

tmp = a[i];
a[i] = a[i+1];
a[i+1] = tmp;
}
}
}

public void verArreglo()


{
System.out.print("Arreglo : ");
for (int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");
System.out.println();
}

/* retorna la mediana en funcion de la paridad del numero


de elementos. Los ordena previamente */

public double mediana()


{
ordenar();

if (a.length % 2 == 0)
{
return (a[(a.length / 2) - 1] + a[a.length / 2]) / 2.0;
}
else
{
return a[(a.length - 1) / 2];
}

Universidad Politcnica Salesiana del Ecuador Pgina 383 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public static double promedio(double arr[])


{
double sum = 0.0;
for(int i = 0; i < arr.length; i++)
{
sum += arr[i];
}

/* realiza un cast o conversion de tipo a la


variable arr.length */

return sum / (double) arr.length;

public static double varianza(double arr[])


{
double prom = promedio(arr);
double sum = 0.0;

for(int i = 0; i < arr.length; i++)


{
sum += Math.pow(arr[i] - prom,2);
}

return sum / arr.length;


}

public static void main(String args[]) throws IOException


{

BufferedReader in = new BufferedReader(


new InputStreamReader(System.in));

int seguir = 1;

Universidad Politcnica Salesiana del Ecuador Pgina 384 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

int numDatos;
double arreglo[];

while(seguir == 1)
{
System.out.print("Cantidad de datos a ingresar : ");
numDatos = Integer.parseInt(in.readLine());

if (numDatos > 0)
{
arreglo = new double[numDatos];

for(int i = 0; i < numDatos; i++)


{
System.out.print("A[" + i + "] : ");
arreglo[i] = Double.parseDouble(in.readLine());
}

/* Crea instancia de clase u objeto */

Estadistica e = new Estadistica(arreglo);

System.out.println("Mediana : " + e.mediana());

e.verArreglo();

/* accesa metodos estticos que no necesitan instancia */

System.out.println("Promedio : " +
Estadistica.promedio(arreglo));
System.out.println("Varianza : " +
Estadistica.varianza(arreglo));

}
else
{
System.out.println("Se necesita una cantidad de datos
mayor que cero");
}

System.out.print("\nSalir(0) , Seguir(1) : ");


seguir = Integer.parseInt(in.readLine());

} // fin while

} // fin main

Universidad Politcnica Salesiana del Ecuador Pgina 385 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

} // fin class

EJERCICIO 283

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA MOSTRAR LOS ELEMENTOS DE UN


ARREGLO Y QUE DESPUS PERMITA REEMPLAZAR EL LTIMO VALOR INGRESADO
ENE LE ARREGLO.
import java.io.*;

class Invertir
{
public static void main(String arg[]) throws IOException
{
BufferedReader in = new BufferedReader(new
InputStreamReader(System.in));

System.out.print("Ingrese numero de elementos : ");

int n = Integer.parseInt(in.readLine());

int a[] = new int[n];

/* lectura del arreglo por teclado */

int i;

for(i = 0; i < a.length; i++)


{
System.out.print("Ingrese elemento " + (i + 1) + " : ");
a[i] = Integer.parseInt(in.readLine());
}

System.out.print("Arreglo ingresado : ");

Universidad Politcnica Salesiana del Ecuador Pgina 386 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

for(i = 0; i < a.length; i++)


System.out.print(a[i] + "\t");

System.out.print("\nIngrese elemento a insertar : ");


int x = Integer.parseInt(in.readLine());

int tmp;
i = 0;

while(a[i] < x) i++; /* se busca posicion i a insertar */

while(i < a.length)


{
tmp = a[i]; /* se guarda lo que que hay en posicion i */
a[i] = x; /* se asigna el elemento a insertar x a la posicion i */
x = tmp; /* el nuevo elemento a insertar es tmp */
i++; /* como x tiene que insertarse en la siguiente posicion
se incrementa el indice */
}

System.out.print("Arreglo final : ");

for(i = 0; i < a.length; i++)


System.out.print (a[i] + "\t");

System.out.println();
}
}

EJERCICIO 284

REALIZAR UN PROGRAMA EN JAQ UE PERMITA MOSTRAR POR PANTALLA LA SUMA


DE LAS FILAS DEL UNA MATRIZ DE 4x4.

import java.io.*;

Universidad Politcnica Salesiana del Ecuador Pgina 387 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.lang.*;

public class fabrica


{
public static void main ( String args[] ) throws IOException
{
BufferedReader max = new BufferedReader ( new InputStreamReader
(System.in));

int auto[][] = new int[5][5];


float v[] = new float[5];
float suma_v;

int cantidad[] = new int[5];


int suma_cantidad, i,j;

// porcentajes de cada centro


float x[] = new float[5];
float y[] = new float[5];
float z[] = new float[5];
float w[] = new float[5];

System.out.println("Ingreso de los valores: ");


for( i=0; i<4; i++)
for (j=0; j<4; j++)
{
System.out.print("Centro "+(i+1)+" Modelo "+(j+1)+"..: ");
auto[i][j]=Integer.parseInt(max.readLine());
}
cantidad[1]=0;
cantidad[2]=0;
cantidad[3]=0;
cantidad[4]=0;
for( i=0; i<4; i++)
for (j=0; j<4; j++)
cantidad[i] = cantidad[i] + auto[i][j];

for( i=0; i<4; i++)


{ for (j=0; j<4; j++)
{ System.out.print(auto[i][j]+" ");
};
System.out.println(cantidad[i]);
}

Universidad Politcnica Salesiana del Ecuador Pgina 388 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

El ejemplo java403.java, intenta ilustrar un aspecto interesante del uso de arrays en


Java. Se trata de que Java puede crear arrays multidimensionales, que se veran como
arrays de arrays. Aunque esta es una caracterstica comn a muchos lenguajes de
programacin, en Java, sin embargo, los arrays secundarios no necesitan ser todos del
mismo tamao. En el ejemplo, se declara e instancia un array de enteros, de dos
dimensiones, con un tamao inicial (tamao de la primera dimensin) de 3. Los
tamaos de las dimensiones secundarias (tamao de cada uno de los subarrays) es 2, 3
y 4, respectivamente.
En este ejemplo, tambin se pueden observar alguna otra cosa, como es el hecho de
que cuando se declara un array de dos dimensiones, no es necesario indicar el tamao
de la dimensin secundaria a la hora de la declaracin del array, sino que puede
declararse posteriormente el tamao de cada uno de los subarrays. Tambin se puede
observar el resultado de acceder a elementos que se encuentran fuera de los lmites
del array; Java protege la aplicacin contra este tipo de errores de programacin.

EJERCICIO 285

/**
* Ejemplo para ilustrar la creacin y manipulacin de un array de dos
* dimensiones en donde los subarrays tienen diferente tamao
*/

class java403 {
public static void main( String args[] ) {

// Declaramos un array de dos dimensiones con un tamao de 3 en la


// primera dimensin y diferentes tamaos en la segunda

Universidad Politcnica Salesiana del Ecuador Pgina 389 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

int miArray[][] = new int[3][]; // No especificamos el tamao de la


// segunda dimensin
miArray[0] = new int[2]; // El tamao de la segunda dimensin es 2
miArray[1] = new int[3]; // El tamao de la segunda dimensin es 3
miArray[2] = new int[4]; // El tamao de la segunda dimensin es 4

// Rellenamos el array con datos


for( int i=0; i < 3; i++ )
{
for( int j=0; j < miArray[i].length; j++ )
miArray[i][j] = i * j;
}

// Visualizamos los datos que contiene el array


for( int i=0; i < 3; i++ )
{
for( int j=0; j < miArray[i].length; j++ )
System.out.println( miArray[i][j] );
System.out.println();
}

// Hacemos un intento de acceder a un elemento que se encuentre


// fuera de los lmites del array
System.out.println( "Acceso a un elemento fuera de limites" );
miArray[4][0] = 7;
// Esa sentencia originar el lanzamiento de una excepcin de
// tipo ArrayIndexOutOfBounds
}
}

PASAR ARREGLOS A MTODOS


Para pasar un arreglo como argumento a un mtodo, se especifica el nombre del
arreglo sin corchetes. Por ejemplo, si el arreglo temperaturaPorHora se declara como:

Universidad Politcnica Salesiana del Ecuador Pgina 390 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

int temperaturaPorHora[]=new int [24];


Entoces la llamada al mtodo:
modificarArreglo(temperaturaPorHora);

Pasa al mtodo modificarArreglo una referencia al arreglo temperaturaPorHora.

EJERCICIO 286

EN STE EJEMPLO DEMOSTRAREMOS COMO PASAR ARREGLOS Y ELEMENTOS DE


ARREGLOS COMO ARGUMENTOS PARA LOS MTODOS.

/*Paso de arreglos y elementos individuales de un arreglo a metodos */

import java.io.*;
import java.lang.*;

class Arreglo7{

public static void main(String arg[]) throws IOException{

int arreglo[]= {1,2,3,4,5};


int frecuencia[]=new int[11];

String salida ="Efectos de pasar el arreglo completo por referencia:\n"+


"Los valores del arreglo original son:\n";

/*anexar los elementos del arreglo original al String salida */


for(int contador=0;contador<arreglo.length;contador++)
salida += " "+arreglo[contador];

modificarArreglo(arreglo);/*arreglo pasado por referencia*/


salida+="\n\nLos valores del arreglo modoficado son:\n";

/*anexar los elementos del arreglo modificado al String salida */


for(int contador=0;contador<arreglo.length;contador++)
salida+=" "+arreglo[contador];

salida+="\n\nEfectos de pasar el elemento de un arreglo por valor \n"+


"arreglo[3] antes de modificarElemento:" +arreglo[3];

modificarElemento(arreglo[3]);/*intento de modificar arreglo[3]*/


salida+="\narreglo[3] despues de modificarElemento:"+arreglo[3];

System.out.println(salida);
}

Universidad Politcnica Salesiana del Ecuador Pgina 391 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

/*Multiplicar cada elemento de un arreglo por 2 */


public static void modificarArreglo(int arreglo2[]){
for(int contador=0; contador<arreglo2.length;contador++)
arreglo2[contador]*=2;
}

/*Multiplicar argumento por 2*/


public static void modificarElemento(int elemento){

elemento*=2;
}
}

ORDENAMIENTO DE ARREGLOS
MTODO BURBUJA
EJERCICIO 287

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA ORDENAR LOS ELEMNTOS DE UN


ARREGLO EN FORMA ASCENDENTE.

import java.io.*;
import java.lang.*;

class Arreglo9{

public static void main(String arg[]) throws IOException{

int arreglo[]= {2,6,4,8,10,12,89,68,45,37};


int frecuencia[]=new int[11];

Universidad Politcnica Salesiana del Ecuador Pgina 392 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

String salida ="Elementos de datos en su orden original\n";

/*anexar los valores originales al String salida */


for(int contador=0;contador<arreglo.length;contador++)
salida += " "+arreglo[contador];

ordenamBurbuja(arreglo);
salida+="\n\nElementos de datos en orden ascendente \n";

/*anexar los valores ordenados del arreglo al String salida */


for(int contador=0;contador<arreglo.length;contador++)
salida+=" "+arreglo[contador];

System.out.println(salida);
}

/*Ordenar elementos del arreglo con el Mtodo Burbuja */


public static void ordenamBurbuja(int arreglo2[]){
/*Ciclo para controlar nmero de pasadas */
for(int pasada=1; pasada<arreglo2.length;pasada++){

/*Ciclo para controlar nmero de comparaciones*/


for(int elemento=0; elemento<arreglo2.length-1;elemento++){

/*Comparar elementos uno a uno e intercambiarlos si el primer


elemento es mayor que el segundo */
if(arreglo2[elemento]>arreglo2[elemento+1])
intercambiar(arreglo2,elemento,elemento+1);
}/*Fin del ciclo para controlar las comparaciones*/

}/*Fin del ciclo para controlar las pasadas*/


}

/*Intercambiar dos elementos de un arreglo*/


public static void intercambiar(int arreglo3[], int primero, int segundo){
int almacen; /*Area temporal de almacenamiento para intercambiar */

almacen= arreglo3[primero];
arreglo3[primero]=arreglo3[segundo];
arreglo3[segundo]=almacen;
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 393 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

MATRICES
EJERCICIO 288

EN STE EJEMPLO SE DEMUSTRA COMO INICIALIZAR ARREGLOS BIDIMENSIONALES O


MATRICES CON INICIALIZADORES DE ARREGLOS, Y COMO UTILIZAR CICLOS FOR
ANIDADOS PAR RECORRER LOS ARREGLOS, ES DECIR MANIPULAR CADA ELEMNTO DE
LOS ELEMENTOS DE LOS ARREGLOS.

import java.io.*;
import java.lang.*;

class Matriz1{

public static void main(String arg[]) throws IOException{

int arreglo1[][]={{1,2,3},{4,5,6}};
int arreglo2[][]={{1,2},{3},{4,5,6}};

System.out.println("Los valores en arreglo1 por fila son\n");


crearSalida(arreglo1);

System.out.println("\nLos valores en arreglo2 por fila son\n");


crearSalida(arreglo2);

/*Anexar filas y columnas de un arreglo*/


public static void crearSalida(int arreglo[][]){
/*Iterar a travs de las columnas de la fila actual*/
for(int fila=0; fila<arreglo.length;fila++){

/*Iterar a travs de las columnas de la fila actual*/


for(int columna=0; columna<arreglo[fila].length;columna++)
System.out.println(arreglo[fila][columna]+" ");
System.out.println("\n");
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 394 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

APPLETS EN JAVA
Creacin de un Applet
Los applets se ejecutan a traves de una pagina web, es decir, se debe crear un archivo
.java y luego un archivo .htm o.html. Luego se debe compilar el .java y se debe crear un
archivo con el bloc de notas y se lo debe guardar .html as:
<html>
<applet code="NombredelPrograma.class" width="300" height="45">
</applet>
</html

FORMA COMPLETA

<HTML>
<HEAD>
<TITLE> Un applet de Java </TITLE>
</HEAD>
<BODY>
Aqu est&aacute; la salida de mi programa:
<APPLET CODE="NombreDelPrograma.class" WIDTH=150 HEIGHT=25>
</APPLET>
</BODY>
</HTML>
Llamando la pgina con el applet:

Universidad Politcnica Salesiana del Ecuador Pgina 395 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Busque la pgina web que acaba de hacer y brala dando doble clic.

Anatoma del Applet de Java


Ahora que su applet de Java se ha ejecutado, se estar preguntando cmo funciona.
Recuerde que un applet de Java es un programa que se adhiere a un conjunto de
convenciones que le permiten correr a travs de un navegador compatible.

Importando las clases y paquetes


Las primeras dos lneas importan dos clases usadas en este applet: Applet y Graphics.

import java.applet.Applet;
import java.awt.Graphics;

public class miapplet extends Applet {


public void paint(Graphics g){
g.drawString("Hola tu", 50, 25);
}
}
Para entender esas lneas vamos a hablar de qu pasara si no estuvieran. Si se
quitaran esas primeras dos lneas, el applet podra tambin ejecutarse, pero solo si
cambia el llamado a las clases de la siguiente forma:

public class miapplet extends java.applet.Applet {


public void paint(java.awt.Graphics g){
g.drawString("Hola tu", 50, 25);
}
}

Como se puede ver al importar las clases Applet y Graphics el programa le permite
llamarlas sin todo el prefijo (p.e. java.applet.Applet). Los prefijos le dicen al compilador
cuales paquetes debera buscar para encontrar las clases Applet y Graphics. Ambos
java.applet y java.awt son parte del API de java - El API es el conjutno de programas de
java con que se puede contar en el ambiente.
El paquete java.applet contiene clases que son esenciales para los applets de java. El
paquete java.awt contiene las clases ms frecuentemente usadas en el Abstract
Window Toolkit (AWT), que permite a Java tener una Interfaz grfica (GUI) como los
programas de Windows.
Adems de importar clases individuales, usted puede importar el paquete entero. A
continuacin un ejemplo que funciona tambin:
import java.applet.*;
import java.awt.*;

public class miapplet extends Applet {


public void paint(Graphics g){
g.drawString("Hola tu", 50, 25);
}

Universidad Politcnica Salesiana del Ecuador Pgina 396 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

En el Lenguaje Java, todas las clases estn en un paquete o package. Si el cdigo


fuente para una clase no tiene una importacin entonces la clase debe pertenecer al
grupo por defecto de Java.
Dentro del mismo paquete, todas las clases pueden referirse a las otras sin prefijos.
Vea una lista de todos los paquetes disponibles en packages.html

Definiendo una subclase de Applet


La primera lnea en negrilla del cdigo que est a continuacin define la clase
miapplet:

import java.applet.Applet;
import java.awt.Graphics;

public class miapplet extends Applet {


public void paint(Graphics g){
g.drawString("Hola tu", 50, 25);
}
}

La palabra extends indica que miapplet es una subclase de la clase nombrada a


continuacin: Applet. Subclase significa que es un derivado de una clase anterior.
A partir de la clase Applet, los applets heredan una gran cantidad de funcionalidad.
Quizs lo ms importante es la habilidad de responder a peticiones del navegador de
Internet. Por ejemplo, un navegador capaz de manejar Java carga una pgina que
contiene un applet, el navegador enva una peticin al applet, diciendole que se
inicialice y comience a ejecutarse.
Un applet no est restingido a definir solo una clase. Adems de la subclase de Applet,
un applet puede definir clases adicionales creadas por el programador. Cuando el
applet intenta usar una clase, la aplicacin que est ejecutandose primero mira en el
host local. Si la clase no est disponible localmente, es cargada desde una localizacin
de donde viene la subclase del Applet.

Implementando los mtodos del Applet


Las lneas en negrilla del cdigo implementan el mtodo paint.

import java.applet.Applet;
import java.awt.Graphics;

public class miapplet extends Applet {


public void paint(Graphics g){
g.drawString("Hola tu", 50, 25);
}
}
Todos los applets deben implementar uno o ms de los mtodos init, start, y paint.

Universidad Politcnica Salesiana del Ecuador Pgina 397 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Adems de los mtodos init, start, y paint, los applets pueden implementar dos
mtodos ms que el browser llama cuando un evento importante ocurre (tal como
salir de la pgina del applet): stop y destroy. Los Applets pueden implementar
cualquier nmero de otros mtodos, tambin.
En el programa que hicimos el objeto Graphics pasado dentro del mtodo paint
representa el contexto de dibujo en pantalla del applet. El primer argumento para el
mtodo drawString de Graphics es la cadena para dibujar en pantalla. El segundo y
tercer parmetro son la posicin (x,y) de la esquina izquierda del texto en pantalla.
g.drawString("Hola tu", 50, 25);

Esta instruccin entonces dibuja la cadena "Hola tu" comenzando en la posicin


(50,25). El sistema de coordenadas comienza en (0,0), que est en la esquina superior
izquierda del rea de despliegue del applet.

EJERCICIO 289

REALIZAR UN PROGRAMA EN JAVA QUE PRESENTE UN MENSAJE UTILIZANDO UN


APPLET.

import java.awt.Graphics;
import javax.swing.JApplet;

public class SubprogramaBienvenido extends JApplet{

public void paint(Graphics g){


super.paint(g);
g.drawString("Bienvenido a la Programacion en Java",25,25);
}
}

CDIGO ESCRITO EN UN BLOC DE NOTAS, PERO SE LO GUARDA CON EXTENSIN


.HTML.
PARA ESTE EJEMPLO SE LO GUARD COMO: SUBPROGRAMABIENVENIDO.HTML.
EL JAVA .CLASS Y EL .HTML DEBEN ESTAR EN EL MISMO DIRECTORIO PARA PODER
EJECUTAR. CUANDO SE GUARDA COMO HTML EL ARCHIVO DE TEXTO SE
TRANSFORMA COMO EN UNA PGINA WEB.

DOCUMENTO HTML PARA CARGAR ESTE APPLET EN UN CONTENEDOR DE APPLETS.

<html>
<applet code="SubprogramaBienvenido.class" width="300" height="45">
</applet>
</html>

Universidad Politcnica Salesiana del Ecuador Pgina 398 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 290

REALIZAR UN APPLET EN JAVA PARA MOSTRAR VARIAS LNEAS DE TEXTO.

import java.awt.Graphics;
import javax.swing.JApplet;

public class SubprogramaBienvenido2 extends JApplet{

public void paint(Graphics g){


super.paint(g);
/*Dibujar 2 valores String en diferentes ubicaciones*/
g.drawString("Bienvenido a ",25,25);
g.drawString("la Programacion en Java",25,40);
}
}

DOCUMENTO HTML PARA CARGAR ESTE APPLET EN UN CONTENEDOR DE APPLETS.

<html>
<applet code="SubprogramaBienvenido2.class" width="300" height="60">
</applet>
</html>

Universidad Politcnica Salesiana del Ecuador Pgina 399 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 291

REALIZAR UN APPLET EN JAVA QUE DIBUJE 2 LNEAS Y UNA CADENA DE TEXTO.

import java.awt.Graphics;
import javax.swing.JApplet;

public class LineasBienvenido extends JApplet{


/*Dibujar lineas y una cadena en el fondo del applet*/
public void paint(Graphics g){
super.paint(g);
/*Dibujar una linea horizontal, desde (15,10)hasta(250,10) */
g.drawLine(15,10,250,10);

/*Dibujar una linea horizontal desde (15,30) hasta (250,30) */


g.drawLine(15,30,250,30);

/*Dibujar String entre lneas en la ubicacin (25,25)*/


g.drawString("!Bienvenido a la Programacion en Java!",25,25);
}
}

DOCUMENTO HTML PARA CARGAR ESTE APPLET EN UN CONTENEDOR DE APPLETS.

<html>
<applet code="LineasBienvenido.class" width="300" height="40">
</applet>
</html>

Universidad Politcnica Salesiana del Ecuador Pgina 400 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 292

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA SUMAR DOS NMEROS DE COMA


FLOTANTE Y QUE MUESTRE POR PANTALLA EL RESULTADO UTILIZANDO UN APPLET.

import java.awt.Graphics;
import javax.swing.*;
public class SubprogramaSuma extends JApplet{
double suma;/*La suma de los valores introducidos por teclado*/

/*Inicializar el applet, obteniendo los valores del usuario*/


public void init(){
String primerNumero;/*Primera cadena introducida por el usuario*/
String segundoNumero;/*Segunda cadena introducida por el usuario*/

double numero1;/*Primer nmero a sumar*/


double numero2;/*Segundo nmero a sumar*/

/*Obtener el primer nmero del usuario*/


primerNumero=JOptionPane.showInputDialog("Escriba el primer valor
de punto flotante:");

/*Obtener el segundo nmero del usuario*/


segundoNumero=JOptionPane.showInputDialog("Escriba el segundo
valor de punto flotante:");

/*Escribir los nmeros de tipo String a tipo double*/


numero1=Double.parseDouble(primerNumero);
numero2=Double.parseDouble(segundoNumero);

/*Sumar los nmeros*/


suma=numero1+numero2;
}

Universidad Politcnica Salesiana del Ecuador Pgina 401 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

/*Dibujar los resultados en un rectngulo en el fondo del applet*/


public void paint(Graphics g){
/*Llamar a la versin del mtodo paint de la superclase*/
super.paint(g);
/*Dibujar un rectngulo, empezando desde (15,10), que tenga 270
pixeles de ancho y 20 pixeles de alto*/
g.drawRect(15,10,270,20);

/*Dibujar los resultados como String en (25,25) */


g.drawString("La suma es:"+suma,25,25);
}
}

EJERCICIO 293

ESTE APPLET DIBUJA 10 LNEAS DESDE EL MTODO PAINT.

Universidad Politcnica Salesiana del Ecuador Pgina 402 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.awt.*;
import javax.swing.JApplet;

public class ContadorWhile extends JApplet{


public void paint(Graphics g){
super.paint(g);
int contador=1;
while (contador<=10){
g.drawLine(10,10,250, contador * 10);
++contador;
}
}
}

VARIOS
EJERCICIO 294

Universidad Politcnica Salesiana del Ecuador Pgina 403 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA CALCULAR EL FACTORILA DE UN


NMERO.
FACTORIAL DE 5=1*2*3*4*5=120

import java.io.*;
import java.lang.*;

class Factorialn {

public static void main(String[]args) throws IOException {

int numero;
double factorial=1;

BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));


String cadenaLeida = null;

System.out.println("De que numero entero decea calcular el factorial?");


cadenaLeida = entrada.readLine();

try{

numero = Integer.parseInt(cadenaLeida);
if(numero<0){
System.out.println("No existe el factorial de numeros negativos ");
return;

System.out.print("El factorial de "+numero+" es: ");

while(numero>0){
factorial*=numero--;
}

System.out.println(factorial);
}
catch(NumberFormatException e){

System.out.println("el argumento que se resibio no es un numero entero");


}
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 404 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 295

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA OBTENER EL VOLUMEN DE UN


TETRAEDRO.

import java.io.*;
import java.lang.*;

class VolumenTetraedroEntradaEstandarApli

{
public static void main(String[] args) throws IOException

{
//declaramos las variables necesarias y asignamos valores a los datos de
entrada del algoritmo

double longitudArista;
double volumenTetraedro; //podria asignarle el valor de cero se se
desea

//construimos los objetos que toman la informacion de la entrada


estandar
InputStreamReader lectorEntrada = new InputStreamReader(System.in);
BufferedReader entrada = new BufferedReader(lectorEntrada);
String cadenaLeida = null;

//leemos los datos desde la entrada estandar y convertimos la cadena


obtenida en su
//valor numerico
System.out.println("Cual es la longitud de la arista del tetraedro?");
cadenaLeida = entrada.readLine();
longitudArista = Double.parseDouble(cadenaLeida);

volumenTetraedro = Math.pow(longitudArista,3)*0.1178;

System.out.println("El volumen de un tetraedro con aristas de longitud


");
System.out.print(longitudArista + " unidades es igual a ");
System.out.println(volumenTetraedro + " unidades.");

Universidad Politcnica Salesiana del Ecuador Pgina 405 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
}

EJERCICIO 296

EJEMPLO BSICO DEL USO DE JAVA PARA DIBUJO.

import java.awt.*;
import java.awt.event.*;
class j002 extends Frame
{
public j002()
{
setTitle("Dos Circunferencias.\n");
}
public static void main(String[]args)
{
Frame f=new j002();
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
f.setSize(300,200);
f.setVisible(true);
}
public void paint(Graphics g)
{
g.setColor(Color.red);
g.drawOval(10,30,50,50);
g.setColor(Color.blue);
g.drawOval(60,30,50,50);
g.drawString("Dos Circunferencias.",40,100);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 406 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 297

Muestra un programa para dibujar dos elipses.

//dibuja 2 elipses
import java.awt.*;
import java.awt.event.*; class j009 extends Frame {
public j009() {
setTitle("Dos Elipses");
}
public static void main(String [] args) {
Frame f=new j009();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setSize(300,200);
f.setVisible(true);
}
public void paint(Graphics g){
g.setColor(Color.green);
g.drawOval(10,30,250,150);
g.setColor(Color.yellow);
g.drawOval(40,55,200,125);
g.setColor(Color.black);
g.drawString("Dos Elipses",100,100);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 407 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 298

Un ejemplo de dibujo diferente en java.

import java.awt.*;
import java.awt.event.*;
class j10 extends Frame { public j10() { setTitle("Dibujito"); }
public static void main(String [] args)
{
Frame f=new j10();
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
f.setSize(300,300);
f.setVisible(true);
}

public void paint(Graphics g)


{
g.drawOval(80,100,150,150);
g.drawOval(80,100,30,30);
g.drawOval(130,50,50,50);
g.drawOval(200,100,30,30);
g.drawOval(140,60,5,5);
g.drawOval(160,60,5,5);
g.drawOval(150,75,10,3);
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 408 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

MANEJO DE ARCHIVOS
EJERCICIO 299

REALIZAR UN PROGRAMA EN JAVA QUE OBTENGA:


LA SUMA DE TODOS LOS NMEROS DE UN ARCHIVO
LA SUMA DE LOS MLTIPLOS DE 4: 4,8,12,16

package Deberes10.Ejercicio1;
import java.io.*;
import java.awt.*;

public class Ventana1 extends Frame{


Label lblImpares,lblSuma,lblSu,lblImpares2,lblSuma2,lblSu2;

Universidad Politcnica Salesiana del Ecuador Pgina 409 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Button btnSumar,btnSalir;
List lstImpar,lstImpar2;
double suma=0.0,s=0;

void Sumar(){
try{
java.io.RandomAccessFile archivo=new
RandomAccessFile("C:\\Numeros.txt","rw");
archivo.seek(0);

while(true){
lblSu.setText("");
String linea = archivo.readLine();
if (linea ==null)
break;
s=s+Double.parseDouble(linea);
double a= Double.parseDouble(linea);
if((a % 4)==0)
suma =suma+a;
}
archivo.close();
lblSu.setText("");
lblSu2.setText("");
lblSu2.setText(String.valueOf(s));
lblSu.setText(String.valueOf(suma));
s=0;
suma=0;

catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,e);

void mostrarImpares(){
try{
RandomAccessFile archivo= new RandomAccessFile("C:\\Numeros.txt","rw");
archivo.seek(0);
while(true){
String linea= archivo.readLine();
if(linea==null)
break;

Universidad Politcnica Salesiana del Ecuador Pgina 410 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

lstImpar.add(linea);

}
archivo.close();
}
catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,e);
}
}

void mostrarImpares2(){
try{

RandomAccessFile archivo= new RandomAccessFile("C:\\Numeros.txt","rw");


archivo.seek(111);

while(true){
String linea= archivo.readLine();
if(linea==null)
break;
lstImpar2.add(linea);
linea= archivo.readLine();
}
archivo.close();
}
catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,e);
}
}

public Ventana1() {

setLayout(new GridLayout(5,2));
add(lblImpares= new Label("Lista de Nmeros"));
add(lstImpar= new List());
add(lblImpares2= new Label("Impares mayores a 30"));
add(lstImpar2= new List());
add(lblSuma2= new Label("Suma Total"));
add(lblSu2= new Label());
add(lblSuma= new Label("Suma Mltiplos de 4"));
add(lblSu= new Label());
add(btnSumar=new Button("Sumar"));
add(btnSalir=new Button("Salir"));
mostrarImpares();
mostrarImpares2();
setSize(300,300);

Universidad Politcnica Salesiana del Ecuador Pgina 411 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

setTitle("Ventana");
show();

public boolean action(Event evt,Object ar){


if(evt.target instanceof Button){

if(evt.target == btnSalir)
System.exit(0);
if(evt.target==btnSumar)
{ Sumar();
}

return true;
}
return false;
}

public static void main(String arg[]){


new Ventana1();
}

EL ARCHIVO EST EN EL DISCO LOCAL C://, ESTO SE PUEDE MODIFICAR YA QUE EL


ARCHIVCO PUEDE ESTAR EN CUALQUIER LUGAR, PERO SE TANDR QUE ESPECIFICAR
EN EL PROGRAMA.

Universidad Politcnica Salesiana del Ecuador Pgina 412 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

archivo.seek(0);

Busca el archive hasta la ltima lnea, es lo mismo decir hasta dnde se encuantre el
cursor o al final del archivo.

RandomAccessFile archive

sta lnea permite acceder al archive de manera aleatoria, para realizar algn clculo o
el manejo de los datos segn lo determine el programador.

archivo.readLine();

Lee cada lnea del archivo.

EJERCICIO 300

REALIZAR UN PROGRAMA EN JAVA QUE PERMITE CALCULAR EL TOTAL DE VENTAS


POR VENDEDOR, AS MISMO SE LE DAR UN RECONOCIMIENTO AL EMPLEADO QUE
HAYA REALIZADO MS VENTAS PAR ESTO SE NECESITA MOSTRAR AL EMPLEADO
CON MAYOR VENTAS Y EL NMERO DE VENTAS REALIZADO POR EL EMPLEADO
GANADOR. TAMBIN OBTENER EL PROMEDIO DE VENTA DE LOS EMPLEADOS.

package Deberes10.Ejercicio2;
import java.io.*;
import java.awt.*;

public class Ventana1 extends Frame{

Button btnSumar,btnPromedio,btnSalir,btnMejor,btnCon;
TextField txtResultado,txtEmpleado,txtVen1;
Label lblEmpleados,lblResultado,lblRe,lblPr,lblPr1;
TextField txtEm;
Label lblEmpleado,lblPromedio,lbl1,lblVentas,lblVenta,lblVen;
List lstEmpleados;
Choice Cventas;
double suma=0.0,sum=0.0;

int cont=0;
String mejor,b,c;
double promedio=0,prom=0.0;
double[] em=new double[3];

double [] a= new double[1];


double cont1;

Universidad Politcnica Salesiana del Ecuador Pgina 413 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

void mostrarEmpleados(){
try{
RandomAccessFile archivo= new RandomAccessFile("C:\\Vendedor.txt","rw");
archivo.seek(0);
while(true){
String linea= archivo.readLine();
if(linea==null)
break;
lstEmpleados.add(linea);

}
archivo.close();
}
catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,e);
}
}

void Sumar1(){

try{
RandomAccessFile archivo=new RandomAccessFile("C:\\Ventas.txt","rw");
archivo.seek(0);

while(true){
archivo.readLine();
String linea = archivo.readLine();
if (linea ==null){
break;
}
double valor=Double.parseDouble(linea);
suma +=valor;
cont++;
}
lblRe.setText(String.valueOf (suma));
archivo.close();
javax.swing.JOptionPane.showMessageDialog(null,"Suma resultado");
}
catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,e);

}
}

Universidad Politcnica Salesiana del Ecuador Pgina 414 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

//***********PROMEDIO DE LOS
EMPLEADOS********************************************************//

void Sumar2(){
try{
RandomAccessFile archivo=new RandomAccessFile("C:\\Ventas.txt","rw");
archivo.seek(0);
lblPr1.setText("");
while(true){
String linea = archivo.readLine();
if (linea ==null){
break;
}
b= txtVen1.getText();
if(linea.equals(b)){
linea = archivo.readLine();
double val=Double.parseDouble(linea);
sum +=val;
cont++;
linea = archivo.readLine();
linea = archivo.readLine();
}
linea = archivo.readLine();
}
prom=sum/cont;
lblPr1.setText(String.valueOf (prom));

sum=0.0;
cont=0;
prom=0.0;
archivo.close();
javax.swing.JOptionPane.showMessageDialog(null,"Suma resultado");
}

catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,e);

}
}
//**************************************************************/
void Promedio(){
try{
promedio=suma/cont;
lblPromedio.setText(String.valueOf(promedio));
}
catch(Throwable e){

Universidad Politcnica Salesiana del Ecuador Pgina 415 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

javax.swing.JOptionPane.showMessageDialog(null,""+promedio);
}
}
//****************************************************
void Mejor(){
double suma=0.0;
em[0]=0; em[1]=0; em[2]=0;
try{
RandomAccessFile archivo=new RandomAccessFile("C:\\Ventas.txt","rw");
archivo.seek(0);
String linea1="",linea2="";

while(true){
linea1=archivo.readLine();

if(linea1==null){
break;
}
linea2=archivo.readLine();

if(linea1.equals("CARLOS")){
em[0]=em[0]+ Double.parseDouble(linea2);

}
if(linea1.equals("PEDRO")){
em[1]=em[1]+ Double.parseDouble(linea2);
}

if(linea1.equals("JOSE")){
em[2]=em[2]+ Double.parseDouble(linea2);
cont1++;
}
}
if(em[0] >= em[1]){
if(em[0] >= em[2])
mejor="CARLOS";
else
mejor="JOSE";
}
else{
if(em[1] >= em[2] )
mejor="PEDRO";
else

Universidad Politcnica Salesiana del Ecuador Pgina 416 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

mejor="JOSE";
}

javax.swing.JOptionPane.showMessageDialog(null,"CARLOS "+em[0]+" PEDRO


"+em[1]+" JOSE "+em[2]);
this.txtEmpleado.setText(mejor);
}
catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,e);
}
}

void Mejor1(){
em[0]=0; em[1]=0; em[2]=0;
try{
RandomAccessFile archivo=new RandomAccessFile("C:\\Ventas.txt","rw");
archivo.seek(0);
String linea1="",linea2="";

while(true){
linea1=archivo.readLine();
if(linea1==null){
break;
}
if(linea1.equals("JOSE")){
em[2]=em[2]+ Double.parseDouble(linea2);
}
}

javax.swing.JOptionPane.showMessageDialog(null," JOSE "+em[2]);

}
catch(Throwable e){
}
}

public Ventana1(){
setTitle("Ventas");
this.setLayout(new GridLayout(10,2));

add(lblEmpleados=new Label("Lista de Empleados"));


add(lstEmpleados=new List());

Universidad Politcnica Salesiana del Ecuador Pgina 417 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

add(lblVen=new Label("Nombre del Vendedor"));


add(txtVen1=new TextField());
add(lblResultado=new Label("Total de Ventas"));
add(lblRe=new Label());
add(lbl1=new Label("Promedio total de Ventas"));
add(lblPromedio=new Label());
add(lblEmpleado=new Label("Mejor empleado"));
add(txtEmpleado=new TextField());
add(lblVentas=new Label(" N. de Ventas del Mejor Empleado"));
add(lblVenta=new Label());
add(lblPr=new Label(" Promedio de los empleados"));
add(lblPr1=new Label());
add(btnSumar=new Button("Sumar"));
add(btnPromedio=new Button("Promedio"));
add(btnCon=new Button("Consultar"));
add(btnMejor=new Button("Mejor Empleado"));
add(btnSalir=new Button("Salir"));
mostrarEmpleados();

setSize(430,400);
show();

public boolean action(Event evt, Object ar){

if(evt.target instanceof Button){


if(evt.target==btnSalir)
System.exit(0);
if(evt.target==btnSumar){
Sumar1(); btnSumar.disable();}
if(evt.target==btnPromedio)
Promedio();
if(evt.target==btnCon)
Sumar2();
if(evt.target==btnMejor)
Mejor();
return true;
}
return false;
}

public static void main(String arg[]){

Universidad Politcnica Salesiana del Ecuador Pgina 418 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

new Ventana1();
}

EJERCICIO 301

REALIZAR UN PROGRAMA EN JAVA QUE SLO PERMITA EL INGRESO DE LO


SIGUIENTE:

Universidad Politcnica Salesiana del Ecuador Pgina 419 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

La vivienda son de tipo A,B,C yel trabajo tambin se divide por clases A,B Y C.

package Deberes10.Ejercicio3.Interfaz1;
import java.io.*;
import java.awt.*;

public class Seguro1 extends Frame{


Label
lblNombres,lblApellidos,lblEdad,lblValor,lblPorcentaje,lblPor,lblTipo,txtTi,lblVi,lblVivien
da,lblTrabajo;
TextField txtNom,txtApe,txtEd,txtVa;
Button btnGuardar,btnSalir,btnAdicional,btnTipo;
Choice chcTipo,chcTra;
double valor,r,rr;
String a,b;

String idVivie(String Vivie){


try{
RandomAccessFile archivo= new RandomAccessFile("c:\\Vivie.txt","rw");
archivo.seek(0);
while(true){
String linea= archivo.readLine();

if (linea==null)
break;

if (Vivie. equals (linea)){


archivo.close();
return linea;
}

}
archivo.close();

Universidad Politcnica Salesiana del Ecuador Pgina 420 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

catch (Throwable e){


javax.swing.JOptionPane.showMessageDialog(null, e);
}
return "";
}

String idTraba(String Tra){


try{
RandomAccessFile archivo= new RandomAccessFile("c:\\Vivie.txt","rw");
archivo.seek(0);
while(true){
String linea= archivo.readLine();

if (linea==null)
break;

if (Tra. equals (linea)){


archivo.close();
return linea;
}

}
archivo.close();
}
catch (Throwable e){
javax.swing.JOptionPane.showMessageDialog(null, e);
}
return "";
}

void CargarTipo(){
try{
RandomAccessFile archivo= new RandomAccessFile("c:\\Vivie.txt","rw");
archivo.seek(0);
while(true){
String linea= archivo.readLine();

if (linea==null)
break;

chcTipo.add(linea);
}

Universidad Politcnica Salesiana del Ecuador Pgina 421 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

}
catch (Throwable e){
javax.swing.JOptionPane.showMessageDialog(null, e);
}
}

void CargarTipo1(){
try{
RandomAccessFile archivo= new RandomAccessFile("c:\\Vivie.txt","rw");
archivo.seek(0);
while(true){
String linea= archivo.readLine();

if (linea==null)
break;
chcTra.add(linea);
}
}
catch (Throwable e){
javax.swing.JOptionPane.showMessageDialog(null, e);
}
}

void Comprobar(){

try{
RandomAccessFile archivo=new RandomAccessFile("C:\\seguro.txt","rw");
archivo.seek(0);

while(true){

String linea = archivo.readLine();


archivo.readLine();
archivo.readLine();

if (linea ==null){
break;
}

double a=Double.parseDouble(txtEd.getText());

if((a>0)&&(a<6)){

Universidad Politcnica Salesiana del Ecuador Pgina 422 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

r=((a*15)/100);

}
archivo.readLine();
}
lblPor.setText(String.valueOf (r));
archivo.close();
javax.swing.JOptionPane.showMessageDialog(null,"Suma resultado");

catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,e);

void Comprobar1(){

try{
RandomAccessFile archivo=new RandomAccessFile("C:\\seguro.txt","rw");
archivo.seek(0);

while(true){

String linea = archivo.readLine();


archivo.readLine();
archivo.readLine();
archivo.readLine();
archivo.readLine();

if (linea ==null){
break;
}

double b=Double.parseDouble(txtTi.getText());

if(linea.equals("A")){
rr=((b*5)/100);
}

Universidad Politcnica Salesiana del Ecuador Pgina 423 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

archivo.readLine();
}
lblVi.setText(String.valueOf (rr));
archivo.close();
javax.swing.JOptionPane.showMessageDialog(null,"Suma resultado");

catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,e);

public Seguro1() {

setLayout(new GridLayout(7,2));

add(lblNombres= new Label("Nombres"));


add(txtNom= new TextField());
add(lblApellidos= new Label("Apellidos"));
add(txtApe= new TextField());
add(lblEdad= new Label("Edad"));
add(txtEd= new TextField());
add(lblValor= new Label("Valor seguro"));
add(txtVa= new TextField());
add(lblVivienda= new Label("Vivienda"));
add(chcTipo= new Choice());
add(lblTrabajo= new Label("Trabajo"));
add(chcTra= new Choice());

add(btnGuardar=new Button("Guardar"));
add(btnSalir=new Button("Salir"));
CargarTipo();
CargarTipo1();
setSize(200,200);
setTitle("Ingreso");
show();

public boolean action(Event evt,Object ar){

Universidad Politcnica Salesiana del Ecuador Pgina 424 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

if(evt.target instanceof Button){


if(evt.target == btnSalir)
System.exit(0);
if(evt.target == btnAdicional)
Comprobar();
if(evt.target == btnTipo)
Comprobar1();
if(evt.target == btnGuardar)
guardar();

return true;
}
return false;
}
void guardar(){
try{
RandomAccessFile archivo = new RandomAccessFile("C:\\seguro.txt","rw");
archivo.seek(archivo.length());
archivo.writeBytes(txtNom.getText()+"\n");
archivo.writeBytes(txtApe.getText()+"\n");
archivo.writeBytes(txtEd.getText()+"\n");
archivo.writeBytes(txtVa.getText()+"\n");
archivo.writeBytes(idVivie(chcTipo.getSelectedItem())+"\n");
archivo.writeBytes(idTraba(chcTra.getSelectedItem())+"\n");

archivo.close();
javax.swing.JOptionPane.showMessageDialog(null,"Ingreso Exitoso");
txtNom.setText("");
txtApe.setText("");
txtEd.setText("");
txtVa.setText("");
txtVa.requestFocus();
}
catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,e);
}

public static void main(String arg[]){


new Seguro1();
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 425 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 302

REALIZAR EN PROGRAMA EN JAVA QUE PERMITA MOSTRAR UNA BARRA DE


DESPLAZAMIENTO.

SCROLLBAR

/**
* Este programa implementa un ejemplo de uso de la clase Scrollbar.
* Crea una barra de desplazamiento horizontal, que permite la seleccin
* de valores entre 0 y 255, con un ancho del indicador de 64 pixels
*/
import java.awt.*;
import java.awt.event.*;

class java1310 extends Frame {


public static void main( String args[] ) {
// Se instancia un objeto del tipo de la clase
new java1310();
}

public java1310() {
Scrollbar rango;

rango = new Scrollbar( Scrollbar.HORIZONTAL,0,64,0,255 );

Frame miFrame = new Frame( "Tutorial de Java, AWT" );


// Se incorpora la barra de desplazamiento al objeto Frame
miFrame.add( rango,"Center" );

// Se fija el tamao del Frame y se hace que aparezca todo


// en pantalla
miFrame.setSize( 300,50 );
miFrame.setVisible( true );

// Se instancia y registra un objeto receptor de eventos de la


// ventana para poder concluir la aplicacin cuando el usuario
// cierre el Frame
Conclusion conclusion = new Conclusion();
miFrame.addWindowListener( conclusion );
}
}

// Concluye la ejecucion de la aplicacion cuando el usuario cierra la

Universidad Politcnica Salesiana del Ecuador Pgina 426 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

// ventana, porque se genera un evento windowClosing


class Conclusion extends WindowAdapter {
public void windowClosing( WindowEvent evt ) {
System.exit( 0 );
}
}

NMEROS ALEATORIOS CON RANDOM


EJERCICIO 303

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA GENERAR UN NMERO


ALEATORIO ENTRE EL 0-2.

import java.io.*;
import java.lang.*;

class Aleatorio{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

Universidad Politcnica Salesiana del Ecuador Pgina 427 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

double aleatorio=0;

aleatorio=Math.random()*3;
System.out.println("Numero aleatorio: " +aleatorio);
}
}

EJERCICIO 304

MUESTRA DISTINTAS FUNCIONES DELM MTODO MATH.

class java800 {
public static void main( String args[] ) {
int x;
double rand,y,z;
float max;

rand = Math.random();
x = Math.abs( -123 );
y = Math.round( 123.567 );
z = Math.pow( 2,4 );
max = Math.max( (float)1e10,(float)3e9 );

System.out.println( rand );
System.out.println( x );
System.out.println( y );
System.out.println( z );
System.out.println( max );

}
}

EJERCICIO 305

Universidad Politcnica Salesiana del Ecuador Pgina 428 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA GENERAR UN NMERO


ALEATORIO DEL 0.

import java.io.*;
import java.lang.*;

class Aleatorio1{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

double aleatorio=0;

aleatorio=Math.random()*1;
System.out.println("\n"+"Numero aleatorio: " +aleatorio);
}
}

EJERCICIO 306

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA GENERAR UN NMERO


ALEATORIO ENTRE EL 1-3.

import java.io.*;
import java.lang.*;

class Aleatorio2{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

double aleatorio=0;

aleatorio=Math.random()*3+1;
System.out.println("\n"+"Numero aleatorio: " +aleatorio);
}

Universidad Politcnica Salesiana del Ecuador Pgina 429 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 307

REALIZAR UN PROGRAMA EN JAVA QUE PERMITA GENERAR UN NMERO


ALEATORIO ENTRE EL 1-10.

import java.io.*;
import java.lang.*;

class Aleatorio3{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));

double aleatorio=0;

aleatorio=Math.random()*10+1;
System.out.println("\n"+"Numero aleatorio: " +aleatorio);
}
}

EJERCICIO 308

REALIZAR UN PROGRAMA QUE SIMULE 6 LANZAMIENTOS DE DOS DADOS.

import java.io.*;
import java.lang.*;

class Dados{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));
int c=1;
int num1=0, num2=0;

Universidad Politcnica Salesiana del Ecuador Pgina 430 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

while(c<7){
num1=(int)(Math.random()*6)+1;
num2=(int)(Math.random()*6)+1;

System.out.println("Lanzamiento: "+c);
System.out.println("Dado1: "+num1);
System.out.println("Dado2: "+num2);
c++;
}
}
}

EJERCICIO 309

REALIZAR UN PROGRAMA EN JAVA QUE SIMULE EL SALTO DE UNA RANA.

PASOS:
NO DA SALTO
SALTA 1MT.
SALTA 2MT
TIENE QUE RECORRER 20 METROS, ES LA META.

import java.io.*;
import java.lang.*;

class SaltoRana{

public static void main(String arg[]) throws IOException{


BufferedReader temp = new BufferedReader( new
InputStreamReader(System.in));
int numero=0,m=0,c=1;

Universidad Politcnica Salesiana del Ecuador Pgina 431 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

System.out.println("\t\t\tSalto de la Rana");
while(m<=20){
numero=(int)(Math.random()*3);
System.out.print(numero+"\t");
c++;
if(numero==0)m=m+0;
if(numero==1)m=m+1;
if(numero==2)m=m+2;
}
System.out.println("\n\n"+"La rana llego en: "+c+" saltos");
}
}

EJERCICIO 310

ADIVINA UN NMERO.

/*
* Adivina.java
*
* Created on 28 de diciembre de 2005, 09:47 PM
*/

package Deberes;

/**
*
* @author Susana E. Vaque Guzmn
* @version
*/
public class Adivina extends java.awt.Frame {
int a;
/** Creates new form Adivina */
public Adivina() {
initComponents ();
setSize (500, 300);
setTitle ("Susana - Adivina el numero");
a = aleatorio ();

Universidad Politcnica Salesiana del Ecuador Pgina 432 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

/** This method is called from within the constructor to


* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the FormEditor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
L = new java.awt.Label();
T = new java.awt.TextField();
button1 = new java.awt.Button();
setLayout(new java.awt.GridLayout(3, 1));
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
}
);

L.setFont(new java.awt.Font ("Vladimir Script", 0, 24));


L.setBackground(new java.awt.Color (204, 204, 204));
L.setForeground(java.awt.Color.red);
L.setText("Adivine un n\u00famero entre 1 y 1000 ");
L.setAlignment(java.awt.Label.CENTER);

add(L);

T.setBackground(java.awt.Color.white);
T.setFont(new java.awt.Font ("Times New Roman", 3, 48));
T.setForeground(java.awt.Color.green);
T.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
TActionPerformed(evt);
}
}
);
T.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
textField1KeyPressed(evt);
}
}
);

add(T);

Universidad Politcnica Salesiana del Ecuador Pgina 433 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

button1.setFont(new java.awt.Font ("Dialog", 0, 11));


button1.setLabel("S A L I R");
button1.setBackground(new java.awt.Color (157, 185, 200));
button1.setForeground(java.awt.Color.black);
button1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
button1ActionPerformed(evt);
}
}
);

add(button1);

}//GEN-END:initComponents

private void TActionPerformed(java.awt.event.ActionEvent evt) {//GEN-


FIRST:event_TActionPerformed
// Add your handling code here:
}//GEN-LAST:event_TActionPerformed

private void textField1KeyPressed(java.awt.event.KeyEvent evt) {//GEN-


FIRST:event_textField1KeyPressed
if (evt.getKeyCode() == 10) {
int val = Integer.parseInt(T.getText());
if (val < a)
L.setText("M U Y B A J O!");
else
if (val > a)
L.setText("M U Y A L T O!");
else {
L.setText("** E X C E L E N T E **");
javax.swing.JOptionPane.showMessageDialog(null, "Felicidades. Adivino el
Nmero!");
javax.swing.JOptionPane.showMessageDialog(null, "=> N u e v o n u m e r o
<=");
L.setText("Adivine un nmero entre 1 y 1000 ");
a = aleatorio ();
}
T.setText("");
}
// Add your handling code here:
}//GEN-LAST:event_textField1KeyPressed
int aleatorio () {
return (int) ((Math.random()*1000) + 1);
}

Universidad Politcnica Salesiana del Ecuador Pgina 434 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

private void button1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-


FIRST:event_button1ActionPerformed
System.exit(0);// Add your handling code here:
}//GEN-LAST:event_button1ActionPerformed

/** Exit the Application */


private void exitForm(java.awt.event.WindowEvent evt) {//GEN-
FIRST:event_exitForm
System.exit (0);
}//GEN-LAST:event_exitForm

/**
* @param args the command line arguments
*/
public static void main (String args[]) {
new Adivina ().show ();
}

// Variables declaration - do not modify//GEN-BEGIN:variables


private java.awt.Label L;
private java.awt.TextField T;
private java.awt.Button button1;
// End of variables declaration//GEN-END:variables

Universidad Politcnica Salesiana del Ecuador Pgina 435 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Universidad Politcnica Salesiana del Ecuador Pgina 436 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

EJERCICIO 311

EJERCICIO DE LA RULETA RUSA.

ALEATORIO

/*
* Empleado.java
*
* Created on 26 de diciembre de 2005, 04:17 PM
*/

package Deberes;

/**
*
* @author Susana E. Vaque Guzmn
* @version
*/
public class Ruleta_Rusa {

int Bala;//[6]; Arreglo

int Disparo(){
return (int)(Math.random()*2);
}

Ruleta_Rusa() {
Bala = Disparo();
if (Bala == 1)
System.out.println("1er. Disparo");
else {
Bala = Disparo();
if (Bala == 1)

Universidad Politcnica Salesiana del Ecuador Pgina 437 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

System.out.println("2do. Disparo");
else {
Bala = Disparo();
if (Bala == 1)
System.out.println("3er. Disparo");
else {
Bala = Disparo();
if (Bala == 1)
System.out.println("4to. Disparo");
else {
Bala = Disparo();
if (Bala == 1)
System.out.println("5to. Disparo");
else
System.out.println("6to. Disparo");
}
}
}
}
}

public static void main (String arg[])


{
new Ruleta_Rusa();
}
}

EJERCICIO 312

PARA MOSTRAR QUE JAVA VA SERVIRTE DE MUCHA UTILIDAD.

EJEMPLO QUE PERMITE EL USO DEL MOUSE PARA MOVER LA ETIQUETA EN EL


PANEL.

/**
* Este ejemplo permite desplazar una etiqueta por la ventana que se
* genera. Se utilizan los eventos de posicionamiento del rattn,
* tanto cuando se est arrastrando como cuando se ha movido de
* sitio el puntero
*/

Universidad Politcnica Salesiana del Ecuador Pgina 438 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

import java.awt.*;
import java.awt.event.*;

public class java1110 {


public static void main( String args[] ) {
// Aqui se instancia un objeto de tipo Interfaz Hombre-Maquina
IHM ihm = new IHM();
}
}

// Esta clase se utiliza para instaciar un objeto de tipo interfaz de


// usuario
class IHM {
// Variables de referencia pasadas como parmetros
Label miEtiqueta;
LabelInfo miEtiquetaInfo;
// Posicin inicial de la etiqueta
int posicionX = 50;
int posicionY = 25;

public IHM() {
// Crea un objeto visual Etiqueta (Label)
miEtiqueta = new Label( "Etiqueta" );
miEtiqueta.setBackground( Color.yellow );

// Crea un objeto Panel para contener la etiqueta


Panel miPanel = new Panel();
miPanel.setLayout( null );
miPanel.add( miEtiqueta );
// Fijamos la posicin y ancho y alto de la etiqueta
miEtiqueta.setBounds( posicionX,posicionY,125,100 );

// Crea un objeto visual Frame para contenerlo todo


Frame miFrame = new Frame();
miFrame.setSize( 300,200 );
miFrame.setTitle( "Tutorial de Java, Eventos" );
miFrame.add( "Center",miPanel );
miFrame.setVisible( true );

// Crea un objeto para mantener informacin acerca de la


// etiqueta
miEtiquetaInfo = new LabelInfo();
miEtiquetaInfo.labelX = posicionX;
miEtiquetaInfo.labelY = posicionY;

Universidad Politcnica Salesiana del Ecuador Pgina 439 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

// Se instancia y registra un objeto MouseMotionListener


// y otro MouseListener que procesarn los eventos de
// movimiento del ratn y de los botones del ratn
miEtiqueta.addMouseMotionListener(
new ProcesoMovimientoRaton( miEtiquetaInfo ) );
miEtiqueta.addMouseListener(
new ProcesoRaton( miEtiquetaInfo,miEtiqueta ) );

// Se instancia y registra un objeto receptor de eventos


// para terminar la ejecucion del programa cuando el
// usuario decida cerrar la ventana
Conclusion procesoVentana = new Conclusion();
miFrame.addWindowListener( procesoVentana );
}
}

// Esta es una clase auxiliar que se utiliza para guardar las


// posiciones en que se encuentra la etiqueta y tambin las
// coordenadas en las que se mueve el ratn y las coordenadas
// en que se encontraba el cursor al pulsar uno de los botones
// del ratn
class LabelInfo {
int labelX;
int labelY;
int ratonPulsadoX;
int ratonPulsadoY;
int ratonMovidoX;
int ratonMovidoY;
}

// Esta clase receptor se utiliza para monitorizor los eventos


// de pulsacion de los botones del raton y los eventos que se
// producen al soltar el botn. Los dos eventos se utilizan para
// determinar la posicin inicial y final en que se encuentra la
// etiqueta
class ProcesoRaton extends MouseAdapter {
LabelInfo labelInfo;
Label label;

ProcesoRaton( LabelInfo iLabelInfo,Label iLabel ) {


labelInfo = iLabelInfo;
label = iLabel;
}

Universidad Politcnica Salesiana del Ecuador Pgina 440 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

public void mousePressed( MouseEvent evt ) {


// Guarda la posicin inicial en que se pulsa el ratn
labelInfo.ratonPulsadoX = evt.getX();
labelInfo.ratonPulsadoY = evt.getY();
}

// Al soltar el botn se calcula la nueva posicin de la


// etiqueta, en funcin de su posicin inicial, el punto en
// que se encontraba el ratn al pulsar el botn y el punto
// final cuando se suelta el botn. Hay pulsar y soltar dentro
// de la etiqueta, sino no se realiza ningn movimiento
public void mouseReleased( MouseEvent evt ) {
int nuevaPosicionX = labelInfo.labelX +
labelInfo.ratonMovidoX - labelInfo.ratonPulsadoX;
int nuevaPosicionY = labelInfo.labelY +
labelInfo.ratonMovidoY - labelInfo.ratonPulsadoY;

// Movemos la etiqueta a la nueva posicin


label.setLocation( nuevaPosicionX,nuevaPosicionY );
// Guarda la posicin actual de la etiqueta
labelInfo.labelX = nuevaPosicionX;
labelInfo.labelY = nuevaPosicionY;
}
}

// Esta clase receptor se utiliza para monitorizor los eventos


// de movimiento del raton
class ProcesoMovimientoRaton extends MouseMotionAdapter {
LabelInfo labelInfo;

ProcesoMovimientoRaton( LabelInfo iLabelInfo ) {


labelInfo = iLabelInfo;
}

public void mouseDragged( MouseEvent evt ) {


System.out.println( "Arrastre = "+evt );
// Guarda la posicin durante el movimiento del ratn
labelInfo.ratonMovidoX = evt.getX();
labelInfo.ratonMovidoY = evt.getY();
}

public void mouseMoved( MouseEvent evt ) {


System.out.println( "Movido = "+evt );
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 441 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

// Este repector de eventos de la ventana se utiliza para concluir


// la ejecucion del programa cuando el usuario pulsa sobre el boton
// de cierre del Frame
class Conclusion extends WindowAdapter {
public void windowClosing( WindowEvent evt ) {
System.exit( 0 );
}
}

Universidad Politcnica Salesiana del Ecuador Pgina 442 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

Webliografa
REEMPLAZAR
Arboles de Java
http://java.cs.tamu.edu/docs/jdk1.2/api/java/lang/
Clase System de java.lang
http://java.cs.tamu.edu/docs/jdk1.2/api/java/lang/System.html
Hoja de los prodcutos Java
http://java.sun.com/products/products.a-z.html
Tutorial de Java
http://java.sun.com/docs/books/tutorial/index.html

http://wwww.itapizaco.edu.mx

Java
http://jcca007.iespana.es/codigosjava.htm

http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java_/_Versi%C3%B3n_Para_I
mprimir#Operadores_2

ESTRUCTURA DE CONTROL
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java_/_Estructuras_de_selecci
%C3%B3n

if

http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java_/_Sentencia_if-else

TIPOS DE DATOS
http://usuarios.lycos.es/jjmurias/java/Tipos%20de%20datos.htm

CREACION DE OBJETOS
http://altatorre.com/webclase/java/ejemplosconstructores.htm

BASICO
http://www.altatorre.com/webclase/java/ejerciciosvarobj_resueltos.htm

TUTORIAL JAVA

http://www.programacion.com/java/tutorial/java_basico/2/

Universidad Politcnica Salesiana del Ecuador Pgina 443 /620


Libro para el Estudio de la Programacin en Java
La inteligencia no se mide por la suma de conocimientos adquiridos,
sino por la forma como se comparten esos conocimientos.

http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte5/cap5-4.html

http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parteE/cape-1.html

POLIMORFISMO

http://foro.elhacker.net/java/ejercicios_java_teoriaejemplos-t34891.0.html

Universidad Politcnica Salesiana del Ecuador Pgina 444 /620

También podría gustarte