Manual de Java
Manual de Java
Manual de Java
CAPITULO I
METODOLOGIA DE LA PROGRAMACION
Características de un algoritmo
______________________________________________________ 7
Algoritmia
Resolución
de un problema
Ejemplo:
Se desea obtener una tabla con las depreciaciones acumuladas y
los valores reales de cada año, de un automovil comprado en
______________________________________________________ 8
Algoritmia
1,800.00 soles en el año 1985, durante los seis años siguientes
suponiendo un valor de recuperación o rescate de 120.00. Realizar
el análisis del problema, conociendo la fórmula de la depreciación
anula constante D para cada año de vida útil.
Costo original
Entrada Vida útil
Valor de recuperación
Depreciación acumulada
Depreciación anual
SalidaDepreciación acumulada en cada año
Valor del automovil en cada año
______________________________________________________ 9
Algoritmia
Cada subprograma es resuelto mediante un módulo
(subprograma) que tiene un sólo punto de entrada y un sólo punto
de salida.
Cualquier programa bien diseñado consta de un programa
principal (el módulo de nivel más alto) que llama a subprogramas
(módulos de nivel más bajo) que a su vez pueden llamar a otros
subprogramas. Los programas estructurados de esta forma se dice
que tienen un diseño modular y el método de romper el programa
en módulos mas pequeños se llama programación modular. Los
módulos pueden ser planeados, codificados, comprobados y
depurados independientemente (incluso por diferentes
programadores) y a continuación combinarlos entre sí. El proceso
implica la ejecución de los siguientes pasos hasta que el programa
se termina:
1. Programar un módulo.
2. Comprobar el módulo.
3. Si es necesario, depurar el modulo.
4. Combinar el módulo con los módulos anteriores.
______________________________________________________ 10
Algoritmia
Entrad
Terminal Subprograma a/
Salida
Proceso
Si
Decisió
n No
Conectores
Si
Figura 2. Símbolos más utilizados en los diagramas de flujo
Ejemplo:
______________________________________________________ 11
Algoritmia
Algoritmo que permite calcular el mayor valor de dos números
ingresados por teclado, en el caso de ser iguales mostrara un
mensaje que no existe numero mayor, los números son iguales.
Inicio:
Leer n1, n2
Si n1 = n2 entonces
Imprimir No existe número mayor, los números son
iguales
Caso contario:
Si n1>n2 entonces
Imprimir El número mayor es n1
Caso contrario:
Imprimir El número mayor es n2
Fin de si
Fin de si
Fin
______________________________________________________ 12
Algoritmia
Una vez que el algoritmo se ha convertido en un programa fuente,
es preciso introducirlo en memoria mediante el teclado y
almacenarlo posteriormente en un disco. Esta operación se realiza
con un programa editor. Posteriormente el programa fuente se
convierte en un archivo de programa que se guarda en disco.
El programa fuente debe ser traducido a lenguaje de
maquina, este proceso se realiza con el compilador y el sistema
operativo que se encarga prácticamente de la compilación.
Tras la compilación se presentan errores en el programa
fuente, es preciso volver a editar el programa, corregir los errores
y compilar de nuevo. Este proceso se repite hasta que no se
producen errores, obteniéndose el programa objeto que todavía no
es ejecutable directamente. Suponiendo que no existen errores en
el programa fuente, se debe instruir al sistema operativo para que
realice la fase de montaje o enlace (link), carga, del programa
objeto con las bibliotecas del programa del compilador. El
proceso de montaje produce un programa ejecutable. La Figura 3
describe el proceso completo de compilación/ejecución de un
programa.
______________________________________________________ 13
Algoritmia
______________________________________________________ 14
Algoritmia
Cuando se ejecuta un programa, se pueden producir tres
tipos de errores:
1. Errores de Compilación. Se producen normalmente
por un uso incorrecto de las reglas del lenguaje de
programación y suelen ser errores de sintaxis. Si existe
un error de sintaxis, la computadora no puede
comprender la instrucción, no se obtendrá el programa
objeto y el compilador imprimirá una lista de todos los
errores encontrados durante la compilación.
2. Errores de Ejecución. Estos errores se producen por
instrucciones que la computadora puede comprender
pero no ejecutar. Ejemplos típicos son: división por
cero y raíces cuadradas de números negativos. En estos
casos se detiene la ejecución del programa y se
imprime un mensaje de error.
3. Errores Lógicos. Se producen en la lógica del
programa y la fuente de error suele ser el diseño del
algoritmo. Estos errores son los más difíciles de
detectar, ya que el programa puede funcionar y no
producir errores de compilación ni de ejecución, y sólo
puede advertirse el error por la obtención de resultados
incorrectos. En este caso se debe volver a la fase de
diseño del algoritmo, modificar el algoritmo, cambiar
el programa fuente y compilar y ejecutar una vez más.
______________________________________________________ 15
Algoritmia
La documentación es vital cuando se desea corregir
posibles errores futuros o bien cambiar el programa. Tales
cambios se denominan mantenimiento del programa. Después de
cada cambio la documentación debe ser actualizada para facilitar
cambios posteriores.
Modulo 1 Modulo 2
______________________________________________________ 16
______________________________________________________ 18
Algoritmia
______________________________________________________ 19
Algoritmia
Secuencia,
Selección,
Repetición.
La programación estructurada hace los programas más
fáciles de escribir, verificar, leer y mantener; utiliza un
número limitado de estructuras de control que minimizan la
complejidad de los problemas.
______________________________________________________ 20
Algoritmia
1.5. CONCEPTO Y CARACTERISTICAS DE ALGORITMOS
______________________________________________________ 21
Algoritmia
El diseño de la mayoría de los algoritmos requiere creatividad y
conocimientos profundos de la técnica de la programación. En esencia,
la solución de un problema se puede expresar mediante un algoritmo.
Superficie y
longitud de
circunferencia
Entrada
Radio (R) S = PI * R2 L = 2 * PI *
R
Diseño de un
algoritmo
______________________________________________________ 24
Algoritmia
programación, sino que la descripción pueda servir fácilmente para su
transformación en un programa, es decir, su codificación.
Los métodos usuales para representar un algoritmo son:
1.6.1. Pseudocódigo
Secuencial
Inicio
acción1
acción2
acción n
Fin
Decisión Simple
______________________________________________________ 26
Algoritmia
si condición entonces
acción1
acción2
acción n
Decisión Doble
si condición entonces
acción1
acción2
en caso contrario
acción1
para var. Entera inicial hasta final hacer
acción2
acción1
acción2
Iteración Fija
.
.
______________________________________________________ 27
.
acción n
Algoritmia
Condicional al Inicio
acción1
acción2
acción n
repita
acción1
acción2
Condicional
. al Final
.
______________________________________________________ 28
acción n
Selección
casos selector de
valor 1 : acción1
acción2
valor 2 : acción1
acción2
...
valor n : acción1
acción2
______________________________________________________ 29
Algoritmia
Ejemplos de Algoritmos:
Inicio
PASO 1. Aflojar los tornillos de la rueda pinchada con la llave
inglesa.
PASO 2. Ubicar el gato mecánico en su sitio.
PASO 3. Levantar el gato hasta que la rueda pinchada pueda girar
libremente.
PASO 4. Quitar los tornillos y la rueda pinchada.
PASO 5. Poner rueda de repuesto y los tornillos.
PASO 6. Bajar el gato hasta que se pueda liberar.
PASO 7. Sacar el gato de su sitio.
PASO 8. Apretar los tornillos con la llave inglesa.
Fin
Inicio
PASO 1. Colocar los números el primero encima del segundo, de tal
manera que las unidades, decenas, centenas, etc., de los números que
den alineadas. Trazar una línea debajo del segundo número.
3. Realizar la suma de los números 2448 y 5746.
PASO 2. Empezar por la columna más a la derecha.
ALGORITMO:
PASO 3. Sumar los dígitos de dicha columna.
PASO 4. Si la suma es mayor a 9 anotar un 1 encima de la siguiente
columna a la izquierda y anotar debajo de la línea las unidades de la
______________________________________________________
suma. Si no es mayor anotar la suma debajo de la línea. 31
PASO 5. Si hay más columnas a la izquierda, pasar a la siguiente
columna a la izquierda y volver a 3.
PASO 6. El número debajo de la línea es la solución.
Fin
Algoritmia
4. Sean los puntos P=(a,b) y Q=(c,d) que definen una recta, encontrar un
segmento de recta perpendicular a la anterior que pasa por el punto
medio de los puntos dados.
ALGORITMO:
Inicio
______________________________________________________ 32
PASO 2. Trazar un círculo con centro en el punto Q que pase por el
punto P.
Algoritmia
______________________________________________________ 33
Algoritmia
1. Inicio
2. leer n1, n2, n3, n4
3. suma = n1 + n2 + n3 + n4
4. parcial = suma*4/100
5. notadef = parcial + 1
6. Imprimir notadef
7. fin
Inicio
leer datos: base, altura
Calcular area: area = (base*altura)/2
Imprimir base, altura, area
fin
7. Un vendedor recibe una comisión del 10% del total de ventas del mes.
El quiere saber cuanto ganará en un mes que tuvo tres ventas:
ALGORITMO:
______________________________________________________ 34
Algoritmia
Inicio
leer sueldobase, venta1, venta2, venta3
subtotal = venta1 + venta2 + venta3
comision = subtotal *0,10
total = sueldobase + comision
imprimir total
fin
Inicio
leer monto
descuento = monto * 0,15
total = monto - descuento
imprimir total
Fin
1. Inicio
2. leer nombre1 y edad1
3. leer nombre2 y edad2
4. comparar edad1 con edad2:
5. Si edad1 > edad2 imprimir nombre1, ” es mayor”
6. si edad2 > edad1 imprimir nombre2, ” es mayor”
7. Si edad1 = edad2 imprimir
8. Fin
______________________________________________________ 35
Algoritmia
10. En una Granja existen N conejos, N1 blancos y N2 negros. Se
venden X negros y Y blancos.
Hacer un algoritmo que:
a) Imprima la cantidad de conejos vendida
b) Si P1 es el precio de venta de los conejos blancos y P2 es el precio de
venta de los conejos negros, imprima el monto total de la venta.
c) Imprima el color de los conejos que se vendieron más.
ALGORITMO:
1. Inicio
2. Leer datos: N, N1,N2,X,Y,P1,P2
3. Calcular la cantidad de conejos vendida: CNV = X + Y
4. Imprimir la cantidad de conejos vendida: Imprimir CNV
5. Calcular el monto de la venta: MV = X * P2 + Y * P1
6. Imprimir monto de la venta: Imprimir MV
7. Si X > Y entonces
Imprimir “Se vendieron mas conejos negros”
en otro caso
Imprimir “Se vendieron mas conejos blancos”
8. Fin
1. Inicio
2. Leer importeb
3. Calcular descuento:
Si importeb >= 20000 entonces
descuento =importeb * 0.15;
en otro caso
______________________________________________________
descuento = 0 36
finsi
4. fin
Algoritmia
Ejercicios Propuestos:
______________________________________________________ 38
Algoritmia
10. Tres personas deciden invertir su dinero para formar una empresa.
Cada una de ellas invierte una cantidad distinta. Hacer un algoritmo que
imprima el porcentaje que cada quien invierte con respecto al total de la
inversión
Símbolos:
______________________________________________________ 39
Algoritmia
Entrada/Salida
Proceso
Decisión
______________________________________________________ 40
Algoritmia
Procedimiento/Subrutina
Línea de flujo
______________________________________________________ 41
Algoritmia
Inicio y Fin
Este símbolo representa el
inicio y fin del diagrama de
flujo.
Conector en Página
Un diagrama de flujo se
puede dividir en partes
cuando muchas líneas del
flujo lo hacen ilegible. Este
símbolo representa la
conexión entre estas partes
del un diagrama de flujo en
una misma página. Este
símbolo es etiquetado con
letras en mayúsculas, por
ejemplo A.
______________________________________________________ 42
Algoritmia
Visualización
Ejemplos
______________________________________________________ 43
Algoritmia
______________________________________________________ 44
Algoritmia
___________________________________________________
El siguiente diagrama de flujo acepta dos números, y muestra
el mayor de ellos después de compararlos.
______________________________________________________ 45
Algoritmia
___________________________________________________
El siguiente es el diagrama de flujo dado en el manual
de una televisión proporciona las recomendaciones para resolver
el problema de mal funcionamiento del control remoto.
______________________________________________________ 46
Algoritmia
___________________________________________________
Reglas de un Diagrama de Flujo
______________________________________________________ 47
Algoritmia
___________________________________________________
programas.
______________________________________________________ 48
Algoritmia
___________________________________________________
CAPITULO II
______________________________________________________ 49
Algoritmia
___________________________________________________
Valores numéricos, como 25, 78 y 90.45. Esto quiere decir que los
valores numericos pueden clasificarse en enteros y reales
______________________________________________________ 50
Algoritmia
___________________________________________________
Cuando las instrucciones son ejecutadas, el valor del primer número es
aceptado y almacenado en la memoria. De manera similar, el valor del
segundo número es también aceptado y almacenado en la memoria. El
computador hace referencia a los números almacenado en memoria,
calcula la suma, y almacena el resultado obtenido en una localización
diferente de la memoria. El computador hace referencia al
resultado almacenado en memoria, para mostrarlo en la pantalla.
Por lo tanto, el computador necesita identificar las localizaciones de
memoria para almacenar los valores o recuperar los valores
almacenados.
Las localizaciones cuando el primer número, el segundo número, y el
resultado son almacenados pueden ser referenciadas como nNumero1,
nNumero2 y nSuma respectivamente. Cada vez que el conjunto de
instrucciones son ejecutadas; los valores de nNumero1, nNumero2, y
nSuma variará, dependiendo de los valor ingresados por el usuario.
Por consiguiente, nNumero1, nNumero2, y nSuma son conocidos como
variables.
Tipos de Datos
______________________________________________________ 51
Algoritmia
___________________________________________________
memoria. Este tipo de valor es denominado tipo de dato. Los tipos de
datos están clasificados en:
Declaración de Variables
char nombre
int edad, telefono
______________________________________________________ 52
Algoritmia
___________________________________________________
una variable carácter o numérica, respectivamente. Algunos
ejemplos son cNombre y nEdad.
2.3. CONSTANTES
Así como las variables la s contantes tambien se almacenan en la
memoria del computador al momento de ejecutarlas, con la diferencia
que las constantes son valores predefinidos en un programa que nuncan
cambian su valor y tambien pueden clasificarse en valores numericos
(enteros y reales) y valores de carácter. Por ejemplo:
Valores numéricos, como 34, 22 y 33.22. Esto quiere decir que los
valores numericos pueden clasificarse en enteros y reales
2.4. CONTADORES
Los contadores son otro tipo de variables muy utilizados dentro de
estructuras repetitivas. Su función principal es contar una serie de
valores numericos ya sea de uno en uno, dos en dos, etc. Por ejemplo:
Sintaxis:
c= c+1; c=c+2; c=c-3……..etc.
______________________________________________________ 53
Algoritmia
___________________________________________________
de conteo que ba ha realizar, si es uno indicara que el conteo será de uno
en uno y asi sucesivamente.
2.5. ACUMULADORES
Los acumuladores son otro tipo de variables muy utilizados dentro de
estructuras repetitivas. Su función principal es acumular valores
numericos que se an ingresado o procesado en alguna variable, etc. Por
ejemplo:
Sintaxis:
ac= ac + N ; t= t + M
2.6. OPERADORES
Los operadores determinan el tipo de operación que se quiere
realizar con los elementos de una expresión. En una expresión, el
elemento sobre el cual actúa un operador se llama operando. Por
ejemplo, en la expresión, a + b, a y b son conocidos como operandos.
Operadores aritméticos
Operadores Relacionales
Operadores lógicos
Operadores Aritméticos
______________________________________________________ 54
Algoritmia
___________________________________________________
Suma (+) Suma los operandos c=a+b
Resta (-) Resta el operando derecho del c=a-b
operando izquierdo
Multiplicación Multiplica los operandos c=a*b
(*)
División (/) Divide el operando izquierdo c= a/b
por del operando derecho
Modulo (%) Calcula el residuo de una c= a%b
división entera
Inicio
Int nNum1, nNum2, nNum3
nNum1 = 15
nNum2 = 2
nNum3 = nNum1 % nNum2
Mostrar nNum3
Fin
Operadores Relacionales
______________________________________________________ 55
Algoritmia
___________________________________________________
Operadores Lógicos
______________________________________________________ 56
Algoritmia
___________________________________________________
OR Lógica OR a < 5 OR b > 10
NOT Lógica NOT NOT a = 5
Precedencia de Operadores
______________________________________________________ 57
Algoritmia
___________________________________________________
evalúan de izquierda a derecha en una expresión. Esto se conoce como
asociatividad. La tabla siguiente lista los operadores en orden decreciente
de precedencia.
Nivel de
Operador Descripción Asociatividad Precedencia
() Paréntesis 1
! Lógica NOT 2
* Multiplicación
De Izquierda
/ División a Derecha 3
% Módulo
+ Suma De Izquierda
a Derecha 4
- Resta
______________________________________________________ 58
Algoritmia
___________________________________________________
Esta tabla muestra la precedencia y la asociatividad de los operadores.
El orden de precedencia y la asociatividad de los operadores tienen
que ser
evaluados mientras construimos la expresión para obtener la salida
deseada. Por ejemplo, consideremos la siguiente expresión:
nResultado = 8 + 90 / 45
El operador "/" tiene precedencia alta que "+". Por lo tanto, 90/45 es
evaluado primero.
El resultado de la expresión es:
nResultado = 8 + 2
nResultado = 10
______________________________________________________ 59
Algoritmia
___________________________________________________
CAPITULO III
______________________________________________________ 60
Algoritmia
___________________________________________________
Ejemplos:
Ejemplo 3.2.1:
Muestre un algoritmo lea dos valores a, b, y los intercambie. Por ejemplo si a = 2 y
b= 5, el algoritmo debe hacer que a = 5 y b= 2.
Solución:
Definición de variables:
Diagrama N/S
Leer a, b
t=a
a=b
b=t
Imprimir a, b
______________________________________________________ 61
Algoritmia
___________________________________________________
Ejemplo 3.2.2:
A una reunión asistieron n personas ¿Cuántos apretones de manos
hubieron?
Solución:
Definición de variables:
n : número de personas
a : número de apretones de mano
Se sabe que cada persona debe saludar a las (n - 1) restantes, por lo que habrá
n*(n-l) saludos como en cada saludo intervienen 2 personas la cantidad de
apretones de mano será:
a= n*(n-l)/2
Diagrama N/S
Leer n
a=n*(n- l)/2
Imprimir a
______________________________________________________ 62
Algoritmia
___________________________________________________
Ejemplo 3.2.3:
Hallar la suma de los n primeros números naurales
Solución:
Definición de variables:
n : cantidad de números naturales
s : suma de los primeros n números naturales
Se pide lo siguiente:
s = 1 + 2 + 3 + 4 + 5 + 6 + ...+ (n-4)+ (n-3)+ (n-2) +(n-l) + n
s = l + 2 + 3 + 4 + 5 + . . . + (n-4)+(n-3)+(n-2)+(n-l)+ n
s = n + (n-1) + (n-2) + (n-3) + (n-4) + . . . + 5 + 4 + 3 + 2 + 1
De donde:
Diagrama N/S
Leer n
s = n*(n+l)/2
Imprimir s
______________________________________________________ 63
Algoritmia
___________________________________________________
Ejemplo 3.2.4:
Calcule la suma de los cuadrados de los primeros números naturales.
Solución:
Definición de variables:
n : cantidad de números naturales
s : suma de los cuadrados de los primeros n números naturales
Se pide lo siguiente:
s = l2 + 22 + 32 + 42+ 52 + 62 + . . . + (n - 4)2 + (n - 3)2 + (n - 2)2 + (n - l)2 + n2
______________________________________________________ 64
Algoritmia
___________________________________________________
(n+1)3 = l3 + 3s + 3[ n(n+l)/2 ] + n
Diagrama N/S
Leer n
s = n(n+l)
(2n+l)/6
Imprimir s
______________________________________________________ 65
Ejemplo 3.2.5:
Calcular la suma de los cubos de los n primeros números naturales.
Solución:
Definición de variables:
n : cantidad de números naturales
s : suma de los cubos de los primeros n números naturales
Se pide lo siguiente:
Diagrama N/S
Leer n
s = {n(n+l)/2}2
Imprimir s
Ejemplo 3.2.6:
En un cuadrado cuyo lado es a, se unen los puntos medios de sus 4 lados,
formándose otro cuadrado cuyos puntos medios se unen también formando
otro cuadrado, y así sucesivamente. Calcule la suma de las áreas de todos
los cuadrados así formados.
Solución:
Definición de variables:
a: lado del primer cuadrado
s: suma de las áreas formadas
Diagrama N/S
Leer a
s=2a2
Imprimir
s
Ejemplo 3.2.7:
Calcule el área de un rombo de diagonales conocidas
Solución:
Definición de variables:
De donde:
Diagrama N/S
Leer dl,d2
Calcular
AreaRombo=dl*d2/2
Imprimir
AreaRombo
Ejemplo 3.2.8:
Calcule el volumen de un cilindro recto conociendo su radio y su altura.
Solución:
Definición de variables:
Esto es:
Diagrama N/S
Leer r, h
Calcular
VolCilindro= 3.14159*r*r*h
Imprimir
VolCilindro
Ejemplo 3.2.9:
Calcule el área total de un cilindro recto de radio y altura conocidos.
Solución:
Definición de variables:
AreaTota1Ci1: área total
del cilindro
r: radio de la base
h: altura
El área de la base y el área del techo, son iguales y vienen a ser el área de un
círculo:
Area de la base = Area del techo = π r2
Remplazando tenemos:
AreaTotalCil = πr2+ πr2+ 2πrh
donde:
Diagrania N/S
Leer r, h
AreaTotalCil= 6.28*r*(r+h)
Imprimir AreaTotalCil
Ejemplo 3.2.10
Se tiene una circunferencia de radio r, inscrita en un triángulo de lados a ,b,
c.
Encuentre el área de este triángulo en función de a, b, c y r.
Solución;
Definición de variables:
a, b, c: lados del triángulo
r: radio de
circunferencia inscrita
Tenemos:
Área del ΔABC = Área del ΔBOA + Área del ΔBOC + Área del
ΔAOC
de donde:
Diagrama N/S
Leer a, b, c, r
Calcular
area = (a + b + c).
r/2
Imprimir
area
Ejemplo 3.2.11:
El área del triangulo en función del semiperimetro, dada por Herón es:
, donde a, b y c son los lados del triángulo y
el semiperimetro. Calcular el área del triángulo aplicando
esta fórmula.
Solución:
Definición de variables:
Diagrama N/S
Leer a, b, c
p = (a+b+c)/2
Imprimir AreaTriang
Ejemplo 3.2.12:
En un triángulo rectángulo, calcule la longitud de la hipotenusa conociendo
las longitudes de sus catetos.
Solución:
Definición de variables:
Diagrama N/S
Leer a, b
Calcular
c=
Imprimir c
Ejemplo 3.2.13:
El teorema del coseno es muy utilizado en geometría para calcular la
longitud del te rcer lado de un triángulo, cuando se conocen los otros 2 lados
y el ángulo que forman. Siendo a el lado desconocido, b y c los lados
conocidos, α el ángulo formado por b y c; el teorema del coseno se enuncia
como:
Solución:
Definición de variables:
a: lado desconocido
b, c: lados conocidos
alfa: ángulo formado por b y c
Diagrama N/S
Leer b, c, alfa
Imprimir a
Ejemplo 3.2.14:
Calcule la distancia entre 2 puntos de coordenadas conocidas
Solución:
Definición de variables:
xl: abscisa del primer
punto
yl: ordenada del primer
punto
x2: abscisa del segundo
punto
y2: ordenada del segundo
punto
Sabemos que la distancia entre 2 puntos de coordenadas (xl, yl) y (x2, y2)
está dada por:
Diagrama N/S
Imprimir d
Ejemplo 3.2.15:
Convierta el complejo c =a + bi, a sus coordenadas polares.
Solución:
Definición de variables:
ω: ángulo formado por recta que
une (a, b) con el origen (0,0).
a : parte real del complejo
b : parte imaginaria del complejo
ρ: distancia del punto al origen
ω=arctg(b/a)
Imprimir ω, ρ
En donde :
Definición de variables:
c : capital tomado en préstamo
t : tasa de interés en decimales
n : número de periodos
m: monto a devolver
Sabemos que:
m = c(l+t)n
Diagrama N/S
Leer c, n t
m =c (l +t)n
Imprimir m
Ejemplo 3.2.17:
En todo triángulo se cumple que cada lado es proporcional al seno del
ángulo opuesto. Esta ley se llama “ley de los senos", matemáticamente:
Solución:
Definición de variables:
a, b, c : lados del triángulo
α, β y γ: ángulos opuestos a a, b y c respectivamente
Despejando de la fórmula:
Diagrama N/S
Solución:
Definición de variables
Diagrama N/S
Leer S
C = (10/9)*S
R = (π/180)*S
Imprimir C, R
Ejemplo 3.2.19:
Convierta el ángulo sexagesimal UºV´W” a grados, minutos y segundos.
Definición de variables:
gra = entero(C)
seg =( (C-gra)*100-min)*100
Ejemplo 3.2.20:
Para medir la temperatura existen 4 escalas, las cuales guardan la siguiente
proporción:
Solución:
Definición de variables:
a, b: longitudes cualesquiera de la escala
C : valor de la temperatura en grados Celsius
F : valor de la temperatura en grados Farenheit
K : valor de la temperatura en grados Kelvin
R : valor de la temperatura en grados Rankine
De donde:
Finalmente:
F = (9/5) C + 32
K = C +273
R = (9/5) C + 492
Diagrama N/S
Leer C
F = (9/5)*C + 32
K = C + 273
R = (9/5)*C +
492
Imprimir F, K, R
Ejemplo 3.2.21;
Haga un diagrama N/S que permita leer 3 temperaturas una en ºF, otra en K
y la otra en ºR y las convierta a sus equivalentes en grados Celsius.
Solución:
Definición de variables:
CF= (5/9)(F-32)
CK = K – 273
CR= (5/9)(R-492)
Diagrama N/S
Leer F, K, R
CF = (5/9)*(F-32)
CK = K - 273
CR = (5/9)*(R-492)
Imprimir CF, CK,
CR
Ejercicios Propuestos:
Lea atentamente cada enunciado y plantee su solución. Luego construya un
diagrama N/S.
Ejemplos:
Ejemplo 3.3.1:
Elabore un algoritmo que resuelva una ecuación de primer grado.
Solución:
Definición de variables:
Diagrama N/S
Leer a, b
a==0
V
Imprimir "No x = -b/a
es de primer Imprimir
grado" X
Ejemplo 3.3.2:
Una llamada telefónica en cualquier teléfono público cuesta S/. 0.50 por los
primeros 3 minutos o menos. Cada minuto adicional es un paso de contador
y cuesta S/.0.l.Calcule el monto de una llamada cualquiera.
Solución:
Definición de variables:
duración: duración de la llamada
costo: costo total de la llamada
Diagrama N/S
Leer duración
duración <= 3
V F
Imprimir
costo
Ejemplo 3.3.3:
Una llamada de un teléfono fijo a otro, también fijo, en HORARIO NORMAL
(todos los días de 7:00 a 22:59 horas), cuesta sin IGV S/. 0.078, mientras
que en el HORARIO REDUCIDO (todos los días de 23:00 a 6:59hrs), cuesta
sin IGV S/. 0.039 hrs.
Solución:
Definición de variables:
hora: hora de inicio de la llamada
min: minuto de inicio de la llamada
inicio: minuto de inicio en el día
dura: duración de la llamada
Por lo tanto, basta con preguntar si la hora de inicio en minutos esta dentro de
ese rango y calcular el costo total de la llamada. Además hay que tener en
cuenta que el impuesto general a las ventas es de 18%.
Diagrama N/S
Solución:
Definición de variables:
a, b: números ingresados
Diagrama N/S
Leer a, b
a==b
V
Imprimir a>b
a, "es V
igual a", b Imprimir Imprimir b,
a, "es mayor "es mayor
que", b que", a
Ejemplo 3.3.5:
Ordene de mayor a menor, 3 números ingresados por teclado.
Solución:
Definición de variables: a, b, c : números que deseamos ordenar.
Diagrama N/S
Leer a, b, c
a ≥ b AND b ≥ c
V F
Imprimir a ≥ c AND c ≥ b
a, b, c V F
b ≥ a AND a ≥ c
V F
Imprimir b≥c AND c≥a
Imprimir b, a, c V F
a, c, b c≥ a AND ≥b
Imprimir V F
b, c, a Imprimir Imprimi r
c, a, b c, b, a
Ejemplo 3.3.6:
Encuentre el mayor valorde 3 números dados
Solución:
Definición de variables:
Diagrama N/S
Leer a, b, c
a≥b
V F
a≥c b≥c
V F V F
m=a m=a m=a m=a
Imprimir m
Ejemplo 3.3.7
Elabore un algoritmo que obtenga las raices reales de una ecuación de
segundo grado.
Solución:
Definición de variables:
Diagrama N/S
Completando cuadrados:
ax2 + bx =-c multiplicando por 4a 4a2x2 + 4abx = - 4ac sumando b2 a ambos
lados
4a2x2+ 4abx+b2=-4ac + b2
factorizando:
(2ax + b)2 = b2 - 4ac 2ax + b =
de donde:
Solución:
Definición de variables:
annio: Año del que deseamos determinar si es bisiesto.
Diagrama N/S
Leer annio
Imprimir Imprimir
"Año no bisiesto" "Año Bisiesto"
Ejemplo 3.3.9:
Los 3 números q, r y s, y determine si q es el multiplo de r y s.
Solución:
Definición de variables:
q: número cualquiera
r, s: posibles divisores
Diagrama N/S
Leer q, r, s
(q MOD r==0)AND
(q MOD s == 0)
V F
Imprimir Imprimir
q, " es múltiplo de ", r, q, " no es múltiplo de ",
" y de ", s r, " y de ", s
Ejemplo 3.3.10:
Conociendo x, encuentre el valor numérico de la siguiente expresión:
Solución:
Definición de variables:
x: variable independiente
y: variable dependiente
Diagrama N/S
Leer x
x == 5 OR x = -5
V F
y = (x-3)/(x2-25)
Imprimir "lo siento, la
función es discontinua
en ese punto" Imprimir
y
Solución:
Definición de variables:
x: variable independiente
y: variable dependiente
Diagrama N/S
Leer x
x <= 0
V F
x <= 8
y = x + sen x V F
y = 2x - ln x y = log(x-8)
Imprimir y
Ejemplo 3.3.12:
Dados 3 longitudes, diga si pueden formar un triángulo.
Solución:
Definición de variables:
Suponga que desea atravesar un cerro. Si pasa por el túnel que tiene una
longitud a, recorrerá menor distancia que si sube la pendiente b y baja por la
c.
Matemáticamente: a< b + c. Esto debe cumplirse tanto cuando a sea la
longitud del túnel, como cuando b ó c lo sean. De donde deducimos que para
que exista el cerro (triángulo) debe cumplirse que:
a< b + c
b< a + c
c< a + b
Diagrama N/S
Leer a, b, c
(a < b + c) AND (b < a + c) AND (c < a+ b)
V F
Imprimir Imprimir
“Forman triángulo” “No forman triángulo”
Ejemplo 3.3.13:
Dados 3 longitudes, compruebe si pueden formara un triángulo y luego
clasifiqueel triángulo según sus lados.
Solución:
Definición de variables:
Leer a, b, c
(a < b + c) AND (b < a + c) AND (c < a+ b)
V F
(a == b) AND (b == c)
V F
(a == b) AND (b == c)
OR (a == c) Imprimir
Imprimir
V F “No forman
“Triángulo
Imprimir Imprimir triángulo”
equilátero”
“Triángulo “Triángulo
isósceles” escaleno”
Ejemplo 3.3.14:
El rendimiento de un alumno se califica según lo siguiente:
Bueno si su promedio esta entre 16 y 20
Regular si su promedio está entre 11 y 15
Deficiente si su promedio está entre 6 y 10
Pésimo si su promedio está entre O y 5
Escriba un algoritmo que lea el promedio de un alumno y diga cuál es su
rendimiento.
Solución:
Definición de variables:
Prom:
Es la nota Promedio del alumno.
Diagrama N/S
Leer prom
Ejemplo 3.3.15:
Lea un número y obtenga el signo, su parte entera y su parte fraccionaria.
Solución:
Definición de variables:
x: Es el número a evaluar
Para obtener el signo, basta con preguntar si es mayor que cero, en cuyo caso
será positivo, encaso contrario será negativo. Todos los lenguajes de
programación incluyen funciones que obtienen la parte entera de un número.
En C++, esta función es floor().
Diagrama N/S
Leer x
x >= 0
V F
Imprimir Imprimir
“signo positivo" "signo negativo”
Imprimir
"Parte entera", entero (x)
"Parte fraccionaria", x - entero(x)
Ejemplo 3.3.16:
Si compramos por mayor100 o más articulos nos descuentan el 40%, si
compramos entre 25 y 100 nos descuentan un 20%, y si compramos entre10 y
25 un 10%. No hay descuento si adquirimos menos de 10 artículos. Diga
cuanto debemos pagar por nuestra compra.
Solución:
Definición de variables:
x: cantidad de artículos.
p: precio unitario del artículo.
d: descuento obtenido.
y: monto a pagar.
Diagrama N/S
Leer x, p
x >= 100
V F
d = 0.40 x >= 25
V F
x >= 10
V F
d = 0.20 x >= 0
d = 0.10 V F
d = 0.0
Imprimir
y = p * x * (1 - d)
“cantidad erronea”
Imprimir y
Ejemplo 3.3.17:
Si el sueldo de un empleado es de 1000 o menos se le descuenta el 10%. Si
esta entre 1000 y 2000 el 5% sobre el adicional, y si está arriba de 2000, el
3% sobre el adicional. Ecriba un algoritmo que lea el sueldo y muestre el
salario neto y el impuesto.
Solución:
Definición de variables:
sb: sueldo bruto del trabajador.
d: descuento al sueldo.
sn: sueldo neto del trabajador.
En este caso si el trabajador gana más de 1000 y hasta 2000, el descuento por
los primeros 1000 se mantendrá en 10% lo que equivale a 0.1*1000=100,
mientras que el descuento por lo que gana arriba de 1000 será 0.05(sb-1000).
Lo mismo ocurre cuando el trabajador gana más de 2000, puesto que se le
descuento 0.1*1000 = 100 por los primeros 1000, y 0.05*(2000-1000)=50,
por los siguientes 1000, el descuento será 100+50 +0.03(sb-2000).
Estos casos de descuentos adicionales por lo general se aplican en el caso de
pago de impuestos, con la intensión de que el pago sea más equitativo.
Entonces tenemos:
Si sb<=1000, d = 0.1sb
Si 1000<sb<=2000, d=l 00+0.05(sb-1000)
Si sb> 2000, d=150+0.03(sb-2000)
El salario neto será sn = sb -d
Diagrama N/S
Leer sb
sb<0
V F
sb<=1000
Imprimir V F
"sueldo
d=0.1*s sb<=2000
bruto
b V F
incorrect
d=l00+0.05(sb-1000) d=150+0.03(sb-2000)
o
sn = sb -d
Imprimir sb, sn, d
Ejemplo 3.3.18:
Dada la hora y el día en horas, minutos y segundos encuentre la hora del
siguiente segundo.
Solución:
Definición de variables:
h: horas
m: minutos
s: segundos
Diagrama N/S
Leer h, m, s
s = s +1
s==60
V F
s =0
m=m+1
m==60
V F
m=0
h = h+l
h==24
V F
h=0
Imprimir h, m, s
Ejercicíos Propuestos:
Ejemplos:
Ejemplo 3.4.1:
Construya una calculadora que lea 2 números y un operador, y efectue la
operación indicada. La calculadora será capaz de realizar las siguientes
operaciones: + (surna), - (resta), * (multiplicación), / (división) y # (potencia)
Solución:
Definición de variables:
Diagrama N/S
Solución:
Definición de variables:
día: día de nacimiento
mes: mes de nacimiento
Diagrama N/S
Leer día, mes
mes ___
otro
caso
1 2 3 4 5 6 7 8 9 10 11 12
día<21 día 20 dia<21 dia<21 dia<21 dia<22 dia<23 dia<23 dia<23 dia<21 dia<22 dia<22 E
r
V V F V F V F V F V F V V F V F V F V F V F r
F F o
r
"Capricornio"
"Escoprpio"
“capricornio”
"Sagitario"
"Sagitario"
"Géminis"
"Escopio"
"Gemins"
"acuario"
"acuario"
"Cáncer"
"Cáncer"
"Virgo"
"Virgo"
"piscis"
"piscis"
"Libra"
"Libra"
"tauro"
"tauro"
"aries"
"aries"
"Leo"
"Leo"
Ejemplo 3. 4.3
Lea un día y un mes cualquiera y determine a que estación pertenece.
Considere que primavera inicia el 23 de setiembre, verano inicia el 21 de
diciembre, otoño empieza el 21 de marzo e invieno el 22 de junio.
Solución:
Diagrama N/S
1 2 3 4 5 6 7 8 9 10 11 12 Otro caso
día<21 día<22 día<23 día<21
VF V F V F V F “mes incorrecto”
“Verano" “Otoño” “Invierno” “Primavera” “Verano”
Ejemplo 3.4.4:
Lea un mes y un año y determine cuántos días tiene ese mes.
Solucion:
Definición de variables:
m: mes
a: año
días: número de días que tiene el mes.
Podemos construir nuestro diagrama N/S sabiendo que enero, marzo, mayo,
julio, agosto, octubre y diciembre tienen 31 días, y que abril, junio, setiembre
y noviembre 30 días, además febrero tendrá 28 ó 29 días, según sea un año
normal o un año bisiesto respectivamente.
Diagrama N/S
Leer m, a
m
1 3 5 7 8 10 12 4 6 9 11 2
(a MOD 4 = = 0) AND
((a MOD 100 ≠ 0= OR
(a MOD 400 = = 0))
días = 31 días = 30
V F
días = 29 días = 28
Imprimir días
Ejemplo 3. 4.5:
Lea tres números que representen el día, el mes y el año, y diga si forman una
fecha correcta. Considere años bisiestos
Solución:
Definición de variables:
Diagrama N/S
Solución:
Definición de variables:
Diagrama N/S
Solución:
Definición de variables:
n: número arábigo que deseamos mostrar en romanos.
El diagrama N/S muestra el algoritmo pedido. Debe tener en cuenta que el
operador MOD devuelve el resto de la división entera, mientras que el
operador DIV devuelve el cociente entero de la división entera.
Diagrama N/S
Leer n
unidades = n MOD 10 n = n DIV 10
decenas = n MOD 10 n = n DIV 10
centenas = n MOD 10 n = n DIV 10
millares = n MOD 10
1 mi11ares
2 3
Imprimir Imprimir Imprimir
"M" "MM" "MMM"
Centenas
1 2 3 4 5 6 7 8 9
Imprimi Imprimir Imprimir Imprimir Imprimir Imprimir Imprimir Imprimir Imprimir
r "C" "CC" "CCC" "CD" "D" "DC" "DCC" "DCCC" "CM"
Decenas
1 2 3 4 5 6 7 8 9
Imprimi Imprimir Imprimir Imprimir Imprimir Imprimi Imprimi Imprimi Imprimir
r "X" "XX" "XXX" "XL" "L" r "LX" r "LXX" r "XC”
Unidades "LXXX"
1 2 3 4 5 6 7 8 9
Imprimir Imprimi Imprimi Imprimi Imprimir Imprimir Imprimir Imprimir Imprimir
"I" r "II" r r "IV" "V" "VI" "VII" "VIII" "IX”
"III"
Ejemplo 3.4.8:
Una Universidad Privada tiene una política de descuento en porcentajes
sobre el pago de pensiones de enseñanza, que se basa en la profesión del
tutor (policía, profesor de colegio, docente universitario, trabajador no
docente y otros) y, el rendimiento del alumno (bueno, regular, deficiente), tal
como se muestra en el cuadro siguiente:
Tabla de descuento (en.%)
Solución:
Definición de variables:
ocup: ocupación del tutor
rend: clasificación según rendimiento
Diagrama N/S
‘A’ ‘B’ ‘C’ ‘A’ ‘B’ ‘C’ ‘A’ ‘B’ ‘C’ ‘A’ ‘B’ ‘C’ ‘A’ ‘B’ ‘C’
d=0. d=0. d=0. d=0. d=0. d=0. d=0. d=0. d=0. d=0. d=0. d=0. d=0. d=0. d=0.
6 3 l 5 2 l 4 2 0 4 1 0 3 0 0
Imprimir
d
Ejercicios Propuestos
Lea atentamente cada enunciadoy plantee una solución. Luego construya un
diagrama N/S y codifiquelo en Java.
13) Dada una fecha obtenga el número de día dentro de ese año. Por
ejemploel 26/10/2000 es el día 300 del año 2000.
3.5. ESTRUCTURA REPETITIVA MIENTRAS
La estructura repetitiva mientras se caracteriza por realizar n iteraciones
mientras la pregunta condicional inicial se cumpla, en el caso que no se
cumple la condicion esta no realizra ninguna iteración.
Ejemplos:
Ejemplo 3.5.1:
Obtenga el cociente y el residuo de una división calculando la cantidad de
veces que un número está contenido en otro, mediante restas sucesiva:
Por ejemplo, si el dividendo es a = 5236 y el divisor b =1247, entonces
tendremos:
5236 - 1247 = 3989
3989 - 1247 = 2742
2742 - 1247 = 1495
1495 - 1247 = 248
Ya no seguimos restando pues 248 es menor que 1247. El cociente estará
dado por el número de restas (4) y el residuo por el último número obtenido
(248).
Definición de variables:
a: dividendo b: divisor Leer a, b
Solución:
Definición de variables:
Diagrama N/S
Leer m
a=0
b= 1
Imprimir a
mientras ( b < m)
Imprimir b
c=a+b
a=b
b=c
Solución:
Definición de variables:
a: primer número
b: segundo número
i: posibles divisores
Diagrama N/S
Leer a, b
i= 1
mientras ( i<= a AND i<=b )
a MOD i == 0 AND
b MOD i==0
V F
Imprimir i
i=i+1
Ejemplo 3.5.4:
Factorizar un número ingresado por teclado. Por ejemplo 8 = 2 x 2 x2.
Solución:
Definición de variables:
Diagrama N/S
Leer n
i=2
mientras (i< =n )
n MOD i == 0
V F
n = n/ i
Imprimir i i = i+ l
Ejemplo 3.5.5:
Escriba un algoritmo que diga si un númeroes primo.
Solución:
Definición de variables:
n: número a evaluar
i: posible divisor
band: 0 indica que no es primo
Diagrama N/S
Leer n
i=n/2
band =1
mientras (i >1 )
n MOD i == 0
V F
band = 0 i=i-l
band = =1
V F
Imprimir Imprimir
"Es primo” "No es primo"
Ejemplo 3.5.6:
Escriba un programa que permita reducir una fracción a su mínima
expresión. Por ejemplo: 28/64 = 7/16.
Solución:
Definición de variables:
a : numerador
b: denominador
i: posible divisor de a y b
Diagrama N/S
Leer a, b
i=2
mientras ( i< =a AND i<=b)
a MOD i == 0 AND
b MOD i= = 0
V F
a=a/i
i = i+ l
b=b/i
Imprimir
a, “∕”, b
Ejemplo 3.5.7:
Lea un número y forme otro número con las cifras en orden inverso. Así si el
número es 12345 el nuevo número será 54321.
Solución:
Definición de variables:
Para obtener un nuevo número inv, formado por los dígitos de n, pero en
orden invertido, debemos obtener cada uno de los dígitos de n, e ir
desplazándolos un valor posicional (unidad, decena, centena, etc.). Cada uno
de los dígitos, pueden ser obtenidos al buscar el resto de la división entera
entre 10 (n MOD 10) y se debe ir incrementando el valor posicional
mediante la multiplicación del resto por 10, y su acumulación en la variable
inv. Se puede usar la división entera (que de manera estándar se representa
mediante el operador DIV, y que en C++, se implementa con el operador /)
siempre y cuando sus argumentos sean de tipo entero. El ciclo se ejecuta
mientras el número aún tenga dígitos que obtener (mientras n sea mayor
que cero), luego del cual imprimimos inv.
Diagrama N/S
Leer n
inv = 0
mientras ( n >0 )
Imprimir
inv
Ejemplo 3.5.8:
Un número se considera perfecto cuando la suma de sus divisores es igual al
número. Por ejemplo 6 tiene como divisores a 1, 2 y 3 y como 1+2+3= 6, el
número 6 será perfecto; 28 tiene como divisores a 1,2, 4, 7, 14, luego 28 es
perfecto pues 1+2+ 4+7+14=28, lo mismo ocurre con 496 y 8128. Escriba
un programa que lea un número y diga si es perfecto
Solución;
Definición de variables:
n: numero a evaluar
s: suma de los divisores
i: posibles divisores
Diagrama N/S
Leer n
s=0
i=n/2
mientras (i >0 )
n MOD i == 0
V F
s=s+1
i=i-l
s = =1
V F
Imprimir Imprimir
"Es perfecto" "No es perfecto"
Ejemplo 3.5.9:
Los números Amstrong o cubos perfectos, son aquellos que sumados a los
cubos de sus dígitos nos dan el mismo número. Por ejemplo 153 es un cubo
perfecto pues 13 + 53 + 33 = 153. Lea un número y diga si es o no, un cubo
perfecto.
Solución:
Definición de variables:
n: número a evaluar
se: suma de los cubos de sus cifras
temp: se iguala inicialmente a n, y sirve para trabajar en el algoritmo sin
perder n
De manera similar al ejercicio anterior pero esta vez obtenemos cada dígito
para elevarlo al cubo y acumularlo en sc. Si se resulta ser igual a n, entonces
el número es un cubo perfecto.
Pruebe el algoritmo con los siguientes cubos perfectos: 1, 153, 370, 371 y
407.
Diagrama N/S
Leer n
sc = 0
temp = n
mientras (temp >0 )
sc = sc + (temp MOD 10)3
temp = temp DIV 10
n = = sc
V F
Imprimir Imprimir
"Cubo "No es cubo perfecto”
perfecto"
Ejemplo 3.5.10:
Lea un número y una base de un sistema de nuemeración, y diga si el número
pertenece a ese sistema de numeración, teniendo en cuenta que para que un
número pertenesca a un sistema de numeración todos su digitos deben ser
menores que la base.
Solución:
Definición de variables:
Entonces, dado el número num y la base base, debemos encontrar cada dígito
de num. Si alguno de estos dígitos es mayor que base, entonces debemos
indicar que dicho número no es correcto activando la bandera haciendo band
=1 y, cuando terminemos de evaluar todos sus dígitos, preguntar si esa
bandera fue puesta a 1, en cuyo caso no será un número válido en dicho
sistema de numeración.
Diagrama N/S
Solución:
Por ejemplo sea el número 194 en base 10, al que deseamos convertir a base 5,
entonces:
194 5
(4) 38 5
(3) 7 5
(2) 1 5
(1) 0
194(10) = 1234 (5)
Diagrama N/S
Leer n, base
inv = 0
mientras ( n > 0 )
inv = 10*inv + n MOD base
n = n DIV base
mientras (inv > 0 )
n= 10*n+ inv MOD 10
inv = inv Dív 10
Imprimir n
Ejemplo 3.5.12:
Lea un número entero en una base menor que 10, y conviertalo a base 10.
Solución:
Para convertir un número escrito en una base distinta a 10, debemos obtener sus
dígitos y multiplicarlos por la base de numeración en que se encuentran pero
elevada a la potencia según su valor posicional disminuido en una unidad. Por
ejemplo, para convertir el número 1234(5) a su equivalente en base 10, haremos lo
siguiente:
Definición de variables:
Diagrama N/S
Leer n, base
i=0
nuevo = 0
mientras ( n > 0)
nuevo= nuevo + (n MOD 10)
(base1)
n = n DIV 10
i = i+1
Imprimir
nuevo
Solución:
Euclides ideó un algoritmo para encontrar el mcd, de dos números y consiste
en dividir sucesivamente ambos números hasta que el divisor sea cero.
1 6 1 2 1 1 2
236 205
306 221 85 51 34 17
3 7
306 221 85 51 34 17 0
Definición de variables:
a : primer número (dividendo)
b: segundo número (divisor)
r: resto de la división entera
Diagrama N/S
Leer a, b
mientras (b>0)
r = a MOD b
a=b
b=r
Imprimir a
Ejemplo 3.5.14:
Encuentre el mcd de dos numeros por restas sucesivas
Solución:
Definición de variables:
a: primer número
b: segundo número
Una forma alternativa de realizar una división es mediante restas tal como se
vio en el Problema 3.5.1. Así, el Algoritmo de Euclides, pero aplicando restas
sucesivas en vez de la división, puede implementarse tal como se observa en el
diagrama N/S.
Diagrama N/S
Leer a, b
mientras ( a≠b)
a>b
V F
a=a-b b=b-a
Imprimir a
Ejemplo 3.5.15
Obtenga el máximo común divisor mcd de dos números
por descomposición de factores. Tomemos los números 360 200 2
360 y 200 y procedemos a probar sucesivamente si los 180 100 2
números i = 2, 3, … dividen a ambos.Cuando la división 90 50 2
de 360 y 200 entre i sea exacta, realizamos las divisiones 45 25 5
y volvemos a probar con el mismo i. 0 5
Solución:
Definición de variables:
a: primer número
b: segundo número
mcd: máximo común divisor
i: posibles divisores
Diagrama N/S
Leer a, b
mcd = 1
i =2
mientras ( i<= a AND i<=b )
a MOD i == 0 AND
b MOD i==0
V F
a =a/ i
b =b/i i = i+ 1
mcd = mcd * i
Imprimir
mcd
Ejemplo 3.5.16;
E1 mínimo común múltiplo (mcm) de 2 o más números, es el menor número
contiene a todos ellos una cantidad exacta de veces. Construya un algoritmo
para calcular el mcm de 2 números leídos por teclado.
Solución:
Definición de variables:
a: primer número
b: segundo número
mcm: mínimo común múltiplo
i: posibles divisores
band: 0 indica si i aumentará en 1
Diagrama N/S
Leer a, b
mcm =1 i=2 band = 0
mientras ( i<= a OR i<=b )
a MOD i = = 0 OR
b MOD i = = 0
V F
mcm = mcm*i
a MOD i = = 0
V F
a = a/ i i=i+1
b MOD i = = 0
V F
b =b/í
Imprimir
mcd
A diferencia del mcd, basta que uno de los números sea dividido por i, para
entrar en el cálculo del mcm. De aquí el uso de OR en vez del AND.
Ejercicios Propuestos:
Lea atentamente cada enunciado y plantee su solución. Luego construya su
diagrama N-S coreespondiente.
Ejemplos:
Ejemplo 3.6.1:
Encuentre el valor de π sabiendo que la suma de la serie: 1- 1/3 + 1/5 –
1/7+1/9 + ….es igual a π/4. Sugerencia: considere los términos cuyo valor
absoluto sea mayor a 0.000001.
Solución:
Diagrama N/S
i =1
Definición de variables: pi4 = 0
i: denominador varia de 2 en 2
signo = -1
pi4: cuarta parte de pi
hacer
signo: variable contiene el signo del término
signo = -signo
pi4 = pi4 + signo*(l/i)
i=i+2
En la serie mostrada el denominador aumenta mientras ( 1/i >
en 2 para cada término, y los signos se alternan 0.000001)
entre positivo y negativo. Imprimir
"Pi vale:", 4*pi4
Para este cálculo bastará con un bucle dentro del cual se haga el cambio de
signo, acumule el término y aumente en 2 el denominador (i), mientras el
valor absoluto del término actual (1/i) sea mayor a 0.000001.
Como la suma de todos los términos es π/4, debemos con multiplicar a pi4
por 4, para obtener π.
Ejemplo 3.6.2:
Hallar la raíz cuadrada de un número por el método de Newton.
Solución:
Definición de variables:
área: área del cuadrado
ladoO: lado inicial supuesto
ladol: lado calculado
Diagrama N/S
Una buena aproximación del lado0 es tomar la media aritmética entre los dos
valores obtenidos (lado0 y ladol) y asignarlo al nuevo lado0, tal expresión
sería: lado0 = (lado0 + ladol ) / 2, luego hay que volver a calcular el nuevo
ladol como ladol = área / lado0, y así sucesivamente hasta que la diferencia
entre lado0 y ladol sea despreciable.
Ejemplo 3.6.3:
Lea una serie de numeros hasta engresar el valor de cero.Luego indique
cuantos números positivos, negativos, pares e impares fueron ingresados.
Solución:
Definición de variables:
Diagrama N/S
Ejemplo 3.6.4:
Se tiene una lámina rectangular de largo y ancho conocidos a la que se
recorta un cuadrado de lado x en cada esquina con el objeto de formar una
caja. ¿Cuáles son las dimensiones de esta caja, si se desea que el volumen
sea el máximo posible?
Solución:
Definición de variables:
largo: largo de la lámina
ancho: ancho de la lámina
x: longitud del lado del cuadrado recortado
xmax: longitud del lado que hace máximo el volumen
vol: volumen de la caja
volmax: volumen máximo de la caja
Diagrama N/S
Solución:
Como el área tiene que ser positiva, entonces debe cumplirse que 0 < x ≤ 20,
por lo que calculamos las áreas para todos los x desde 0 hasta 20 con
incrementos pequeños (0.0001) y obteniendo la mayor área, y el valor de x
que hace máxima el área (xmax).
Ejercicios Propuestos:
Lee atentamente cada enunciado y plantee su solución. Luego construya un
diagrama N-S.
Ejemplos:
Ejemplo 3.7.1:
Calcule la suma de la siguiente serie.
Solución:
Definición de variables:
t: término cualquiera
s: acumulador indica la suma de términos
n: número de términos
i:indica el término actual
Diagrama N/S
t=l
s=l
Leer n, x
i = l; i<=n; i = 1 +l
t= t * x / i
s=s+t
Imprimir
s
Solución:
Definición de variables:
n: cantidad de trayectos
i: indica el trayecto i
d: distancia recorrida en trayecto i
t: tiempo utilizado en trayecto i
dt: distancia total recorrida
tt: tiempo total utilizado
Diagrama N/S
Leer n
dt = tt = 0
i = 1; i<= n; i = i + 1
Leer d, t
dt = dt + d
tt = tt + t
Imprimir dt/tt
Solución:
Definición de variables:
i: indica el exponente de x
n: grado del polinomio
coef: coeficiente de xi
valor: valor numérico del polinomio
Diagrama N/S
valor = 0
Leer n, x
i = n; i >= 0; i = i - 1
leer coef
valor = valor * x + coef
Imprimir
valor
Sea el polinomio f(x) = anxn + an-1xn-1+ an-2xn-2 + ... + a2x2 + a1x1 + a0x0
Solución:
Definición de variables:
Diagrama N/S
s =0
Leer n
i =1; i<=n; i = i +
1
Leer nro
s = s + nro
Imprimir
s/n
Debemos ingresar la cantidad de números que vamos a leer, e ir
acumulándolos en la variable s (previamente inicial izada en 0), conforme se
vayan leyendo. Al término de la lectura de los n números debemos obtener el
promedio dividiendo la suma (s) entre el total de números leídos (n).
Ejemplo 3.7.5:
Encuentre el promedio ponderado de n números.
Solución:
Definición de variables:
Matemáticamente:
Diagrama N/S
sn = 0
sp = 0
Leer n
i =1; i<=n; i = i + 1
Leer nro, p
sn = sn + nro*p
sp = sp + p
Imprimir
sn/sp
ASÍ pues, necesitamos leer cada uno de los n números con sus respectivos
pesos y calcular la sumatoria de todo los nro*p. Asimismo, debemos calcular
la sumatoria de todos los p.
Finalmente solo nos queda dividir las sumas encontradas.
Ejemplo 3.7.6:
Muestre las tablas de multiplicar del 1 al 15.
Solución:
Definición de variables:
Este algoritmo muestra como podemos anidar los bucles. Para ello se requiere de
un bucle externo (i), que indique la tabla de multiplicar que estamos obteniendo;
y de un bucle interno (j) que indique cada línea de la tabla de multiplicar i, tal
como se muestra.
Diagrama N/S
Solución:
Definición de variables:
hor: horas
min: minutos
seg: segundos
Diagrama N/S
Este es otro ejemplo de como podemos anidar el bucle for. Las horas
solamente pueden tomar valores desde 0 hasta 23. Los minutos desde 0
hasta 59, los segundos desde 0 hasta 59. De estos 3 bucles, quien debe
cambiar más rápido es el bucle de los segundos, por lo tanto será el bucle
más interno, luego vendrían los minutos y finalmente las horas. Recuerde que
quien cambia más despacio es el bucle más externo. Por lo demás el
algoritmo no requiere mayor explicación.
Ejemplo 3.7.8:
¿Cuántos números de 4 cifras existen, tales que sean múltiplos de 3 y 7?
Solución:
Definición de variables:
i: números a evaluar
m : Cantidad de números de 4 cifras múltiplos de 3
y 7.
Diagrama N/S
m=0
i = 1000; i<=9999; i =i+l
i MOD 3== 0 AND
i MOD 7== 0
V F
m = m +1
Imprimir m
Ejemplo 3.7.9:
Los números enteros que satisfacen la ecuación a2 + b2 = c2, se les conoce
como ternas pitagóricas. Encuentre todas las ternas pitagóricas menores que
n.
Solución:
Definición de variables:
Diagrama N/S
Leer n
a=l; a<=n; a = a+ 1
b=l; b<=n; b = b+l
c= 1; c<=n; c = c + 1
a2 + b2 = =c2
V F
Imprimir
a, b, c
Ejemplo 3.7.10:
Cuatro artículos cuestan 3, 7, 19 y23 soles respectivamente ¿Cuáles son las
posibles cantidades que podemos adquirir de cada artículo, si disponemos de
113 soles y deseamos gastarlo todo?
Solución:
Definición de variables:
Diagrama N/S
a=0; a<=(113 DIV 3); a = a+l
b=0; b<=(113DIV7); b = b+l
c=0; C<=(113 DIV 19); c=c+1
d=0; d<=(113 DIV 23); d=d+l
3a + 7b + 19c +23d = = 113
V F
Imprimir
a, b, c, d
Para esto hacemos uso de 4 bucles, uno para cada tipo de artículo. En el bucle
más interno preguntamos si la cantidad gastada es igual a 113 soles, en cuyo
caso imprimimos a, b, c y d.
Ejemplo 3.7.11:
Lea n números e indique cual es el mayor.
Definición de variables:
n: cantidad de números
i: sirve para llevar la cuenta de números
may: número mayor
nro: número leído
may = -32767
Leer n
i = 1; i<= n; i = i
+1
Leer nro
nro > may
V F
may = nro
Imprimir
may
Ejemplo 3.7.12
Muestre todos los números de 3 digitos tales que si invertimos sus cifras el
número original aumente en 297.
Solución:
Definición de variables:
i: es el número a evaluar
nro: es el número a invertir
inv: es el número invertido
Diagrama N/S
Ejemplo 3.7.13:
Obtenga el producto de n fracciones. De el resultado como una fracción
simplificada.
Solución:
Definición de variables:
Diagrama N/S
Leer nro
El algoritmo va obteniendo el producto pn = pd = 1
de las fracciones conforme se las va
ingresando. i = 1; i<= nro; i=i+l
Leer n, d
Una vez ingresados y multiplicados
todos los numeradores y pn = pn * n
denominadores, se procede a la pd = pd * d
simplificación de la fracción, tal como
se hizo en el Problema 4.6. i=2
mientras (i<=pn AND i<=pd )
pn MOD 1 ==0 AND
pd MOD i ==0
V F
pn = pn /i
i = I +1
pd = pd /i
Imprimir pn,"/", pd
Ejemplo 3.7.14:
Suma n fracciones. De el resultado com una fracción simplificada.
Definición de variables:
Diagrama N/S
Leer nro
i = 1; i<= nro; i=i+l
Leer n, d
i ==1
V F
nr = n nr = d*nr + n*dr
dr =d dr = d*dr
i=2
mientras (i<=nr AND i<=dr)
nr MOD i == 0 AND
dt MOD i ==0
V F
nr = nr / i i = i +1
dr = dr / i
El algoritmo implementado consiste en ir sumando las fracciones conforme
se vayan leyendo, de tal manera que siempre tendremos 2 fracciones que
sumar: la resultante y la que acabamos de ingresar. La suma de dos fracciones
tales como nr/dr y n/d de manera general es: (d*nr+ n*dr)/(d*dr) expresión
que es utilizada por nuestro algoritmo, dentro del bucle for.
Ejemplo 3.7.15:
¿De cuántas maneras se pueden ordenar n objetos?
Solución:
Definición de variables:
Diagrama N/S
fact = l
Leer n
i = 1; i<=n; i = i +1
fact = fact * i
Imprimir fact
Solución:
Definición de variables:
i: indica el i-ésimo objeto
n: número de objetos
v: cantidad posible de ordenamientos
Diagrama N/S
v=l
Leer n, r
i = 1; i<=r; i = i +1
v = v * ( n - i + 1)
Imprimir
v
c=l
Leer n, r
i=l; i<=r; i = i+l
c = c * ( n - i + l)/i
Imprimir
c
El enunciado del problema no es otro que el cálculo de combinaciones de n
objetos tomados en grupos de r elementos. Las combinaciones se definen
como la cantidad de formas que podemos tomar r objetos de un total de n
objetos en donde la posición no es importante, aquí, decir ab es igual a decir
ba, pues son los mismos objetos. Sea Cnr el número de combinaciones
requerido, cada una He estas combinaciones consta de r objetos deferentes
los cuales pueden ordenarse entre si de r! maneras, por lo tanto Cnr .r! es
igual a Vnr
De donde:
Puede demostrarse que la relación que existe entre Cnr y Cnr-i, viene dada por:
1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1
Solución:
Definición de variables:
n: cantidad de filas del triángulo o exponente del binomio + 1
i: fila actual
j: columna actual
coef: coeficiente binomial
El Binomio de Newton (a+b)n tiene una forma conocida de desarrollo que nos
evita tener que multiplicar n veces (a+b). Dicho desarrollo esta dado por:
De donde se puede observar que los coeficientes de cada uno de los términos,
son jrecisamente las combinaciones de n elementos tomados de r en r, esto es:
Cnr = n! / [r!. (n- r)! ], y por lo tanto la relación siguiente también se cumple.
Diagrama N/S
nro = 1
Leer n
Imprimir nro
i = 1; i<=n; i = i +1
Imprimir nro
j = l; j<=i; j=j+l
nro = nro* (i-j + l)/j
Imprimir nro
Ejercicios propuestos
Ejemplos:
Ejemplo 3.8.1:
Lea n números almacénelos en un array e imprímalos.
Solución:
Diagrama N/S
Definición de variables:
n: número de elementos del array Leer n
i: subíndice del término actual
x[ ]: array unidimensional i = 0; i<n; i = i+l
Leer x[ i ]
Un array es un conjunto de i = 0; i<n; i = i+l
datos referenciados con el mismo
nombre, pero distinguidos mediante Imprimir x[i]
un subíndice, y en donde cada
elemento es del mismo tipo. Cada uno de los elementos del array se
referencia con el nombre del array (x) seguido y de un subíndice ( i ). En
JAVA, los subíndices van desde 0, hasta [el límite declarado para el array
menos uno.
Para poder leer cada uno de los elementos del array (x[i]),
necesitamos conocer cuántos datos vamos a leer (n) y luego hacer un bucle
para leer cada l uno de ellos haciendo variar el subíndice (i) desde cero hasta
n-1. Una vez ingresados los elementos solo debemos imprimirlos mediante
otro bucle.
Ejemplo 3.8.2:
Calcule la media aritmética de un cojunto de datos.
Solución:
Definición de variables:
n: número de elementos del array
i: subíndice del término actual
s: suma de los elementos
x[ ]: array unidimensional
Diagrama N/S
Leer n
i = 0; i<n; i = i +1
Leer x[i ]
s=0
i = 0; i<n; i = i+l
s = s + x[i]
Imprimir s/n
Solución:
Definición de variables:
Diagrama N/S
Leer n
i = 0; i<n; i = i+l
Leer x[ i]
s=0
i = 0; i<n; i =i+l
s = s+ l/x[i]
Imprimir n/s
La media armónica se efine como "El inverso del promedio de los inversos".
Matemáticamente:
Solución:
Definición de variables:
n: número de elementos del array
i: subíndice del dato actual
p: producto de los datos
x[ ]: array unidimensional
Diagrama N/S
Leer n
i = 0; i<n; i = i+l
Leer x[i ]
p=1
i = 0; i<n; i = i+1
p = p *x [i ]
Imprimir p1/n
La media geométrica se define como la raíz enésima del producto de todos los
datos.
Matemáticamente:
Solución:
Definición de variables:
n: número de elementos del array
i: subíndice del término actual
valores[ ]: conjunto de elementos
pesos[ ]: ponderaciones de los valores[i]
sv: suma de los valores[i]
sp: suma de los pesos[i]
Diagrama N/S
Leer n
i = 0; i<n; i = i+l
Leer valores [i], pesosfi]
sv = 0
sp = 0
i = 0; i<n; i = i+l
sv = sv +valores[i] *
pesos[i]
sp = sp + pesos [i]
Imprimir sv/sp
Matemáticamente:
Luego necesitamos calcular la sumatoria de los productos de valores[i] por
pesos[i], y la sumatoria de pesos[i]. Esto se efectúa en el último bucle.
Diagrama N/S
Leer n
i = 0; i<n; i = i+l
Leer x[ i ]
Leer elem
band = 0
i = 0; i<n; i = i+l
x[i] = elem
V F
Imprimir i
band = 1
band==0
V F
Imprimir
"No lo encontré"
Solución;
Definición de variables:
n: número de elementos del array
i: subíndice del término actual
x[ ]: array unidimensional
elem: elemento a buscar
Bolución:
Definición de variables:
n: número de elementos del array
i: subíndice del término actual
j: subíndice del resto de términos desde i hasta n
k: subíndice de los términos desplazados
lista[ ]: array unidimensional
Diagrama N/S
Leer n
i = 0; i<n; i = i+l
Leer lista[ i ]
i = 0; i < n; i=i+1
j = i + l; j<n; j=j+l
lista[i] = lista[j]
V F
k=j;k<n-l;k=k+l
lista[k]=lista[k+l]
n = n- 1
j =i
Imprimir n
i = 0; i<n; i = i+1
Imprimir lista[ i ]
(lista[i+l]) hasta el final de la lista. Esto se consigue en el bucle más interno (el
bucle j), donde j va desde i+1 hasta n-1. En este último bucle se realizan las
comparaciones entre lista[i] y Iista[j], si son iguales hay que copiar todos los
elementos siguientes a una posición anterior. De esto se encarga el bucle k, que va
ha empezar a desplazar la lista desde j hasta el elemento final. Al salir del bucle
es necesario disminuir n en 1 y hacer j = i, para volver a probar si el término que
buscamos se encuentra nuevamente repetido, al hacer j = i y volverse a ejecutar
el bucle j, éste automáticamente sumará 1 a j, ocasionando que se vuelva a ejecutar
el bucle j como si fuera la primera vez. Finalmente, imprimimos el número actual
de elementos (n) y cada uno de ellos (Iista[i]).
Ejemplo 3.8.8:
Solución;
Matemáticamente:
Diagrama N/S
Leer n
i = 0; i<n; i = i +1
Leer x[ i ]
s=0
i = 0; i<n; i = i+l
s = s + x[i]
media = s/n
i = 0; i<n; i = i+l
suma = suma + (x[i] -
media)2
Imprimir suma/n, (suma/n)1/2
Definición de variables:
Solución:
Definición de variables:
n: número de elementos
i: subíndice del término actual
x[ ]: valores independientes
y[ ]: valores dependientes
sx: sumatoria de los x[i]
sy: sumatoria de los y[i]
sxx: sumatoria de los x[i]*x[i]
sxy: sumatoria de los x[i]*y[i]
a: coeficiente de x
b: término independiente de x
Leer n
i = 0; i<n; i = i+l
Leer x [i]
i = 0; i<n; i = i+l
Leer y [i]
sx = 0
sy = 0
sxx = 0
sxy = 0
i = 0; i<n; i = i+l
sx = sx + x[i]
sy = sy + y[i]
sxx = sxx + x[i]*x[i]
sxy = sxy + *[i]*y[i]
a = ( n*sxy - sx*sy ) / ( n*sxx - sx* sx )
b = (sy*sxx - sx*sxy)/ ( n*sxx - sx* sx )
Imprimir
a, b
Diagrama N/S
Leer n
i = 0; i<n; i = i+l
Leer x[ i ]
i = 1; i < n; i=i+1
j = n - 1; j >=i; j = j -1
x[j-l] > x[j]
V F
temporal = x[j-l]
x[i-l] = x[j]
x[j] = temporal
Imprimir n
i = 0; i<n; i = i+1
Imprimir x[i]
En los bucles anidados, el bucle más interno (el bucle j) recorre todos
los elementos del array desde la última posición (n-1) hasta la última
ubicación prdenada (i). En la primera iteración irá comparando cada elemento
con el anterior desde n-1 hasta i=l.
Solución:
Definición de variables:
Diagrama N/S
Leer n
i = 0; i<n; i = i+l
Leer x[ i ]
i = 0; i<n-1: i = i+l
k=i
temporal = x[i]
j=i+l; j<n; j=j + l
x[j] < temporal
V F
k=j
temporal = x[j]
x[k] = x[i]
x[i] = temporal
i = 0; i<n; i = i + 1
Imprimir x[i]
Una vez leídos los elementos y entrando al algoritmo de ordenamiento en sí,
la primera vez que se ejecuta el bucle i se hace la asignación k=0 y
temporal=x[0], aquí se está suponiendo que el menor elemento es el primero
y corresponde al subíndice 0 (esto es parte del algoritmo de buscar el menor
elemento de un array). Luego se inicia el bucle j, y sirve para encontrar el
menor elemento de todos, tomando como valor inicial de comparación al
primer elemento.
Solución:
Definición de variables:
DiagramaN/S
Leer n
i = 0; i<n; i = i+l
Leer x[ i ]
i = l; i<n; i = i +1
temporal = x[i]
j=i-l; j>=0 AND temporal <x[ j]; j=j-l
x[j+l]=x[j]
x[j+1] = temporal
i = 0; i<n; i = i + 1
Imprimir x[i]
Solución:
Definición de variables:
i: indica el mes (0... 11)
annio: guarda el año
nrodia: número de día leído
dias[ ]: array. Almacena número de días de los meses
suma: acumulador. Indica número de días hasta esa fecha
Comenzamos inicializando los días que tiene cada mes en el array dias[ ].
Aquí hacemos la suposición que se trata de un año normal (dias[l]= 28) y en
caso no ser cierto se procederá a su cambio (dias[l]= 29). Para esto
mecesitamos recordar la condición de bisiesto (ver Problema 2.8):
Diagrama N/S
dias[ ] = { 31,28,31,3031,3031,31,3031,30,31}
Leer nrodia, annio
( annio MOD 4==0)AND( (annio MOD 100*0)
OR (annio MOD 400==0))
V F
días[l]=29
suma = 0
i=0
Mientras ( nrodia > suma )
suma = suma + dias[i]
i = i+l
suma = suma - dias[i-l]
Imprimir (nrodia - suma), " /" , i, " /", annio
Debemos averiguar primero hasta que mes transcurrió (i) para el número de
días ingresados (nrodia).
Esto se consigue acumulando todos los días de cada mes (suma), mientras el
número de días (nrodia) sea mayor que los días acumulados (nrodia>suma).
Como al término del bucle mientras, se acumuló los días de un mes de más,
es necesario restar esos días de suma, esto se consigue mediante suma =
suma -días[í-l], el subíndice resulta ser i-1, puesto que al término del bucle
mientras se incremento i en 1.
Luego, la fecha está compuesta por los días transcurridos del mes actual que
son nrodia-suma, el mes es i (puesto que se le aumento 1 antes de salir del
bucle), y el año es annio.
Ejercicios propuestos:
Lea atentamente cada enunciado y plantee su solución. Luego construya un
diagrama N/S.
INTRODUCCIÓN A JAVA
Es orientado a objetos, porque como C++, Java usa clases para organizar
el código en módulos. En tiempo de ejecución, un programa crea
objetos a partir de las clases. Las clases en Java pueden heredar de otras
clases, pero la múltiple herencia, donde una clase hereda métodos y
datos de varias clases, no está permitida.
Ventajas de Java.
Es seguro.
Se aprende con facilidad.
Es orientado a objetos.
No bloquea el sistema.
Caracteristicas de Java
Comentarios
Identificadores
variable nombre
Usuario Nombre_Usuario
_numero
$cadena
Los últimos tres ejemplos son muy poco usados en la generalidad de los
programas. Los identificadores pueden contener palabras reservadas,
pero no pueden ser palabras reservadas; por ejemplo, es valido integer,
pero no int.
Palabras reservadas
El tipo de datos boolean (8 bits) puede tomar dos valores posibles: true y
false
int i = 10 ; int i = 10 ;
if ( i ) if ( i != 0 )
{ ... } { ... }
Existen dos tipos de datos reales: float (32 bits) y double (64 bits)
Existen cuatro tipos de datos enteros: byte (8 bits), short (16 bits), int
(32 bits) y long (64 bits)
El valor que toma por defecto una variable de tipo referencia es null
Cadenas de Caracteres
La clase String permite manejar cadenas de caracteres
X ????
32 bits
pc ????
32 bits
cadena ????
32 bits
reunion ????
Conversión de Tipos
Ejemplo: short a , b , c ;
c=a+b; Error, + devuelve int
c = (short)(b + c) ; Correcto
Operadores Java(I)
Operadores unarios: +, -
Operadores Java(III)
Procedencia de Operadores
'a' Letra a
'\t' Un tabulador
'\u????' Un carácter especifico, ???? es reemplazado con
cuatro dígitos hexadecimales.
Modificadores
Convenciones en la programación
class CuentaBancaria
interface Cuenta
void revisarCuenta()
if(condición)
{
bloque
}
Ejemplo:
En detalle:
// primer programa en Java
La primera línea es un comentario.
En las siguientes dos líneas se declara el inicio del programa. Para que
el intérprete de Java pueda ejecutar el programa debe tener la misma
sintaxis (excepto para el nombre del parámetro de main). Se declara
public para que lo pueda accesar el intérprete de Java. Se declara static
porque no se ha creado algún objeto y no se crea una instancia. Se
declara void porque no se regresa valor alguno. En este ejemplo no se
va a esperar parámetros de la línea de comandos. En argv[] se guardan
los parámetros y la primera posición contiene el primer parámetro, no
el nombre del programa:
argv[0] parametro1
argv[1] parametro2
System.out.println("Hello world!");
EL LENGUAJE
Expresiones lógicas
int i = 1;
if(i) // error en tiempo de compilación
if(i != 0) // correcto
Operadores y su Precedencia
Cast
Cuando la asignación de valores no es compatible por los tipos de datos,
se usa un cast para persuadir al compilador de reconocer tal asignación.
Esto se puede hacer para asignar un long a un int, por ejemplo.
long bigValue = 99L;
int smallValue = (int)(bigValue);
Flujo de programa
Sentencia if/else.
if ( <exprBooleana> )
<sentencia> ;
if ( <exprBooleana> )
{
<grupoSentencias 1> ;
}
else
{
<grupoSentencias 2> ;
}
if ( <exprBooleana> )
{
<grupoSentencias > ;
}
if ( <exprBooleana> )
{
<grupoSentencias > ;
}
else
{
if ( <exprBooleana> )
{
<grupoSentencias > ;
}
}
Ejemplo:
Sentencia Switch.
switch(expresión_a_evaluar)
{
case valor1:
instrucciones; break;
case valor2:
instrucciones; break;
case valor3:
instrucciones; break;
default:
instrucciones; break;
}
El valor de expresion_a_evaluar debe ser compatible con el tipo int,
como short, byte y char. No se permite evaluar long o valores de punto
flotante.
Ejemplo:
switch(colorNum)
{
La sentencia For.
for(inicialización;condición;alteración)
{
instrucciones;
}
Ejemplo:
int x;
for(x = 0;x < 10;x++)
{
System.out.println("dentro de for");
}
System.out.println("fin de for");
for(int x=0;x<10;x++)
{
...
}
// una vez terminado el ciclo, x ya no puede ser accesada
La sentencia While.
while(condición)
{
instrucciones;
}
Ejemplo:
int i = 0;
while(i<15)
{
System.out.println("dentro de while");
i+=2;
}
La sentencia do/while.
do
{
instrucciones;
}
while(condición);
Ejemplo:
int i = 0;
do
{
System.out.println("dentro de while");
i++;
}
while(i<10);
Paquetes
package empresa.sistemas;
import empresa.sistemas.*;
ARRAYS
Declaracion de arrays:
Instanciación de Arrays
length: 20
0 I I8 I9
0 0 ... 0 0
Inicialización de Arrays
equivale a
Arrays Multidimensionales
equivale a
6.2. CLASE
Una clase es una plantilla o prototipo que define las variables y los
métodos comunes a todos los objetos de cierto tipo. Las clases definen
estado (variables) y comportamiento (métodos) de todos los objetos.
Las clases son el mecanismo por el que se pueden crear nuevos Tipos en
Java. Las clases son el punto central sobre el que giran la mayoría de los
conceptos de la Orientación a Objetos.
Una clase es una agrupación de datos y de código (métodos) que actúa
sobre esos datos, a la que se le da un nombre.
Una clase contiene:
Datos (se denominan Datos Miembro). Estos pueden ser de tipos
primitivos o referencias.
Métodos (se denominan Métodos Miembro).
La sintaxis general para la declaración de una clase es:
import java.io.*;
class Rectangulo{
private double base;
private double altura;
public Rectangulo(double b, double h) // Constructor
{ base = b;
altura=h;
}
public void setBase(double b)
{
base=b;
}
public void setAltura(double h)
{
altura=h;
}
public double getBase()
{
return base;
}
public double getAltura()
{
return altura;
}
public double area()
{
return base*altura;
}
Rectangulo R;
Se esta declarando a R como un Objeto de la Clase Rectangulo.
La declaración no crea nuevos objetos. En la declaración (Rectangulo R)
se declara una variable llamada R la cual será usada para referirnos a un
Objeto Rectangulo. La referencia esta vacía. Una referencia vacía es
conocida como referencia nula.
Al colocar :
R = new Rectangulo(3,4);
Con el operador new creamos un objeto de la clase Rectangulo.El
operador new instancia una clase asignando memoria para el nuevo
Objeto.
El operador new requiere una llamada a un constructor de la clase a
instanciar. El constructor inicializa el nuevo objeto.El operador new
retorna una referencia al objeto creado.
Una vez creado el objeto para poder llamar a sus metodos usamos lo
siguiente
objeto.nombredeMétodo. Por ejemplo para calcular el area usamos
R.area(), para calcular el perímetro R.perimetro() y para calcular la
diagonal R.diagonal().
Al escribir System.out.println(“Rectangulo : “+R); en realidad se esta
llamando tácitamente al método toString de la clase R.
Si se deseara modificar el atributo base del Objeto se debe usar el
método setBase por ejemplo si después de crear el objeto queremos que
base tenga el valor 10, se colocaria la siguiente instrucción:
R.setBase(10); lo mismo se hace si se quiere modificar la altura.
Si se desea saber el valor de algún atributo del objeto se usa los métodos
get, por ejemplo si quisiera imprimir el valor de la base del objeto R se
tendria que escribir lo siguiente :
Ejercicios:
class Cilindro{
private double radio;
private double altura;
import java.io.*;
class Numeros{
private double numero1;
private double numero2;
public Numeros(double n1,double n2)
{
numero1=n1;
numero2=n2;
}
class Alumno{
private String nombre;
private double nota1;
private double nota2;
import java.io.*;
class Trabajador{
private String nombre;
private double horasTrabajadas;
private double precioHora;
import java.io.*;
class Movil{
private double velocidadInicial;
private double aceleracion;
private double tiempo;
class Alpha {
private int x;
private void privateMethod() {
System.out.println("privateMethod");
}
}
Protected
Permite que las clases, subclases y todas las clases del mismo paquete
puedan acceder a sus miembros.
Public
Cualquier clase en cualquier paquete tienen acceso a miembros publicos
de las clases.
Ejm:
package Greek;
import Greek.*;
class Beta {
void accessMethod() {
Alpha a = new Alpha();
a.iampublic = 10; // legal
a.publicMethod(); // legal
}
}
Package
El nivel de acceso package es el que se obtiene si no se coloca
explícitamente otros niveles de acceso. Este nivel de acceso permite a las
clases en el mismo paquete como su clases acceder a los miembros. Este
nivel de acceso asume que clases en el mismo paquete son amigas de
confianza.
Ejemplo:
package Greek;
class Alpha {
int iampackage;
void packageMethod() {
System.out.println("packageMethod");
}
}
Supongan que Alpha y Beta fueron declaradas como parte del paquete
Greek Package
package Greek;
class Beta {
void accessMethod() {
Alpha a = new Alpha();
a.iampackage = 10; // legal
a.packageMethod(); // legal
}
}
La referencia this
Cada objeto tiene acceso a una referencia a si mismo, llamada referencia
this.
La referencia this se usa explícitamente para referirse tanto a los
atributos como a los metodos de un objeto.
Ejemplo:
class Numero{
private int x;
public Numero(int x)
{
this.x = x;
}
public void setX(int x)
{
this.x = x;
}
public String toString()
{
Return “x = “+this.x;
}
}
import java.io.*;
class Empleado{
private String nombres;
private String apellidos;
private static int contador;
{
nombres=nom;
}
6.4. HERENCIA
A través de la herencia, una clase nueva hereda los atributos y métodos
de una superclase previamente definida. En este caso decimos que la
nueva clase es una subclase.
En la herencia simple, una clase se hereda de una superclase. Java no
reconoce la herencia múltiple, pero si maneja el concepto de interfaces.
Las interfaces ayudan a java a lograr muchas de las ventajas de la
herencia múltiple.
Una subclase normalmente agrega sus propios atributos y métodos. De
modo que una subclase generalmente es mayor que su superclase. Una
subclase es más específica que su superclase y representa un grupo más
pequeño de objetos. El verdadero valor de la herencia radica en la
capacidad de definir en la subclase adiciones a las características
heredadas de la superclase o sustituciones de estas.
Todo objeto de una subclase es también un objeto de la superclase de esa
subclase. Sin embargo no se cumple lo opuesto: los objetos de una
superclase no son objetos de las subclases de esa superclase.
Las relaciones de herencia forman estructuras jerárquicas similares a un
árbol. Una superclase existe en una relación Jerárquica con sus
subclases. Sin duda, una clase puede existir sola, pero es cuando una
clase se emplea con el mecanismo de herencia que se convierte ya sea en
una superclase que proporciona atributos y comportamientos a otras
clases, o en una subclase que hereda dichos atributos y comportamientos.
Ejemplos:
Persona
Por ejemplo en una ciudad existen Personas las cuales pueden ser
Empleados, Estudiantes, Religiosos. Los Empleados pueden ser
Profesor, Contador. Los estudiantes pueden ser Universitarios, de
Institutos y Colegios.
Miembros Protected
Los miembros protected de una superclase sólo están accesibles para los
métodos de la superclase, los métodos de las subclases y los métodos de
otras clases del mismo paquete.
import java.io.*;
class Punto{
protected double x;
protected double y;
public Punto()
{
x=0;
y=0;
}
return "("+x+","+y+")";
}
}
public Circulo()
{
super();
radio=0;
}
P=C;
System.out.println("Circulo via Punto"+P);
// Si se trabaja con P para calcular el area primero debemos
// Convertir P a tipo Circulo.
System.out.println("Area del Circulo : "+((Circulo)P).area());
}
}
6.6. POLIMORFISMO
Mediante el polimorfismo, se pueden escribir programas que procesen
genéricamente – como objetos de superclase- objetos de todas las clases
existentes en una jerarquía. Las clases que no existen durante el
desarrollo de los programas se pueden agregar con poca o ninguna
modificación de la parte genérica del programa, en tanto esas clases
formen parte de la jerarquía que se esta procesando genéricamente.
Ejemplos:
import java.io.*;
apellidos=ape;
}
EmpleadoPorComision("Zavaleta","Juan",300,4,200);
EmpleadoPorHora H = new
EmpleadoPorHora("Narvaez","Robinson",10,40);
EmpleadoADestajo D = new
EmpleadoADestajo("Marin","Alejandro",20,5);
E = J;
System.out.println(E.toString()+" gano "+E.ganancias());
E = C;
System.out.println(E.toString()+" gano "+E.ganancias());
E = H;
System.out.println(E.toString()+" gano "+E.ganancias());
E = D;
System.out.println(E.toString()+" gano "+E.ganancias());
}
}
La Linea
E = J;
La expresion :
E.toString()
La llamada al Metodo
E.ganancias()
import java.io.*;
F[0]=p;
F[1]=c;
F[2]=k;
System.out.println(p.getNombre()+" : "+p);
System.out.println(c.getNombre()+" : "+c);
System.out.println(k.getNombre()+" : "+k);
// Procesamos ahora el arreglo de Figuras e imprimimos el
nombre, area y volumen
// de cada objeto
for(int i=0;i<3;i++)
{
System.out.println();
System.out.println(F[i].getNombre()+" : "+F[i]);
System.out.println("Area ="+F[i].area());
System.out.println("Volumen"+F[i].volumen());
System.out.println("=============");
}
}
6.7. INTERFACES
El concepto de interface lleva un paso más adelante la idea de las clases
abstractas. En Java una interface es una clase abstracta pura, es decir
una clase donde todos los métodos son abstractos (no se implementa
ninguno). Permite al diseñador de clases establecer la forma de una
clase (nombres de métodos, listas de argumentos y tipos de retorno,
pero no bloques de código). Una interface puede también contener datos
miembro, pero estos son siempre static y final. Una interface sirve para
establecer un 'protocolo' entre clases.
Para indicar que una clase implementa los métodos de una interface se
utiliza la palabra clave implements. El compilador se encargará de
verificar que la clase efectivamente declare e implemente todos los
métodos de la interface. Una clase puede implementar más de una
interface.
Una interface se declara:
interface nombre_interface {
tipo_retorno nombre_metodo ( lista_argumentos ) ;
...
}
Por ejemplo:
interface InstrumentoMusical {
void tocar();
void afinar();
String tipoInstrumento();
}
Referencias a Interfaces
Es posible crear referencias a interfaces, pero las interfaces no pueden
ser instanciadas. Una referencia a una interface puede ser asignada a
cualquier objeto que implemente la interface. Por ejemplo:
InstrumentoMusical instrumento = new Guitarra();
instrumento.play();
System.out.prinln(instrumento.tipoInstrumento());
Extensión de interfaces
Las interfaces pueden extender otras interfaces y, a diferencia de las
clases, una interface puede extender más de una interface. La sintaxis
es:
Agrupaciones de constantes
Dado que, por definición, todos los datos miembros que se definen en
una interface son static y final, y dado que las interfaces no pueden
instanciarse resultan una buena herramienta para implantar grupos de
constantes. Por ejemplo:
System.out.println(Meses.NOMBRES_MESES[ENERO]);
interface Oyente {
void botonPulsado(Boton b);
}
La interface define un único método botonPulsado. La idea es que este
método sea invocado por la clase Boton cuando el usuario pulse el
botón. Para que esto sea posible en algún momento hay que notificar al
Boton quien es el Oyente que debe ser notificado. La clase Boton
quedaría:
Con todo esto la clase que utiliza este mecanismo podría tener el
siguiente aspecto:
...
void botonPulsado(Boton x) {
// procesar click
...
}
}
6.8. PAQUETES
Claúsula Packaged:
package miPackage;
...
class miClase {
...
declara que la clase miClase pertenece al package miPackage.
Claúsula import
Cuando se referencia cualquier clase dentro de otra se asume, si no se
indica otra cosa, que ésta otra está declarada en el mismo package. Por
ejemplo:
package Geometria;
...
class Circulo {
Punto centro;
...
}
package GeometriaBase;
class Punto {
int x , y;
}
package GeometriaAmpliada;
import GeometriaBase.*;
class Circulo {
Punto centro;
...
}
package GeometriaAmpliada;
class Circulo {
GeometriaBase.Punto centro;
...
}
Para que una clase pueda ser usada fuera del package donde se definió
debe ser declarada con el modificador de acceso public, de la siguiente
forma:
package GeometriaBase;
Si una clase no se declara public sólo puede ser usada por clases que
pertenezcan al mismo package
CAPITULO VII
ESTRUCTURA SECUENCIAL
import java.io.*;
public class ejercicio32
{
public static void main(String[] args) throws IOException
{ String nom,ap;
double pm,pmt,pt;
BufferedReader leer = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("ingrese su nombre");
nom=(leer.readLine());
System.out.println("ingrese sus apellidos");
ap=(leer.readLine());
System.out.println("ingrese el pago mensual");
pm=Double.parseDouble(leer.readLine());
System.out.println("ingrese el pago de la matricula");
pmt=Double.parseDouble(leer.readLine());
pt=pm+pmt;
System.out.println("su nombre es:"+nom);
System.out.println("sus apellidos son:"+ap);
System.out.println("el pago total es:"+pt);
}
}
Ejemplo 2: Programa que permite calcular el producto de un numero
ingresado por teclado.
import java.io.*;
public class Ejercicio02
{ public static void main(String Args[])throws IOException
{double num,res=0;
BufferedReader in = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese un numero:");
num=Double.parseDouble(in.readLine());
res=num*2*25;
System.out.print("El el resultado de multiplicar por 25 y duplicar
es:" + res);
}
}
import java.io.*;
public class Ejercicio03
{ public static void main(String Args[])throws IOException
{ double la,lb,p=0,area=0;
BufferedReader leer= new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese un lado:");
la=Double.parseDouble(leer.readLine());
System.out.println("Ingrese el otro lado:");
lb=Double.parseDouble(leer.readLine());
p = la*2 + lb*2;
area=la*lb;
System.out.println("El perimetro del rectangulo es:" + p);
System.out.println("El area del rectangulo es:" + area); }
}
Ejemplo 3: Programa que permite convertir metros en pies y pulgadas.
import java.io.*;
public class Ejercicio09
{ public static void main(String Args[])throws IOException
{double me,pies=0,pul=0;
BufferedReader in = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese la cantidad en metros:");
me= Double.parseDouble(in.readLine());
pul=me*39.37;
pies=pul*12;
System.out.println("su convercion en pies es:"+pies+"pies");
System.out.println("su convercion en pulgadas
es:"+pul+"pulgadas");
}
}
import java.io.*;
public class Ejercicio07
{ public static void main(String Args[])throws IOException
{int Co,Ca;
double h,parcial;
BufferedReader leer= new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese la longitud del primer cateto:");
Co=Integer.parseInt(leer.readLine());
System.out.println("Ingrese la longitud del segundo cateto:");
Ca=Integer.parseInt(leer.readLine());
parcial= Co*Co+Ca*Ca;
h= Math.pow(parcial, 0.5);
System.out.print("LA hipotenusa es:"+h);
}
}
Ejemplo 5: Programa que permite calcular el tiempo de demora de 3
tipos de examenes.
import java.io.*;
public class Ejercicio05
{public static void main(String Args[])throws IOException
{int EA,EB,EC;
int TM=0,h=0,min=0;
BufferedReader leer= new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese la cantidad de Examenes del tipo A:");
EA=Integer.parseInt(leer.readLine());
System.out.println("Ingrese la cantidad de Examenes del tipo B:");
EB=Integer.parseInt(leer.readLine());
System.out.println("Ingrese la cantidad de Examenes del tipo C:");
EC=Integer.parseInt(leer.readLine());
TM=EA*5+EB*8+EC*6;
h= TM/60;
min= TM/60;
System.out.print("Se va a demorar: "+h+" horas y "+min+"
minutos.");
}
}
import java.io.*;
public class Ejercicio04
{public static void main(String Args[])throws IOException
{double total=0,PV=0,PM=0,V,M;
BufferedReader in = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese la cantidad de varones:");
V=Double.parseDouble(in.readLine());
System.out.println("Ingrese la cantidad de mujeres:");
M=Double.parseDouble(in.readLine());
total = V +M;
PV=(V*total)/100;
PM=(M*total)/100;
import java.io.*;
public class Ejercicio11
{public static void main(String Args[])throws IOException
{double v,r,l=0,t=0;
BufferedReader leer= new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese la velocidad en m/s:");
v= Double.parseDouble(leer.readLine());
System.out.println("Ingrese el radio de la pista: ");
r= Double.parseDouble(leer.readLine());
l=2*3.1416*r;
t=l/v;
System.out.println("el tiempo que tarda de dar 2 vueltas es
de:"+t+"segundos.");
}
}
Ejemplo 8: Programa que permite convertir una temperatura en grados
celcius a Fahrenheit.
import java.io.*;
public class Ejercicio12
{ public static void main(String Args[])throws IOException
{double C,F;
BufferedReader leer=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese la temperatura en Celcius");
C= Double.parseDouble(leer.readLine());
F=(9*C)/5 + 32;
System.out.println("La temperatura en Fahrenheit es: " + F);
}
}
import java.io.*;
public class ejemplo1
{
public static void main(String[] args)throws IOException
{
double num1=20;
double num2=30;
System.out.print("La suma es :"+(num1+num2));
}
}
Ejemplo 10: Programa que permite calcular la suma de dos numeros
ingresados por teclado.
import java.io.*;
public class ejemplo2
{
public static void main(String[] args) throws IOException
{
double num1, num2, suma=0;
BufferedReader leer = new BufferedReader(new
InputStreamReader(System.in));
System.out.print("Ingrese los valores");
System.out.print("Ingrese el primer valor :");
num1=Double.parseDouble(leer.readLine());
System.out.print("Ingrese el segundo valor :");
num2=Double.parseDouble(leer.readLine());
suma=num1+num2;
System.out.print("La suma es:"+suma);
}
}
ESTRUCTURA CONDICIONAL SIMPLE (IF)
import java.io.*;
public class ejercicio13
{
public static void main(String[] args) throws IOException
{
int num1;
BufferedReader leer = new BufferedReader(new
InputStreamReader(System.in));
num1 =Integer.parseInt(leer.readLine());
if (num1>0)
{
System.out.println(num1 + " es positivo");
}
else
if (num1<0)
{
System.out.println(num1+ " es negativo");
}
else
if (num1==0)
{
System.out.println(num1 + " es cero");
}
}
}
Ejemplo 12: Programa que permite calcular las operaciones basicas de
resta, suma, multiplicación y division de dos numeros ingresados por
teclado.
import java.io.*;
public class ejercicio15
{
public static void main (String[] args) throws IOException
{ int x,y;
int res=0,sum=0,mult=0,div=0;
BufferedReader leer=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("ingrese el primer valor");
x=Integer.parseInt(leer.readLine());
System.out.println("ingrese el segundo valor");
y=Integer.parseInt(leer.readLine());
res=x-y;
sum=x+y;
mult=x*y;
if(y!=0)
{
div=x/y;
}
else
{
System.out.println("no existe divicion entre cero");
}
System.out.println("la resta es:"+ res);
System.out.println("la suma es :"+ sum);
System.out.println("la multiplicacion es :"+mult);
System.out.println("la divicion es:"+div);
}
}
Ejemplo 13: Programa que permite calcular el costo de una llamada
telefonica.
import java.io.*;
public class ejercicio17
{
public static void main(String[] args) throws IOException
{
double min;
double cll=0;
int c1=5;
int c2=3;
BufferedReader leer = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("ingresar los minutos consumidos");
min =Double.parseDouble(leer.readLine());
if (min>0 && min<=3)
{
cll=min*c1;
}
else
{
cll=(3*c1)+((min-3)*c2);
}
System.out.println("elcosto de la llamada es : " + cll);
}
}
Ejemplo 14: Programa que permite calcular la condicion de estudiante
de acuerdo a sus tres examenes ingresados..
import java.io.*;
public class ejercicio25
{ public static void main(String[] args) throws IOException
{ double EX1,EX2,EX3,PF=0;
BufferedReader leer = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("ingrese la nota del primer examen:");
EX1=Double.parseDouble(leer.readLine());
System.out.println("ingrese la nota del segundo examen:");
EX2=Double.parseDouble(leer.readLine());
System.out.println("ingrese la nota del tercer examen:");
EX3=Double.parseDouble(leer.readLine());
PF=(EX1+EX2+EX3)/3;
if (PF>=0 && PF<=69)
{
System.out.println(PF+":reprobado.");
}
if (PF>=70 && PF<=79)
{
System.out.println(PF+":hay que mejorar.");
}
if (PF>=80 && PF<=89)
{
System.out.println(PF+":bien.");
}
if (PF>=90 && PF<=99)
{
System.out.println(PF+":muy bien.");
}
if (PF==100)
{
System.out.println(PF+":excelente.");
}
}
}
Ejemplo 15: Programa que permite mostrar el tipo de triangulo que se
forma según valores ingresados de sus tres lados.
import java.io.*;
public class ejercicio26
{
public static void main(String[] args) throws IOException
{ int A,B,C;
BufferedReader leer = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("ingrese el lado mayor");
A=Integer.parseInt(leer.readLine());
System.out.println("ingrese primer lado");
B=Integer.parseInt(leer.readLine());
System.out.println("ingrese segundo lado");
C=Integer.parseInt(leer.readLine());
if (A>=(B+C))
{
System.out.println("no se forma un triangulo");
}
if ((A^2)==((B^2)+(C^2)))
{
System.out.println("se forma un triangulo rectangulo");
}
if ((A^2)>((B^2)+(C^2)))
{
System.out.println("se forma un triangulo obtusangulo");
}
if ((A^2)<((B^2)+(C^2)))
{
System.out.println("se forma un triangulo acutangulo");
}
}
}
Ejemplo 16: Programa que permite mostrar la condicion que cumple
una persona según su edad ingresada.
import java.io.*;
public class ejercicio28
{
public static void main(String[] args) throws IOException
{ int edad;
BufferedReader leer = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("ingrese su edad");
edad=Integer.parseInt(leer.readLine());
if (edad>18)
{
System.out.println("usted es todo un joven , y su edad
es:"+edad);
}
else
{
System.out.println("usted es aun un adolescente y su edad
es:"+edad);
}
}
}
import java.io.*;
public class caso3
{
public static void main(String[] args)throws IOException
{double c,i,num,par=0,impar=0;
//Creando el metodo para el ingreso de datos
c=Double.parseDouble(l.readLine());
for(i=1;i<=c;i++)
{System.out.print("ingrese valor:"+i);
num=Double.parseDouble(l.readLine());
if(num%2==0)
par++;
else
impar++;
}
System.out.println("la cantidad de numeros pares="+par);
System.out.println("la cantidad de numeros impares="+impar);
}
}
import java.io.*;
public class ejercicio6
{public static void par(int num)
{
if((num%2)==0)
{System.out.println("El numero es par");
}
else
{System.out.println("El numero es impar");
}
}
public static void main(String[] args) throws IOException
{
int numero;
BufferedReader leer=new BufferedReader (new
InputStreamReader(System.in));
System.out.println("Ingrese un numero :");
numero =Integer.parseInt(leer.readLine());
par(numero);
}
}
import java.io.*;
public class Ejercicio10
{
public static void main(String[] args) throws IOException
{
int a,b;
BufferedReader leer = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("ingrese 2 numeros");
a =Integer.parseInt(leer.readLine());
b =Integer.parseInt(leer.readLine());
if (a>b)
{
System.out.println(a+"es mayor");
}
else
if (b>a)
{
System.out.println(b+"es mayor");
}
else
if (a==b)
{
System.out.println(a+"y"+b+"son iguales");
}
}
}
Ejemplo 20: Programa que permite calcular si un numero ingresado es
par, n cantidad de veces y utilizando metodos.
import java.io.*;
public class ejercicio8
{
public static void par(int num)
{
if((num%2)==0)
{System.out.println("El numero es par");
}
else
{System.out.println("El numero es impar");
}
import java.io.*;
public class Ejercicio11
{ public static void main(String Args[])throws IOException
{double v,r,l=0,t=0;
BufferedReader leer= new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese la velocidad en m/s:");
v= Double.parseDouble(leer.readLine());
System.out.println("Ingrese el radio de la pista: ");
r= Double.parseDouble(leer.readLine());
l=2*3.1416*r;
t=l/v;
System.out.println("el tiempo que tarda de dar 2 vueltas es
de:"+t+"segundos.");
}
}
import javax.swing.JOptionPane;
public class caso4
{ public static void main (String[] args)
{ String b;
double n1,num,i, may = 0, men= 0;
{may = num;
}
else
if (num<men)
{men = num;
}
}
}
}
import javax.swing.JOptionPane;
public class SumarNumeros
{
public static void main( String args[] )
{ String strNumero1;
String strNumero2;
int intNumero1;
int intNumero2;
int suma;
strNumero1=JOptionPane.showInputDialog("Ingrese el entero 1" );
strNumero2= JOptionPane.showInputDialog("Ingrese el entero2" );
intNumero1 = Integer.parseInt( strNumero1 );
intNumero2 = Integer.parseInt( strNumero2 );
suma = intNumero1 + intNumero2;
JOptionPane.showMessageDialog( null, "La suma es " + suma,
"Resultado", JOptionPane.PLAIN_MESSAGE );
System.exit( 0 );
}
}
Ejemplo 24: Programa que permite ingresar tu edad y calcula el año de
su nacimiento
import java.io.*;
public class p
{ public static void main(String[] args) throws IOException
{ InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
System.out.print("Escribe tu edad: ");
String text = input.readLine();
int edad = new Integer(text).intValue();
System.out.println("Tu tienes " + edad + " años, hoy,");
int año = 2008 - edad;
System.out.println("por tanto posiblemente naciste en " + año);
}
}
ESTRUCTURA SELECTIVA MULTIPLE (CASE)
Ejemplo 25: Programa que nos permite mostrar una pregunta con 3
alternativas, al elegir uno de ellos nos muestra si la respuesta es correcta
o no, si no acertamos nos pide que sigamos intentando hasta elgir el
correcto
import java.io.*;
import java.util.*;
public class gg
{
static BufferedReader entrada = new BufferedReader(new
InputStreamReader(System.in));
static String respuesta;
static char opc;
static void pregunta1() throws IOException
{
opc=0;
System.out.println("1ra Pregunta:");
System.out.println("¿Cual es el planeta mas cercano a la tierra?");
System.out.println("A)Mercurio");
System.out.println("B)Tierra");
System.out.println("C)Pluton");
respuesta=entrada.readLine();
respuesta=respuesta.toUpperCase();
opc=respuesta.charAt(0);
if(opc=='A')
System.out.println("Respuesta Correcta :D");
else
System.out.println("Respuesta incorrecta, intenta de nuevo");
}
public static void main(String args[]) throws IOException
{
Random rnd=new Random();
int i;
i=rnd.nextInt(5);
System.out.println(i);
switch(i)
{
case 0:
while(opc!='A')
pregunta1();
break;
case 1:
System.out.println("Numero 1");
break;
case 2:
System.out.println("Numero 2");
break;
case 3:
System.out.println("Numero 3");
break;
case 4:
System.out.println("Numero 4");
break;
case 5:
System.out.println("Numero 5");
break;
}
}
}
import java.io.*;
public class case3
{
public static void main(String[] args) throws IOException
{
int num1;
String dia="";
BufferedReader leer=new BufferedReader (new
InputStreamReader(System.in));
System.out.println("Ingrese un numero ");
num1=Integer.parseInt(leer.readLine());
switch(num1)
{
case 1:
dia="Lunes";
break;
case 2:
dia="Martes";
break;
case 3:
dia="Miercoles";
break;
case 4:
dia="Jueves";
break;
case 5:
dia="Viernes";
break;
case 6:
dia="Sabado";
break;
case 7:
dia="Domingo";
break;
default:
dia="Ingrese un numero correcto";
break;
}
System.out.println("El dia es >"+dia);
}
ESTRUCTURA REPETITIVA FOR
import java.io.*;
public class ejercicio9
{ // Creates a new instance of ejercicio9
import java.io.*;
class case5
{
public static void main(String[] args) {
try{
BufferedReader object = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("enter the number");
int a= Integer.parseInt(object.readLine());
int fact= 1;
System.out.println("Factorial of " +a+ ":");
for (int i= 1; i<=a; i++){
fact=fact*i;
}
System.out.println(fact);
}
catch (Exception e){}
}
}
ESTRUCTURA REPETITIVA WHILE
import java.io.*;
class media
{
public static void main(String Arg[ ]) throws IOException
{
double media = 0.0;
int n = 0;
int elementos;
double num;
n++;
}
class pares
{
public static void main(String arg[ ])
{ int num = 20;
while (num < 101)
{if (num % 2 == 0)
{ System.out.println(num);
}
num = num + 1;
}
}
}
import java.io.*;
public class binario{
public static void main(String args[]){
int decimal = 25222;
Ejemplo 33: Programa que nos permite sumar los numeros divisibles
por dos, del numero ingresado
import java.io.*;
class while1
{
public static void main(String Arg[ ]) throws IOException
{
int i = 1;
int sum = 0;
int num;
import java.io.*;
public class while3
{ public static void main(String [] args)
{ int number;
int sum;
int num;
System.out.print("Por favor ingrese un numero: ");
number=keyboard.readInt();
//inicializar en 0
sum = 0;
num = number;
//calcular la suma
while(num > 0)
sum += num--;
//Mostrar la respuesta
System.out.println("La suma de suma de los primeros " + number
+" enteros es " + sum + ".");
}
}
Ejemplo 36: Programa que nos permite calcular la suma e dos arreglos
import java.io.*;
public class P2
{
public static void main(String Nubito[])throws IOException{
for(int i=0;i<5;i++)
{
System.out.println("la suma es :"+c[i]);
}
}
}
Ejemplo 37: Programa que nos permite calcular la suma de datos en un
arreglo, utilizando metodos.
import java.io.*;
public class metodoMatriz
{
public static void opera(int m[])
{ int sum=0;
for(int x=0;x<m.length;x++)
{sum=sum+m[x];
}
System.out.println("La suma de los valores es "+sum);
}
import java.io.*;
public class P3
{
public static void main(String Nubito[])throws IOException
{
double may=0;
double pos=0;
double m[]=new double [5];
BufferedReader dat=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese los 5 elementos del vector ");
for(int i=0;i<5;i++)
{
System.out.print("Elemento "+(i+1)+": ");
m[i]=Double.parseDouble(dat.readLine());
if(m[i]>may)
{
may=m[i];
pos=i;
}
}
System.out.println("El numero mayor es "+may);
System.out.println("En la posicion:" +pos);
}
}
Ejemplo 39: Programa que nos permite calcular el cuadrado de los
valores ingresados en un arreglo.
import java.io.*;
public class P4
{
public static void main(String Nubito[])throws IOException
{
double m[]=new double [5];
double n[]=new double [5];
BufferedReader dat=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese los 500 numeros del vector ");
for(int i=0;i<5;i++)
{
System.out.print("Numero "+(i+1)+": ");
m[i]=Double.parseDouble(dat.readLine());
n[i]=m[i]*m[i];
}
System.out.println("Los valores originales son : ");
for(int i=0;i<5;i++)
{
System.out.println(+m[i]);
}
System.out.println("Los valores al cuadrado son : ");
for(int i=0;i<5;i++)
{
System.out.println(+n[i]);
}
}
}
Ejemplo 40: Programa que nos permite calcular la suma de numeros
iguales a cero, la cantidad de numeros positivos, la cantidad de numeros
negativos, la suma de los numeros positivos y la suma de numeros
negativos.
import java.io.*;
public class P5
{
public static void main(String Nubito[])throws IOException
{
int pos=0,neg=0,c=0;
double sump=0,sumn=0;
double n[]=new double [3];
BufferedReader dat=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese los 300 numeros del vector ");
for(int i=0;i<3;i++)
{
System.out.print("Numero "+(i+1)+": ");
n[i]=Double.parseDouble(dat.readLine());
if(n[i]==0)
{ c=c+1;
}
if(n[i]>0)
{ pos=pos+1;
sump=sump+n[i];
}
if(n[i]<0)
{ neg=neg+1;
sumn=sumn+n[i];
}
}
System.out.println("Los numeros iguales a cero son : "+c);
System.out.println("Los numeros positivos son : "+pos);
System.out.println("Los numeros negativos son : "+neg);
System.out.println("La suma de los positivos es : "+sump);
System.out.println("La suma de los negativos es : "+sumn);
}
}
Ejemplo 41: Programa que nos permite mostrar los datos ingresados en
forma invertida.
import java.io.*;
public class P6
{
public static void main(String Nubito[])throws IOException
{
double m[]=new double [5];
double inv[]=new double [5];
int x=0;
BufferedReader dat=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese los 5 numeros del vector ");
for(int i=0;i<5;i++)
{
System.out.print("Numero "+(i+1)+": ");
m[i]=Double.parseDouble(dat.readLine());
x=5-(i+1);
inv[x]=m[i];
}
System.out.println("El vector resultantes es ");
for(int i=0;i<5;i++)
{
System.out.println(+inv[i]);
}
}
}
Ejemplo 42: Programa que nos permite calcular la suma de dos arreglos
de igual cantidad de datos.
import java.io.*;
public class ejemplo4
{
public static void main(String[] args) throws IOException
{
double a[]=new double [10];
double b[]=new double [10];
double c[]=new double [10];
double dato;
BufferedReader leer=new BufferedReader (new
InputStreamReader(System.in));
System.out.println("Ingresa los datos a los arreglo");
for(int i=0;i<a.length;i++)
{System.out.println("Ingrese A["+(i+1)+"] :");
dato=Double.parseDouble(leer.readLine());
a[i]=dato;
}
for(int i=0;i<a.length;i++)
{System.out.println("Ingrese B["+(i+1)+"] :");
dato=Double.parseDouble(leer.readLine());
b[i]=dato;
}
for(int i=0;i<a.length;i++)
{c[i]=a[i]+b[i]; }
for(int i=0;i<a.length;i++)
{System.out.println("la suma del arreglo
A["+(i+1)+"]+B["+(i+1)+"] es "+c[i]);
}
}
}
Ejemplo 43: Programa que nos permite mostrar, si los datos de dos
vectores(arreglos), son iguales.
import java.io.*;
public class P7
{ public static void main(String Nubito[])throws IOException
{
double m[]=new double [5];
double n[]=new double [5];
int x=0;
BufferedReader dat=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese los 5 elementos del vector M ");
for(int i=0;i<5;i++)
{
System.out.print("Elemento "+(i+1)+": ");
m[i]=Double.parseDouble(dat.readLine());
}
System.out.println("Ingrese los 5 elementos del vector N ");
for(int i=0;i<5;i++)
{
System.out.print("Elemento "+(i+1)+": ");
n[i]=Double.parseDouble(dat.readLine());
}
for(int i=0;i<5;i++)
{
if(m[i]==n[i])
{x=x+1;}
}
if(x==5)
{System.out.println("Los vectores son Iguales"); }
else
{
System.out.println("Los vectores son Desiguales");
}
}
}
Ejemplo 44: Programa que nos permite buscar un numero en el arreglo
import java.io.*;
public class P9
{
public static void main(String Nubito[])throws IOException
{ double n[]=new double [8];
double x=0;
int p=0;
BufferedReader dat=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese los 80 elementos del vector ");
for(int i=0;i<8;i++)
{ System.out.print("Elemento "+(i+1)+": ");
n[i]=Double.parseDouble(dat.readLine());
}
System.out.println("Ingrese el numero a buscar : ");
x=Double.parseDouble(dat.readLine());
for(int i=0;i<8;i++)
{if(n[i]==x)
{ p=i+1;
}
}
if(p>0)
{System.out.println("El numero se encuentra en la posicion:" +p);
}
else
{
System.out.println("No se encontro el numero");
}
}
}
Ejemplo 45: Programa que nos permite cacular el factorial de n
numeros ingresados en un arreglo.
import java.io.*;
public class ejemplo5
{
public static void main(String[] args) throws IOException
{double a[]=new double [3];
double b[]=new double [3];
double dato;
double facnum;
int num=1,fac, x=0;
BufferedReader leer=new BufferedReader (new
InputStreamReader(System.in));
System.out.println("Ingresa los datos a los arreglo");
for(int i=0;i<a.length;i++)
{System.out.print("Ingrese A["+(i+1)+"] :");
dato=Double.parseDouble(leer.readLine());
a[i]=dato;
}
for(int i=0;i<a.length;i++)
{facnum=a[i];
fac=1;
for(int j=1;j<=facnum;j++)
{fac=fac*j;
}
System.out.print(fac);
b[i]=fac;
fac=0;
}
for(int i=0;i<a.length;i++)
{System.out.println("Ingrese B["+(i)+"] :"+b[i]);
}
}
}
Ejemplo 46: Programa que nos permite calcular el producto de dos
arreglos con cantidad de datos iguales.
import java.io.*;
public class P10
{ public static void main(String nubito[])throws IOException
{ double a[]=new double [20];
double b[]=new double [20];
double c[]=new double [20];
int x=0;
BufferedReader dat=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese los 20 numeros del vector A");
for(int i=0;i<20;i++)
{ System.out.print("Numero "+(i+1)+": ");
a[i]=Double.parseDouble(dat.readLine());
}
System.out.println("Ingrese los 20 numeros del vector B");
for(int i=0;i<20;i++)
{System.out.print("Numero "+(i+1)+": ");
b[i]=Double.parseDouble(dat.readLine());
}
for(int i=0;i<20;i++)
{x=20-(i+1);
c[i]=a[i]*b[x];
}
for(int i=0;i<20;i++)
{System.out.println("La multiplicacion es: "+c[i]);
}
}
}
ARREGLOS BIDIMENCIONALES:
import java.io.*;
public class P12
{ public static void main(String Nubito[])throws IOException
{ double m[][]=new double [5][6];
double suma=0;
BufferedReader dat=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese los valores de la matriz");
for(int i=0;i<5;i++)
{ for(int j=0;j<6;j++)
{System.out.print("Ingrese el un numero : ");
m[i][j]=Double.parseDouble(dat.readLine());
suma=suma+m[i][j];
}
}
System.out.println("la suma es :"+suma);
}
}
import java.io.*;
public class P13
{ public static void main(String Nubito[])throws IOException
{ double m[][]=new double [3][3];
double may=0;
int posi=0,posj=0;
BufferedReader dat=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese los valores de la matriz");
for(int i=0;i<3;i++)
{ for(int j=0;j<3;j++)
{System.out.print("Ingrese un numero: ");
m[i]
[j]=Double.parseDouble(dat.readLine());
if(m[i][j]>may)
{may=m[i][j];
posi=i+1;
posj=j+1;
}
}
}
System.out.println("El numero mayor es "+may);
System.out.println("En la posicion ("+posi+","+posj+")");
}
}
import java.io.*;
public class P14
{ public static void main(String args[])throws IOException
{BufferedReader VTL=new BufferedReader(new
InputStreamReader(System.in));
double m[][]=new double [5][5];
double d[]=new double [5];
double sc[]=new double[5];
double sf[]=new double[5];
System.out.println("Ingrese los valores de la matriz");
for(int f=0;f<5;f++)
{ for(int c=0;c<5;c++)
{System.out.print("Ingrese el valor de la posicion
("+(f+1)+","+(c+1)+" : ");
m[f][c]=Double.parseDouble(VTL.readLine());
}
}
for(int c=0;c<5;c++)
{ for(int f=0;f<5;f++)
{sc[c]=sc[c]+m[f][c];
}
}
for(int c=0;c<5;c++)
{ for(int f=0;f<5;f++)
{sf[f]=sf[f]+m[f][c];
}
}
for(int f=0;f<5;f++)
{System.out.println("La suma de la fila "+f+" es "+sf[f]);
}
for(int c=0;c<5;c++)
{System.out.println("La suma de la columna "+c+" es "+sc[c]);
}
}
}
Ejemplo 50: Programa que nos permite calcular la columna que tiene
mayor suma.
import java.io.*;
public class P15
{ public static void main(String Nubito[])throws IOException
{ double m[][]=new double [5][5];
double sc[]=new double [5];
double may=0;
int c=0;
BufferedReader dat=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese los valores de la matriz");
for(int i=0;i<5;i++)
{for(int j=0;j<5;j++)
{ System.out.print("Ingrese un numero : ");
m[i][j]=Double.parseDouble(dat.readLine());
}
}
for(int j=0;j<5;j++)
{ for(int i=0;i<5;i++)
{ sc[j]=sc[j]+m[i][j];
}
if(sc[j]>may)
{may=sc[j];
c=j;
}
}
System.out.println("La columna que tiene la mayor suma es "+c);
System.out.println("La suma es "+may);
}
}
import java.io.*;
public class P16
{public static void main(String Nubito[])throws IOException
{ double m[][]=new double [5][5];
double d[]=new double [5];
BufferedReader dat=new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Ingrese los valores de la matriz");
for(int i=0;i<5;i++)
{ for(int j=0;j<5;j++)
{System.out.print("Ingrese el valor de la posicion
("+(i+1)+","+(j+1)+" : ");
m[i][j]=Double.parseDouble(dat.readLine());
if(i==j)
{d[i]=m[i][j];}
}
}
System.out.println("La diagonal principal es ");
for(int i=0;i<5;i++)
{System.out.println(""+d[i]);
}
}
}
Ejemplo 52: Programa que nos permite calcular la suma en una serie
fibonacci
import java.io.*;
public class pre_11
{
public static void main (String args [])
{
int x, y;
String leer;
System.out.println("SERIE FIBONACCI");
long Fib[]=new long[50];
Fib[0]=0;
Fib[1]=1;
Fib[2]=Fib[0]+Fib[1];
y=3;
while (y < 50)
{
Fib[y]= Fib[y-1] + Fib[y-2];
y++;
}
for(x=0;x<50;x++)
{
System.out.println(Fib[x]);
}
}
}
Ejemplo 53: Programa que nos permite calcular la suma de una fila y
columna
import java.io.*;
public class preg_19
{ public static void main(String args[])throws IOException
{
BufferedReader VTL=new BufferedReader(new
InputStreamReader(System.in));
double m[][]=new double [5][5];
double d[]=new double [5];
double suma[]=new double[5];
double sf[]=new double[10];
System.out.println("Ingrese los valores de la matriz");
for(int f=0;f<5;f++)
{ for(int c=0;c<5;c++)
{System.out.print("Ingrese el valor de la posicion
("+(f+1)+","+(c+1)+" : ");
m[f][c]=Double.parseDouble(VTL.readLine());
}
}
for(int c=0;c<5;c++)
{ for(int f=0;f<5;f++)
{suma[f]=suma[f]+m[f][c];
}
}
for(int c=0;c<5;c++)
{ for(int f=0;f<5;f++)
{ suma[c]=suma[c]+m[f][c];
}
}
for(int f=0;f<5;f++)
{ System.out.println("La suma de la fila "+f+" es "+suma[f]);
}
for(int c=0;c<5;c++)
{System.out.println("La suma de la columna "+c+" es
"+suma[c]); }
}
}
import java.io.*;
public class ejercicio10
{
public static void main(String[] args) throws IOException
{
double mat[][] = new double [2][2];
double suma=0;
BufferedReader leer=new BufferedReader (new
InputStreamReader(System.in));
System.out.println("Ingrese los valores a la matriz");
for(int f=0;f<2;f++)
{for(int c=0;c<2;c++)
{System.out.print("Ingrese ["+f+"] - ["+c+"] :");
mat[f][c]=Double.parseDouble(leer.readLine());
}
}
for(int f=0;f<2;f++)
{System.out.println("\n");
for(int c=0;c<2;c++)
{ if(f==c)
{ suma=suma+mat[f][c];
}
}
}
for(int f=0;f<2;f++)
{System.out.println("\n");
for(int c=0;c<2;c++)
{System.out.print("\t\t"+Math.round(mat[f][c]));
}
}
System.out.println("\n");
System.out.print("La suma de su transversal es:"+suma);
}
}
Ejemplo 55: Programa que nos permite calcular la suma una matriz
bidimensional.
import java.io.*;
public class metodoMatriz_2
{ public static void opera(int m1[],int m2[])
{int mul=0;
for(int x=0;x<m1.length;x++)
{mul=m1[x]+m2[x];
System.out.println("La suma de los valores es "+mul);
}
}
import java.io.*;
import java.lang.Math;
public class Ajedrezbidimensional {
public static void main(String args[]) {
int fila, columna;
int fila1,columna1;
int fila2,columna2;
int fila3,columna3;
int fila4,columna4;
try{
System.out.println("INGRESE LA POSICION
INICIAL DEL ALFIL(FILA Y
COLUMNA)");
BufferedReader entrada=new
BufferedReader(new
InputStreamReader(System.in));
System.out.println("INGRESE LA FILA");
fila=Integer.parseInt(entrada.readLine());
System.out.println("INGRESE LA
COLUMNA");
columna=Integer.parseInt(entrada.readLine());
System.out.println("LISTA DE POSICIONES
POSIBLES DEL ALFIL ");
System.out.println("");
fila1=fila;
columna1=columna;
System.out.println("");
fila2=fila;
columna2=columna;
System.out.println("");
fila3=fila;
columna3=columna;
}catch(IOException e){}
}
}
BIBLIOGRAFIA
Direcciones Electrónicas
http://todojava.awardspace.com/manuales-java.html
http://www.webtaller.com/manual-java/indice_manual_java.php
http://www.manual-java.com/