guía de laboratorios en java - universidad...

39
Lic. Katya Maricela Pérez Martínez Guía de laboratorios en Java U.S.B. CARRERA INGENIERIA DE SISTEMAS

Upload: others

Post on 19-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

Lic. Katya Maricela Pérez Martínez

Guía de laboratorios en Java

U.S.B.CARRERA INGENIERIA DE

SISTEMAS

Page 2: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

GUIA DE LABORATORIO

Escribir los siguientes programas en java.

1. Escribir un programa para imprimir en pantalla “MI PRIMER PROGRAMA”

2. Escribir un programa para sumar dos números enteros desde el programa

3. Escribir un programa para verificar si un número dado por el ususario es par o impar

Lic. Katya Maricela Pérez Martínez Page 2

//primer programaclass ejer1{ public static void main (String args[]) { System.out.println ("mi primer programa"); }}

/programa para sumar dos numeros de tipo entero

class ejer2{ public static void main (String args[]) { int A, B,C; A = 3; B = 6; C = A + B; System.out.println (" la suma de " + A + "+" + B + " = " + C);

}}

//programa para verificar si un numero es par o imparimport java.io.*;

class ejer3{ public static void main (String args[]) throws IOException { String dato; int A;

InputStreamReader isr = new InputStreamReader (System.in); BufferedReader br = new BufferedReader (isr);

Page 3: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

4. Escribir un programa para calcular el volumen de una circunferencia, dado el radio por el usuario.

Lic. Katya Maricela Pérez Martínez Page 3

//PROGRAMA PARA CALCULAR EL VOLUMEN DE UNA CIRCUNFERENCIAimport java.io.*;import java.math.*;

class ejer4{ public static void main (String args[]) throws IOException { double r, v; String dato; final double pi = 3.1415;

InputStreamReader isr = new InputStreamReader (System.in); BufferedReader br = new BufferedReader (isr);

System.out.println ("Cual es el radio de la circunferencia ?....");

dato = br.readLine (); r = Float.valueOf (dato).floatValue (); v = pi * r * r; System.out.println ("el volumen de la circunferencia es " + v);

}}

System.out.println ("Ingrese un numero...."); dato = br.readLine (); A = Integer.parseInt (dato); if (A % 2 == 0) System.out.println ("Es un numero par "); else System.out.println ("Es un numero impar ");

}}

}

Page 4: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

5. Escribir un programa para leer e imprimir los datos de un empleado

Lic. Katya Maricela Pérez Martínez Page 4

//PROGRAMA PARA LEER LOS DATOS DE UN EMPLEADOimport java.io.*;class ejer5{ static int CI; static String nombre; static char sexo; static String cargo; static double sueldo;

static String dato;

public static void main (String args[]) throws IOException { InputStreamReader isr = new InputStreamReader (System.in); BufferedReader br = new BufferedReader (isr);

System.out.println ("Ingrese los datos del empleado....");

System.out.print ("CI............"); dato = br.readLine ();

CI = Integer.parseInt (dato);

System.out.print ("NOMBRE.........."); nombre = br.readLine ();

System.out.print ("SEXO............"); sexo = br.readLine ().charAt (0); System.out.print ("CARGO............"); cargo = br.readLine (); System.out.print ("SUELDO.........."); dato = br.readLine (); sueldo = Double.valueOf (dato).doubleValue ();

sueldo = Double.valueOf (dato).doubleValue (); System.out.println ("----- IMPRIMIENDO DATOS DEL EMPLEADO --------"); System.out.println ("CI:............" + CI); System.out.println ("NOMBRE:........" + nombre); System.out.println ("SEXO:.........." + sexo); System.out.println ("CARGO:........." + cargo); System.out.println ("SUELDO:........" + sueldo); }}

Page 5: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

EJERCICIOS PROPUESTOS LABORATORIO

1. Escribir un programa en Java que imprima por pantalla la frase “Hola, estoy programando en Java”.

2. Escribir un programa para imprimir en pantalla:¿??????????????????????????????????????????????????????

**************************************************??

*** ESTRUCTURAS DE DATOS ***??

*** ***??

*** CARRERA INGENIERIA DE SISTEMAS ***??

*** ***??

*** TU NOMBRE ***??

*** ***??

*** GESTION 2012 ***??

*** ***??

**************************************************??

¿??????????????????????????????????????????????????????

3. Escribir un programa en Java que imprima por pantalla la suma de 456 y 567.4. Escribir un programa en Java que imprima por pantalla la resta de 1234 y 532.5. Escribir un programa en Java que imprima por pantalla la multiplicación de 1234 y 532.6. Escribir un programa en Java que imprima por pantalla la división de 54 entre 677. Escribir un programa para verificar si un número dado por el usuario es positivo o negativo.8. Escribir un programa en Java que lea dos números del teclado y diga cual es el mayor y cual

el menor.9. Ingresar el nombre y la calificación de un estudiante e imprimir su nombre su nota y si está

