Java - ¿Cómo puedo hacer el siguiente codigo con funciones o procedimientos?

   
Vista:

¿Cómo puedo hacer el siguiente codigo con funciones o procedimientos?

Publicado por Jose (23 intervenciones) el 21/01/2017 19:16:53
Solicitu su ayuda para hacer el siguiente codigo con funciones o prcedimientos. He mirado por todas partes como se hace y no me sale y estoy desesperado. Y bueno, lo que he ehco es un cifrador/descifrador de mensajes del sistema de cifrado del Cesar. Se le pide al usuario que introduzca una frase y luego se le pide si quiere cifrarlo o descifrarlo. Espero que puedan ayudarme, gracias:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Scanner sc = new Scanner(System.in);
    int desplazamiento = 3;
    int desplazamiento2 = 3;
    String frase1, frase2, palabra, cifrar, descifrar;
    frase2 = "";
    String min = "abcdefghijklmnñopqrstuvwxyz";
    String may = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
 
    System.out.print("Inserte la frase: ");
    frase1 = sc.nextLine();
 
    System.out.println("¿Cifrar o descifrar?: ");
    palabra = sc.nextLine();
 
//Comprobar si se ha introducido cifrar o descifrar  
    if(palabra.equals("cifrar") || palabra.equals("descifrar") || palabra.equals("Cifrar") || palabra.equals("Descifrar")){
//Inicio cifrar
    if(palabra.equals("cifrar") || palabra.equals("Cifrar")){
    for(int i = 0;i < frase1.length();i++){
        for(int j = 0;j < min.length();j++){
            if(frase1.charAt(i) == min.charAt(j)){
                if(j + desplazamiento >= min.length()){
                    frase2 += min.charAt((j + desplazamiento)%min.length());
                }else{
                    frase2 += min.charAt(j + desplazamiento);
                }
            }
            else if(frase1.charAt(i) == may.charAt(j)){
                if(frase1.charAt(i) == may.charAt(j)){
                if(j + desplazamiento >= may.length()){
                    frase2 += may.charAt((j + desplazamiento)%may.length());
                }else{
                    frase2 += may.charAt(j + desplazamiento);
                }
                }
            }
            }
        }
    }//Fin cifrar
//Inicio descifrar
        if(palabra.equals("descifrar") || palabra.equals("Descifrar")){
        for(int i = 0;i < frase1.length();i++){
        for(int j = 0;j < min.length();j++){
            if(frase1.charAt(i) == min.charAt(j)){
                if(j - desplazamiento2 >= min.length()){
                    frase2 += min.charAt((j - desplazamiento2)%min.length());
                }else{
                    frase2 += min.charAt(j - desplazamiento2);
                }
            }
            else if(frase1.charAt(i) == may.charAt(j)){
                if(frase1.charAt(i) == may.charAt(j)){
                if(j - desplazamiento2 >= may.length()){
                    frase2 += may.charAt((j - desplazamiento2)%may.length());
                }else{
                    frase2 += may.charAt(j - desplazamiento2);
                }
                }
            }
            }
        }
        }//Fin descifrar
    }else{ //Si se produce un error al introducir "cifrar" o "descifrar" nos avisará
        System.out.println("Palabra mal introducida. Introduzca cifrar o descifrar");
    }
    //Dependiendo de si hemos elegido cifrar o descifrar, nos aparecerán mensajes distintos
    if(palabra.equals("cifrar") || palabra.equals("Cifrar")){
        System.out.println("Frase introducida: " +frase1);
        System.out.println("Frase cifrada: " +frase2);
    }
    if(palabra.equals("descifrar") || palabra.equals("Descifrar")){
        System.out.println("Frase introducida: " +frase1);
        System.out.println("Frase descifrada: " +frase2);
    }
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

¿Cómo puedo hacer el siguiente codigo con funciones o procedimientos?

Publicado por Andrés andres.mella.romero@gmail.com (293 intervenciones) el 22/01/2017 00:06:48
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
public class CesarCipher {
 
