FOLLETO DE JAVA+vertical1
FOLLETO DE JAVA+vertical1
Parte Inicial
ENTENDIENDO
LA PROGRAMACIN
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.
2.1. Variables
Var
Entero N
La variable N representa un dato tipo numrico
especficamente entero.
Var
Real Contador,Suma
Var
Var
Boleano bandera
Var
String Nombre, Apellidos, Direccin
Real Contador,Suma
Entero N
Boleano bandera
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:
Problema 1.1
Tomando en consideracin los siguientes nombres 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
3. Operaciones y Operadores
Cada uno de los cuales al ser evaluadas devuelven un valor lgico (boleano)
que puede ser verdadero o falso, siendo estos:
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
B <= C Falso
101 >= B Verdadero
A -B = C Verdadero
Operacin Resultado
A <= B
Verdadero
65<=66
B < b
Verdadero
66<98
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
Operaciones Resultado
A+2* B
13
5+8
A ^2+2
27
25+2
10 mod 3 1
25 div B 6
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
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
Resp. Literal d
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
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
Resp. Literal c
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"
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
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:
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.
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.
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
5. Problemas propuestos
1
2
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
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 (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.
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")
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:
Ejemplo:
Leer las longitudes de un rectngulo y calcular la superficie y el permetro.
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) .
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.
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
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:
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
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.
Ejemplos:
gol_local gol_local + 1
vueltas vueltas + 1
faltan faltan 1
de_cinco de_cinco + 5
cc+1
x x3
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)
Ejemplos:
saldo saldo + entrega
saldo saldo retiro
suma suma + numero
A A + edad
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
Ejemplo:
Si A = 5 entonces
Escribir("A es 5" )
Si - no
Escribir "A no es igual a 5"
Fin si
Si {condicin} entonces
instruccin 1
instruccin 2
.........
instruccin n
Fin si
Por ejemplo:
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
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
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
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)
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
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
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
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
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:
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
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:
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
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
Resp. Literal e
mientras {condicin}
accin 1
accin 2
accin 3
.....
accin n
Fin mientras
instruccin X
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
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
Problema 1. 11
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.
Resp. Literal c
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
El Paso4 debera ser: Si asigna S S*S, para que el algoritmo cumpla 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
10.Problemas propuestos
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.
Segunda Parte
FLUJO DE DATOS
Smbolo Explicacin
INICIO
.
.
.
FIN
2. Las lneas utilizadas para indicar la direccin del flujo del diagrama deben ser
rectas, verticales u horizontales.
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.
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
i. Escribir un Diagrama de flujos que calcula el area de un rectngulo ingresando su base y su altura
INICIO Inicio
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
iii. Realice un Diagrama de flujos que determina si un nmero ingresado es mayor que cero
Inicio
INICIO
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
v. Realice un Diagrama de Flujos que imprime la palabra fin si se ingresa el nmero -9999
Inicio
INICIO
Repetir
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
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
INICIO
R1
i0
Leer(n)
V RR*2
i< n i i + 1
F
R FIN
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
Solucin
Realizando la prueba de escritorio para valores de se tiene
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
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
Solucin:
Realizamos la prueba de escritorio correspondiente
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
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
Resp. Literal c
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
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.
Ahora veamos el caso en que la condicional ejecute alguna instruccin en caso que no
se cumpla.
If <Expesin> then
Instrucccin1
Else
Instruccin2;
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.
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;
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.
Case <variable> of
Valor1: <Grupo1 de expresiones>
Valor2: <Grupo2 de expresiones>
...
ValorN: <GrupoN de expresiones>
Else
<GrupoN de expresiones>
End;
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.
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
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.
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.
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.
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;
Program Numeros;
Begin
For I:= 1 to 100 do
Writeln (i);
End.
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.
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
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
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.
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
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
SINTAXIS
While ( Condicin ) Do
Begin
<Bloque De Instrucciones>
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
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.
Problema 2.6
Si se ingresa el nmero 5 para la variable c en el siguiente programa
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
Solucin :
Este es un problema interesante para las personas que tienen problemas con las
estructuras condicionales.
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.
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.
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.
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.
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.
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.
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 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;
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
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.
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:
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:
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 ;
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
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
i0
mientras i < 6 hacer
escribir ( i )
i i +1
fin_mientras
i0
mientras i < 6 hacer
i i +1
escribir ( i )
fin_mientras
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
e)
inicio
i1
repetir
<acciones>
ii+1
hasta_que i > n
fin
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
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
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
X[4] 45
Suma X[1] + X[3]
Suma Suma + X[4]
X[5] X[5] + 3.5
X[6] X[1] + X[2]
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
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;
Todos las dimensiones de los arreglos se pueden cambiar mientras se ejecutan los
programas
x
a x x y
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
INICI
O
i 1
leer(n
)
V
V
n mod i= 0 i 1+1 i <n
i
F F FIN
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
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
en las alternativas
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.
Tercera Parte
PROGRAMACIN
ORIENTADA A OBJETOS
Java
Introduccin.-
Presentaremos la Programacin en Java. Hay dos tipos de programas en Java:
aplicaciones y applets.
/*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");
import java.io.*;
import java.lang.*;
import java.io.*;
import java.lang.*;
/*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");
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.
import java.io.*;
Es comunmente usada con la siguiente lnea:
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
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
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:
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;
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.
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
import java.lang.*;
}
}
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.*;
}
}
NOTE QUE:
System.out.print ("Hola ");
System.out.println ("Mundo");
HolaMundo
import java.io.*;
import java.lang.*;
EJERCICIO 4
import java.io.*;
import java.lang.*;
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.*;
}
}
EJERCICIO 6
MOSTRAR UNA LNEA DE TEXTO USANDO LA SECUENCIA DE ESCAPE PARA TABULAR O
DAR ESPACIOS (\t).
import java.io.*;
import java.lang.*;
System.out.println ("Hola\tMundo");
}
}
EJERCICIO 7
MOSTRAR UNA LNEA DE TEXTO QUE VAYA ENTRE COMILLAS DOBLES.
import java.io.*;
import java.lang.*;
}
}
EJERCICIO 8
REALIZAR UN PROGRAMA EN JAVA QUE MUESTRE UNA LNEA DE TEXTO QUE VAYA
ENTRE COMILLAS SIMPLES.
import java.io.*;
import java.lang.*;
}
}
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.*;
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.*;
System.out.println ("Hola\\Mundo");
}
}
USO DE CONSTANTES
//Enteros.
byte masGrandeByte=Byte.MAX_VALUE;
short masGrandeShort=Short.MAX_VALUE;
int masGrandeInt=Integer.MAX_VALUE;
long masGrandeLong=Long.MAX_VALUE;
//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");
}
}
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;
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();
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"
String strDatos="6.3\n6.2\n6.4\n6.2";
StringTokenizer tokens=new StringTokenizer(strDatos, "\n");
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.
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.
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();
}
//...
}
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
import java.io.*;
import java.lang.*;
EJERCICIO 13
import java.io.*;
import java.lang.*;
System.out.println( mensaje );
mensaje = ("Estoy utilizando variables");
System.out.println( mensaje );
}
}
EJERCICIO 14
REALIZAR EL MISMO PROGRAMA DEL EJERCICIO 12, PERO STA VEZ INICIALIZE LA
VARIABLE STRING.+
import java.io.*;
import java.lang.*;
EJERCICIO 15
import java.io.*;
import java.lang.*;
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
import java.io.*;
import java.lang.*;
int codigo = 0;
codigo=02;
System.out.println(codigo);
}
}
EJERCICIO 17
import java.io.*;
import java.lang.*;
NOTA: Para unir texto, palabras o caracteres se utiliza el signo +, es para concatenar
como usualmente se lo conoce en Java.
EJERCICIO 18
import java.io.*;
import java.lang.*;
EJERCICIO 19
EJERCICIO 20
import java.io.*;
import java.lang.*;
System.out.println( valor );
}
}
EJERCICIO 21
import java.io.*;
import java.lang.*;
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.*;
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.*;
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.*;
}
}
EJERCICIO 25
REALIZAR UN PROGRAMA EN JAVA QUE PERMITA CONCATENAR UN VALOR ENTERO
CON UNA DE CARACTERES.
import java.io.*;
import java.lang.*;
System.out.println(saludo+saludo4+saludo5);
}
}
import javax.swing.JOptionPane;
JOptionPane.showMessageDialog
JOptionPane.showInputDialog
num1=Integer.parseInt(primerNumero);
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*/
}
}
EJERCICIO 28
MOSTRAR TEXTO EN UN CUADRO DE DILOGO, UTILIZANDO SECUENCIAS DE ESCAPE.
//Paquete de Java
import javax.swing.JOptionPane; /*El programa usa JOptionPane*/
JOptionPane.showMessageDialog(null,"Bienvenido\na\nla\nprogramacion\nen
Java!!!");
System.exit (0); /*terminar la aplicacin con la ventana*/
}
}
EJERCICIO 29
//Paquete de Java
import javax.swing.JOptionPane;
public class Cuadro {
public static void main (String args []) {
String primerNumero;
String segundoNumero;
int num1;
num1=Integer.parseInt(primerNumero);
JOptionPane.showMessageDialog (null,"El nmero ingresado es:
"+num1);
System.exit (0);
}
}
EJERCICIO 30
//Paquete de Java
import javax.swing.JOptionPane;
public class Cuadro {
public static void main (String args []) {
String primerNumero;
String segundoNumero;
int num1;
int num2;
num1=Integer.parseInt(primerNumero);
num2=Integer.parseInt(segundoNumero);
JOptionPane.showMessageDialog (null,"Los nmeros ingresados son:
"+num1 +" y "+num2);
System.exit (0);
}
}
EJERCICIO 31
import java.io.*;
import java.lang.*;
/*Librera utilizada para cuadros de dilogos*/
import javax.swing.JOptionPane;
String nombre;
String apellido;
}
}
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
import java.io.*;
public class j0006
{
public static void main(String[]args)throws IOException
{
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
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
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
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);
}
}
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
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;
EJERCICIO 38
import java.lang.*;
import java.io.*;
suma= num1+num2;
System.out.println("Resultado= "+ suma);
}
}
EJERCICIO 39
REALIZAR EL MISMO PROGRAMA DEL EJERCICIO 34, PERO STA VEZ UTILIZE CUADROS
DE DILOGOS.
//Paquete de Java
import javax.swing.JOptionPane;
String primerNumero;
String segundoNumero;
int num1;
int num2;
int suma;
primerNumero=JOptionPane.showInputDialog("Escriba el primer
nmero"); segundoNumero=JOptionPane.showInputDialog("Escriba el segundo
nmero");
System.exit(0);
}
}
EJERCICIO 40
import java.io.*;
import java.lang.*;
class Promedio {
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 ());
suma=num1+num2+num3;
prom=suma/3;
EJERCICIO 41
//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;
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);
}
}
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
import java.io.*;
import java.lang.*;
EJERCICIO 43
import java.io.*;
import java.lang.*;
}
}
EJERCICIO 44
import java.io.*;
import java.lang.*;
EJERCICIO 45
import java.io.*;
import java.lang.*;
EJERCICIO 46
import java.io.*;
import java.lang.*;
EJERCICIO 47
import java.io.*;
import java.lang.*;
EJERCICIO 48
import java.io.*;
import java.lang.*;
EJERCICIO 49
import java.io.*;
import java.lang.*;
EJERCICIO 50
import java.io.*;
import java.lang.*;
{
/* no se modificar el valor durante la ejecucin del programa, si tratamos de
modificarla el compilador dar un error*/
import java.io.*;
import java.lang.*;
EJERCICIO 52
import java.io.*;
import java.lang.*;
EJERCICIO 53
import java.io.*;
import java.lang.*;
EJERCICIO 54
import java.io.*;
import java.lang.*;
EJERCICIO 55
import java.io.*;
import java.lang.*;
EJERCICIO 56
import java.io.*;
import java.lang.*;
}
}
EJERCICIO 57
import java.io.*;
import java.lang.*;
}
}
EJERCICIO 58
import java.io.*;
import java.lang.*;
EJERCICIO 59
import java.io.*;
import java.lang.*;
EJERCICIO 60
import java.io.*;
import java.lang.*;
EJERCICIO 61
import java.io.*;
import java.lang.*;
OPERADORES ARITMTICOS
EJERCICIO 62
import java.io.*;
import java.lang.*;
System.out.println("Suma");
System.out.println("Respuesta: "+i+"+"+j+"="+suma );
}
}
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
import java.io.*;
import java.lang.*;
System.out.println("Resta");
System.out.println("Respuesta: "+i+"-"+j+"="+resta );
}
}
EJERCICIO 65
import java.io.*;
import java.lang.*;
System.out.println("Resta");
System.out.println("Respuesta: "+i+"-"+j+"="+resta );
}
}
EJERCICIO 66
import java.io.*;
import java.lang.*;
System.out.println("Multiplicacion");
System.out.println("Respuesta: "+i+"*"+j+"="+mult );
}
}
EJERCICIO 67
import java.io.*;
import java.lang.*;
System.out.println("Multiplicacion");
System.out.println("Respuesta: "+i+"*"+j+"="+mult );
}
}
EJERCICIO 68
import java.io.*;
import java.lang.*;
System.out.println("Division");
System.out.println("Respuesta: "+i+"/"+j+"="+divi );
}
}
EJERCICIO 69
import java.io.*;
import java.lang.*;
System.out.println("Division");
System.out.println("Respuesta: "+i+"/"+j+"="+divi );
}
}
EJERCICIO 70
import java.io.*;
import java.lang.*;
System.out.println("Residuo");
System.out.println("Respuesta: "+i+"%"+j+"="+resi );
}
}
EJERCICIO 71
import java.io.*;
import java.lang.*;
System.out.println("Residuo");
System.out.println("Respuesta: "+i+"%"+j+"="+resi );
}
}
EJERCICIO 72
import java.io.*;
import java.lang.*;
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
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.*;
boolean b1 = letra==letra2;
}
}
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.*;
boolean b1 = num1!=num2;
}
}
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.*;
boolean b1 = num1>num2;
}
}
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.*;
boolean b1 = num1<num2;
}
}
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.*;
boolean b1 = num1>=num2;
}
}
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.*;
int num2=1000;
boolean b1 = num1<=num2;
}
}
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.*;
boolean b1 = num1==num2;
}
}
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.*;
boolean b1 = num1>num2;
}
}
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.*;
boolean b1 = a==b;
}
}
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.
import java.io.*;
import java.lang.*;
boolean b1 = a==b;
}
}
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.*;
boolean b1 = a<b;
}
}
EJERCICIO 84
REALIZAR UN PROGRAMA QUE COMPARE VALORES INICIALIZADOS Y QUE MUESTRE
POR PANTALLA SI ES VERDADERA O FALSA LA COMPARACIN.
import java.io.*;
import java.lang.*;
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.
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;
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.*;
EJERCICIO 87
REALIZAR UN PROGRAMA QUE MUESTRE LA TABLA DE VERDAD DEL OPERADOR OR.
import java.io.*;
import java.lang.*;
EJERCICIO 89
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL DOBLE
CONDICIONAL AND (&&).
import java.io.*;
import java.lang.*;
/*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.*;
/*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.*;
import java.io.*;
import java.lang.*;
EJERCICIO 93
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL SIMPLE
CONDICIONAL OR (|).
import java.io.*;
import java.lang.*;
EJERCICIO 94
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL DOBLE
CONDICIONAL AND (&&).
import java.io.*;
import java.lang.*;
EJERCICIO 95
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL DOBLE
CONDICIONAL AND (&&).
import java.io.*;
import java.lang.*;
EJERCICIO 96
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL DOBLE
CONDICIONAL AND (&&).
import java.io.*;
import java.lang.*;
EJERCICIO 97
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL SIMPLE
CONDICIONAL OR (|).
import java.io.*;
import java.lang.*;
EJERCICIO 98
REALIZAR UN PROGRAMA QUE EVALE UNA CONDICIN UTILIZANDO EL SIMPLE
CONDICIONAL AND (&).
import java.io.*;
import java.lang.*;
EJERCICIO 99
REALIZAR UN PROGRAMA EN JAVA QUE EVALE UNA CONDICIN UTILIZANDO UN
SOLO CONDICIONAL AND (&).
import java.io.*;
import java.lang.*;
EJERCICIO 100
REALIZAR UN PROGRAMA EN JAVA QUE EVALE UNA CONDICIN UTILIZANDO UN
SOLO CONDICIONAL AND (&).
import java.io.*;
import java.lang.*;
VARIOS
EJERCICIO 101
import java.io.*;
import java.lang.*;
class Numeros {
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{
area=lado*lado;
EJERCICIO 103
import java.io.*;
import java.lang.*;
class AreaCuadradoI{
EJERCICIO 104
rea= (base*altura)/2
import java.io.*;
import java.lang.*;
class AreaTriangI{
area=(b*h)/2;
System.out.println("El area del triangulo es: "+ area);
}
}
EJERCICIO 105
import java.io.*;
import java.lang.*;
System.out.println("Longitud de la Circunferencia");
System.out.println("Respuesta: "+l);
}
}
EJERCICIO 106
import java.io.*;
import java.lang.*;
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
rea= (base*altura)/2
import java.io.*;
import java.lang.*;
class AreaTriang{
EJERCICIO 108
import java.io.*;
import java.lang.*;
class Maximo{
mayor=Math.max(num1,num2);
System.out.println("\n"+"El numero mayor entre " +num1+ " y " +num2+ " es:
"+mayor);
}
}
EJERCICIO 109
import java.io.*;
import java.lang.*;
class Minimo{
mayor=Math.min(num1,num2);
System.out.println("\n"+"El numero menor entre " +num1+ " y " +num2+ " es:
"+mayor);
}
}
EJERCICIO 110
import java.io.*;
import java.lang.*;
class Coseno{
int num=0;
double cose=0;
System.out.print("Ingrese un numero numero: ");
num=Integer.parseInt(temp.readLine());
cose=Math.cos(num);
}
}
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
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.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
EJERCICIO 111
import java.io.*;
import java.lang.*;
class Redondear{
double num=0,redondeo=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());
redondeo=Math.round(num);
}
}
EJERCICIO 112
import java.io.*;
import java.lang.*;
class NumSeno{
double num=0,seno=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());
seno=Math.sin(num);
EJERCICIO 113
import java.io.*;
import java.lang.*;
class NumAbs{
double num=0,proc=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());
proc=Math.abs(num);
}
}
EJERCICIO 114
import java.io.*;
import java.lang.*;
class NumAbs{
double num=0,tangente=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());
tangente=Math.tan(num);
EJERCICIO 115
import java.io.*;
import java.lang.*;
class NumLn{
double num=0,lognatural=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());
lognatural=Math.log(num);
EJERCICIO 116
import java.io.*;
import java.lang.*;
class CosenoInverso{
double num=0,cosinv=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());
cosinv=Math.acos(num);
EJERCICIO 117
import java.io.*;
import java.lang.*;
class SenoInverso{
double num=0,seninv=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());
seninv=Math.asin(num);
EJERCICIO 118
import java.io.*;
import java.lang.*;
class TangenteInversa{
double num=0,taninv=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());
taninv=Math.atan(num);
EJERCICIO 119
import java.io.*;
import java.lang.*;
class GradosRadian{
double num=0,proc=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());
proc=Math.toRadians(num);
EJERCICIO 120
import java.io.*;
import java.lang.*;
class RadianGrados{
double num=0,proc=0;
System.out.print("Ingrese un numero: ");
num=Double.parseDouble(temp.readLine());
proc=Math.toDegrees(num);
EJERCICIO 121
import java.io.*;
import java.lang.*;
class RaizCuadrada{
System.out.println("Raiz Cuadrada");
System.out.println("Ingrese un numero positivo: ");
num=Float.parseFloat(temp.readLine());
raiz=Math.sqrt(num);
}
}
EJERCICIO 122
Realizar un programa que permita elevar al cuadrado cualquier nmero ingresado por
pantalla.
import java.io.*;
import java.lang.*;
class Cuadrado{
System.out.println("Cuadrado de un Numero");
System.out.println("Ingrese un numero positivo o negativo: ");
num=Double.parseDouble(temp.readLine());
cuad=Math.pow(num,2);
EJERCICIO 123
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 {
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
EJERCICIO 125
EJERCICIO 126
EJERCICIO 127
//Paquete de Java
import javax.swing.JOptionPane;
String primerNumero;
String segundoNumero;
String 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;
if(numero1<=numero2)
resultado= resultado+"\n" +numero1+"<="+numero2;
if(numero1>=numero2)
resultado= resultado+"\n" +numero1+">="+numero2;
}
}
EJERCICIO 128
import java.io.*;
import java.lang.*;
class Clave{
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
import java.io.*;
import java.lang.*;
class PosiNega{
float numero;
System.out.println("Ingrese un numero");
numero=Float.parseFloat(temp.readLine());
if(numero>0)
else
EJERCICIO 130
CONDICIN IF..ELSE
import java.io.*;
import java.lang.*;
class Mayor {
int a, b, mayor;
mayor=b;
System.out.println("El nmero mayor es:"+mayor);
}
}
EJERCICIO 131
import java.io.*;
import java.lang.*;
class Sueldo{
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);
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);
}
}
EJERCICIO 132
import java.io.*;
import java.lang.*;
EJERCICIO 133
import java.io.*;
import java.lang.*;
EJERCICIO 134
import java.io.*;
import java.lang.*;
EJERCICIO 135
import java.io.*;
import java.lang.*;
EJERCICIO 136
TORRES DE HANOI
import java.io.*;
import java.text.*;
/**
* Programa recursivo para resolver <I>Las Torres de Hanoi</I>
* @author CTE, Javier Ruiz
**/
public class TowersOfHanoi
{
{
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);
}
}
}
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
switch( expresin ) {
case constante1:
sentencia1;
...
break;
...
case constanteN:
sentenciaN;
...
break;
default:
sentencia;
...
break
}
EJERCICIO 137
}
}
}
EJERCICIO 138
EJERCICIO 139
import java.io.*;
import java.lang.*;
class DiasSemana{
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;
}
}
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
import java.io.*;
import java.lang.*;
class Prueba1{
int num=0;
while ( num > 0 ) System.out.println("Esto nunca lo
vers");
EJERCICIO 141
import java.io.*;
import java.lang.*;
class Prueba3{
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.*;
class Prueba3{
}
}
}
EJERCICIO 143
import java.io.*;
import java.lang.*;
EJERCICIO 144
import java.io.*;
import java.lang.*;
EJERCICIO 145
import java.io.*;
import java.lang.*;
class Asterisco2{
public static void main (String args []) throws IOException
{
int contador = 1;
while (contador <= 5)
{
int contador2 = 1;
while (contador2 <= 5)
{
System.out.print ("*"); contador2++;
}
System.out.println (); contador++;
}
}
}
EJERCICIO 146
import java.io.*;
import java.lang.*;
class Positivos{
int n =0;
while (n<5){
n=n+1;
System.out.println("Los numeros son: "+n);
}
}
}
EJERCICIO 147
import java.io.*;
import java.lang.*;
class Pares{
EJERCICIO 148
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;
System.out.println("Impar: "+impar);
System.out.println("Par: "+par);
}
}
}
EJERCICIO 149
import java.io.*;
import java.lang.*;
class SumaPrueba{
public static void main(String arg[]) throws IOException{
EJERCICIO 150
import java.io.*;
import java.lang.*;
class SumaImpares{
EJERCICIO 151
import java.io.*;
import java.lang.*;
class SumaPares{
EJERCICIO 152
import java.io.*;
import java.lang.*;
class SumaPositivos{
}
}
EJERCICIO 153
import java.io.*;
import java.lang.*;
class SumaNum{
EJERCICIO 154
import java.io.*;
import java.lang.*;
class Sucesion{
int a=2;
while (a<128){
a=a*2;
System.out.println(a);
}
}
}
EJERCICIO 155
import java.io.*;
import java.lang.*;
class TresDigitos{
}
}
EJERCICIO 156
import java.io.*;
import java.lang.*;
class Tabla{
EJERCICIO 157
import java.io.*;
import java.lang.*;
class PromedioPrueba{
EJERCICIO 158
import java.io.*;
import java.lang.*;
class PromedioPrueba{
int a=0,b=0,acu=0;
EJERCICIO 159
EJERCICIO 160
LA SERIE DE ULAM:
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+" ");
}
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
import java.io.*;
import java.lang.*;
class MensajeD{
do
System.out.println("Se ejecuta al menos una vez");
while ( false );
}
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{
do
System.out.println("Se ejecuta al menos una vez");
while ( true );
}
EJERCICIO 163
import java.io.*;
import java.lang.*;
}
}
EJERCICIO 164
import java.io.*;
import java.lang.*;
class Par{
EJERCICIO 165
import java.io.*;
import java.lang.*;
class Sucesion{
EJERCICIO 166
import java.io.*;
import java.lang.*;
class Sucesion{
public static void main(String arg[]) throws IOException{
BufferedReader temp = new BufferedReader( new InputStreamReader(System.in));
EJERCICIO 167
import java.io.*;
import java.lang.*;
class Multi5{
EJERCICIO 168
import java.io.*;
import java.lang.*;
class SumaPrueba2{
EJERCICIO 169
import java.io.*;
import java.lang.*;
class SumaNum2{
System.out.println("\n"+"\t"+"Resultado: "+acu);
}
}
EJERCICIO 170
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.
import java.io.*;
import java.lang.*;
class SumaPrueba{
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
import java.io.*;
import java.lang.*;
class NumPosi{
EJERCICIO 173
import java.io.*;
import java.lang.*;
class Negativos{
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{
EJERCICIO 175
import java.io.*;
import java.lang.*;
class ParesImpares2{
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
FOR INFINITO
Bucle infinito: no hay control, entonces no se detiene
SINTAXIS
for ( ;;){}
EJERCICIO 176
import java.io.*;
import java.lang.*;
class HolaF{
EJERCICIO 177
import java.io.*;
import java.lang.*;
class Serie{
EJERCICIO 178
import java.io.*;
import java.lang.*;
class ParesF{
EJERCICIO 179
import java.io.*;
import java.lang.*;
class SumaF{
EJERCICIO 180
import java.io.*;
import java.lang.*;
class SerieF{
for(int x=4;x<=128;x=x*2){
System.out.println(x);
}
}
}
EJERCICIO 181
import java.io.*;
import java.lang.*;
class HaciendaF{
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);
}
}
}
EJERCICIO 182
import java.io.*;
import java.lang.*;
class TablaF{
EJERCICIO 183
import java.io.*;
import java.lang.*;
class MultiF{
EJERCICIO 184
import java.io.*;
import java.lang.*;
class Multiplo{
}
}
}
EJERCICIO 185
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;
EJERCICIO 186
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
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());
a = b;
b = c;
System.out.println("Fibonacci: "+" "+c+" ");
}
}
}
EJERCICIO 188
EJERCICIO 189
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");
}
}
}
EJERCICIO 190
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
import java.io.*;
import java.lang.*;
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);
}
}
EJERCICIO 191
//Paquete de Java
import javax.swing.JOptionPane;
public class SumaFor {
public static void main (String args []) {
//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);
}
}
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;
areaTextoSalida.append(anio+"\t"+formatoMoneda.format(cantidad)+"\n");
}
//mostrar el resultado
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.
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.*;
EJERCICIO 193
import java.io.*;
import java.lang.*;
class Maximo{
mayor=Math.max(num1,num2);
System.out.println("\n"+"El numero mayor entre " +num1+ " y " +num2+ " es:
"+mayor);
}
}
EJERCICIO 194
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("");
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;
}
}
}
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;
EJERCICIO 195
import java.io.*;
import java.lang.*;
}
}
/*El nombre del paquete es saludos y nuestra clase HolaMundo pertenece a ese
paquete*/
EJERCICIO 196
package saludos;
import java.io.*;
import java.lang.*;
}
}
EJERCICIO 197
package saludos;
import java.io.*;
import java.lang.*;
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.*;
}
}
EJERCICIO 199
MOSTRAR UNA LNEA DE TEXTO QUE VAYA ENTRE COMILLAS DOBLES. Y COLOQUELO
EN EL PAQUETE SENTENCIAS.
package sentencias;
import java.io.*;
import java.lang.*;
}
}
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.*;
}
}
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.*;
}
}
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.*;
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.*;
System.out.println ("Hola\\Mundo");
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
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.
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 PUNTO
package IOp;
class Punto{
int a=0,b=0;
Punto(int x, int y){
a=x;
b=y;
}
}
CLASE TRINGULO
package IOp;
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);
}
HERENCIA
EJERCICIO 204
package Militar2.Clases.Deber;
CLASE TRABAJADORES
package Militar2.Clases.Deber;
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
CLASE MILITAR
package Militar2.Clases.Deber;
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 int leerInt(String texto ) {
String t= javax.swing.JOptionPane.showInputDialog(null,texto);
return Integer.parseInt(t);
}
}
Se coloca javax.swing si no se coloca la librera tambin se puede hacer as:
package Militar2.Clases.Deber;
import javax.swing.*;
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);
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:
CLASE MULTIHOLA
POLIMORFISMO
CLASE FORMAS
EJEMPLO 206
package Pol;
import java.io.*;
import java.awt.*;
class Forma {
void dibujar() {}
void borrar() {}
}
CLASE CIRCULO
CLASE CUADRADO
CLASE TRIANGULO
import java.awt.*;
EJERCICIO 207
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();
}
}
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
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[]){
new Ventana();
}
}
EJERCICIO 209
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();
}
}
EJERCICIO 209
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
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();
}
}
EJERCICIO 211
package awt.Ejemplo7;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
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
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");
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
package awt.Ejemplo9;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
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
package awt.Ejemplo10;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
package awt.Ejemplo10;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}
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(){
package awt.Ejemplo11;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}
EJERCICIO 217
package awt.Ejemplo12;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
package awt.Ejemplo12;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}
EJERCICIO 218
package awt.Ejemplo13;
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
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(){
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(){
package awt.Ejemplo15;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}
EJERCICIO 221
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
EJERCICIO 222
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
EJERCICIO 223
import java.awt.*;
public class Ventana extends Frame{
public Ventana(){
show();
}
}
package Estandarizacion.Ejemplo1;
import java.awt.*;
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;
EJERCICIO 225
package Estandarizacion.Ejemplo2;
import java.awt.*;
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());
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();
}
}
EJERCICIO 226
package Estandarizacion.Ejemplo3;
import java.awt.*;
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());
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;
EJERCICIO 227
package Estandarizacion.Ejemplo4;
import java.awt.*;
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());
P3.add(O4=new Button("A-Z"));
P3.add(O5=new Button("Z-A"));
add(P1);
add(P2);
add(P3);
setSize(250,150);
show();
}
}
package Estandarizacion.Ejemplo4;
EJERCICIO 228
package Estandarizacion.Ejemplo5;
import java.awt.*;
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;
package Estandarizacion.Ejemplo6;
import java.awt.*;
package Estandarizacion.Ejemplo6;
public class Aplicacion{
public static void main(String arg[]){
new Ventana();
}
}
/* 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
package Estandarizacion.Ejemplo7;
import java.awt.*;
package Estandarizacion.Ejemplo7;
EVENTOS EN JAVA
EJERCICIO 231
package Eventos.Ejemplo1;
import java.awt.*;
return false;
}
}
package Eventos.Ejemplo1;
public class Mostrar{
public void mensaje(String m){
javax.swing.JOptionPane.showMessageDialog(null ,m);
}
package Eventos.Ejemplo1;
/*LOS EVENTOS SON LOS PROCESOS O LOS RESULTADOS QUE SE VAN A PRESENTAR
O REALIZAR CUANDO PRESIONAMOS O DAMOS CLIC SOBRE UN BOTN. */
EJERCICIO 232
package Eventos.Ejemplo1;
import java.awt.*;
return false;
}
EJERCICIO 233
package Eventos.Ejemplo2;
import java.awt.*;
return false;
}
}
package Eventos.Ejemplo2;
public class Mostrar{
public void mensaje(String m){
javax.swing.JOptionPane.showMessageDialog(null ,m);
}
package Eventos.Ejemplo2;
EJERCICIO 234
package Eventos.Ejemplo3;
import java.awt.*;
package Eventos.Ejemplo3;
public class Mostrar{
public void mensaje(String m){
javax.swing.JOptionPane.showMessageDialog(null ,m);
}
package Eventos.Ejemplo3;
EJERCICIO 235
package Eventos.Ejemplo4;
import java.awt.*;
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;
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.*;
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;
EJERCICIO 237
package Eventos.Ejemplo6;
import java.awt.*;
}
}
package Eventos.Ejemplo6;
public class Mostrar{
public void mensaje(String m){
javax.swing.JOptionPane.showMessageDialog(null ,m);
}
package Eventos.Ejemplo6;
/* String texto=t.getText();
Esta lnea permite capturer el texto
t1.setText(texto);
EJERCICIO 238
package Eventos.Ejemplo7;
import java.awt.*;
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());
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);
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;
EJERCICIO 239
Escriba una clase en java que cumpla con los siguientes requisitos:
Nombre de la clase:
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();
}
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)
package Prog.EjerciciosNormales.Ejercicio_5;
int aleatorio(){
int c=0;
while(c<6)
c=(int)(Math.random()*15);
return c;
}
EJERCICIO 240
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();
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();
}
}
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);
EJERCICIO 243
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();
}
}
b1.requestFocus();
cont++;
}
}
if(cont>=5){
ganador("X");
ganador("0");
}
return true;
}
else
return false;
}
if(ok){
for(int i=0;i<9;i++){
B[i].disable();
}
javax.swing.JOptionPane.showMessageDialog(null,"Gan "+ic);
}
EJERCICIO 244
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();
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();
}
void jugar(){
L1.setText(String.valueOf(aleatorio()));
L2.setText(String.valueOf(aleatorio()));
L3.setText(String.valueOf(aleatorio()));
void reestablecer(){
ac=0;
fra=0;
L1.setText("");
L2.setText("");
L3.setText("");
b5.setLabel("");
b7.setLabel("");
}
int aleatorio(){
int c=(int)(Math.random()*8);
return c;
}
}
EJERCICIO 245
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
package Ej15;
import java.awt.*;
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);
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();
}
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");
}
EJERCICIO 246
package Ej19;
import java.awt.*;
pack();
show();
}
void panelrectificador(){
try{
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");
}
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);
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);
}
return false;
}
}
EJERCICIO 247
package Ej23;
import java.awt.*;
p2=new Panel();
p2.setLayout(new GridLayout(1,2));
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();
}
int aleatorio(){
int c=0;
c=(int)(Math.random()*9);
return c;
}
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");
}
EJERCICIO 248
Escriba una clase en java que cumpla con los siguientes requisitos
A-Z Z-A
package Ej6;
import java.awt.*;
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();
}
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));
}
ubicar(Integer.parseInt(t1.getText()),Integer.parseInt(t2.getText()),Integer.parseInt(t3.
getText()),1);
}
}
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
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)));
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();
}
t3.requestFocus();
}
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;
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
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;
int x, y;
int nuevax = 0, nuevay = 0, solx = 0, soly = 0, total = 0;
return true;
}
public boolean mover(Tablero tabla, int xx, int yy, int num) {
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;
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));
}
int accion = 0, i, nx = 0, ny = 0;
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:
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 Principal() {
try {
do {
javax.swing.JOptionPane.showMessageDialog(null,"Bienvenido");
do {
}
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) {
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();
}
}
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;
}
g++;
}
else {
if (tabla[i][j] < 100)
g++;
else
g++;
}
}
else
g++;
}
} //Mostrar en el output
//***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();
}
}
return true;
}
else
return false;
}
MTODOS EN JAVA
EJERCICIO 251
import java.io.*;
import java.lang.*;
class Metodo1{
EJERCICIO 252
import java.io.*;
import java.lang.*;
class Metodo2{
EJERCICIO 253
import java.io.*;
import java.lang.*;
class MetodoSuma{
int a=0,b=0,r=0;
r=suma(a,b);
System.out.println("\nResultado: "+r);
}
EJERCICIO 254
import java.io.*;
import java.lang.*;
class MetodoResta{
int a=0,b=0,r=0;
r=resta(a,b);
System.out.println("\nResultado: "+r);
}
EJERCICIO 255
import java.io.*;
import java.lang.*;
class MetodoMult{
int a=0,b=0,r=0;
r=multiplicacion(a,b);
System.out.println("\nResultado: "+r);
}
EJERCICIO 256
import java.io.*;
import java.lang.*;
class MetodoDiv{
int a=0,b=0,r=0;
r=division(a,b);
System.out.println("\nResultado: "+r);
}
EJERCICIO 257
import java.io.*;
import java.lang.*;
EJERCICIO 258
import java.io.*;
import java.lang.*;
class MetodoResiduo{
int a=0,b=0,r=0;
r=residuo(a,b);
System.out.println("\nResultado: "+r);
}
EJERCICIO 259
import java.io.*;
import java.lang.*;
class MetodoPotencia{
int a=0,r=0;
r=cuadrado(a);
System.out.println("\nResultado: "+r);
}
EJERCICIO 260
import java.io.*;
import java.lang.*;
class MetodoFactor{
int a=0;
double p=0;
p=factorial(a);
System.out.println("\nFactorial de "+a+" es: "+p);
}
EJERCICIO 261
import java.io.*;
import java.lang.*;
class MetodoEcua{
int x=0,r=0;
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);
}
EJERCICIO 262
AREA=L*L
PERIMETRO=L+L+L+L
import java.io.*;
import java.lang.*;
class MetodoCuadro{
r=area(lado);
r2=perimetro(lado);
System.out.println("\n\tArea del Cuadrado: "+r);
System.out.println("\tPerimetro del Cuadrado: "+r2);
}
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
import java.io.*;
import java.lang.*;
class MetodoCuadro{
int intlado=0,doublelado=0,area=0;
EJERCICIO 264
import java.io.*;
import java.lang.*;
class MetodoFactor{
int a=0,b=0,s=0,r=0,m=0;
float d=0f;
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);
}
EJERCICIO 265
import java.io.*;
import java.lang.*;
class MetodoPosi_Nega{
int num=0;
Posi_Nega(num);
}
if(x>0)
System.out.println("El numero es positivo");
else
System.out.println("El numero es negativo");
}
}
EJERCICIO 266
import java.io.*;
import java.lang.*;
class MetodoParOImpar{
int num=0;
num=Integer.parseInt(temp.readLine());
Par_Impar(num);
}
EJERCICIO 267
import java.io.*;
import java.lang.*;
class MetodoRaiz{
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);
}
r=Math.sqrt(x);
return r;
}
}
EJERCICIO 268
class MetodoCubo{
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);
}
EJERCICIO 269
import java.io.*;
import java.lang.*;
class MetodoHipotenusa{
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);
}
EJERCICIO 270
import java.io.*;
import java.lang.*;
class MetodoMayor{
int num1=0,num2=0;
Mayor(num1,num2);
}
if(x>y)
System.out.println("El numero mayor es:"+x);
else
System.out.println("El numero mayor es:"+y);
}
}
EJERCICIO 271
import java.io.*;
import java.lang.*;
class MetodoM{
int num1=0,num2=0;
Par_Impar(num1);
Posi_Nega(num1);
}
if(x>0)
System.out.println("El numero es positivo");
else
System.out.println("El numero es negativo");
}
}
EJERCICIO 272
import java.io.*;
import java.lang.*;
class MetodoMultiplo{
int num1=0,num2=0;
Numero(num1);
}
EJERCICIO 273
import java.io.*;
import java.lang.*;
class MetodoPares{
EJERCICIO 274
import java.io.*;
import java.lang.*;
class MetodoPromedio{
r=Promedio(n1,n2,n3);
System.out.println("El promedio es: "+r);
}
return p;
}
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.
[]
int donaciones [ ];
O bien:
String [ ] palabrasDificiles;
Point [ ] hits;
int [ ] donaciones;
Creacin de objetos de arreglos:
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
import java.io.*;
import java.lang.*;
class Arreglo1{
for(int contador=0;contador<arreglo.length;contador++)
salida+=contador+"\t"+arreglo[contador]+"\n";
System.out.print(salida);
}
}
EJERCICIO 276
import java.io.*;
import java.lang.*;
class Arreglo2{
for(int contador=0;contador<arreglo.length;contador++)
salida+=contador+"\t"+arreglo[contador]+"\n";
System.out.print(salida);
}
}
EJERCICIO 277
import java.io.*;
import java.lang.*;
class Arreglo2{
for(int contador=0;contador<arreglo.length;contador++)
arreglo[contador]=2+2*contador;
EJERCICIO 278
import java.io.*;
import java.lang.*;
class Arreglo4{
EJERCICIO 279
import java.io.*;
import java.lang.*;
class Arreglo5{
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
import java.io.*;
import java.lang.*;
class Arreglo6{
/*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)];
for(int cara=1;cara<frecuencia.length;cara++)
salida+="\n"+cara+"\t"+frecuencia[cara];
System.out.println(salida);
}
}
EJERCICIO 281
import java.io.*;
import java.lang.*;
class Arreglo7{
System.out.println(salida);
}
}
EJERCICIO 282
import java.io.*;
/* Constructor */
/* algoritmo de la burbuja */
tmp = a[i];
a[i] = a[i+1];
a[i+1] = tmp;
}
}
}
if (a.length % 2 == 0)
{
return (a[(a.length / 2) - 1] + a[a.length / 2]) / 2.0;
}
else
{
return a[(a.length - 1) / 2];
}
int seguir = 1;
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];
e.verArreglo();
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");
}
} // fin while
} // fin main
} // fin class
EJERCICIO 283
class Invertir
{
public static void main(String arg[]) throws IOException
{
BufferedReader in = new BufferedReader(new
InputStreamReader(System.in));
int n = Integer.parseInt(in.readLine());
int i;
int tmp;
i = 0;
System.out.println();
}
}
EJERCICIO 284
import java.io.*;
import java.lang.*;
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[] ) {
EJERCICIO 286
import java.io.*;
import java.lang.*;
class Arreglo7{
System.out.println(salida);
}
elemento*=2;
}
}
ORDENAMIENTO DE ARREGLOS
MTODO BURBUJA
EJERCICIO 287
import java.io.*;
import java.lang.*;
class Arreglo9{
ordenamBurbuja(arreglo);
salida+="\n\nElementos de datos en orden ascendente \n";
System.out.println(salida);
}
almacen= arreglo3[primero];
arreglo3[primero]=arreglo3[segundo];
arreglo3[segundo]=almacen;
}
}
MATRICES
EJERCICIO 288
import java.io.*;
import java.lang.*;
class Matriz1{
int arreglo1[][]={{1,2,3},{4,5,6}};
int arreglo2[][]={{1,2},{3},{4,5,6}};
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á la salida de mi programa:
<APPLET CODE="NombreDelPrograma.class" WIDTH=150 HEIGHT=25>
</APPLET>
</BODY>
</HTML>
Llamando la pgina con el applet:
Busque la pgina web que acaba de hacer y brala dando doble clic.
import java.applet.Applet;
import java.awt.Graphics;
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.*;
import java.applet.Applet;
import java.awt.Graphics;
import java.applet.Applet;
import java.awt.Graphics;
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);
EJERCICIO 289
import java.awt.Graphics;
import javax.swing.JApplet;
<html>
<applet code="SubprogramaBienvenido.class" width="300" height="45">
</applet>
</html>
EJERCICIO 290
import java.awt.Graphics;
import javax.swing.JApplet;
<html>
<applet code="SubprogramaBienvenido2.class" width="300" height="60">
</applet>
</html>
EJERCICIO 291
import java.awt.Graphics;
import javax.swing.JApplet;
<html>
<applet code="LineasBienvenido.class" width="300" height="40">
</applet>
</html>
EJERCICIO 292
import java.awt.Graphics;
import javax.swing.*;
public class SubprogramaSuma extends JApplet{
double suma;/*La suma de los valores introducidos por teclado*/
EJERCICIO 293
import java.awt.*;
import javax.swing.JApplet;
VARIOS
EJERCICIO 294
import java.io.*;
import java.lang.*;
class Factorialn {
int numero;
double factorial=1;
try{
numero = Integer.parseInt(cadenaLeida);
if(numero<0){
System.out.println("No existe el factorial de numeros negativos ");
return;
while(numero>0){
factorial*=numero--;
}
System.out.println(factorial);
}
catch(NumberFormatException e){
EJERCICIO 295
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
volumenTetraedro = Math.pow(longitudArista,3)*0.1178;
}
}
EJERCICIO 296
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);
}
}
EJERCICIO 297
//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);
}
}
EJERCICIO 298
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);
}
MANEJO DE ARCHIVOS
EJERCICIO 299
package Deberes10.Ejercicio1;
import java.io.*;
import java.awt.*;
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;
lstImpar.add(linea);
}
archivo.close();
}
catch(Throwable e){
javax.swing.JOptionPane.showMessageDialog(null,e);
}
}
void mostrarImpares2(){
try{
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);
setTitle("Ventana");
show();
if(evt.target == btnSalir)
System.exit(0);
if(evt.target==btnSumar)
{ Sumar();
}
return true;
}
return false;
}
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();
EJERCICIO 300
package Deberes10.Ejercicio2;
import java.io.*;
import java.awt.*;
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];
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);
}
}
//***********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){
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
mejor="JOSE";
}
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);
}
}
}
catch(Throwable e){
}
}
public Ventana1(){
setTitle("Ventas");
this.setLayout(new GridLayout(10,2));
setSize(430,400);
show();
new Ventana1();
}
EJERCICIO 301
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.*;
if (linea==null)
break;
}
archivo.close();
if (linea==null)
break;
}
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);
}
}
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){
if (linea ==null){
break;
}
double a=Double.parseDouble(txtEd.getText());
if((a>0)&&(a<6)){
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){
if (linea ==null){
break;
}
double b=Double.parseDouble(txtTi.getText());
if(linea.equals("A")){
rr=((b*5)/100);
}
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(btnGuardar=new Button("Guardar"));
add(btnSalir=new Button("Salir"));
CargarTipo();
CargarTipo1();
setSize(200,200);
setTitle("Ingreso");
show();
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);
}
EJERCICIO 302
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.*;
public java1310() {
Scrollbar rango;
import java.io.*;
import java.lang.*;
class Aleatorio{
double aleatorio=0;
aleatorio=Math.random()*3;
System.out.println("Numero aleatorio: " +aleatorio);
}
}
EJERCICIO 304
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
import java.io.*;
import java.lang.*;
class Aleatorio1{
double aleatorio=0;
aleatorio=Math.random()*1;
System.out.println("\n"+"Numero aleatorio: " +aleatorio);
}
}
EJERCICIO 306
import java.io.*;
import java.lang.*;
class Aleatorio2{
double aleatorio=0;
aleatorio=Math.random()*3+1;
System.out.println("\n"+"Numero aleatorio: " +aleatorio);
}
EJERCICIO 307
import java.io.*;
import java.lang.*;
class Aleatorio3{
double aleatorio=0;
aleatorio=Math.random()*10+1;
System.out.println("\n"+"Numero aleatorio: " +aleatorio);
}
}
EJERCICIO 308
import java.io.*;
import java.lang.*;
class Dados{
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
PASOS:
NO DA SALTO
SALTA 1MT.
SALTA 2MT
TIENE QUE RECORRER 20 METROS, ES LA META.
import java.io.*;
import java.lang.*;
class SaltoRana{
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 ();
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);
add(button1);
}//GEN-END:initComponents
/**
* @param args the command line arguments
*/
public static void main (String args[]) {
new Adivina ().show ();
}
EJERCICIO 311
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 Disparo(){
return (int)(Math.random()*2);
}
Ruleta_Rusa() {
Bala = Disparo();
if (Bala == 1)
System.out.println("1er. Disparo");
else {
Bala = Disparo();
if (Bala == 1)
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");
}
}
}
}
}
EJERCICIO 312
/**
* 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
*/
import java.awt.*;
import java.awt.event.*;
public IHM() {
// Crea un objeto visual Etiqueta (Label)
miEtiqueta = new Label( "Etiqueta" );
miEtiqueta.setBackground( Color.yellow );
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/
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