APROBADO o REPROBADO.10. Leer un monto en Bolivianos y convertir a dólares.11. Hallar el volumen de una circunferencia utilizando la siguiente fórmula

v=23⋅π⋅r2

12. Leer los datos de un paciente (nombre, peso, estatura, temperatura y presion ) e imprimir los datos

Lic. Katya Maricela Pérez Martínez Page 5

Page 6: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

Java - Estruturas Repetitivas

OPERADORES ARITMETICOS BINARIOS EN JAVA

Operador Uso Descripción+ op1 + op2 Suma op1 y op2- op1 - op2 Resta op2 de op1* op1 * op2 Multiplica op1 por op2/ op1 / op2 Divide op1 por op2% op1 % op2 Calcula el resto de dividir op1 entre op2

Operaciones con "++" y "--"

Operador Uso Descripción++ op++ Incrementa op en 1; se evalúa al valor anterior al incremento++ ++op Incrementa op en 1; se evalúa al valor posterior al incremento-- op-- Decrementa op en 1; se evalúa al valor anterior al incremento-- --op Decrementa op en 1; se evalúa al valor posterior al incremento

OPERADORES RELACIONALES EN JAVA

Operador Uso Devuelve verdadero si> op1 > op2 op1 es mayor que op2

>= op1 >= op2 op1 es mayor o igual que op2< op1 < op2 op1 es menor que op2

<= op1 <= op2 op1 es menor o igual que op2== op1 == op2 op1 y op2 son iguales!= op1 != op2 op1 y op2 son distintos

OPERADORES LOGICOS

Operador Uso Devuelve verdadero si...&& op1 && op2 op1 y op2 son ambos verdaderos, condicionalmente evalúa op2& op1 & op2 op1 y op2 son ambos verdaderos, siempre evalúa op1 y op2|| op1 || op2 op1 o op2 son verdaderos, condicionalmente evalúa op2| op1 | op2 op1 o op2 son verdaderos, siempre evalúa op1 y op2! ! op op es falso

Lic. Katya Maricela Pérez Martínez Page 6

Page 7: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

GUIA DE LABORATORIO N°1 ESTRUCTURAS REPETITIVAS

1. Escribir un programa para sumar n términos de la siguiente sumatoria.

Ejemplo: para n=3

12(1)

+ 12(2)

+ 12(3)

=1112

Solucion.

n: sera la cantidad de terminos

sum: la suma de los n terminos, es de tipo doble ya que el resultado es real

Diseñamos el TAD

Implementamos a continuación el programa en java

Lic. Katya Maricela Pérez Martínez Page 7

Guia11

n : enterosum: doble

Sumatoria(N): doblemain()

“Desde el punto de vista de un programador, el usuario no es más que un periférico que teclea cuando se le envía una petición de lectura”

P. Williams

Page 8: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

2. Escribir un programa para sumar n términos de la siguiente sumatoria.

1 4 + 2 5 + 3 6 + 4 7 + 5 8 + 6 9 + ...

Ejemplo: para n = 4

Suma = 1 4 + 2 5 + 3 6 + 4 7

Suma= 4 + 10 + 18 + 28 = 60

Lic. Katya Maricela Pérez Martínez Page 8

//PROGRAMA PARA CALCULAR LA SUMATORIAimport java.io.*;class Guia11{ static int n; static double sum;

static double Sumatoria (int N) { double s = 0; int c;

for (c = 1 ; c <= N ; c++) { s = s + 1 / (2 * (double) c); System.out.print ("1/" + (2 * c) + " + "); } return s; }

public static void main (String args[]) throws IOException { String dato; InputStreamReader isr = new InputStreamReader (System.in); BufferedReader br = new BufferedReader (isr); System.out.println (" SUMATORIA DE 1/2+ 1/4 + 1/6+ 1/8 + ..."); System.out.println ("Cuantos terminos desea sumar...."); dato = br.readLine (); n = Integer.parseInt (dato); sum = Sumatoria (n); System.out.println ("\n\n La suma es " + sum); }}

Page 9: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

Solucion.

n: sera la cantidad de terminos

sum: la suma de los n terminos, es de tipo entero largo.

Diseñamos el TAD

Implementamos a continuación el programa en java

Lic. Katya Maricela Pérez Martínez Page 9

//PROGRAMA SUMATORIA IIimport java.io.*;class Guia12{ static int n; static long sum; //declaramos sum como entero largo

static long SumatoriaII (int N) { int i = 1, c = 4; long S = 0, T;

while (i <= N) { T = i * c; S = S + T; c++; i++; System.out.print (T + " + "); } return S; } }

Guia12

n : enterosum: entero largo

SumatoriaII(N): entero largomain()

Page 10: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

3. Escribir un programa para sumar n términos de la siguiente sumatoria.

∑i=1

n ii−1

i+2=

Ejemplo: para n=4

13+ 21

4+ 32

5+ 43

6=133

10

Solucion.

n: sera la cantidad de terminos