    private final static int DESPLAZAMIENTO = 3;
    private final static int DESPLAZAMIENTO2 = 3;
    private final static String MIN = "abcdefghijklmnñopqrstuvwxyz";
    private final static String MAY = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
    public final static String CIFRAR = "cifrar";
    public final static String DESCIFRAR = "descifrar";
 
    private CesarCipher() {
    }
 
    private static final CesarCipher INSTANCE = new CesarCipher();
 
    public static CesarCipher getInstance() {
        return INSTANCE;
    }
 
    public String ejecutar(String operacion, String frase) {
 
        if (CIFRAR.equalsIgnoreCase(operacion)) {
            return cifrar(frase);
        } else if (DESCIFRAR.equalsIgnoreCase(operacion)) {
            return descifrar(frase);
        }
 
        return null;
 
    }
 
    private String descifrar(String frase) {
 
        StringBuilder descifrada = new StringBuilder();
 
        for (int i = 0; i < frase.length(); i++) {
            for (int j = 0; j < MIN.length(); j++) {
                if (frase.charAt(i) == MIN.charAt(j)) {
                    if (j - DESPLAZAMIENTO2 >= MIN.length()) {
                        descifrada.append(MIN.charAt((j - DESPLAZAMIENTO2) % MIN.length()));
                    } else {
                        descifrada.append(MIN.charAt(j - DESPLAZAMIENTO2));
                    }
                } else if (frase.charAt(i) == MAY.charAt(j)) {
 
                    if (j - DESPLAZAMIENTO2 >= MAY.length()) {
                        descifrada.append(MAY.charAt((j - DESPLAZAMIENTO2) % MAY.length()));
                    } else {
                        descifrada.append(MAY.charAt(j - DESPLAZAMIENTO2));
                    }
 
                }
            }
        }
 
        return descifrada.toString();
    }
 
    private String cifrar(String frase) {
 
        StringBuilder cifrada = new StringBuilder();
 
        for (int i = 0; i < frase.length(); i++) {
 
            for (int j = 0; j < MIN.length(); j++) {
 
                if (frase.charAt(i) == MIN.charAt(j)) {
                    if (j + DESPLAZAMIENTO >= MIN.length()) {
                        cifrada.append(MIN.charAt((j + DESPLAZAMIENTO) % MIN.length()));
                    } else {
                        cifrada.append(MIN.charAt(j + DESPLAZAMIENTO));
                    }
                } else if (frase.charAt(i) == MAY.charAt(j)) {
 
                    if (j + DESPLAZAMIENTO >= MAY.length()) {
                        cifrada.append(MAY.charAt((j + DESPLAZAMIENTO) % MAY.length()));
                    } else {
                        cifrada.append(MAY.charAt(j + DESPLAZAMIENTO));
                    }
 
                }
            }
        }
 
        return cifrada.toString();
 
    }
 
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.util.Scanner;
 
public class JavaApplication8 {
 
    public static void main(String[] args) {
 
        Scanner sc = new Scanner(System.in);
 
        String frase1, frase2, palabra;
 
        System.out.print("Inserte la frase: ");
        frase1 = sc.nextLine();
 
        System.out.println("¿Cifrar o descifrar?: ");
        palabra = sc.nextLine();
 
        if (null != palabra && (CesarCipher.CIFRAR.equalsIgnoreCase(palabra) || CesarCipher.DESCIFRAR.equalsIgnoreCase(palabra))) {
 
            CesarCipher cesarCipher = CesarCipher.getInstance();
            frase2 = cesarCipher.ejecutar(palabra, frase1);
 
            System.out.println("Frase introducida: " + frase1);
            System.out.println("Frase " + (CesarCipher.CIFRAR.equalsIgnoreCase(palabra) ? "cifrada: " : "descifrada: ") + frase2);
 
        } else {
            System.out.println("Palabra mal introducida. Introduzca cifrar o descifrar");
        }
 
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar