estructura basica programa java

15
EJERCICIOS PARA CALIFICAR EN GRUPO CHIA, 6 DE NOVIEMBRE DE 2009 ESTRUCTURA BASICA DE UN PROGRAMA EN JAVA Estructura básica de un programa en Java En Java, como en cualquier otro lenguaje orientado a objetos, abandonamos el modo de entender un programa que utilizábamos anteriormente para aproximarnos a un modo más cercano a "la vida misma". Los programas ahora estarán divididos en clases . Una clase en si se puede entender como un programa independiente, tiene sus propios datos y también maneja esos datos "a su modo". Imaginemos que dos clases "la clase mecánico" y la "clase panadero". Cada una de estas clases tiene sus propias herramientas y sus propias tareas, por ejemplo, el panadero tiene "harina" y una de sus tareas es "amasar", mientras que el mecánico tiene "bujías" y una de sus tareas es "limpiar bujías". Lo importante de todo esto es que cada uno hace muy bien su tarea pero no tiene sentido "llevar el coche a la panadería de la esquina" ni "pedir una baguette junto con un cambio de aceite". Un ejemplo sencillo en Java import java.lang.*; class primerprograma { public static void main (String args[]) { System.out.println("Mi primer programa en Java"); System.out.println("Fin del programa"); } } Otro ejemplo de un programa sencillo en Java

Upload: hernando-rodriguez-quintero

Post on 21-Dec-2015

216 views

Category:

Documents


2 download

DESCRIPTION

Muy resumida

TRANSCRIPT

Page 1: Estructura Basica Programa Java

EJERCICIOS PARA CALIFICAR EN GRUPO

CHIA, 6 DE NOVIEMBRE DE 2009

ESTRUCTURA BASICA DE UN PROGRAMA EN JAVA

Estructura básica de un programa en Java

En Java, como en cualquier otro lenguaje orientado a objetos, abandonamos el modo de entender un programa que utilizábamos anteriormente para aproximarnos a un modo más cercano a "la vida misma".

Los programas ahora estarán divididos en clases. Una clase en si se puede entender como un programa independiente, tiene sus propios datos y también maneja esos datos "a su modo".

Imaginemos que dos clases "la clase mecánico" y la "clase panadero". Cada una de estas clases tiene sus propias herramientas y sus propias tareas, por ejemplo, el panadero tiene "harina" y una de sus tareas es "amasar", mientras que el mecánico tiene "bujías" y una de sus tareas es "limpiar bujías". Lo importante de todo esto es que cada uno hace muy bien su tarea pero no tiene sentido "llevar el coche a la panadería de la esquina" ni "pedir una baguette junto con un cambio de aceite".

Un ejemplo sencillo en Java

import java.lang.*;

class primerprograma {

public static void main (String args[]) {

System.out.println("Mi primer programa en Java");

System.out.println("Fin del programa");

}

}

Otro ejemplo de un programa sencillo en Java

import java.lang.String;

public class ejemplo1cs {

public static void main (String[] args) {

//String nomb1 = "Andrea del Pilar ";

Page 2: Estructura Basica Programa Java

//nomb1 = nomb1 + "Saavedra Moreno";

//nomb1.concat("Saavedra Moreno");

StringBuffer nombres = new StringBuffer("Andrea del Pilar");

nombres.append(" Saavedra Moreno");

System.out.print("Hola: " + nombres);

}

}

PARA CALIFICAR (1): Con base en los programitas anteriores haga uno nuevo donde se dé un saludo muy especial y en la siguiente línea se visualicen los nombres completos de los integrantes del grupo y por último que se visualice la fecha y la hora actual. Llame la clase programa1.

Ejemplo es de un listado numérico

import java.lang.*;

// programa que lista los numeros de 1 a 10

public class listarnum1al10 {

public static void main (String args[]) {

double p = 1;

while (p <= 10)

{

System.out.println(p);

p++;

}

}

}

PARA CALIFICAR (2): Con base en la java.class anterior haga una nueva donde se impriman los números impares y otra que calcule los números primos entre 2 y 10000. Llame la clase programa2.

Page 3: Estructura Basica Programa Java

Ejemplo de Matricula de un Estudiante

class matriculaestudiante {

public static void main (String args[]) {

String nombre = "Andrea Saavedra";

int edad = 29;

boolean casada = false;

byte numerofav = 123;

double matricula = 1500000.00;

System.out.println("Nombre: " + nombre);

System.out.println("Edad: " + edad);

System.out.println("Estado Civil: " + casada);

System.out.println("Numero favorito: " + numerofav);

}

}

Ejemplo sobre Hallar el área y el perímetro de un rectángulo

import java.lang.*;

class rectangulo {

public static void main (String[] args) {

double area, perimetro;

double largo = 20.5;

double ancho = 20.0;

area = largo * ancho;

perimetro = (2* largo) + (2 * ancho);

System.out.println("El area del rectangulo es: " + area);

System.out.println("El perimetro del rectangulo es: " + perimetro);

Page 4: Estructura Basica Programa Java

}

}

CICLO WHILE:

Generalmente esta estructura se utiliza en situaciones en donde desconocemos la cantidad de ciclos que se deben ejecutar para producir un resultado. Como no sabemos de antemano cuantas vueltas debe dar, simplemente esperamos que el resultado de las divisiones sucesivas sea igual a cero.

EJEMPLO

public class Dec2Bin{

public static void main(String args[]){

int decimal = 252222;

String binario = "";

while ( decimal > 0 ) {

binario = decimal % 2 + binario;

decimal /= 2;

}

System.out.println(binario);

}

}

PARA CALIFICAR (3): Que hace el java.class anterior. Pruebe con varios numeros decimales diferentes. Haga la prueba de escritorio con uno de los ejemplos para verificar como funciona este While. Llame la clase programa3.

También se pueden realizar ciclos con while en donde ya conocemos, antes de entrar en la estructura, cuantas vueltas debe dar para terminar. Para esto nos auxiliamos con un contador de vueltas. Previamente tiene que inicializarse antes de ingresar al ciclo. Luego en cada vuelta se modificara según la lógica del algoritmo.

public class Cuadrado{

Page 5: Estructura Basica Programa Java

public static void main(String args[]){

int contador = 1;

while ( contador <= 5 ) {

System.out.println("* * * * * ");

contador++;

}

}

}

En este algoritmo, inicializamos el contador a 1 y luego en cada ciclo se incrementa. La condición de corte tiene como objetivo no permitir más vueltas si el contador superó el valor 5.

PARA CALIFICAR (4): En el programa anterior el asterisco se imprime uno a uno, para evitar esto utilice otro ciclo while y otra variable que inicialice dentro del ciclo llamada "contador2" y optimice el código. Llame la clase programa4.

Leer y escribir datos primitivos

Los flujos de datos DataInputStream y DataOutputStream

La clase DataInputStream es útil para leer datos del tipo primitivo de una forma portable. Esta clase tiene un sólo constructor que toma un objeto de la clase InputStream o sus derivadas como parámetro.

Se crea un objeto de la clase DataInputStream vinculándolo a un objeto FileInputStream para leer desde un archivo en disco denominado pedido.txt..

FileInputStream fileIn=new FileInputStream("pedido.txt");

DataInputStream entrada=new DataInputStream(fileIn));

o en una sola línea

DataInputStream entrada=new DataInputStream(new FileInputStream("pedido.txt"));

La clase DataInputStream define diversos métodos readXXX que son variaciones del método read de la clase base para leer datos de tipo primitivo

Page 6: Estructura Basica Programa Java

boolean readBoolean();

byte readByte();

int readUnsignedByte();

short readShort();

int readUnsignedShort();

char readChar();

int readInt();

String readLine();

long readLong();

float readFloat();

double readDouble();

La clase DataOutputStream es útil para escribir datos del tipo primitivo de una forma portable. Esta clase tiene un sólo constructor que toma un objeto de la clase OutputStream o sus derivadas como parámetro.

Se crea un objeto de la clase DataOutputStream vinculándolo a un objeto FileOutputStream para escribir en un archivo en disco denominado pedido.txt..

FileOutputStream fileOut=new FileOutputStream("pedido.txt");

DataOutputStream salida=new DataOutputStream(fileOut));

o en una sola línea