sum: la suma de los n terminos, es de tipo doble ya que el resultado es real

Diseñamos el TAD

Lic. Katya Maricela Pérez Martínez Page 10

public static void main (String args[]) throws IOException { String dato; InputStreamReader isr = new InputStreamReader (System.in); BufferedReader br = new BufferedReader (isr);

System.out.println (" SUMATORIA DE 1x4 + 2x5 + 3x6 + 4x7 + 5x8 ..."); System.out.println ("Cuantos terminos desea sumar...."); dato = br.readLine (); n = Integer.parseInt (dato); sum = SumatoriaII (n); System.out.println ("\n\n La suma es " + sum); }}

Guia13

n : enterosum: doble

SumatoriaIII(N): doblemain()

Page 11: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

Implementamos a continuación el programa en java

Lic. Katya Maricela Pérez Martínez Page 11

//PROGRAMA PARA CALCULAR LA SUMATORIA IIIimport java.io.*;class Guia13{ static int n; static double sum;

static double SumatoriaIII (int N) { double s = 0; long c, num;

for (c = 1 ; c <= N ; c++) { num = 1; for (int i = 1 ; i <= c - 1 ; i++) num = num * c; s = s + (double) num / (double)((c + 2)); System.out.print (num + "/" + (c + 2) + " + "); } return s; }

public static void main (String args[]) throws IOException { String dato; InputStreamReader isr = new InputStreamReader (System.in); BufferedReader br = new BufferedReader (isr); System.out.println (" SUMATORIA DE 1/3+ 2^1/4 + 3^2/5+ 4^3/10 + ..."); System.out.println ("Cuantos terminos desea sumar...."); dato = br.readLine (); n = Integer.parseInt (dato); sum = SumatoriaIII (n); System.out.println ("\n\n La suma es " + sum); }}

Page 12: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

EJERCICIOS PROPUESTOS

1. Escribir un programa para calcular la suma de los n primeros términos de:1 6 + 2 7 + 3 8 + 4 9 +5 ∙10+¿ ...

Ejemplo: para n=31 ∙6+2∙ 7+3 ∙ 8=44

2. Hallar el valor de la siguiente suma para n términos:

  a) 2 3 + 3 4 + 4 5 + 5 6 + 6 7 + ...

b) 3 + 5 + 7 + 9 ...

c) 1 2 + 4 3 + 9 4 + 16 5 + 25 6 + ...

d) 1 + 1/5 + 1/25 + 1/125 + 1/625 + ………

e) 1/2 + 5/4 + 2 + 11/4 + 7/2 + 17/4 + 20/4 +… + 19/2 la razón es ¾

f) 22 + 42 + 62 + 82 +…

g)1+ 2

3+ 1

9+ 4

27

h)

12+ 2

3+ 3

4+ 4

5+ 5

6

i)−1

2+ 1

3−1

4+ 1

5−1

6+ 1

7

j)

13+ 1

6+ 1

9+ 1

12

3. Escribir un programa para calcular las siguientes sumatorias para n términos, en diferentes funciones:

a)∑i=1

n 1i b)

∑i=1

n

(2i−1)=c)

∑i=1

n

i2=

Lic. Katya Maricela Pérez Martínez Page 12

Page 13: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

d)

∑i=1

n

(−1)i⋅i= e)

∑i=1

n 2 ii !

=

GUIA DE LABORATORIO N°2 VECTORES

1. Escribir un programa para almacenar e imprimir un vector cuyos elementos son: 4,8,9,14 y 22.

Solucion.

T[5]: sera el vector de elementos enteros cuyo tamaño es 5

Diseñamos el TAD

Implementando en Java

Lic. Katya Maricela Pérez Martínez Page 13

“Codifica siempre como si la persona que finalmente mantendrá tu código fuera un psicópata violento que sabe dónde vives”

Martin Golding

Guia21

T[5]: entero

main()

//PROGRAMA PARA ALMACENAR LOS ELEMENTOS 4,8,9, 14, 22import java.io.*;class Guia21{ static int T[]; //declaramos el vector T public static void main(String arg[]) { int i; T=new int[6]; //creamos el vector para 6 elementos T[1]=4; T[2]=8; T[3]=9; T[4]=14; T[5]=22;

Page 14: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

2. Escribir un programa para almacenar e imprimir los siete días de la semana en un vector

Solucion.

dias[7]: sera el vector de elementos de tipo cadena. Tamaño del vector 7.

Diseñamos el TAD

Implementando en Java

Lic. Katya Maricela Pérez Martínez Page 14

System.out.println("Imprimiendo el vector:"); i=1; while (i<=5) { System.out.println(T[i]); i=i+1; } }}

Guia22

dias[7]: cadena

main()

//programa para imprimir los dias de la semanaimport java.io.*;class Guia22{ //declaramos e inicializamos el vector que sera de tipo cadena static String dias[] = {"Lunes", "Martes", "Miercoles", "jueves", "viernes", "sabado", "domingo"};

