Download System.out.println ("La palabra tiene " + cont + " vocales")
Document related concepts
no text concepts found
Transcript
U.S.B. CARRERA INGENIERIA DE SISTEMAS PROGRAMACION II Guía de laboratorios en Java Lic. Katya Maricela Pérez Martínez [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” //primer programa class ejer1 { public static void main (String args[]) { System.out.println ("mi primer programa"); } } 2. Escribir un programa para sumar dos números enteros desde el 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); } } 3. Escribir un programa para verificar si un número dado por el ususario es par o impar //programa para verificar si un numero es par o impar import 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); Lic. Katya Maricela Pérez Martínez Page 2 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II 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 "); }} } 4. Escribir un programa para calcular el volumen de una circunferencia, dado el radio por el usuario. //PROGRAMA PARA CALCULAR EL VOLUMEN DE UNA CIRCUNFERENCIA import 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); } } Lic. Katya Maricela Pérez Martínez Page 3 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II 5. Escribir un programa para leer e imprimir los datos de un empleado //PROGRAMA PARA LEER LOS DATOS DE UN EMPLEADO import 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 System.out.println System.out.println System.out.println System.out.println ("CI:............" ("NOMBRE:........" ("SEXO:.........." ("CARGO:........." ("SUELDO:........" + + + + + CI); nombre); sexo); cargo); sueldo); } } Lic. Katya Maricela Pérez Martínez Page 4 [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. 4. 5. 6. 7. 8. 9. 10. 11. Escribir un programa en Java que imprima por pantalla la suma de 456 y 567. Escribir un programa en Java que imprima por pantalla la resta de 1234 y 532. Escribir un programa en Java que imprima por pantalla la multiplicación de 1234 y 532. Escribir un programa en Java que imprima por pantalla la división de 54 entre 67 Escribir un programa para verificar si un número dado por el usuario es positivo o negativo. Escribir un programa en Java que lea dos números del teclado y diga cual es el mayor y cual el menor. Ingresar el nombre y la calificación de un estudiante e imprimir su nombre su nota y si está APROBADO o REPROBADO. Leer un monto en Bolivianos y convertir a dólares. Hallar el volumen de una circunferencia utilizando la siguiente fórmula v 12. 2 r 2 3 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 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II Java - Estruturas Repetitivas OPERADORES ARITMETICOS BINARIOS EN JAVA Operador + * / % Uso op1 + op2 op1 - op2 op1 * op2 op1 / op2 op1 % op2 Descripción Suma op1 y op2 Resta op2 de op1 Multiplica op1 por op2 Divide op1 por op2 Calcula el resto de dividir op1 entre op2 Operaciones con "++" y "--" Operador ++ ++ --- Uso op++ ++op op---op Descripción Incrementa op en 1; se evalúa al valor anterior al incremento Incrementa op en 1; se evalúa al valor posterior al incremento Decrementa op en 1; se evalúa al valor anterior al incremento Decrementa op en 1; se evalúa al valor posterior al incremento OPERADORES RELACIONALES EN JAVA Operador > >= < <= == != Uso op1 > op2 op1 >= op2 op1 < op2 op1 <= op2 op1 == op2 op1 != op2 Devuelve verdadero si op1 es mayor que op2 op1 es mayor o igual que op2 op1 es menor que op2 op1 es menor o igual que op2 op1 y op2 son iguales op1 y op2 son distintos OPERADORES LOGICOS Operador && & || | ! Uso op1 && op2 op1 & op2 op1 || op2 op1 | op2 ! op Lic. Katya Maricela Pérez Martínez Devuelve verdadero si... op1 y op2 son ambos verdaderos, condicionalmente evalúa op2 op1 y op2 son ambos verdaderos, siempre evalúa op1 y op2 op1 o op2 son verdaderos, condicionalmente evalúa op2 op1 o op2 son verdaderos, siempre evalúa op1 y op2 op es falso Page 6 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II GUIA DE LABORATORIO N°1 ESTRUCTURAS REPETITIVAS “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 1. Escribir un programa para sumar n términos de la siguiente sumatoria. Ejemplo: para n=3 1 1 1 11 + + = 2(1) 2(2) 2(3) 12 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 Guia11 n : entero sum: doble Sumatoria(N): doble main() Implementamos a continuación el programa en java Lic. Katya Maricela Pérez Martínez Page 7 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II //PROGRAMA PARA CALCULAR LA SUMATORIA import 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); } } 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 Lic. Katya Maricela Pérez Martínez + 10 + 18 + 28 = 60 Page 8 [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 Guia12 n : entero sum: entero largo SumatoriaII(N): entero largo main() Implementamos a continuación el programa en java //PROGRAMA SUMATORIA II import 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; } } Lic. Katya Maricela Pérez Martínez Page 9 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II 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); } } 3. Escribir un programa para sumar n términos de la siguiente sumatoria. i i 1 i 1 i 2 n Ejemplo: para n=4 𝟏 𝟐𝟏 + 𝟑 𝟒 + 𝟑𝟐 𝟓 + 𝟒𝟑 𝟔 = 𝟏𝟑𝟑 𝟏𝟎 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 Guia13 n : entero sum: doble SumatoriaIII(N): doble main() Lic. Katya Maricela Pérez Martínez Page 10 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II Implementamos a continuación el programa en java //PROGRAMA PARA CALCULAR LA SUMATORIA III import 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); } } Lic. Katya Maricela Pérez Martínez Page 11 [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=3 1 ∙ 6 + 2 ∙ 7 + 3 ∙ 8 = 44 Hallar el valor de la siguiente suma para n términos: 2. 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 +… 2 3 1 9 g) 1 h) i) j) 4 27 1 2 3 4 5 2 3 4 5 6 1 1 1 1 1 1 2 3 4 5 6 7 1 1 1 1 3 6 9 12 3. Escribir un programa para calcular las siguientes sumatorias para n términos, en diferentes funciones: n a) 1 i 1 i n b) i 1 n d) (1) i i i 1 (2i 1) n e) n c) i 2 i 1 2i i! i 1 Lic. Katya Maricela Pérez Martínez Page 12 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II GUIA DE LABORATORIO N°2 VECTORES “Codifica siempre como si la persona que finalmente mantendrá tu código fuera un psicópata violento que sabe dónde vives” Martin Golding 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 Guia21 T[5]: entero main() Implementando en Java //PROGRAMA PARA ALMACENAR LOS ELEMENTOS 4,8,9, 14, 22 import 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; Lic. Katya Maricela Pérez Martínez Page 13 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II System.out.println("Imprimiendo el vector:"); i=1; while (i<=5) { System.out.println(T[i]); i=i+1; } } } 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 Guia22 dias[7]: cadena main() Implementando en Java //programa para imprimir los dias de la semana import 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]); } } Lic. Katya Maricela Pérez Martínez Page 14 [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: NomE = Luis 1 Pedro 2 Maria 3 Gonzalo 4 77 1 57 2 90 3 68 4 El vector de notas sera: Notas = 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 Guia23 N: entero NomE[N]: cadena Notas[N]: entero LeerDatos() ImprimirDatos() Promedio(): real main() main() Lic. Katya Maricela Pérez Martínez Page 15 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II Implementando en Java //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 () { Lic. Katya Maricela Pérez Martínez float prom = 0; for (int i = 1 ; i <= N ; i++) prom = prom + Notas [i]; prom = prom / N; Page 16 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II 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); } } 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 vComun[]: vector que tiene los carnets de los que aprobaron ambas materias Lic. Katya Maricela Pérez Martínez Page 17 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II Diseñamos el TAD Guia24 vCalculo[]: entero vEtica[N]: entero vComun[N]: entero llenarNuevo(d1,d2) cuantosComunes(d,d2):entero buscaNum(n,d):boolean mostrarVector(v,x) main() /*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 main() 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 "); mostrarVector (vComun, comunes); } Lic. Katya Maricela Pérez Martínez Page 18 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II 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; } Lic. Katya Maricela Pérez Martínez Page 19 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II /* 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] + " "); } } } EJERCICIOS PROPUESTOS 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 Lic. Katya Maricela Pérez Martínez Page 20 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II 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. E= F= 18 19 20 21 1 2 3 4 22 5 3 5 4 2 4 2 1 1 2 3 4 5 6 7 23 24 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 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II GUIA DE LABORATORIO N°3 cadenas “Primero resuelve el problema. Entonces, escribe el código” John Johnson • 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 [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 n1, 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 [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”); valor representado en la cadena. regresa el valor numérico entero correspondiente al 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 [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 Guia31 contar(): entero main() 2. 3. /** * 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"); } Lic. Katya Maricela Pérez Martínez Page 25 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II 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 } } 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 Guia32 reemplazar(): Cadena main() 3. 4. /** * 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 (); Lic. Katya Maricela Pérez Martínez Page 26 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II 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 } } 3. programa que pretende suprimir todos los espacios en blanco de una cadena cad. El resultado queda en otra cadena. Diseñamos el TAD Guia33 suprime(): Cadena main() Lic. Katya Maricela Pérez Martínez Page 27 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II /** * 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; } } 4. Programa que sirve para contar cuántas vocales tiene una palabra o frase. Diseñamos el TAD Guia34 Contar() main() Lic. Katya Maricela Pérez Martínez Page 28 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II // Programa que sirve para contar cuántas vocales tiene una palabra o frase. class Guia34 { public static void main (String args[]) { String palabra; System.out.print(“Dame una palabra o una frase…..”); palabra = Lectura.Cadena (); Contar (palabra); } static void Contar (String p) { int n = 0, cont = 0; n = p.length (); for (int i = 0 ; i < n ; i++) { if ((p.charAt (i) == 'a') || (p.charAt (i) == 'e') || (p.charAt (i) == 'i') || (p.charAt (i) == 'o') || (p.charAt (i) == 'u')) cont++; } System.out.println ("La palabra tiene " + cont + " vocales"); } } 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 Guia35 Nombre: cadena Paterno: cadena Materno:cadena dia: entero mes: entero anio:entero Generar(): cadena main() Lic. Katya Maricela Pérez Martínez Page 29 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II // PROGRAMA PARA CODIFICAR UN NOMBRE CON LAS INICIALES DEL nOMBRE+PATERNO+MATERNO // +DIA+MES+ANIO DE NACIMIENTO import java.lang.String; public class Guia35 { static String Nombre, paterno, materno; static int dia, mes, anio; static String Generar (String nom, String pat, String mat, int d, int m, int a) { char cod; String Codigo = new String (""); cod = nom.charAt (0); //extrae el primer caracter del nombre Codigo = Codigo + cod; //almacena en Codigo la inicial del nombre cod = pat.charAt (0); //extrae el primer caracter del apellido paterno Codigo = Codigo + cod; // concatena la inicial del nombre con la inicial del paterno cod = mat.charAt (0); //extrae la inicial del apellido materno Codigo = Codigo + cod; //concatena lo que tenia codigo con la inicial materno Codigo = Codigo + (Integer.toString (dia)) + (Integer.toString (mes)) + (Integer.toString (anio)); return Codigo; } public static void main (String args[]) { String Micodigo; System.out.print ("Cual es tu nombre...."); Nombre = Lectura.Cadena (); System.out.print ("Cual es tu Apellido paterno...."); paterno = Lectura.Cadena (); System.out.print ("Cual es tu Apellido Materno...."); materno = Lectura.Cadena (); do { System.out.print ("Dia de nacimiento...."); dia = Lectura.Entero (); } while (dia > 31 || dia < 1); Lic. Katya Maricela Pérez Martínez Page 30 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II 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); } } EJERCICIOS PROPUESTOS 1. 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. Lic. Katya Maricela Pérez Martínez Page 31 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II Implementación de la CLASE LECTURA, para la lectura de diferentes tipos de datos en java. LECTURA.JAVA 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); } } Lic. Katya Maricela Pérez Martínez Page 32 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II public static long EnteroLargo() //operacion que lee un entero largo { try { return(Long.parseLong((Cadena()))); } catch(NumberFormatException e) { return(Long.MIN_VALUE); } } public static float Real() // operacion que lee un real { try { Float NumReal = new Float(Cadena()); return(NumReal.floatValue()); } catch(NumberFormatException e) { return(Float.NaN); } } public static double RealLargo() //operacion para leer un real largo { try { Double NumReal = new Double(Cadena()); return(NumReal.doubleValue()); } catch(NumberFormatException e) { return(Double.NaN); } } Lic. Katya Maricela Pérez Martínez Page 33 [GUÍA DE LABORATORIOS EN JAVA] PROGRAMACION II public static int Entero() //operacion que lee un entero { try { return(Integer.parseInt(Cadena())); } catch(NumberFormatException e) { return(Integer.MIN_VALUE); } } public static char Caracter() //operacion para leer un caracter { try { return(Cadena().charAt(0)); } catch(Exception e) { return('\0'); } } public static char CaracterMayuscula() //operacion para leer un character en mayuscula { try { String Temp; Temp = Cadena().toUpperCase(); return(Temp.charAt(0)); } catch(Exception e) { return('\0'); } } } Lic. Katya Maricela Pérez Martínez Page 34