Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: tripeador en 12 de Junio 2020, 14:09
-
Despues de varios dias dándole vueltas, repasando temas pasados y gracias a haber consultado los ejercicios de otros foreros, aquí dejo el ejercicio correspondiente al tema CU00662B del tutorial pdf de programación java de aprenderaprogramar.
Esto empieza a ponerse complicado, me da miedo seguir avanzando :-[ :'(
import java.util.Scanner;//importa código clase Scanner
public class EntradaTeclado//clase EntradaTeclado
{
private String entradaTeclado; //Declaracion de campos de instancia de la clase
public EntradaTeclado (){//Constructor
entradaTeclado = "";
pedirEntrada();
}
public void pedirEntrada (){//método tipo procedimiento para pedir una entrada de teclado
Scanner sc1 = new Scanner (System.in);
entradaTeclado = sc1.nextLine();}
public String getEntradaTeclado () { return entradaTeclado; } //método tipo función para obtener resultado entrada teclado
public int getNumeroLetras (){//metodo tipo función para obtener el numero de letras de una cadena
return entradaTeclado.length ();
}
}
import java.util.Scanner;
public class CompararLetras
{
public static void main (String [] args){
System.out.println ("Inicio del ejercicio CU00662B\n");
System.out.print ("Teclea una palabra: ");
EntradaTeclado palabra1= new EntradaTeclado();
System.out.println ("La primera palabra introducida es: \"" +palabra1.getEntradaTeclado()+ "\"\n");
System.out.print ("Teclea otra palabra: ");
EntradaTeclado palabra2 = new EntradaTeclado ();
System.out.println ("La segunda palabra introducida es: \"" +palabra2.getEntradaTeclado()+ "\"\n");
int numeroLetrasPalabra1 = palabra1.getNumeroLetras();
int numeroLetrasPalabra2 = palabra2.getNumeroLetras();
int mayorNumeroLetras = 0;
int menorNumeroLetras = 0;
String palabraCorta = "";
String ordinalPalabraCorta = "";
if (numeroLetrasPalabra1>numeroLetrasPalabra2){
mayorNumeroLetras = palabra1.getNumeroLetras();
menorNumeroLetras = palabra2.getNumeroLetras();
palabraCorta = palabra2.getEntradaTeclado();
ordinalPalabraCorta = "segunda";}
else{
mayorNumeroLetras = palabra2.getNumeroLetras();
menorNumeroLetras = palabra1.getNumeroLetras();
palabraCorta = palabra1.getEntradaTeclado();
ordinalPalabraCorta = "primera";}
for (int i=0;i<mayorNumeroLetras;i++)//Bucle hasta que el numero de letras sea igual que el de la palabra mas larga
{
if (i<menorNumeroLetras){//condición hasta que alcance el numero de letras de la palabra mas corta
if (palabra1.getEntradaTeclado().substring (i,i+1).equals (palabra2.getEntradaTeclado().substring (i,i+1)))
{
System.out.println ("Las letras número " +(i+1)+ " son IGUALES en ambas palabras: "+
"\""+palabra1.getEntradaTeclado().substring (i,i+1) +"\"" + " y "+"\""
+palabra2.getEntradaTeclado().substring (i,i+1)+"\"" );
}
else {System.out.println ("Las letras número " +(i+1)+ " son DIFERENTES en ambas palabras: "+
"\""+palabra1.getEntradaTeclado().substring (i,i+1) +"\"" + " y "+"\""
+palabra2.getEntradaTeclado().substring (i,i+1)+"\"");}
}
else{//cuando el numero de letras sea mayor al de la palabra mas corta
System.out.print("La " +ordinalPalabraCorta+ " palabra\" "+palabraCorta+"\" no tiene letra "+(i+1)+".\n");
}
}
}
}
-
Buenas, por favor mirar este hilo donde se explica cómo poner título a los temas en el foro: https://aprenderaprogramar.com/foros/index.php?topic=1460.0 es importante que pongas un título como se indica. Este lo corregiré yo.
La cosa como bien dices se va complicando un poco, pero sólo un poco. Creo que lo más importante es que avances comprendiendo lo que vas haciendo, aunque vayas un poco más lento. A veces asimilar las cosas requiere un poco de tiempo. Y una vez vas asentando los conceptos la complejidad se va diluyendo como un azucarillo en el agua porque cada vez tienes más experiencia...
El ejercicio está bien resuelto, y me gusta cómo has planteado el código pues aunque podría haberse hecho un poco más compacto, la lógica está muy bien autodescrita por el propio código y los nombres de variables. Animo. Salu2