Documente Academic
Documente Profesional
Documente Cultură
Telecomunicaciones
Sistema a Distancia
LENGUAJE DE
PROGRAMACIN II
SALLY TORRES ALVARADO
YULIANA JUREGUI ROSAS
2010
Introduccin
El presente libro abarca los temas desarrollados en el curso de Lenguaje de
progrmacin II correspondiente al cuarto ciclo de la carrera de Ingeniera de
Sistemas y Cmputo, donde se desarrolla la tcnica de programacin orientada a
objetos, siendo en la actualidad la tcnica mas usada debido a las ventajas que
trae.
Para el desarrollo de esta tcnica se emplea el lenguaje Java bajo el IDE de
Netbeans, desarrollada por Sun Microsystem, se ha eligido a este lenguaje por se
un lenguaje netamente orientado a objetos.
El uso adecuado de la programacin orientada a objetos permite la constitucin de
un programa ptimo, seguro y robusto, aplicando los principios que tiene como: la
abstraccin, la herencia, el polimosrfismo, entre otros.
Para el lector no va a ser difcil adapatarse a este lenguaje debido a su similitud con
el lenguaje C++ que ha sido desarrollado en el curso de Lengauje de programacin
I.
Sistema a Distancia
Orientacin Metodolgica
La organizacin del libro se inicia con una introduccin donde se indica el ciclo al
que pertenece el curso, la herramienta a utilizar y la importancia de elaborar
programas empleando la tcnica de progrmacin orientada a objetos.
A continuacin se desarrollan las unidades temticas que de acuerdo al slabo se
constituyen en tres, cada una de estas unidades a su vez se dividen en lecciones,
en la que en cada leccin se desarrollan bases tericas necesarias para entender el
tema, asi como ejercicios detallados que se presentan dentro de laboratorios con la
intensin de que el alumno desarrolle de forma practica cada uno de estos, de esta
manera, la primera unidad presenta cla programacin orientada a objetos y su
implementacin en donde se realiza algunas comparaciones con la programacin
estructutada a la que se presenta al lengaje java y los conceptos bsicos de la
programacin orientada a objeto como son las clases y los objetos,; en la segunda
unidad se desarrolla los principios de herencia y polimorfismo y el conepto de clase
abstracta; finalmente en la tercera se trabaja con programacin visual, gestores de
errores y archivos secuenciales.
Al trmino de cada unidad se presenta un resumen, una lectura, una
autoevaluacin as como los enlaces web y la bibliografa correspondiente que
servir para que el alumno ampli sus conocimientos.
Sistema a Distancia
Primera Unidad
Programacin Orientada a Objetos y su implementacin
Sumario
Identifica y comprende, la programacin orientada a objetos, evala y aplica, con
eficiencia, las caractersticas y ventajas de la misma, valorando la relevancia que
tiene la programacin orientada a objetos dentro del entorno profesional.
Conceptos preliminares
Instrucciones bsicas del lenguaje Java
Los modificadores e ingreso/salida de datos
Clase y objeto
Arreglos como objetos de clases predefinidas
Sistema a Distancia
Leccin 1
Conceptos preliminares
1.1.
La programacin comenz con programas lineales en las cuales para decidir el flujo
del programa se utilizaba la sentencia goto, que permita saltar a direcciones
determinadas. Solo se poda manipular datos ingresados, generados y procesados
en el programa, no exista medios externos para almacenar informacin.
Posteriormente surgi la programacin estructurada en la cual se introdujeron
estructuras de control y de datos que facilitaron el control de flujo de los
programas, adems fue posible el almacenamiento externo de informacin en
archivos. Con la llegada de la programacin modular se agrupo cdigo en forma de
funciones y procedimientos los cuales se almacenaron en mdulos independientes
que podan ser utilizados desde diversos programas. La ltima tendencia en
programacin es la programacin orientada a objetos (POO), la cual se inspiro en
los objetos reales que tienen caractersticas, funciones y se relacionan entre ellos.
Con la programacin Orientada a Objetos se puede crear clases (Declaracin de un
objeto) con atributos que representaran las caractersticas del objeto y mtodos
para representar su funcionalidad y como se relacionaran entre ellos. Adems
permite la reutilizacin de cdigo mediante la herencia.
1.2.
Esto permite reducir los errores y permite hacer los programas ms fciles de
escribir, verificar y mantener.
El diseo descendente consiste en poder descomponer un problema en una serie
de niveles y luego lograr el refinamiento.
La obtencin de recursos abstractos segn Edsgar Dijkstra consiste en dividir una
accin compleja determinada en un nmero de acciones ms simples capaz de
ejecutarlas.
Entre las estructuras bsicas tenemos:
a) Secuenciales
b) Selectivas
c) Repetitivas
Sistema a Distancia
1.3.
Para que se cumpla el paradigma de la POO, los objetos de SW deben cumplir con
algunas caractersticas esenciales:
Abstraccin
Modularidad
Encapsulamiento
Jerarqua
Polimorfismo
1.4.
El mantenimiento de programas y
aplicaciones generalmente son fciles de
10
Sistema a Distancia
hace tediosa
programa.
segn
el
tamao
del
realizar.
El objetivismo al poder representar objetos del mundo real, permite una mejor
comunicacin entre usuarios y tcnicos.
La flexibilidad al disear los objetos hacindolos independientes.
Mayor rapidez para disear SW. gracias a la reutilizacin de cdigo.
Mayor facilidad para construir SW complejo, gracias a algunas propiedades
inherentes a los objetos como es la herencia y el polimorfismo. Permitiendo de
esta manera la extensibilidad del sw para un futuro crecimiento.
La POO facilita el mantenimiento de SW, gracias a la independencia de los
mdulos creados.
Por parte de los programadores quienes debern conocer muy bien la teora
inherente a los objetos para lograr programar.
Las aplicaciones resultantes podremos ver que su tamao a veces es muy
grande y esto es debido a algunas propiedades como la herencia, porque
cuando se heredan a las subclases esto se hace de forma implcita, aunque
algunos miembros de la clase muchas veces no son usados.
1.6.
11
Sistema a Distancia
Cdigo Fuente
Compilador
Java ByteCode
Interprete
Windows
Linux
Mac
Solaris
Unix
1.6.2. Ventajas
Tenemos las siguientes ventajas
La gran ventaja de Java es que ha sido diseado como Orientado a Objetos.
Java est diseado para facilitar el trabajo en la red, permitiendo convertir un
sitio Web esttico en dinmico e interactivo.
Nos da la oportunidad de transformar la web en una plataforma de computo.
Brinda grandes facilidades para el manejo de animaciones y control de
imgenes de audio.
Permite incrementar las capacidades de las aplicaciones no solo del lado del
cliente sino tambin del lado de servidor.
1.6.3. Maquina Virtual de Java
La mquina virtual de Java (en ingls Java Virtual Machine, JVM) es un programa
nativo que existe en cada plataforma. As que cuando el ByteCode llega a la
mquina virtual, sta lo interpreta pasndolo a cdigo mquina del procesador
donde se est trabajando, y ejecutando las instrucciones en lenguaje mquina que
12
Sistema a Distancia
13
Sistema a Distancia
1.7.2.1.
El paquete Java.lang
14
Sistema a Distancia
15
Sistema a Distancia
16
Sistema a Distancia
17
Sistema a Distancia
18
Sistema a Distancia
19
Sistema a Distancia
20
Sistema a Distancia
21
Sistema a Distancia
22
Sistema a Distancia
Leccin 2
Instrucciones bsicas del lenguaje java
2.1.
En
Comentarios
2.2.
Palabras Clave
Las siguientes son las palabras clave que estn definidas en Java y que no se
pueden utilizar como identificadores:
abstract
boolean
break
byte
byvalue
case
catch
char
class
const
2.3.
continue
default
do
double
else
extends
false
final
finally
flota
for
goto
if
implements
import
instanceof
int
interface
long
native
new
null
package
private
protected
public
return
short
static
super
switch
synchronized
this
threadsafe
throw
transient
true
try
void
while
Palabras Reservadas
Adems, el lenguaje se reserva unas cuantas palabras ms, pero que hasta ahora
no tienen un cometido especfico. Son:
cast
operador
2.4.
future
outer
generis
rest
inner
var
Tipos de Datos
Java utiliza cinco tipos de elementos: enteros, reales con coma flotante, booleanos,
caracteres y cadenas, que se pueden poner en cualquier lugar del programa.
23
Sistema a Distancia
Descripcin
Enteros
Booleanos
Tipo
byte
short
int
long
float
double
booleano
Caracteres
Cadenas
char
String
Reales
Tamao
8 bits
-128 a 127
16 bits
-32768 a 32767
32 bits
-2147483648 a 2147483647
34 bits
-9223372036854775808 a 9223372036854775807
32 bits
32 bits, precisin simple; 3,4E-38 a 3,4E38
64 bits
64 bits, precisin doble; 1,7E-308 a 1,7E308
true
false
16 bits de precisin, carcter alfanumrico.
Matriz de caracteres; realmente se trata de una clase, que
encapsula las operaciones de gestin de caracteres.
Tabla 2.1. Tipos de datos
2.5.
Identificador
Validos
suma
_totales
$valor
con1
Identificadores
No validos
suma total
1precio
while
*prom
mi_dato
Tabla 2.2. Identificadores vlidos y no vlidos
2.6.
Literales
Los literales son sintaxis que permiten asignar valores constantes a las variables.
Cuando se inserta un literal en un programa, el compilador por lo general sabe de
qu tipo se trata. Sin embargo, hay ocasiones en la que el tipo es ambiguo y hay
que guiar al compilador proporcionndole informacin adicional para indicarle
exactamente de qu tipo son los caracteres que componen el literal. Por ejemplo:
float f1 = 3.14e-45;
char c = 0xffff;
long dato = 200;
2.7.
Convenciones de nomenclatura
Las convenciones de nomenclatura hacen que los programas sean estndar y fciles
de leer, adems permite que cualquier programador pueda identificar con facilidad
un identificador. As tenemos las reglas de nomenclatura para:
24
Sistema a Distancia
2.7.1. Clases
Los nombres de clases deben ser simples y descriptivos, utilizando palabras
completas o acrnimos o abreviaturas en maysculas y luego en minsculas, con la
primera letra de cada palabra en mayscula. Ejemplo:
class Persona;
class NotaDeVenta;
2.7.2. Interfaces
Los nombres de las interfaces siguen las mismas reglas indicadas para las clases.
Ejemplo:
interface Empleados;
interface NotificacionesVarias;
2.7.3. Mtodos
Los mtodos deben estar en minsculas pero si est compuesta de dos o ms
palabras la primera letra de cada una de las palabras internas en mayscula.
Ejemplo:
calcular();
sumaTotal();
getPrecio();
2.7.4. Variables
Todos los nombres de variables de instancia o de clase deben estar constituidos por
palabras con la primera letra de la primera palabra en minscula y la primera letra
de las palabras internas en mayscula.
Los nombres de variables deben ser cortos y significativos. Se deben evitar las
variables de una sola letra, excepto en variables temporales de corto uso.
Ejemplos:
int i;
char grado;
float sueldoFinal;
2.7.5. Constantes
Las constantes deben escribirse en maysculas, con las palabras internas
separadas por el signo de subrayado ("_"). Ejemplo:
int MIN_RANGO = 4;
int MAX_RANGO = 999;
int VALOR_INICIO = 1;
2.8.
Declaracin de Datos
25
Sistema a Distancia
Cuando pasamos de un tipo a otro menor en tamao, por ejemplo, pasar de double
a float, tenemos que hacer una conversin explcita de tipos de la forma:
<TIPO> expresion
Por ejemplo:
float kilogramos;
double calculo;
kilogramos = (float)(calculo*1.2);
int entero = (int)6.5;
2.9.
Operadores
Los operadores son smbolos especiales que relacionan los valores de una o ms
variables y/o constantes. Es decir, los operadores nos permiten manipular valores.
26
Sistema a Distancia
Significado
+
*
Suma
Resta
Multiplicacin
Expresin aritmtica
(a = 7, b = 2)
a+b
ab
a * b
Divisin real
a / b
%
++
--
Residuo
Incremento
Decremento
a%b
a++
b--
Resultado
9
5
14
Si a es entero se obtiene 3
Si a es real se obtiene 3.5
1
8
1
Significado
>
>=
<
<=
==
!=
Mayor que
Mayor o igual que
Menor que
Menor o igual que
Igual a
Distinto de
Expresin relacional
(a = 3, b = 2)
a>b
a >= b
a<b
a <= b
a + b == 5
a != b
Resultado
true
true
false
false
true
true
presenten
dos
estados,
que
sern
Significado
And
Or
Not
27
Sistema a Distancia
Expresin
(a = 8, b = 3)
a+=b
a-=b
a*=b
a/=b
a%=b
Equivalencia
Resultado
a=a+b
a=a-b
a=a*b
a=a/b
a=a%b
a=1
a=5
a=24
a=2
a=2
0:
1:
2:
3:
()
++, --, + (unario), - (unario)
*, /, %
+, -, + (concatenacin)
Equivalente en Java
Math.sin(x)
Math.pow(x,2)
Math.round(6.6) = 7
Estructura secuencial
28
Sistema a Distancia
Ejemplo 01
Calcular el rea de la esfera mediante la siguiente frmula:
4
radio3
3
Estructuras Selectivas
Ejemplo 01
Determinar si un numero es positivo
public class Numero{
public static void main(java.lang.String[] args) {
int N=5;
if (N>0)
System.out.println("El numero +N+ es positivo);
}
}
2.12.2.2. if - else (ejecucin condicional dicotmica)
Si la clusula else es especificada, se ejecuta la sentencia seguida a esta, en caso
que la expresin lgica resulte false. Su sintaxis es la siguiente:
if (expresin_lgica)
sentencia1;
else
sentencia2;
Ejemplo 02
Determinar si un nmero es par o impar
public class ParImpar{
public static void main(java.lang.String[] args) {
int N=5;
if (N%2==0)
System.out.println("El numero +N+ es par);
29
Sistema a Distancia
else
System.out.println("El numero +N+ es impar);
}
}
2.12.2.3. if else - if (ejecucin condicional anidada)
Un if anidado es una sentencia if que esta contenido dentro de otro if o else.
Cuando se anidan if, cada sentencia else siempre se corresponde a la sentencia if
ms prxima dentro del mismo bloque. Su sintaxis es la siguiente:
if (expresin_lgica1)
sentencia1;
else if(expresin_lgica2)
sentencia2;
else if(expresin_lgica3)
sentencia3;
.
.
.
else
sentenciaN;
Ejemplo 03
Calcular la bonificacin de un empleado que depende de los aos de servicio:
Aos de servicio
04
5 10
11 20
20 - ms
Bonificacin (%)
0
10
20
30
break;
30
Sistema a Distancia
break;
}
En la estructura tenemos:
break para que el flujo no entre a las dems sentencias.
default para que ejecute en caso de no cumplirse ninguno de los casos.
Ejemplo 04
Determinar de acuerdo a un nmero de da de 1 a 7 escribe en la pantalla en que
da de la semana estamos.
public class DiaSemana {
public static void main(String[] args) {
int dia=4;
switch(dia)
{
case 1: System.out.println("Lunes");
break;
case 2: System.out.println("Martes");
break;
case 3: System.out.println("Miercoles"); break;
case 4: System.out.println("Jueves");
break;
case 5: System.out.println("Viernes");
break;
case 6: System.out.println("Sabado");
break;
case 7: System.out.println("Domingo"); break;
default: System.out.println("Numero Incorrecto");
}
}
}
2.12.3.
Estructuras Repetitivas
Ejemplo 01
Determinar la suma de los nmeros pares menores que 100.
public class Suma{
public static void main(java.lang.String[] args) {
int i=1, s=0;
while (i<100)
{
if (i%2==0)
s=s+i;
31
Sistema a Distancia
i=i+1;
}
System.out.println(La suma de los pares menores que 100 es +s);
}
}
2.12.3.2. do / while
La estructura do/ while se ejecuta hasta que se cumpla una expresin lgica
determinada que se comprueba al final del bucle. Se ejecuta por lo menos una vez.
Termina cuando la condicin es falsa. Su sintaxis es la siguiente:
do
sentencia(s);
while(expresin_lgica);
Ejemplo 02
Suma de los nmeros impares menores que 50
public class SumaPares{
public static void main(java.lang.String[] args) {
int i=1, s=0;
do
{
if (i%2==1)
s=s+i;
i=i+1;
}
while (i<50);
System.out.println("La suma de los impares menores que 50 es+s);
}
}
2.12.3.3. for
Con esta estructura repetitiva se conoce de antemano el nmero de veces que se
desean ejecutar las acciones del bucle. Su sintaxis es la siguiente:
for (inicializacion; expresin_lgica; incremento)
sentencia(s);
Donde:
inicializacin: valor inicial de la variable para el numero de iteraciones;
expresin_lgica: valor final, hasta donde incrementara la variable vi.
incremento: incremento en cada iteracin.
Ejemplo 03
Suma de los nmeros del 1 al 10
public class SumaImpares{
public static void main(java.lang.String[] args) {
int sum=0;
for (int i=1;i<=10;i++)
{
sum+=i;
}
32
Sistema a Distancia
System.out.println("Suma ="+sum);
}
}
Laboratorio Nro 2
Objetivos
Entender claramente los elementos del lenguaje java. diferencias.
Realizar un reconocimiento de las estructuras de control de java. Selectivas y
repetitivas.
Orden de Realizacin del Laboratorio
1. Cree un nuevo proyecto con el nombre Proyecto_2
2. Cree un paquete con el nombre de estructuras_selectivas
Ejemplo 1: Determinar si un nmero es par o impar.
3. Cree una clase Nmero con un mtodo main y digite el siguiente fragmento de
programa.
package estructuras_selectivas;
public class Numero {
public static void main(String[] args) {
int n=4;
if (n%2==0)
System.out.println("El numero es par");
else
System.out.println("El numero es impar");
}
}
4. Compile, ejectelo y pruebe su correcto funcionamiento
En la consola deber aparecer:
El nmero es par
Ejemplo 2: Conociendo un ao y un mes, indicar cuantos das tiene ese mes.
5. Cree una segunda clase Dia_Mes con un mtodo main y digite el siguiente
ejemplo:
package estructuras_selectivas;
public class DiasMes{
public static void main(java.lang.String[] args) {
int mes=2;
int anio=2009;
int NroDia=0;
switch (mes)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: NroDia=31;
break;
case 4:
33
Sistema a Distancia
case
case
case
case
6:
9:
11: NroDia=30;
break;
2: if ((anio %4==0)&&!(anio%100==0)||(anio%400==0))
NroDia=29;
else
NroDia=28;
break;
}
System.out.println("Numero de dias ="+NroDia);
}
}
6. Compile, ejectelo y pruebe su correcto funcionamiento
En la consola deber aparecer:
Nmero es das =28;
7. Dentro del mismo proyecto cree un nuevo paquete con el nombre de
estructuras_repetitivas.
Ejemplo 3: Encontrar el mximo comn divisor de 2 nmeros.
8. Cree una clase MCD con un mtodo main y digite el siguiente ejemplo.
public class MCD {
public static void main(String[] args) {
int x=15, y=25;
do
{
if(x>y)
x=x-y;
else
y=y-x;
}
while(x!=y);
System.out.println("El MCD es:"+x);
}
}
9. Compile, ejectelo y pruebe su correcto funcionamiento
En la consola deber aparecer:
El MCD es =5
Ejemplo 4.: Calcular la suma de los primeros 10 nmeros.
10. Cree una clase Suma con un mtodo main y digite el siguiente fragmento de
programa
public class Suma {
public static void main(String[] args) {
int suma=0;
for(int i=1; i<=10; i++)
suma=suma+i;
System.out.println("La suma es:"+suma);
}
}
34
Sistema a Distancia
35
Sistema a Distancia
Leccin 3
Los modificadores e ingreso/salidas de datos
3.1.
Clase
Si
Si
Si
Si
Subclase
Paquete
Todos
Si
Si
Si
Si
Si
Si
36
Sistema a Distancia
La tercera columna indica si las clases del mismo paquete que la clase (sin
importar su parentesco) tienen acceso a los miembros.
La cuarta columna indica si todas las clases tienen acceso a los miembros.
Mtodos
final: Especifica que un mtodo tiene una implementacin constante, esto es,
que no puede ser sobreescrito por subclase alguna.
Variables
static: Se especifica que una variable es comn para todas las instancias de la
clase. Por omisin (sin modificador), cada objeto (instancia de clase) reserva
memoria para sus variables de instancia cuando es creado; por cada nuevo
objeto, nuevos espacios de memoria son reservados. Las variables estticas
reservan un solo espacio independientemente de cuantas instancias de la clase
se hayan creado.
37
Sistema a Distancia
3.3.
public: Permite que una clase sea visible fuera del paquete donde pertenece.
final: Especifica que una clase no puede extenderse, esto es no puede tener
subclases.
3.4.
El lenguaje Java utiliza tipos de datos primitivos por razones de rendimiento. Estos
datos no forman parte de la jerarqua de clases y objetos que se pasan por valor a
los mtodos y no por referencia.
Existen algunas clases que sus mtodos solo manejan objetos. Entonces para poder
aprovechar la funcionalidad mxima de estas clases por variables de tipo primitivo,
se requiere de un mecanismo que permita a estas representarse como objetos.
El lenguaje Java provee algunas clases para envolver cada uno de los tipos
primitivos transformndolos en objetos referenciales.
En la Figura 3.1 se aprecia las clases que permiten la envoltura, de datos primitivo
de tipo numrico como son: Boolean, Character, Byte, Short, Integer, Long, Float,
Double.
Boolean
Character
Byte
Short
Nmero
Integer
Long
Float
Double
Figura 3.1.Clases para envoltura de Datos primitivos
Ejemplo:
public class Prueba{
static Character c1=new Character(A);
static char c2=c1.charValue();
public static void main(String[] args){
System.out.println(c2);
System.out.println(c1.toString());
}
}
38
Sistema a Distancia
39
Sistema a Distancia
40
Sistema a Distancia
int k=0;
while (n--!=0){
if (cadena.charAt(j++)!=subcadena.charAt(k++)){
continue test;
}
}
itemEncontrado=true;
break test;
}
System.out.println(itemEncontrado?"se encuentra":"no se encuentra");
}
3.5.2. La clase StringBuffer
La clase StringBuffer encapsula la estructura de datos y funcionalidad para manejar
cadena de caracteres mutables, pueden ser modificados.
Cualquier objeto StringBuffer representa una cadena cuyo tamao puede variar. En
caso que el contenido de una cadena sea modificado por un programa, se tendra
que sacrificar el uso de objetos String en beneficio de StringBuffer, que a pesar que
consumen ms recursos del sistema, permiten hacer este tipo de manipulaciones.
Debido a que la mayora de las caractersticas de los StringBuffer estn basadas en
su tamao variable, se necesitara un nuevo mtodo para su creacin:
StringBuffer();
StringBuffer( int len );
StringBuffer( String str );
Por otro lado tambin se puede crear un StringBuffer vaco de cualquier longitud o
tambin podemos utilizar un String como inicio para un StringBuffer.
StringBuffer sb1 = new StringBuffer( 10 );
StringBuffer sb2 = new StringBuffer( "Hola a todos" );
Los mtodos ms usados por esta clase son:
length(): Sirve para determinar la longitud en cantidad de caracteres unicote
de una cadena dada.
capacity(): Mtodo que da como resultado la cantidad de caracteres
almacenados en memoria.
setLegth(int i): Mtodo que cambia la longitud de la cadena invocada
charAt(int i): Mtodo que obtiene un carcter en posicin i (1ra posicin 0).
append(parmetro): Mtodo que agrega al final de la cadena invocada el
parmetro.
insert(int p, parmetro): Mtodo que inserta el parmetro en la posicin p
del objeto invocado.
Ejemplo:
public static void main(String[] args) {
StringBuffer cadena=new StringBuffer("para poder pensar es prudente no apenarse");
int max=cadena.length();
int numPs=0;
for(int i=0; i<max;i++){
if (cadena.charAt(i)!='p')
continue;
numPs++;
41
Sistema a Distancia
cadena.setCharAt(i, 'p');
}
System.out.println("Se encontraron "+numPs+" letras p en la cadena "+cadena);
}
3.6.
Programa
Programa
3.6.2. Lectura
Si queremos leer datos a travs del teclado utilizaremos el System.in. que
pertenece a la clase InputStream, lo cual significa que usaremos los mtodos de
esta clase. As tenemos:
42
Sistema a Distancia
El mtodo main deber estar preparado para responder a los posibles errores que
se comentan al momento de hacer el ingreso de datos por ello despus de la
declaracin del mtodo se deber escribir throws IOException, de la siguiente
forma:
public static void main(String[] args) throws IOException {
}
Ejemplo:
Ingresar el nombre, categora, edad y peso de un alumno de la FISCT para luego
mostrarlo en la salida.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class LecturaConsola {
public static void main(String args[]) throws IOException {
String nom;
char cat;
int edad;
double pes;
InputStreamReader x = new InputStreamReader(System.in):
BufferedReader y = new BufferedReader(x);
System.out.println("Ingrese nombre: ");
nom=y.readLine();
System.out.println("Ingrese categora: ");
cat=y.readLine().charAt(0);
System.out.println("Ingrese edad: ");
edad=Integer.parseInt(y.readLine());
System.out.println("Ingrese peso: ");
pes=Double.parseDouble(y.readLine());
System.out.println("Los datos ingresados son: ");
System.out.println("Nombre: "+nom);
System.out.println("Categoria: "+cat);
System.out.println("Edad: "+edad);
System.out.println("Peso: "+pes);
}
43
Sistema a Distancia
}
Nota: Observe que cada vez que se crea un objeto de alguna clase predefinida de
java es necesario importar dicha clase. Usando el NetBeans se podr importar estas
clases automticamente al momento de digitar la clase dentro del mtodo main y
empleando las teclas Ctrl + Space.
3.6.3. Escritura
Si queremos escribir o mostrar los datos en el monitor, ser necesario utilizar el
objeto System.out que pertenece a la clase outputStream, como ya se ha estado
usando.
System.out.println(Saludos a todos) ;
Sin embargo en una aplicacin ms formal se puede usar la clase PrintWriter que
soporta flujos de caracteres. Esta clase tambin contiene los mtodos print() y
println() para todos los tipos, por lo que se podrn usar al igual que en el
System.out.
Ejemplo:
Programa que permite imprimir en consola diferentes tipos de datos primitivos.
import java.io.PrintWriter;
public class EscrituraConsola{
public static void main(String args[]) {
PrintWriter pw = new PrintWriter(System.out, true);
pw.println("Imprime una cadena de texto");
char c = B;
pw.println("Imprime un caracter " + c);
int i = 15;
pw.println("Imprime un entero " + i);
double d = 15.36;
pw.println("Imprime un real " + d);
}
}
Laboratorio Nro 3
Objetivos
Entender claramente los elementos del lenguaje java. diferencias.
Establecer diferencias claras con otros lenguajes de programacin.
Realizar un reconocimiento de las instrucciones de control de java.
Comprender el uso de la entrada estndar por consola del Java.
Orden de Realizacin del Laboratorio
1. Cree un nuevo proyecto con el nombre Proyecto_3
Ejemplo1: Calcular el total a pagar por la compra de una cierta cantidad de un
producto. El precio del producto tiene un descuento de acuerdo a su procedencia:
Procedencia
A
B
C
Descuento (%)
20
15
10
44
Sistema a Distancia
package entrada_salida;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Ejemplo1 {
public static void main(String[] args) throws IOException{
int unidades;
double precio, total;
char proc;
InputStreamReader x = new InputStreamReader(System.in):
BufferedReader y = new BufferedReader(x);
System.out.println("Ingrese cantidad de productos a comprar: ");
unidades = Integer.parseInt(y.readLine);
System.out.println("Ingrese precio del productos: ");
precio = Double.parseDouble(y.readLine);
System.out.println("Ingrese procedencia: ");
proc = y.readLine.charAt(0);
switch(proc)
{
case A: desc = 0.20 * precio;
break;
case B: desc = 0.15 * precio;
break;
case C: desc = 0.10 * precio;
break;
}
precio = precio desc;
total = unidades * precio;
System.out.println(El precio descontado es + precio);
System.out.println(El descuento es + desc);
System.out.println(El total a pagar es +total);
}
}
4. Compile, ejectelo y pruebe su correcto funcionamiento.
Ejemplo 2: Calcular el sueldo mensual de un obrero que gana por prenda
terminada. La tarifa del pago depende del tipo de prenda que confecciona:
Tipo de prenda
Pantaln
Saco
Abrigo
Bonificacin (%)
50
30
20
10
45
Sistema a Distancia
5. Cree una segunda clase Ejemplo2, con un mtodo main luego digite el siguiente
programa.
package entrada_salida;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class Ejemplo2 {
public static void main(String[] args) throws IOException{
InputStreamReader p=new InputStreamReader(System.in);
BufferedReader q=new BufferedReader(p);
PrintWriter x=new PrintWriter(System.out, true);
char cat;
int cant;
String prend;
double sueldo=0, bonf=0, tot;
x.println("Ingresar tipo de prenda que confecciona: ");
prend=q.readLine();
x.println("Ingresar categora: ");
cat=q.readLine().toUpperCase().charAt(0);
x.println("Ingresar cantidad de prendas: ");
cant=Integer.parseInt(q.readLine());
if(prend.equalsIgnoreCase("pantaln"))
sueldo=22*cant;
else if(prend.equalsIgnoreCase("camisa"))
sueldo=32*cant;
else if(prend.equalsIgnoreCase("abrigo"))
sueldo=42*cant;
if(cant>55)
switch(cat){
case 'A': bonf=0.50*sueldo;
break;
case 'B': bonf=0.30*sueldo;
break;
case 'C': bonf=0.20*sueldo;
break;
case 'D': bonf=0.10*sueldo;
break;
}
tot=sueldo+bonf;
x.println("Sueldo: "+sueldo);
x.println("Bonificacin: "+bonf);
x.println("Total: "+tot);
}
}
6. Compile, ejectelo y pruebe su correcto funcionamiento.
Ejemplo 3: De acuerdo a la decisin del usuario determine la operacin que desea
realizar suma, resta, multiplicaron o divisin.
7. Cree una tercera clase Ejemplo3 con un mtodo main luego digite el siguiente
programa.
package entrada_salida;
import java.io.BufferedReader;
import java.io.InputStreamReader;
46
Sistema a Distancia
import java.io.PrintWriter;
import java.io.IOException;
public class Ejemplo3 {
public static void main(String[] args) throws IOException{
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
PrintWriter p=new PrintWriter(System.out, true);
double a, b, r=0;
char op,resp;
int sw;
do{
p.println ("Que operacin va ha realizar suma=+, resta=-" +
"producto=*, divisin=/ ");
op=y.readLine().charAt(0);
p.println(Ingrese 2 nmeros");
a=Double.parseDouble(y.readLine());
b=Double.parseDouble(y.readLine());
sw=0;
switch(op)
{
case '+':r=a+b;
break;
case '-': r=a-b;
break;
case '*': r=a*b;
break;
case '/': if(b!=0)
r=a/b;
else
p.println(Indefinido)
sw=1;
break;
}
if(sw==0)
p.println ("El resultado es: "+r);
p.println ("Desea continuar s/n");
resp=y.readLine().charAt(0);
}
while(resp=='s');
}
}
8. Compile, ejectelo y pruebe su correcto funcionamiento
Ejemplo 4: Concatenar dos frases y convertir en mayscula o en minscula.
9. Cree una clase Ejemplo4 con un mtodo main y digite el siguiente programa.
package entrada_salida;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.IOException;
public class Ejemplo4 {
public static void main(String[] args) throws IOException{
char resp, f;
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
PrintWriter p=new PrintWriter(System.out, true);
47
Sistema a Distancia
do
{
p.println ("Ingresar texto: ");
String palabra=y.readLine();
p.println ("Ingrese para Mayscula =M y para Minscula=m: ");
f=y.readLine().charAt(0);
if (f=='M'){
String z=palabra.concat(" EN MAYUSCULA");
String z1=z.toUpperCase();
System.out.println(z1);}
else{
String z=palabra.concat(" en minscula");
String z1=z.toLowerCase();
System.out.println(z1);
}
p.println ("Desea Continuar: s/n ");
resp=y.readLine().charAt(0);
}
while(resp=='s');
}
}
10. Compile, ejectelo y pruebe su correcto funcionamiento
11. Cree un paquete con el nombre series
Ejemplo 5: Calcule la suma de los nmeros positivos y la suma de los nmeros
negativos ingresados con el teclado. El programa termina cuando se ingresa el
cero.
12. Cree una clase Suma con un mtodo main. Escriba el siguiente programa.
package series;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.PrintWriter;
public class Suma {
public static void main(String[] args)throws IOException{
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
PrintWriter p=new PrintWriter(System.out, true);
int sp=0, sn=0, z;
do{
p.println ("Ingrese nmero");
z=Integer.parseInt(y.readLine());
if(z>0)
sp=sp+z;
else
sn=sn+z;
}
while(z!=0);
p.println ("La suma de los positivos es:"+sp);
p.println("La suma de los negativos es:"+sn);
}
}
48
Sistema a Distancia
package series;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.PrintWriter;
public class Velocidad{
public static void main(String[] args) throws IOException{
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
PrintWriter p=new PrintWriter(System.out, true);
int n;
float d, t, sd=0, st=0, vp;
p.println("Ingrese nmero de tramos: ");
n=Integer.parseInt(y.readLine());
for(int i=0; i<n; i++){
p.println("Ingrese distancia"+i);
d=Float.parseFloat(y.readLine());
p.println("Ingrese tiempo"+i);
t=Float.parseFloat(y.readLine());
sd=sd+d;
st=st+t;
}
vp=sd/st;
p.println("La velocidad promedio es: "+vp);
}
}
Cuestionario de Preguntas
1.
2.
3.
4.
5.
6.
7.
Ejercicios propuestos
1. Escriba un programa que permita el ingreso de un nombre consistente en un
nombre, un apellido paterno y uno materno, todo esto almacenado en una
variable y luego imprima el apellido paterno el materno una coma y luego el
nombre. Por ejemplo: Sally Torres Alvarado, su programa debe imprimir
Torres Alvarado, Sally.
2.
Escriba una aplicacin para que contabilice las vocales de la primera estrofa del
himno nacional.
Largo tiempo...
3. Escriba un programa que calcule el precio final que se paga por una Televisor,
cuyo precio depende del tamao en pulgadas
49
Sistema a Distancia
Tamao
Precio (S/.)
20
600.00
26
1200.00
31
1800.00
42
4500.00
Adems este precio se incrementa dependiendo de la marca:
Marca
Incremento (%)
Sansumg
2
LG
8
Sony
10
50
Sistema a Distancia
Leccin 4
Clase y Objeto
4.1.
Clase
Un archivo de Java debe tener el mismo nombre que la clase que contiene, con la
extensin ".java". Por ejemplo la clase Empleado se guardara en un fichero
llamado Empleado.java
4.1.
Objeto
El objeto es una instancia particular de una clase. Se distingue por sus propias
caractersticas y funcionalidad.
Ejemplo:
Gato genrico
Gato particular
Se considera que si los objetos son bien diseados podrn ser reutilizados y
permitirn a los programadores realizar un cdigo robusto, seguro y mantenible,
por ello existen algunas propiedades aplicables a los objetos como son:
51
Sistema a Distancia
Carro
Alumno
Nmero imaginario
Podemos decir que todo puede ser considerado un objeto, el programador deber
distinguir entre lo que es un objeto y cules son sus atributos.
Desde el punto de vista de la programacin una clase es un nuevo tipo de datos
que define a un objeto.
En java un objeto se crea de la siguiente forma:
Clase objeto;
4.2.
para
un
objeto
carro
tendramos
las
siguientes
Debemos indicar que un programa en java est constituido por clases. Adems para
poder llevar a cabo la ejecucin debemos crear una clase ejecutable, es decir que
contenga un mtodo main.
Una clase se presenta mediante la siguiente estructura:
52
Sistema a Distancia
Para cada objeto se reserva memoria para todas las variables de instancia.
Declaracin:
modifAcceso tipo nombreVariable;
Las variables de instancia son declarados dentro de la clase, sin embargo sus
valores son fijados y cambiados en el objeto. Ejemplo:
public class Empleado{
String nombres, apellidos;
double sueldo;
int edad;
}
Declaracin:
modifAcceso modifAtributo tipo nombreVariable;
Ejemplo:
public class Empleado{
public static string nombre;
}
4.2.3. Mtodos de instancia
Son subrutinas que realizan una determinada tarea similar a las funciones de los
programas estructurados. Son declarados dentro de la clase que no contiene la
53
Sistema a Distancia
palabra reservada static. Pueden tener una lista de parmetros que permiten pasar
informacin entre otros mtodos.
Los mtodos de instancia tienen acceso tanto a las variables de instancia como a
las variables de clase.
Declaracin:
modifAcceso tipo nombreMetodo (parmetros){
}
Ejemplo:
public void calcularPromedio(int x, int y){
}
Clase
Atributos o Variables
de instancia
Atributos o Variables
de clase
Mtodos de
instancia
Mtodos de
clase
}
}
54
Sistema a Distancia
4.3.
Constructor
Son mtodos que inicializan un objeto luego de que este es creado, as ya no sera
necesario inicializar las variables. Todas las clases pueden implementar
constructores. Si no se definen constructores para una clase, el compilador crea un
constructor por omisin que no recibe argumentos. El constructor por omisin
procede a inicializar las variables numricas en 0, las boolean en false y las cadenas
en vacio o null.
Los mtodos constructores se caracterizan por:
Tener el mismo nombre de la clase a la que pertenece.
Poder tener varias implementaciones
Carecer de tipo (int, doubl, float, char, String, void).
Declaracin de un mtodo constructor:
modifAcceso nomConstructor(lista de parmetros){
}
Ejemplo
Clase
Atributos o Variables
de instancia
Atributo o Variable
de clase
Constructor sin
parmetros
public Empleado(){
}
public Empleado(String dato){
Constructor con
parmetros
}
public void trabajar(String n, int horas, int dias){
}
public double asistir(int faltas){
return 0;
}
public void static mostrarReporte(){
Mtodos de
instancia
Mtodo de
clase
}
}
4.4.
El operador new
55
Sistema a Distancia
Ejemplo:
Empleado e1=new Empleado();
Gato g1=new Gato();
Carro c1=new Carro(SWQ2341);
4.5.
Ejemplo:
e1.nombres;
4.6.
Referencia this
Java incluye un valor de referencia especial llamado this, que se utiliza dentro de
cualquier mtodo para referirse al objeto actual. El valor this se refiere al objeto
sobre el que ha sido llamado el mtodo actual. Se puede utilizar this siempre que
se requiera una referencia a un objeto del tipo de una clase actual. Si hay dos
objetos que utilicen el mismo cdigo, seleccionados a travs de otras instancias,
cada uno tiene su propio valor nico de this.
4.7.
Todos los objetos del mundo real se comunican, del mismo modo los objetos de
software se comunican a travs de mensajes.
En POO hay un objeto emisor (quien es el cliente) el cual solicita algo (muchas
veces llamado servicio) a un objeto servidor, quien provee dicho servicio a travs
del mtodo que se invoco en el mensaje.
El mensaje es el nombre del mtodo y la especificacin del servicio se da a travs
de los parmetros que son pasados al mtodo.
4.7.1. Mensaje
Es un mecanismo que permite a los objetos comunicarse entre s, se realiza por
medio de la llamada a los mtodos de la clase.
Las llamadas a los mtodos de las clases con determinados atributos indicaran
como se comportara un objeto determinado al momento de su ejecucin.
56
Sistema a Distancia
Bibliotecas de Clases
El mtodo clone(): Crea un clon del objeto que invoca al mtodo, crendole un
espacio de memoria y asignndole a este los valores correspondientes al objeto
clonado.
El mtodo finalize(): Si un objeto no es referenciado fuera del mbito, es
automticamente removido. Java provee la facilidad adicional de definir un
mtodo finalize, de manera de incorporar lgica asociada a la destruccin del
objeto.
El mtodo toString(): Es proporcionado para ser sobreescrito y retorna una
cadena representando el valor del objeto
4.9.
57
Sistema a Distancia
Definicin:
modifAcceso void nombreMetodo(parmetor){
}
Ejemplo:
public class Empleado{
private String nombres, apellidos;
private double sueldo;
private int edad;
private static String institucion;
public String getNombres(){
return nombres;
}
public void setNombres(String nombres){
this.nombres = nombres;
}
public String getApellidos(){
return apellidos;
}
public void setApellidos(String apellidos){
this.apellidos = apellidos;
}
public double getSueldo() {
return sueldo;
}
public void setSueldo(double sueldo){
this.sueldo = sueldo;
}
public int getEdad(){
return edad;
}
public void setEdad(int edad){
this.edad = edad;
}
public static String getInstitucion(){
return institucion;
}
public static void setInstitucion(String aInstitucion){
institucion = aInstitucion;
}
Clase
de
Atributos o Variables
de instancia
Atributo o Variable
de clase
Mtodos get/set
}
Laboratorio Nro 4
Objetivos
Entender claramente los conceptos de clase y objeto, identificando sus
diferencias.
Definir clases y mtodos utilizando diversas modificadores.
Utilizacin de mtodos constructores.
58
Sistema a Distancia
59
Sistema a Distancia
60
Sistema a Distancia
61
Sistema a Distancia
}
El mtodo calcularDescuento aplica un descuento del 15% al total del costo de
los pasajes si se compran ms de 4 pasajes.
El mtodo calcularTotal calcula el total del costo de los pasajes
El mtodo ImprimirTotal muestra en consola el total a pagar por los pasajes.
13. Cree la clase ejecutable AplicacinCompra
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Aplicacion_compra {
public static void main(String[] args)throws IOException {
Pasajero x=new Pasajero();
InputStreamReader p=new InputStreamReader(System.in);
BufferedReader q=new BufferedReader(p);
System.out.println("Ingresar Nombre: ");
x.setNom(q.readLine());
System.out.println("Ingresar Apellido: ");
x.setApel(q.readLine());
System.out.println("Ingresar Nro pasajes: ");
x.setPasaje(Integer.parseInt(q.readLine()));
x.calcularDescuento();
x.calcularTotal();
x.ImprimirTotal();
}
}
14. Compile y pruebe su correcto funcionamiento.
Ejemplo 4: Una empresa que administra la venta de entradas a eventos,
determina el precio base de entrada a un evento segn el horario en el que se
presenta:
Horario
Precio de entrada (S/.)
Maana
35.00
Tarde
45.00
Noche
60.00
A partir del precio base se calcula el resto de precios que depende de la ubicacin,
as pues si es Platea el precio ser el mismo precio base, si es Preferencial el precio
base se incrementar en 5% y si es Vip el precio base se incrementar en un 10%.
Finalmente el nuevo precio segn la ubicacin esta afecto a un impuesto que
depende del tipo de evento:
Tipo
Impuesto (%)
Teatro
5
Concierto
8
Otro
10
Elaborar un programa que calcule el precio final de un evento cualquiera.
15. Cree un nuevo paquete nmbrelo teatro.
16. Cree una clase Entrada y digite el siguiente fragmento de programa.
package Teatro;
public class entrada {
char th, tubicacion, te;
int prec, unidadEntradas;
62
Sistema a Distancia
63
break;
break;
break;
Sistema a Distancia
case 't':setImpuesto(0.05*getPrec());
case 'c':setImpuesto(0.08*getPrec());
case 'o':setImpuesto(0.10*getPrec());
break;
break;
break;
}
}
public void PrecioFinal(){
setPrecFinal(getPrec()+getIncre()+getImpuesto());
}
18. Cree la clase ejecutable AplicacinVenta
package Teatro;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Aplicacion_Venta {
public static void main(String[] args)throws IOException {
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
ejercicio1 e=new ejercicio1();
System.out.println("Ingresar el tipo de
horario\nm=maana\nt=tarde\nn=noche");
e.setTh(y.readLine().charAt(0));
System.out.println("Cuantas entradas desea comprar");
e.setUnidad_Entradas(Integer.parseInt(y.readLine()));
System.out.println("ubicacion \n p=platea\nP=preferencial\nv=vip");
e.setTubicacion(y.readLine().charAt(0));
System.out.println("tipo de evento\nt=teatro\nc=concierto\no=otro");
e.setTe(y.readLine().charAt(0));
e.CalcularPrecio();
e.CalcularIncremento();
e.CalcularImpuesto();
e.PrecioFinal();
System.out.println("EL HORARIO ES:"+e.getTh());
System.out.println("las unidades son:"+e.getUnidad_Entradas());
System.out.println("EL tipo de ubicacion es:"+e.getTubicacion());
System.out.println("EL tipo de evento es:"+e.getTe());
System.out.println("EL precio es:"+e.getPrec());
System.out.println("EL incremento es:"+e.getIncre());
System.out.println("EL impuesto es:"+e.getImpuesto());
System.out.println("EL precio final es:"+e.getPrecFinal());
}
}
19. Compile y pruebe su correcto funcionamiento.
Ejemplo 4: Calcular el precio final que se paga por una memoria USB, cuyo precio
depende de la capacidad de la memoria:
Capacidad
Precio (S/.)
2 Mb
29.90
4 Mb
39.90
8 Mb
59.90
16 Mb
89.90
Adems este precio se incrementa dependiendo de la marca:
Marca
Incremento (%)
Imation
0
ScanDisk
2
64
Sistema a Distancia
LG
8
Sony
10
Asimismo si la memoria cuenta con un mecanismo de seguridad tendr un pago
adicional de S/.5.00.
20. Cree un nuevo paquete y nmbrelo venta_USB.
21. Cree una clase Memoria y digite el siguiente fragmento de programa,
autogenerando los mtodos get y set de cada atributo definido.
package Venta_USB;
import java.io.PrintWriter;
public class Memoria {
private double prec,total;
private double incremento;
private double adicional;
private int capacidad;
private char marca;
private char seguro;
public double getPrec() {
return prec;
}
public void setPrec(double prec) {
this.prec = prec;
}
public double getIncremento() {
return incremento;
}
public void setIncremento(double incremento) {
this.incremento = incremento;
}
public double getAdicional() {
return adicional;
}
public void setAdicional(double adicional) {
this.adicional = adicional;
}
public int getCapacidad() {
return capacidad;
}
public void setCapacidad(int capacidad) {
this.capacidad = capacidad;
}
public char getMarca() {
return marca;
}
public void setMarca(char marca) {
this.marca = marca;
}
public char getSeguro() {
return seguro;
}
public void setSeguro(char seguro) {
this.seguro = seguro;
}
public double getTotal() {
65
Sistema a Distancia
return total;
}
public void setTotal(double total) {
this.total = total;
}
public void calcularPrecio(){
if (capacidad==2)
prec=29.90;
else if (capacidad == 4)
prec= 39.90;
else if (capacidad ==8)
prec= 59.90;
else if (capacidad == 16)
prec= 89.90;
}
public void calcularIncremento(){
switch (marca){
case 'I': incremento=0;break;
case 'S': incremento=0.02;break;
case 'L': incremento=0.08;break;
case 'Y': incremento=0.10;break;
}
}
public void calcularAdicional(){
if (seguro =='S')
adicional=5;
}
public void calcularTotal(){
total= prec+(prec*incremento)+adicional;
}
public void Imprimir(){
PrintWriter p=new PrintWriter (System.out,true);
p.println("Capacidad:"+capacidad);
p.println("Marca:"+marca);
p.println("Precio:"+prec);
p.println("Incremento:"+incremento);
p.println("Adicional:"+adicional);
p.println("Seguro"+seguro);
p.println("El total apagar es:"+total);
}
}
El mtodo CalcularPrecio pone el precio base del producto
El mtodo CalcularIncremento calcula el incremento en el precio del producto segn
la marca.
El mtodo CalcularAdicional calcula un pago adicional si el cliente desea seguro,
equivalente a 5 soles.
El mtodo CalcularTotal calcula el precio final de la compra, considerando el
incremento y el seguro.
El mtodo Imprimir muestra las caractersticas de la compra.
22. Cree la clase ejecutable AplicacinVentaUSB '
package venta_USB;
import java.io.InputStreamReader;
import java.io.BufferedReader;
66
Sistema a Distancia
import java.io.IOException;
import java.io.PrintWriter;
public class Aplicacion_VentaUSB {
public static void main(String[] args)throws IOException {
InputStreamReader x= new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
PrintWriter p= new PrintWriter(System.out,true);
Memoria m=new Memoria();
p.println("Ingresar Capacidad de Memoria (2,4,8,16)");
m.setCapacidad(Integer.parseInt(y.readLine()));
p.println("Ingresar Marca del Usb [I]magion,[S]candisk,[L]g, [Y]Sony");
m.setMarca(y.readLine().charAt(0));
p.println("Tiene seguro (S/N)?");
m.setSeguro(y.readLine().charAt(0));
m.calcularPrecio();
m.calcularIncremento();
m.calcularAdicional();
m.calcularTotal();
m.Imprimir();
}
}
23. Compile y pruebe su correcto funcionamiento.
Cuestionario de Preguntas
1. Qu es un clase?, ponga un ejemplo de declaracin de una clase.
2. Qu es un objeto?, Declara e instancia de un objeto en java.
3. Explique en qu consiste la abstraccin de Datos, Ejemplo.
4. Explique en qu consiste la abstraccin funcional, Ejemplo.
5. Como se lleva a cabo la comunicaron por mensajes
6. Establezca un diferencia entre objeto, mtodo y atributo.
7. Qu funcin tiene el operador new y la referencia this?
8. Qu funcin tiene el operador punto (.) ejemplo?
9. A que se denomina paso de mensajes.
10. Partes de un mensaje.
11. Tipos de mensaje.
12. Establezca un diferencia entre clase, objeto , mtodo, paquete
13. Qu caracteriza a un mtodo constructor y cual es su funcin?. De un ejemplo
14. Para qu sirven los mtodos get y set dentro de una clase
Ejercicios propuestos:
1. Desarrollar una clase persona de tal manera que determine de acuerdo al
ingreso de su edad en que etapa se encuentra bebe, nio, adolescente, etc.
Genere su clase ejecutora que ingrese el nombre de la persona y la edad.
2. Una librera ofrece a sus clientes dos tipos de materiales: discos y libros. Para
los dos se guarda informacin general, como: cdigo, ttulo y autor. Para los
libros se almacena tambin el nmero de pginas y gnero al que pertenece, de
acuerdo al gnero el precio es:
Gnero
Precio (S/.)
Novela
24.00
Poesa
19.00
Informacin
35.00
De acuerdo al nmero de pginas el costo del libro se incrementa en los
siguientes porcentajes:
67
Sistema a Distancia
Nmero de pginas
Incremento (%)
0 100
0
101 200
2
201 mas
5
Asimismo, para los discos se guarda la cantidad de CD, costando cada uno
S/.12.00. Calcular el monto a pagar por un tipo de material.
3. Una tienda oferta prendas de vestir para damas y caballeros, el descuento de
las prendas de vestir depende de la talla:
Talla
Descuento (%)
X
30
M
25
L
20
Una prenda para dama dependiendo de los detalles tiene los siguientes
incrementos:
Detalles
Incremento (S/.)
Bordado
15.00
Estampado
18.00
Encajes
22.00
Todos las prendas si son de procedencia importada pagan un impuesto del 5%.
Adems si el monto final es mayor a S/. 100.00 reciben un llavero de obsequio.
Elaborar un programa que calcule el monto que se paga por una prenda de
dama y una prenda de caballero y defina si recibe el obsequio o no.
4. Un club est organizando un evento cultural en el que pueden participar Socios
y No socios, el costo bruto de la entrada al evento depende de la ubicacin:
Ubicacin
Costo (S/.)
Vip
395.00
Platea
264.00
Latera
128.00
Los Socios del club tiene un descuento que varia segn su categora:
Categora
Descuento (%)
A
20
B
15
C
10
Todos los asistentes socios y no socios menores de 12 aos tiene un descuento
adicional de 15% del costo bruto de la entrada asimismo si dentro del evento
participa de los talleres tendr que pagar S/.25.00.
5. El pago por derecho de admisin de una universidad est en funcin al colegio
de procedencia de los postulantes, asi pues, los postulantes que proceden de
colegio particular realizan un pago de acuerdo a la escala en la que se ubica su
colegio:
Escala
Pago (S/.)
A
480.00
B
430.00
C
370.00
Por otro lado los postulantes que proceden de colegio estatal realizan un pago
de S/.210.00., y si es que el psotulante tiene menos de 17 aos tendr un
descuento del 5%. Para ambos casos los postulantes debe pagar un impuesto
por emisin de carn del 2% de su pago. Elaborar un programa que muestre el
total que paga un postulante que procede de un colegio particular y un
postulante que procede de un colegio estatal.
68
Sistema a Distancia
Leccin 5
Arreglos como objetos de clases predefinidas
5.1. Arreglo
Un arreglo es una estructura de datos con un tamao predefinido, que nos permite
almacenar informacin de un tipo de dato solo durante el momento de ejecucin de
un programa, es decir de forma temporal.
Los elementos de los arreglos como estructuras estticas estn indexados, el
primer elemento tiene el ndice 0.
Declaracin:
tipo[ ] nombreArreglo;
tipo nombreArreglo[ ];
Ejemplo:
int [] NumAlumnos;
doble[] sueldo;
char categora[];
Los arreglos tambin pueden ser usado en clases predefinidas, por ejemplo si
nosotros creamos una clase alumno que contenga atributos como nombre
categora, cantidad de crditos, etc, entonces podramos definir un arreglo de esta
clase, al cual se denomina arreglo de objetos;
Declaracin:
nombreClase[ ] nombreArregloObjetos;
nombreClase nombreArregloObjetos[ ];
Ejemplo: Si definimos la clase Alumno
public class Alumno {
private String nom;
private char cat;
private int ccred;
private double prec;
private double tot;
}
La declaracin de un arreglo de objetos de la clase Alumno es:
Alumno va[ ];
69
Sistema a Distancia
5.2.
Inicializacin de arreglos
Ejemplo:
Alumno[] va = new Alumno[50];
Donde:
Tamao: indica el nmero de elementos que el arreglo contendr. De acuerdo a
esto el operador new reservara un espacio de memoria necesario para los objetos
que estn siendo inicializados.
Tambin se puede inicializar un arreglo mediante la asignacin directa de valores.
Ejemplo:
int[ ] arregloEnteros = {32, 87, 3, 589, 12, 1076, 2000, 8, 622, 127};
5.3.
Para realizar una referencia a un arreglo ser necesario indicar el ndice del
elemento al cual queremos acceder.
Declaracin:
nombreArregloObjetos[indice].mtodo();
70
Sistema a Distancia
Ejemplo:
Para la Escritura
va[1].setNom(Pedro);
va[1].setCat(A).charAt(0));
Para la Lectura: En estas lneas de cdigo se muestra un listado de los alumnos
registrados en el arreglo va.
for(int i=0; i<n; i++)
System.out.println(va[i].getNom()+"\t"+va[i].getCat()+"\t"+
va[i].getCcred()+"\t"+va[i].getPrec()+"\t"+va[i].getTot());
5.4.
Tipos de Arreglos
Laboratorio Nro 5
Objetivos
71
Sistema a Distancia
break;
break;
break;
}
El mtodo calcularPrecio de acuerdo a la categora del alumno guarda el precio de
lo que este deber pagar.
El mtodo calcularTotal calcula el total a pagar por el alumno.
5. Cree la clase ejecutable AplicacinInstituto
import java.io.BufferedReader;
import java.io.IOException;
72
Sistema a Distancia
import java.io.InputStreamReader;
public class AplicacinInstituto {
public static void main(String[] args) throws IOException{
Alumno va[] = new Alumno[80];
int con=0, suma=0, prom, ca=0, cb=0, cc=0;
int n=Integer.parseInt(leer("Ingresar cantidad de alumnos: "));
for(int i=0; i<n; i++){
va[i]=new Alumno();
va[i].setNom(leer("Ingresar nombre del alumno: "));
va[i].setCat(leer("Ingresar categoria: ").charAt(0));
va[i].setCcred(Integer.parseInt(leer("Ingresar cantidad de creditos: ")));
va[i].calcularPrecio();
va[i].calcularTotal();
}
for(int i=0; i<n; i++)
System.out.println(va[i].getNom()+"\t"+va[i].getCat()+"\t"+
va[i].getCcred()+"\t"+va[i].getPrec()+"\t"+va[i].getTot());
for(int i=0; i<n; i++)
if(va[i].getCcred()<10)
con++;
System.out.println(Cantidad de alumnos matriculados en menos de+
10 crditos +con);
for(int i=0; i<n; i++)
suma+=va[i].getCcred();
prom=suma/n;
System.out.println("El promedio de crditos es "+prom);
for(int i=0; i<n; i++)
switch(va[i].getCat()){
case 'A': ca++; break;
case 'B': cb++; break;
case 'C': cc++; break;
}
System.out.println("Cantidad de alumnos con categoria A: "+ca);
System.out.println("Cantidad de alumnos con categoria B: "+cb);
System.out.println("Cantidad de alumnos con categoria C: "+cc);
}
public static String leer(String texto) throws IOException{
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
System.out.println(texto);
String dato=y.readLine();
return dato;
}
}
El mtodo leer() muestra un texto con la informacin que se pide, lee los datos
de tipo cadena que se registran y los pasa con ayuda del mtodo set al arreglo.
73
Sistema a Distancia
Para llamar a este mtodo no es necesario el uso de algn objeto debido al uso
del modificador static.
6. Compile y pruebe su correcto funcionamiento.
Ejemplo 2: Un Sala de cine registra las ventas de las entradas realizadas en un
arreglo de objetos el cual debe contener la siguiente informacin: Nombre de la
pelcula, Numero de entradas, da, precio, total a pagar, etc, el precio vara de
acuerdo al da:
Da
Precio (S/.)
Lun, Mier, Jue
8
Martes
6
Vier, Sab, Dom
10
Mostrar la entrada adquirida as como el total de entradas vendidas.
7. Cree un paquete con el nombre de cine.
8. Cree una clase ClienteCine y digite el siguiente fragmento de programa. Esta
clase contiene tres constructores: el primero es el que por defecto existe, el
segundo servir para registrar el nombre de la pelcula y el nmero de entradas
y el tercero para registrar el da.
public class ClienteCine {
private String NomPelicula;
private int NEntradas;
private int Dia;
private int Precio;
private double Consumo;
private double Desc;
private double Total;
public cliente_Cine() {
}
public cliente_Cine(String Nom,int NE) {
this.NomPelicula=Nom;
this.NEntradas=NE;
}
public cliente_Cine(int Dia) {
this.Dia=Dia;
}
Cree los mtodos get set para cada uno de los atributos de la clase, para los
siguientes mtodos.
public String getNomPelicula() {
return NomPelicula;
}
public void setNomPelicula(String NomPelicula) {
this.NomPelicula = NomPelicula;
}
public int getNEntradas() {
return NEntradas;
}
public void setNEntradas(int NEntradas) {
this.NEntradas = NEntradas;
}
public int getDia() {
74
Sistema a Distancia
return Dia;
}
public void setDia(int Dia) {
this.Dia = Dia;
}
public int getPrecio() {
return Precio;
}
public void setPrecio(int Precio) {
this.Precio = Precio;
}
public double getConsumo() {
return Consumo;
}
public void setConsumo(double Consumo) {
this.Consumo = Consumo;
}
public double getDesc() {
return Desc;
}
public void setDesc(double Desc) {
this.Desc = Desc;
}
public double getTotal() {
return Total;
}
public void setTotal(double Total) {
this.Total = Total;
}
9. Digite el siguiente cdigo que corresponde a los mtodos de instancia de la
clase.
public void CalcularDescuento(){
if (getNEntradas()>4)
setDesc(0.05*getNEntradas()*getPrecio());
else setDesc(0);
}
public void CalcularTotal(int Dia){
switch (Dia){
case 1: setPrecio(8); break;
case 2: setPrecio(6); break;
case 3: setPrecio(8); break;
case 4: setPrecio(8); break;
case 5: setPrecio(10); break;
case 6: setPrecio(10); break;
case 7: setPrecio(10); break;
default: System.out.println("dia equivocado: ");break;
}
setTotal(getNEntradas()*getPrecio()-getDesc());
}
public void ImprimirBoleto(){
System.out.println("pelicula: "+getNomPelicula());
System.out.println("No de entradas: "+getNEntradas());
System.out.println("el total a pagar es: "+getTotal());
}
75
Sistema a Distancia
76
Sistema a Distancia
package Cable;
public class ClienteCable {
private String Nombre;
private char tp;
private double prec;
private int unidades_Canales;
private char solicitar;
private double p_mensual;
private char tl;
private double impuesto;
private double montofinal;
private double monto;
private double PrecioCanal;
Con ayuda del refactor cree los mtodos get y set para cada uno de los
atributos.
public char getTp() {
return tp;
}
public void setTp(char tp) {
this.tp = tp;
}
public double getPrec() {
return prec;
}
public void setPrec(double prec) {
this.prec = prec;
}
public int getUnidades_Canales() {
return unidades_Canales;
}
public void setUnidades_Canales(int unidades_Canales) {
this.unidades_Canales = unidades_Canales;
}
public double getP_mensual() {
return p_mensual;
}
public void setP_mensual(double p_mensual) {
this.p_mensual = p_mensual;
}
public double getMonto() {
return monto;
}
public void setMonto(double monto) {
this.monto = monto;
}
public char getTl() {
return tl;
}
public void setTl(char tl) {
this.tl = tl;
}
public char getSolicitar() {
return solicitar;
77
Sistema a Distancia
}
public void setSolicitar(char solicitar) {
this.solicitar = solicitar;
}
public void setNombre(String Nombre) {
this.Nombre = Nombre;
}
public String getNombre() {
return Nombre;
}
public double getImpuesto() {
return impuesto;
}
public void setImpuesto(double impuesto) {
this.impuesto = impuesto;
}
public double getMontofinal() {
return montofinal;
}
public void setMontofinal(double montofinal) {
this.montofinal = montofinal;
}
public double getPrecioCanal() {
return PrecioCanal;
}
public void setPrecioCanal(double PrecioCanal) {
this.PrecioCanal = PrecioCanal;
}
}
Digite el siguiente cdigo para los mtodos de la clase
public void calcularPrecio(){
switch(tp){
case 'c':
prec=100.50;
if(solicitar=='s')
PrecioCanal=14.00*unidades_Canales;
else
PrecioCanal=0;
prec=prec+PrecioCanal;
break;
case 'b':
if(tl=='c')
p_mensual=50.20;
else if(tl=='p')
p_mensual=64.60;
else
p_mensual=0;
break;
}
}
public void incremento(){
switch(tp){
case 'c': impuesto=0.19*prec;
break;
case 'b': impuesto=0.19*p_mensual;
break;
}
}
public void montoFinal_Paquetecompleto(){
montofinal=prec+impuesto;
78
Sistema a Distancia
}
public void montodel_PaqueteBasico(){
monto=p_mensual+impuesto;
}
El mtodo calcularPrecio calcular el pago que realiza el cliente de acuerdo al
paquete, al nmero de cabales Premium y al lugar.
El mtodo incremento calcular el impuesto segn el tipo de paquete.
El mtodo montoFinalPaqueteCompleto Calcula el monto final que incluye el
precio ms el impuesto.
El mtodo montodelPaqueteBasico calcula el monto que incluye el pago mensual
ms el impuesto.
14. Cree la clase ejecutable AplicacionCable
package cable;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class AplicacionCable {
public static void main(String[] args)throws IOException {
ClienteCable E[]=new ClienteCable[100];
int n=Integer.parseInt(Leer("Ingrese cantidad de clientes"));
int i, suma=0,cap=0,prom,p=0;
double menor=1000;
char resp;
for(i=0; i<n; i++){
E[i]=new ejercicio2();
E[i].setNombre(Leer("Ingresar el nombre"));
E[i].setTp(Leer("tipo de paquete c=completo \ nb=basico").charAt(0));
resp=Leer("Desea canales premiun s/n").charAt(0);
E[i].setSolicitar(resp);
if (resp=='s')
E[i].setUnidades_Canales(Integer.parseInt(Leer("Cuantos
canales deseas")));
E[i].setTl(Leer("tipo de lugar c=capital \Np= provincia").charAt(0));
E[i].calculaPrecio();
E[i].incremento();
E[i].montoFinalPaquetecompleto();
E[i].montodelPaqueteBasico();
}
System.out.println("Nombre TP SOLIC Unidades TL PRECIO
pmensual\tINCREMENTO\tMPAQUETE\tMBASICO");
System.out.println("==============================
=========================================");
for(i=0; i<n; i++){
System.out.println(E[i].getNombre()+"\t"+E[i].getTp()+"\t"+
E[i].getSolicitar()+"\t"+E[i].getUnidades_Canales()+
\t"+E[i].getTl()+"\t"+E[i].getPrec()+"\t"+E[i].getP_mensual(
)+"\t"+E[i].getImpuesto()+ "\t"+E[i].getMontofinal()+
"\t"+E[i].getMonto());
}
//calcula cantidad clientes en la capital
//y cuando se recauda en la capital
for(i=0; i<n; i++)
if(E[i].getTl()=='c'){
{suma+=E[i].getMontofinal();
79
Sistema a Distancia
cap++;
}
//calcula el que tiene el menor monto
for(i=0; i<n; i++)
if(E[i].getMonto()<menor){
menor=E[i].getMonto();
p=i;
}
System.out.println("Monto menor corresponde a"+E[p].getNombre()
+"y es"+menor);
prom=suma/cap;
System.out.println("EL PROMEDIO DE LOS CLIENTES QUE VIVEN EN
LA CAPITAL ES:"+prom);
System.out.println("La cantidad de clientes de la capital es:"+cap);
System.out.println("Los clientes en provincia son");
for(i=0; i<n; i++)
if(E[i].getTl()=='p')
System.out.println(E[i].getNombre());
}
public static String Leer(String texto)throws IOException{
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
System.out.println(texto);
String Dato=y.readLine();
return Dato;
}
}
15. Compile y pruebe su correcto funcionamiento.
Ejemplo 4: Una empresa de turismo que ofrece tours internacionales a sus
clientes hasta un mximo de 20 y un mnimo de 10 turistas por tours. Si el cliente
solicita asistencia a los eventos como balet y opera tendr que hacer un pago
adicional de S/.200. La tabla muestra los tipos de tours los cuales incluyen pasaje,
hospedaje y 2 comidas al da.
Lugar
Pago (S/.)
Das
Chile
1400.00
4d y 3n
Argentina
1750.00
5d y 4n
Brasil
2100.00
4d y 4n
En todos los casos los precios no incluyen el 19% por IGV. Elaborar un programa
que calcule el monto final que paga un cliente, obtenga un listado por destino as
como el total de clientes a cada destino. La cantidad que recauda la agencia de
viaje al da por venta de sus paquetes turisticos.
16. Cree un paquete con el nombre de turistico.
17. Cree una clase Tour y digite el siguiente fragmento de programa. Esto incluye
los atributos del cliente del tour como son Nombre del cliente, pas destino
pais, pago, total de clientes, monto final, recaudo total, eventos, monto. As
como sus mtodos para calcular el pago, calcular el monto final.
package turistico;
public class Tour {
private String nombre;
private char pais;
80
Sistema a Distancia
private
private
private
private
private
private
double pago;
int total_clientes;
double monto_final;
double recaudo_total;
char eventos;
int monto;
Con ayuda del refactor cree los mtodos get y set para cada uno de los
atributos.
public char getPais() {
return pais;
}
public void setPais(char pais) {
this.pais = pais;
}
public double getPago() {
return pago;
}
public void setPago(double pago) {
this.pago = pago;
}
public int getTotal_clientes() {
return total_clientes;
}
public void setTotal_clientes(int total_clientes) {
this.total_clientes = total_clientes;
}
public double getMonto_final() {
return monto_final;
}
public void setMonto_final(double monto_final) {
this.monto_final = monto_final;
}
public double getRecaudo_total() {
return recaudo_total;
}
public void setRecaudo_total(double recaudo_total) {
this.recaudo_total = recaudo_total;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public char getEventos() {
return eventos;
}
public void setEventos(char eventos) {
this.eventos = eventos;
}
public int getMonto() {
return monto;
}
public void setMonto(int monto) {
this.monto = monto;
81
Sistema a Distancia
}
public void calcularPago(){
switch(pais){
case 'C': pago=(1400.00 * 1.19);
case 'A': pago=(1750.00 * 1.19);
case 'B': pago=(2100.00 * 1.19);
}
}
public void calcularMontoFinal(){
if (eventos=='S')
monto=200;
else
monto=0;
monto_final=pago+monto;
}
break;
break;
break;
}
El mtodo calcularPago calcular el pago que realiza el cliente de tour incluyendo
el igv de acuerdo al pas destino.
El mtodo calcularMontoFinal Calcula el monto final que incluye si es que el
cliente asistir a los eventos o no.
package Turistico;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class EJECUCION_TOUR {
public static void main(String[] args)throws IOException {
Tour va[]=new Tour[100];
int ct=0, ca=0, cb=0, cc=0,i=0;
char resp;
double suma=0;
// se lleva a coabo el registro de los turistas
do{
va[i]=new TOUR();
va[i].setNombre(Leer("Ingrese el nombre"));
va[i].setPais(Leer("Ingrese el pais C / A / B: ").charAt(0));
va[i].calcularPago();
va[i].setEventos(Leer("Desea asistir a eventos S/N ").charAt(0));
va[i].CalcularMontofinal();
ct++;
i++;
resp=(Leer("desea continuar s/n").charAt(0));
}
while(resp=='s' && ct<20 || ct>10);
// se realiza el listado de turistas por pais destino
resp=Leer("Listado
de
que
pais
desea
a
=argentina,
b=brasil,c=chile").charAt(0);
switch(resp){
case 'a': for(i=0; i<ct; i++)
if(va[i].getPais()=='A')
System.out.println(va[i].getNombre()+"\t"+
va[i].getPago()+"\t"+va[i].getMonto_final());
break;
case 'b': for(i=0; i<ct; i++)
if(va[i].getPais()=='B')
System.out.println(va[i].getNombre()+"\t"+
82
Sistema a Distancia
va[i].getPago()+"\t"+va[i].getMonto_final());
break;
case 'c': for(i=0; i<ct; i++)
if(va[i].getPais()=='C')
System.out.println(va[i].getNombre()+"\t"+
va[i].getPago()+"\t"+va[i].getMonto_final());
break;
}
//Se contabiliza el numero e turistas por pas destino
for(i=0; i<ct; i++)
switch(va[i].getPais()){
case 'C': cc++; break;
case 'A': ca++; break;
case 'B': cb++; break;
}
System.out.println("Cantidad de turistas con destino a Chile: "+cc);
System.out.println("Cantidad de turistas con destino a Argentina: "+ca);
System.out.println("Cantidad de turistas con destino a Brasil: "+cb);
//Se calcula la cantidad recaudada por la agencia de viajes
for(i=0; i<ct; i++)
suma=suma+va[i].getMonto_final();
System.out.println("La cantidad recaudada es: "+suma);
}
public static String Leer(String texto)throws IOException{
InputStreamReader x=new InputStreamReader(System.in);
BufferedReader y=new BufferedReader(x);
System.out.println(texto);
String dato=y.readLine();
return dato;
}
}
18. Compile y pruebe su correcto funcionamiento.
Ejercicios propuestos:
1. Tomando como referencia el anlisis de los atributos de las clases. Hacer un
programa que permita registrar a los empleados de una fabrica. Calcule los
sueldos de ellos en base a las tarifas por horas de trabajo y muestre una lista
de ellos con su sueldo. Adicione un mtodo que permita calcular cuanto es lo
que se deber pagar en total por todos los trabajadores.
2. El pago de un seguro de salud particular de un grupo de empleados depende de
los aos de servicio que tiene en la empresa:
Aos
Pago(S/.)
05
35.00
6 12
28.00
13 20
21.00
21 ms
10.00
Adems dependiendo de la condicin civil del empleado el pago se incrementa
en:
Condicin
Incremento (%)
Soltero
0
Casado
10
Viudo
12
83
Sistema a Distancia
Elaborar un programa que calcule el total que paga N empleados por un seguro
de salud particular, as como la cantidad de solteros, casados y viudos que
existe en la empresa y el promedio de pagos de los empleados con mas de 10
aos de servicio.
3. Un municipio distrital calcula el precio del impuesto predial de una vivienda
dependiendo del rea que ocupa, de acuerdo a la siguiente tarifa:
Vivienda
Tarifa x m2 (S/.)
Casa
2.10
Departamento
1.40
Adems de acuerdo a los aos de antigedad de la vivienda tiene el siguiente
descuento:
Aos
Descuento (%)
05
0
6 12
10
13 20
15
21 ms
20
Elaborar un programa que calcule los impuestos prediales de N vivienda
empleado arreglos de objetos, as como el promedio del pago del impuesto
predial de las viviendas con menos de 10 aos de antigedad.
84
Sistema a Distancia
Resumen
85
Sistema a Distancia
Lectura
86
Sistema a Distancia
Autoevaluacin
double en 32 bits
double de 64 bits
entero de 16 bits
float de 32 bits
87
Sistema a Distancia
Enlaces
http://www.arrakis.es/~abelp/ApuntesJava/Strings.htm
http://usuarios.multimania.es/java_2000/clases_en_java.htm
http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/clases1/clases.htm
http://tikal.cifn.unam.mx/~jsegura/LCGII/java5.htm
Bibliografa
Deitel y Deitel (1998) Como Programar en Java. Mxico D.F. Prentice Hall
Hispanoamericana. S.A. Cap. 2: Creacin de aplicaciones Java, pp. 60-95.
Sergio Dos Santos (2005) Java, la gua total del programador. Buenos Aires. MP
Ediciones. Cap. 3: Clases, pp. 60-74.
Amparo Lpez, Gaona (2007) Introduccin al desarrollo de programas con
Java.Mxico D.F. Universidad Autnoma de Mxico. Cap.4: Creacin y uso de
clases, pp. 55-83.
Fco Javier Ceballos Sierra (2006) Java2. Lenguaje y Aplicaciones. Madrid. Rama.
Cap. 9: Mtodos, pp. 201-225.
88
Sistema a Distancia