DataOutputStream salida=new DataOutputStream(new FileOutputStream("pedido.txt"));

La clase DataOutputStream define diversos métodos writeXXX que son variaciones del método write de la clase base para escribir datos de tipo primitivo

void writeBoolean(boolean v);

void writeByte(int v);

void writeBytes(String s);

void writeShort(int v);

void writeChars(String s);

void writeChar(int v);

Page 7: Estructura Basica Programa Java

void writeInt(int v);

void writeLong(long v);

void writeFloat(float v);

void writeDouble(double v);

Ejemplo de un programa que suma 2 datos

// Debe importarse la librería o paquete java.io donde se encuentran las clases que se usan para la captura de datos desde teclado.

import java.io.*;

// Este programa pide digitar dos numeros desde teclado y luego los suma

public class sumadatos {

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

// Creacion del flujo para la lectura de datos por teclado

InputStreamReader isr = new InputStreamReader (System.in);

// Creacion del filtro para optimizar la lectura de datos

BufferedReader br = new BufferedReader(isr);

// Lectura del primer numero

System.out.print("Por favor digite el primer numero a sumar: ");

// lectura del dato con el metodo readLine y almacenamiento en variable de texto

String texto1 = br.readLine();

// conversion del contenido de la variable a numero entero

int num1 = Integer.parseInt(texto1);

// Lectura del segundo numero

System.out.print("Por favor digite el segundo numero a sumar: ");

// lectura del dato con el metodo readLine y almacenamiento en variable de texto

String texto2 = br.readLine();

// conversion del contenido de la variable a numero entero

Page 8: Estructura Basica Programa Java

int num2 = Integer.parseInt(texto2);

// suma de los dos numeros

System.out.println("La suma de: " + num1 + " y " + num2 + " es " + (num1+num2));

}

}

PARA CALIFICAR (5): Hacer el código anterior para que también reste, multiplique y divida los dos números capturados por teclado. Llame la clase programa5.

ARREGLOS EN JAVA:

Son objetos, demostrando el compromiso de java con la orientación a objetos. A continuación veremos cómo inicializar un arreglo unidimensional y multidimensional, como se manipulan, el proceso de pasar arreglos a métodos y las técnicas elementales para ordenar y realizar búsquedas.

Programa para inicializar un arreglo de diez elementos:

// Creación de un arreglo.

import javax.swing.*; // paquete para trabajar con arreglos

public class InicArreglo

{

public static void main( String args[] )

{

int arreglo[]; // declarar la referencia a un arreglo

arreglo = new int[ 10 ]; // crear el arreglo

String salida = "Índice\tValor\n";

// anexar el valor de cada elemento del arreglo al String salida

Page 9: Estructura Basica Programa Java

for ( int contador = 0; contador < arreglo.length; contador++ )

salida += contador + "\ t " + arreglo[ contador ] + "\n";

JTextArea areaSalida = new JTextArea();

areaSalida.setText( salida );

JOptionPane.showMessageDialog( null, areaSalida,

"Inicialización de un arreglo de valores int",

JOptionPane.INFORMATION_MESSAGE );

System.exit( 0 );

} // fin de main

} // fin de la clase InicArreglo

En la línea 9 se declara el arreglo, una referencia capaz de referirse a un arreglo de elementos int.

