3UiFWLFD 3URJUDPDFLyQ-DYD ,QIRUPiWLFD&XUVR3UiFWLFDQSiJLQD Ë1',&( 35È&7,&$1° 1.1 1.2 1.3 EJERCICIO 1: USO DE LA CLASE STRING PARA ORDENAR CADENAS .............................................................. 2 EJERCICIO 2: CLASE ORDENAR ..................................................................................................................... 3 EJERCICIO 3: USO DE LA CLASE VECTOR PARA CREAR UNA LISTA DE ALUMNOS........................................... 4 35È&7,&$1° En esta práctica vas a ejercitarte con el uso de los array's y las clases más utilizadas de java. Recuerda llevar los apuntes de clase que se te han dado esta semana. En el primer ejercicio vas a repasar cómo se utiliza la clase 6WULQJ de -DYD y cómo se crean los array's (en este caso de String's). También veras cómo se le pasa a una función o método un array. Los ejercicios siguientes no serán como el primer ejercicio. Los vas a hacer tú solo, con el enunciado que se te dará más adelante. (-(5&,&,2862'(/$&/$6(675,1*3$5$25'(1$5&$'(1$6 En este ejercicio se han creado dos métodos principales: leeCadena y Ordena. El primero devuelve una cadena escrita por el teclado y el segundo ordena un array de String's que son pasados a la función como primer argumento de forma ascendente o descendente según el segundo parámetro tipo boolean que se le pasa a la función. El programa pide por teclado "n" nombres y los ordena , primero de forma ascendente y después de forma descendente, usando la misma función. El número "n" de nombres hay que pasarlos en la línea de comando, al momento de ejecuatr el programa, de la siguiente manera: !MDYD(MHU A continuación podemos ver el código. 8VRGHODFODVH6WULQJSDUDRUGHQDUFDGHQDV import java.io.*; SXEOLFFODVV(MHU^ SXEOLFVWDWLFYRLGPDLQ6WULQJDUJV>@WKURZV,2([FHSWLRQ^ int num=0; if (args.length > 0) num = Integer.parseInt(args[0]); else { prt("Poner: >java Ejer1 12"); System.exit(0); } String[] str = new String[num]; for (int i=0;i<num;i++) { prt(" Dar "+ (i+1) + " Nombre: "); str[i] = leeCadena(); } (VFXHOD6XSHULRUGH,QJHQLHURV8QLYHUVLGDGGH1DYDUUD ,QIRUPiWLFD&XUVR3UiFWLFDQSiJLQD // Imprimir las cadenas que hay en el array de String’s prt("\nNombres dados antes de ordenar:"); for (int i=0;i<num;i++) prt("\n\tNombre "+(i+1)+" : "+str[i]); //ordenar Ordena(str,true); //ordena ascendente prt("\nNombres ordenados Ascendente:"); for (int i=0;i<num;i++) prt("\n\tNombre "+ (i+1) +" : "+str[i] ); Ordena(str,false); //ordena descendente prt("\nNombres ordenados Descendente:"); for (int i=0;i<num;i++) prt("\n\tNombre "+ (i+1) +" : "+str[i] ); } SXEOLFVWDWLFYRLGSUW6WULQJVWU^ System.out.print(str); } SXEOLFVWDWLF6WULQJOHH&DGHQDWKURZV,2([FHSWLRQ^ char ch; String str=""; while(true) { ch = (char)System.in.read(); if (ch == ’\n’) break; else str += ch; } return str; } SXEOLFVWDWLFYRLG2UGHQD6WULQJ>@FDGHQDVERROHDQRUGHQ^ int ret; String tmp; for (int i=0; i< cadenas.length-1; i++) { for (int j=i+1; j< cadenas.length; j++) { ret = cadenas[i].compareToIgnoreCase( cadenas[j] ); if (ret > 0 && orden) { tmp = cadenas[i]; cadenas[i] = cadenas[j]; cadenas[j] = tmp; } if (ret < 0 && !orden) { tmp = cadenas[i]; cadenas[i] = cadenas[j]; cadenas[j] = tmp; } } } } } ILQGHODFODVH(MHU Como recomendación, al igual que en las prácticas anteriores, no te dediques a pasar el código al JBuilder y ejecutarlo simplemente. Trata de entender el funcionamiento del programa y lo que hace cada función. (-(5&,&,2&/$6(25'(1$5 Como hemos dicho desde el comienzo del curso -DYD, el código que hagas tiene que ser reutilizable, esto quiere decir que tienes que crear tus propias clases para que puedan ser llamadas desde cualquier otro programa. (VFXHOD6XSHULRUGH,QJHQLHURV8QLYHUVLGDGGH1DYDUUD ,QIRUPiWLFD&XUVR3UiFWLFDQSiJLQD En este ejercicio vas a crear la clase 2UGHQDU, la cual tiene que tener: a) Dos variables miembro: • Una del tipo boolean (para ordenar de forma ascendente o descendente) y • Otra será el array de String's, donde estén los nombres a ordenar. b) Dos métodos: • Método Ordenar(), que devuelva el array ordenado • Método Print() que imprima en la consola el array de datos ordenado. Para probar la clase Ordenar, debes crear un proyecto, (MHU, dónde puedas crear los objetos de la clase Ordenar y pasarle los elementos que deseas. (-(5&,&,2862'(/$&/$6(9(&7253$5$&5($581$/,67$'($/80126 Para el desarrollo de este ejercicio debes crear una clase $OXPQR, la cual contenga las principales características de un alumno: • Nombre • Apellido1 • Apellido2 • Carnet • Dirección • Año de Nacimiento • Teléfono, etc. Recuerda que cada una de estas variables es de un determinado tipo (la variable Carnet no es igual que el Nombre por ejemplo). En el programa principal, (MHU, debes crear el objeto de la clase 9HFWRU, donde vas a ir introduciendo todos los alumnos que vayas creando. Este programa debe permitir: • Añadir alumnos a la lista • Borrar uno determinado • Ver toda la lista • Ver los alumnos de un determinado Apellido • Editar uno para cambiar los datos. 1RROYLGHVTXH12SXHGHQKDEHUGRVDOXPQRVFRQHOPLVPR&DUQHW (VFXHOD6XSHULRUGH,QJHQLHURV8QLYHUVLGDGGH1DYDUUD