public static void main (String arg[]) { int i; System.out.println ("DIAS DE LA SEMANA"); for (i = 0 ; i <= 6 ; i++) System.out.println (dias [i]);

Page 15: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

3. Escribir un programa para leer las notas de N estudiantes (sus nombres y sus notas)en dos vectores, luego imprimir estos datos y hallar el promedio del curso

Solucion.

Si N = 4

El vector de nombres sera:

Luis Pedro Maria Gonzalo1 2 3 4

El vector de notas sera:

77 57 90 681 2 3 4

Utilizaremos dos vectores como se vio en las graficas anteriores:

NomE[ ]: Vector que Almacena los nombres de los estudiantes y sera de tipo cadena

Notas[ ]: Vector que almacena las notas de dichos estudiantes y sera de tipo entero

N: sera el tamaño del vector, la cantidad de estudiantes.

Diseñamos el TAD

Lic. Katya Maricela Pérez Martínez Page 15

//programa para imprimir los dias de la semanaimport java.io.*;class Guia22{ //declaramos e inicializamos el vector que sera de tipo cadena static String dias[] = {"Lunes", "Martes", "Miercoles", "jueves", "viernes", "sabado", "domingo"};

public static void main (String arg[]) { int i; System.out.println ("DIAS DE LA SEMANA"); for (i = 0 ; i <= 6 ; i++) System.out.println (dias [i]);

Guia23

N: enteroNomE[N]: cadenaNotas[N]: entero

LeerDatos()ImprimirDatos()Promedio(): realmain()

NomE =

Notas =

Page 16: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

Implementando en Java

Lic. Katya Maricela Pérez Martínez Page 16

//programa para leer las notas de N estudiantes (sus nombres y sus notas)//en dos vectores, luego imprimir estos datos y hallar el promedio del curso

import java.io.*;

class Guia23{ static String NomE[]; static int Notas[]; static int N;

static void LeerDatos () { int i;

System.out.print ("Ingrese la cantidad de estudiantes...."); N = Lectura.Entero ();

NomE = new String [N + 1]; Notas = new int [N + 1];

for (i = 1 ; i <= N ; i++) { System.out.print ("Nombre del estudiante--->"); NomE [i] = Lectura.Cadena (); System.out.print ("Ingrese su nota --->"); Notas [i] = Lectura.Entero ();

}

}

static void ImprimirDatos () { System.out.println (" ESTUDIANTE NOTA"); for (int i = 1 ; i <= N ; i++) { System.out.println (" " + NomE [i] + "........." + Notas [i]); } }

Page 17: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

4. Escribir un programa para registrar en un vector los carnets de los estudiantes que aprobaron Calculo I y en otro vector registrar los carnets de los estudiantes que aprobaron Etica, y en un tercer vector los carnets de los que aprobaron ambas materias.

Solución:

vCalculo[] : vector que tiene los carnets de los estudiantes que aprobaron Calculo

vEtica[]: vector que tiene los carnets de los estudiantes que aprobaron Etica

Lic. Katya Maricela Pérez Martínez Page 17

//programa para leer las notas de N estudiantes (sus nombres y sus notas)//en dos vectores, luego imprimir estos datos y hallar el promedio del curso

import java.io.*;

class Guia23{ static String NomE[]; static int Notas[]; static int N;

static void LeerDatos () { int i;

System.out.print ("Ingrese la cantidad de estudiantes...."); N = Lectura.Entero ();

NomE = new String [N + 1]; Notas = new int [N + 1];

for (i = 1 ; i <= N ; i++) { System.out.print ("Nombre del estudiante--->"); NomE [i] = Lectura.Cadena (); System.out.print ("Ingrese su nota --->"); Notas [i] = Lectura.Entero ();

}

}

static void ImprimirDatos () { System.out.println (" ESTUDIANTE NOTA"); for (int i = 1 ; i <= N ; i++) { System.out.println (" " + NomE [i] + "........." + Notas [i]); } }

static float promedio () { float prom = 0; for (int i = 1 ; i <= N ; i++) prom = prom + Notas [i]; prom = prom / N; return prom; }

public static void main (String arg[]) { float p; LeerDatos (); ImprimirDatos (); p=promedio(); System.out.println("El promedio de las notas es....."+p); }}

Page 18: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

vComun[]: vector que tiene los carnets de los que aprobaron ambas materias

Diseñamos el TAD

Lic. Katya Maricela Pérez Martínez Page 18

/*Se deben crear dos vectores. En uno se colocarán los carnet de los estudiantes que aprobaron Cálculo 1, en otro los que aprobaron Etica. Crear un tercer arreglo que contenga los carnet de los estudiantes que aprobaron ambas materias.. */

class Guia24{

static int [] vCalculo, vEtica, vComun;

public static void main (String arg[]) { int nCal, nEt, comunes;

System.out.print ("Cuantos alumnos aprobaron CALCULO I?... "); nCal = Lectura.Entero (); System.out.print ("Cuantos alumnos aprobaron ETICA ?... "); nEt = Lectura.Entero ();

vCalculo = new int [nCal]; vEtica = new int [nEt];

System.out.println ("\n Carnets de los alumnos que aprobaron CALCULO I \n "); llenarVector (vCalculo, nCal); System.out.println ("\n Carnets de los alumnos que aprobaron ETICA \n "); llenarVector (vEtica, nEt); comunes = (cuantosComunes (nCal, nEt)); vComun = new int [comunes]; llenarNuevo (nCal, nEt); System.out.println ("\nCarnets de los alumnos que aprobaron ETICA Y CALCULO I \n ");

Guia24

vCalculo[]: enterovEtica[N]: enterovComun[N]: entero

llenarNuevo(d1,d2)cuantosComunes(d,d2):enterobuscaNum(n,d):booleanmostrarVector(v,x)main()

Page 19: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

Lic. Katya Maricela Pérez Martínez Page 19

/*Se deben crear dos vectores. En uno se colocarán los carnet de los estudiantes que aprobaron Cálculo 1, en otro los que aprobaron Etica. Crear un tercer arreglo que contenga los carnet de los estudiantes que aprobaron ambas materias.. */

class Guia24{

static int [] vCalculo, vEtica, vComun;

public static void main (String arg[]) { int nCal, nEt, comunes;

System.out.print ("Cuantos alumnos aprobaron CALCULO I?... "); nCal = Lectura.Entero (); System.out.print ("Cuantos alumnos aprobaron ETICA ?... "); nEt = Lectura.Entero ();

vCalculo = new int [nCal]; vEtica = new int [nEt];

System.out.println ("\n Carnets de los alumnos que aprobaron CALCULO I \n "); llenarVector (vCalculo, nCal); System.out.println ("\n Carnets de los alumnos que aprobaron ETICA \n "); llenarVector (vEtica, nEt); comunes = (cuantosComunes (nCal, nEt)); vComun = new int [comunes]; llenarNuevo (nCal, nEt); System.out.println ("\nCarnets de los alumnos que aprobaron ETICA Y CALCULO I \n ");

static void llenarNuevo (int d, int d2) { int pos = 0; for (int i = 0 ; i < d ; i++) { if (buscaNum (vCalculo [i], d2) == true) { vComun [pos] = vCalculo [i]; pos++; } } }

/* ME DICE CUANTOS CARNETS ESTAN EN AMBOS VECTORES. TIENE 2 PARAMETROS: d: ES LA DIMENSION DE vCalculo, d2: DIMENSION DE vEtica. BUSCA CADA ELEMENTO DE vCalculo en vEtica */

static int cuantosComunes (int d, int d2) { int acum = 0; for (int i = 0 ; i < d ; i++) { if (buscaNum (vCalculo [i], d2) == true) acum++; } return acum; }

/* ESTE METODO INDICA SI UN NUMERO n ESTA EN EL VECTOR vEtica. ADEMAS DE n, TIENE UN PARAMETRO d, QUE ES LA DIMENSION DE vEtica, NECESARIA PARA CONTROLAR EL FOR */

static boolean buscaNum (int n, int d) { for (int i = 0 ; i < d ; i++) { if (vEtica [i] == n) return true; } return false; }

Page 20: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

EJERCICIOS PROPUESTOS

Lic. Katya Maricela Pérez Martínez Page 20

static void llenarNuevo (int d, int d2) { int pos = 0; for (int i = 0 ; i < d ; i++) { if (buscaNum (vCalculo [i], d2) == true) { vComun [pos] = vCalculo [i]; pos++; } } }

/* ME DICE CUANTOS CARNETS ESTAN EN AMBOS VECTORES. TIENE 2 PARAMETROS: d: ES LA DIMENSION DE vCalculo, d2: DIMENSION DE vEtica. BUSCA CADA ELEMENTO DE vCalculo en vEtica */

static int cuantosComunes (int d, int d2) { int acum = 0; for (int i = 0 ; i < d ; i++) { if (buscaNum (vCalculo [i], d2) == true) acum++; } return acum; }

/* ESTE METODO INDICA SI UN NUMERO n ESTA EN EL VECTOR vEtica. ADEMAS DE n, TIENE UN PARAMETRO d, QUE ES LA DIMENSION DE vEtica, NECESARIA PARA CONTROLAR EL FOR */

static boolean buscaNum (int n, int d) { for (int i = 0 ; i < d ; i++) { if (vEtica [i] == n) return true; } return false; }

/* METODO QUE ASIGNA VALORES A UN VECTOR DE DIMENSION D */

static void llenarVector (int v[], int d)

{

for (int i = 0 ; i < d ; i++)

{

System.out.print ("Introduzca el CI del alumno " + i + " ....");

v [i] = Lectura.Entero ();

}

}

/* ESTE METODO MUESTRA LOS ELEMENTOS DE UN VECTOR CUALQUIERA CON DIMENSION CUALQUIERA, EL VECTOR ES EL PARAMETRO V Y LA DIMENSION DEL VECTOR X , SE PENSÓ ASI PARA PODER UTILIZARLO EN EL VECTOR RESULTADO */ static void mostrarVector (int v[], int x) { for (int i = 0 ; i < x ; i++) { System.out.print (v [i] + " ");

} }}

Page 21: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

1. Escribir un programa para imprimir los signos del zoodiaco que deberán estar almacenados en un vector. Además deberá mostrar desde que fecha y mes comienza y hasta que fecha y mes termina un determinado signo

2. Se tiene dos vectores de tamaño N, uno de ellos con las estaturas de los estudiantes y el otro con los nombres de los estudiantes, se pide hallar los estudiantes cuya estatura sea menor a X. X dado por el usuario. Los vectores deben ser llenados por el usuario.

3. Insertar un nuevo dato Y, después del elemento X en un vector que tiene N elementos.

4. Eliminar el elemento X del vector.5. Se tiene dos vectores, un vector que tiene las edades de N estudiantes y en

el segundo vector está la frecuencia de estudiantes que están con esa edad, se pide hallar la frecuencia relativa de cada edad.Ej. Sean los dos vectores E de edades de N=21 estudiantes y el vector F es el vector de frecuencia absoluta.

18 19 20 21 22 23 24 1 2 3 4 5 6 7

3 5 4 2 4 2 11 2 3 4 5 6 7

6. Leer las temperaturas de N días en un vector y obtener el promedio de las temperaturas e imprimir los días cuya temperatura es menor a X, X dado por el usuario.

Lic. Katya Maricela Pérez Martínez Page 21

E =

F =

Page 22: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

GUIA DE LABORATORIO N°3 cadenas

• Las cadenas se utilizan, en java, principalmente para el manejo de entrada-salida, por ejemplo:

1. Mostrar mensajes en pantalla.

2. Introducción de texto por parte del usuario.

3. Manipular archivos. (Los nombres de archivos y carpetas son cadenas)

MANIPULACION DE CADENAS

• Las constantes de cadena van entre comillas dobles, a diferencia de las constantes de carácter que van entre apostrofes. Por ejemplo: “Esta es constante de cadena”

• Este tipo de dato no es un tipo primitivo, como int, double, etc., sino que es UNA CLASE.

• Esta clase esta en java.lang.String que no necesita ser importada.

• La sintaxis de declaración y declaración e inicialización es:

String nombreDeCadena = new String(); // esta es la forma completa de declaración.

nombreDeCadena = ”Cadena inicial”; // inicialización

String nombreDeCadena = new String("Cadena inicial"); // inicialización y declaración completa.

• La declaración anterior es debido a que el tipo String es una clase y la variable es la instanciación de esa clase, esto es, un objeto de tipo String.

• También se puede declarar y declarar e inicializar como sigue:

String nomCadena;

Lic. Katya Maricela Pérez Martínez Page 22

“Primero resuelve el problema. Entonces, escribe el código”

John Johnson

Page 23: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

String nomCadena = "Cadena inicial";

• Un ejemplo de uso de las cadenas o constantes de cadena es:

System.out.println(“La potencia de “+base+” elevado a la “+ exp+ “ es “+ resultado);

• Donde el símbolo + es llamado el operador de concatenación.

LOS METODOS DE LA CLASE STRING

• Las cadenas no se pueden comparar con = = .

• Los caracteres en las cadenas tienen un número de posición que inicia en CERO y termina en n-1, donde n es la longitud de la cadena.

• Los siguientes son algunos de los métodos más comunes en aplicaciones java y su sintaxis.

Considerar cadena1 y cadena2 como variables (objetos) de tipo String.

• cadena1.equals(cadena2) regresa true si cadena1 y cadena2 son iguales, false de otra manera.

• cadena1.equalsIgnoreCase(cadena2) regresa true si las cadenas son iguales ignorando las mayúsculas, false de otra manera.

• cadena1.compareTo(cadena2) regresa un valor entero 0 si son iguales, un valor menor que 0 si cadena1 es menor lexicográficamente que cadena2 y un valor mayor que 0 si cadena1 es mayor lexicográficamente que cadena2.

• cadena1.replace(char1,char2) regresa otra cadena remplazando char1 por char2.

Por ejemplo:

cadena2 =”Cochabamba”.replace( 'a','I'); cadena2 tendrá el valor de CochIbImbI

• cadena1.toLowerCase(); regresa otra cadena convirtiendo todas las letras a minúsculas.

• cadena1.toUpperCase(); regresa otra cadena convirtiendo todas las letras a mayúsculas.

• cadena1.trim(); regresa otra cadena sin espacios en blanco, caracteres de nueva línea y tabuladores del inicio y del final de la cadena original.

• cadena1.length(); regresa el numero, entero, de caracteres en la cadena.

• cadena1.substring(indiceInicial, indiceFinal); regresa una subcadena que empieza en indiceInicial y termina en indiceFinal-1.

• cadena1.charAt(i); regresa el i-ésimo carácter de la cadena.

Lic. Katya Maricela Pérez Martínez Page 23

Page 24: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

• cadena1.indexOf(subcadena,indiceInicial); regresa un entero que indica la posición donde inicia la subcadena en la cadena. Si no existe la subcadena regresa -1.

• cadena1.endsWith(subcadena); regresa true si cadena1 termina con subcadena, false de otra manera.

• cadena1.concat(cadena2); equivalente a cadena1 + cadena2 .

• String.valueOf(arregloDeCaracteres); regresa la representación String del arreglo de caracteres. Esta conversión también puede ser realizada usando el constructor de la clase String. String cadena1= new String(arregloDeCaracteres);

• cadena1.toCharArray(); regresa el arreglo de caracteres correspondiente a cadena1.

CONVERSIÓN DE TIPOS PRIMITIVOS NUMÉRICOS A CADENA

Integer.toString(valorEntero); regresa el valor convertido en cadena.

Double.toString(valorDoble); regresa el valor convertido en cadena.

De manera semejante se convierten los otros tipos primitivos a cadena.

Integer.parseInt(“cadenaNumerica”); regresa el valor numérico entero correspondiente al valor representado en la cadena.

Double.parseDouble(“cadenaNumerica”); regresa el valor numérico doble correspondiente al valor representado en la cadena.

De manera semejante se convierten los otros tipos primitivos de cadena a valores numéricos.

Integer.parseInt(“cadenaNumerica”, base); regresa el valor entero de la cadena representado en la base numérica base.

Integer.toBinaryString(numeroEntero); regresa un valor binario en cadena.

Integer.toHexString(numeroEntero); regresa un valor hexadecimal en cadena.

Integer.toOctalString(numeroEntero); regresa un valor octal en cadena

Lic. Katya Maricela Pérez Martínez Page 24

Page 25: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

EJERCICIOS RESUELTOS

1. Contar el numero de palabras que hay en una cadena, las palabras están separadas por un espacio en blanco.

Diseñamos el TAD

2.3.

Lic. Katya Maricela Pérez Martínez Page 25

/** * Este programa pretende contar el numero de palabras que hay en una cadena * las palabras estan separadas por un espacio en blanco * **/public class Guia31{

public static void main (String args[]) { String cad = new String (""); char blanco = ' '; int cuantos = 0;

System.out.print ("deme la cadena ");

cad = Lectura.Cadena (); cuantos = contar (cad);

System.out.println ("Habia " + cuantos + "palabras");

}

Guia31

contar(): enteromain()

Page 26: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

2. Escribir un programa para reemplazar todas las ocurrencias de un carácter c en la cadena cad por un asterisco. El resultado queda en otra cadena. No usar la función replace.

Diseñamos el TAD

3.4.

Lic. Katya Maricela Pérez Martínez Page 26

public static int contar (String st) { char a; int n = 1; // para contar la primera palabra int i = st.indexOf (" "); //para encontrar la posicion del primer blanco

while (i > 0) { // mientras haya espacios en blanco n++; // sumo 1 al contador st = st.substring (i + 1); // recorto la cadena para quitar una palabra i = st.indexOf (" "); // encuentro el siguiente blanco }

return n++; // para contar la ultima palabra }}

Guia32

reemplazar(): Cadenamain()

/** * Este programa pretende reemplazar todas las ocurrencias de un caracter c * en la cadena cad por un asterisco. El resultado queda en otra cadena * No puede usar la funcion replace **/public class Guia32{

public static void main (String args[]) { String cad = new String (""); // cadena a revisar char c; // caracter a buscar String nueva = new String (""); System.out.print ("deme la cadena….. "); cad = Lectura.Cadena ();

Page 27: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

3. programa que pretende suprimir todos los espacios en blanco de una cadena cad. El resultado queda en otra cadena.

Diseñamos el TAD

Lic. Katya Maricela Pérez Martínez Page 27

System.out.print ("Deme el caracter …."); c = Lectura.Caracter (); nueva = reemplazar (cad, c); System.out.println ("la cadena nueva es…. " + nueva);

}

public static String reemplazar (String st, char letra) { char a; String otra = new String (""); // nueva cadena a formar for (int i = 0 ; i < st.length () ; i++) { // recorremos la cadena caracter a caracter a = st.charAt (i); // tomamos un caracter if (a == letra) { // si el caracter es el buscado otra = otra + '*'; // colocamos un asterisco en al cadena nueva } else { otra = otra + a; // de lo contrario colocamos el mismo caracter que tenia } } return otra; // devolvemos la nueva cadena }}

Guia33

suprime(): Cadenamain()

Page 28: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

4. Programa que sirve para contar cuántas vocales tiene una palabra o frase.

Diseñamos el TAD

Lic. Katya Maricela Pérez Martínez Page 28

/** * Este programa pretende suprimir todos los espacios en blanco de una * cadena cad El resultado queda en otra cadena **/public class Guia33{

public static void main (String args[]) { String cad = new String (""); char blanco = ' '; String nueva = new String (""); System.out.print ("dame la cadena …."); cad = Lectura.Cadena (); nueva = suprime (cad, blanco); System.out.println ("la cadena nueva es …" + nueva);

}

public static String suprime (String st, char espacio) { char a; String otra = new String (""); for (int i = 0 ; i < st.length () ; i++) {

a = st.charAt (i);

if (a != espacio)

{

otra = otra + a;

}

}

return otra;

}

}

// Programa que sirve para contar cuántas vocales tiene una palabra o frase.

class Guia34{ public static void main (String args[]) { String palabra;

Guia34

Contar()main()

Page 29: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

5. Escribir una aplicación para generar un código a partir del nombre, paterno, materno, dia, mes y anio de los datos del usuario.

Diseñamos el TAD

Lic. Katya Maricela Pérez Martínez Page 29

// Programa que sirve para contar cuántas vocales tiene una palabra o frase.

class Guia34{ public static void main (String args[]) { String palabra;

// PROGRAMA PARA CODIFICAR UN NOMBRE CON LAS INICIALES DEL nOMBRE+PATERNO+MATERNO// +DIA+MES+ANIO DE NACIMIENTOimport java.lang.String;public class Guia35{ static String Nombre, paterno, materno; static int dia, mes, anio;

Guia35Nombre: cadenaPaterno: cadenaMaterno:cadenadia: enteromes: enteroanio:entero

Generar(): cadenamain()

Page 30: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

Lic. Katya Maricela Pérez Martínez Page 30

// PROGRAMA PARA CODIFICAR UN NOMBRE CON LAS INICIALES DEL nOMBRE+PATERNO+MATERNO// +DIA+MES+ANIO DE NACIMIENTOimport java.lang.String;public class Guia35{ static String Nombre, paterno, materno; static int dia, mes, anio;

Page 31: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

EJERCICIOS PROPUESTOS1. Crear una clase donde dado un string que representa un nombre en

mayúsculas o minúsculas devolver un string formado por las iniciales en mayúsculas seguidas de un punto.

2. Crear una clase donde dado un string de palabras sustituir cada ocurrencia de un caracter dado por otro caracter. (por ejemplo: todas las s por *)

3. Escriba una clase que permita eliminar un substring substr de un string str, si no está devuelve el mismo string sin alterar.

4. Escriba una clase que reciba como parámetro el nombre de una persona, con el apellido seguido de una coma, un espacio y después el nombre de pila. El procedimiento debe imprimir el nombre de pila de la persona seguido de su apellido.

Implementación de la CLASE LECTURA, para la lectura de diferentes tipos de datos en java.

LECTURA.JAVA

Lic. Katya Maricela Pérez Martínez Page 31

do { System.out.print ("Mes de nacimiento..."); mes = Lectura.Entero (); } while (mes > 13 || mes < 1); do { System.out.print ("Anio de nacimiento Ej 97..."); anio = Lectura.Entero (); Micodigo = Generar (Nombre, paterno, materno, dia, mes, anio); } while (anio > 99); System.out.print (" el codigo generado es ...." + Micodigo); }}

Page 32: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

Lic. Katya Maricela Pérez Martínez Page 32

import java.io.*;import java.io.IOException;

public class Lectura{ public static String Cadena() //operacion que lee cadenas { String CadNum=""; try { BufferedReader Teclado = new BufferedReader(new InputStreamReader(System.in)); CadNum = Teclado.readLine(); } catch(IOException e) { System.out.println("Error: "+e.getMessage()); } return(CadNum); }

public static short EnteroCorto() //operacion que lee un entero corto { try { return(Short.parseShort(Cadena())); }

catch(NumberFormatException e) { return(Short.MIN_VALUE); } }

public static long EnteroLargo() //operacion que lee un entero largo { try { return(Long.parseLong((Cadena()))); } catch(NumberFormatException e) { return(Long.MIN_VALUE);

Page 33: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

Lic. Katya Maricela Pérez Martínez Page 33

public static long EnteroLargo() //operacion que lee un entero largo { try { return(Long.parseLong((Cadena()))); } catch(NumberFormatException e) { return(Long.MIN_VALUE);

public static int Entero() //operacion que lee un entero { try { return(Integer.parseInt(Cadena())); }

catch(NumberFormatException e) {

Page 34: Guía de laboratorios en Java - Universidad …virtual.usalesiana.edu.bo/web/conte/practica/12012/17… · Web viewGUIA DE LABORATORIO Escribir los siguientes programas en java. Escribir

[Guía de laboratorios en Java] PROGRAMACION II

Lic. Katya Maricela Pérez Martínez Page 34

public static int Entero() //operacion que lee un entero { try { return(Integer.parseInt(Cadena())); }

catch(NumberFormatException e) {