En la línea 11 se crea el arreglo y se le asigna la referencia arreglo al objeto arreglo resultando. (arreglo = new int [10 ];

El programa crea su salida en el objeto String llamado salida, que se mostrara en un objeto JTextArea de un cuadro de dialogo de mensaje.

En la línea 13 se asignan a salida los encabezados de las columnas que mostrara el programa. La primera columna representa el índice para cada elemento del arreglo, y la segunda el valor de cada elemento del arreglo. “Indice\tValor\n”

En las líneas 16 y 17 se utiliza una instrucción for para anexar a salida el numero de índice (representado por contador)

Y el valor de cada elemento del arreglo *representado por arreglo(contador). Observe que el ciclo utiliza un contador basado en cero (recuerde, los valores de los índices empiezan en 0), de manera que el ciclo pueda utilizar todos los elementos del arreglo.

Además, en la condición del for se utiliza la expresión arreglo.length para determinar la longitud del arreglo. En este ejemplo la longitud del arreglo es 10, por lo que el ciclo continua ejecutándose siempre y cuando el valor de la variable de control contador sea menor que 10. Para un arreglo de 10 elementos los valores de los índices son del 0 al

Page 10: Estructura Basica Programa Java

9, por lo que al utilizar el operador menor se garantiza que el ciclo no intente acceder a un elemento más allá del final del arreglo.

USO DEL INICIALIZADOR DE ARREGLO

Como alternativa a la expresión para crear un arreglo, un programa puede crear un arreglo e inicializar sus elementos con un inicializador de arreglo, que es una lista de expresiones separadas por comas (la cual se conoce también como lista inicializadora. Por ejemplo, la declaración:

Int n[] = {10, 20, 30, 40, 50};

Crea un arreglo de cinco elementos con los valores de índices 0, 1, 2, 3, 4. Esta declaración no requiere de new para crear el objeto arreglo. Cuando el compilador encuentra la declaración de un arreglo que incluye una lista inicializadora, el compilador cuenta el numero de inicializadores en la lista para determinar el numero apropiado de elementos del arreglo.

En el código anterior se inicializa un arreglo de enteros con 10 valores (línea 11) y muestra el arreglo en formato JTextArea de un cuadro de dialogo de mensaje.

PARA CALIFICAR (6): Hacer un programa en Java que inicialice un arreglo con los nombres de los estudiantes de la clase en mención. Llame la clase programa6.

PARA CALIFICAR (7): Explique qué hace el siguiente arreglo, como sería la salida del mismo? Llame el codigo programa7.

// Programa de votación de los estudiantes.

import javax.swing.*;

public class VotacionEstudiantes {

public static void main( String args[] )

{

int respuestas[] = { 1, 2, 6, 4, 8, 5, 9, 7, 8, 10, 1, 6, 3, 8, 6,

10, 3, 8, 2, 7, 6, 5, 7, 6, 8, 6, 7, 5, 6, 6, 5, 6, 7, 5, 6,

Page 11: Estructura Basica Programa Java

4, 8, 6, 8, 10 };

int frecuencia[] = new int[ 11 ];

// para cada respuesta, seleccionar el elemento de respuestas y usar ese valor

// como índice en frecuencia para determinar el elemento a incrementar

for ( int respuesta = 0; respuesta < respuestas.length; respuesta++ )

++frecuencia[ respuestas[ respuesta ] ];

String salida = "Calificación\tFrecuencia\n";

// anexar frecuencias al String salida

for ( int calificacion = 1; calificacion < frecuencia.length; calificacion++ )

salida += calificacion + "\t" + frecuencia[ calificacion ] + "\n";

JTextArea areaSalida = new JTextArea();

areaSalida.setText( salida );

JOptionPane.showMessageDialog( null, areaSalida,

"Programa de votación de estudiantes", JOptionPane.INFORMATION_MESSAGE );

System.exit( 0 );

} // fin de main

} // fin de la clase VotacionEstudiantes

Page 12: Estructura Basica Programa Java

PARA CALIFICAR (8): Explique qué hace el siguiente arreglo, como sería la salida del mismo? Llame el codigo programa8.

// Tirar un dado de seis lados 6000 veces.

import javax.swing.*;

public class TirarDadoArr {

public static void main( String args[] )

{

int frecuencia[] = new int[ 7 ];

// tirar un dado 6000 veces; usar el valor del dado como índice de frecuencia

for ( int tiro = 1; tiro <= 6000; tiro++ )

++frecuencia[ 1 + ( int ) ( Math.random() * 6 ) ];

String salida = "Cara\tFrecuencia";

// anexar frecuencias al String salida

for ( int cara = 1; cara < frecuencia.length; cara++ )

salida += "\n" + cara + "\t" + frecuencia[ cara ];

JTextArea areaSalida = new JTextArea();

areaSalida.setText( salida );

JOptionPane.showMessageDialog( null, areaSalida,

"Tirar un dado 6000 veces", JOptionPane.INFORMATION_MESSAGE );

Page 13: Estructura Basica Programa Java

System.exit( 0 );

} // fin de main

} // fin de la clase TirarDado