Diferència entre revisions de la pàgina «M3 - Programació estructurada / Exercicis UF1: classe Character»

De wikiserver
Dreceres ràpides: navegació, cerca
(Es crea la pàgina amb «1. Escriu un programa que codifiqui i descodifiquiuna frase. El procediment per a decodificar serà l'invers que el de codificar. Per a codificar el text es s...».)
 
 
(Hi ha 8 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
1. Escriu  un  programa  que  codifiqui  i descodifiquiuna  frase. El  procediment  per  a decodificar serà l'invers que el de codificar. Per a codificar el text es segueix el següent algorisme:Generar un número aleatori entre 5 i 1000.Convertircada caràcter (inclòs l'espai) al seu codi Unicode.Sumar-li a aquest codi el número aleatori.Obtenir el caràcter que representa aquest nou codi Unicode.Afegir aquest caràcter a la cadena resultant.
+
1. Escriu  un  programa  que  codifiqui  i descodifiquiuna  frase. El  procediment  per  a decodificar serà l'invers que el de codificar.  
  
2. Escriure un mètode, que donat un objecte de la classe Stringcomptidiferents tipus de caràcters. En particular, el mètode haurà d'imprimir el nombre de lletres, dígits i espais en blanc de la cadena. Per exemple la cadena: "Hola, sóc Albert Canela, i dono classes des de 1543"donaria com a resultat:Lletres: 36Dígits: 4Espais en blanc: 9
+
Per a codificar el text es segueix el següent algorisme:
 +
 
 +
:* Generar un número aleatori entre 5 i 1000.
 +
:* Convertir cada caràcter (inclòs l'espai) al seu codi Unicode.
 +
:* Sumar-li a aquest codi el número aleatori.
 +
:* Obtenir el caràcter que representa aquest nou codi Unicode.
 +
:* Afegir aquest caràcter a la cadena resultant.
 +
 
 +
 
 +
<source lang = "java">
 +
package excharacter;
 +
 
 +
import java.util.Random;
 +
import java.util.Scanner;
 +
 
 +
public class Ex1 {
 +
 
 +
    public static void main(String[] args) {
 +
        Random rnd = new Random();
 +
        int numAleatori = rnd.nextInt(995) + 5;
 +
        Scanner lector = new Scanner(System.in);
 +
        System.out.println("Introdueix la frase a codificar: ");
 +
        String text = lector.nextLine();
 +
        String textCodificat = "";
 +
        // Codificació
 +
        for (int i = 0; i < text.length(); i++) {
 +
            char caracter = text.charAt(i);
 +
            int codi = (int) caracter + numAleatori;
 +
            textCodificat += (char) codi;
 +
        }
 +
        System.out.println(textCodificat);
 +
 
 +
        //Decodificació
 +
        String textDecodificat = "";
 +
        for (int i = 0; i < textCodificat.length(); i++) {
 +
            char caracter = textCodificat.charAt(i);
 +
            int codi = (int) caracter - numAleatori;
 +
            textDecodificat += (char) codi;
 +
        }
 +
        System.out.println(textDecodificat);
 +
 
 +
    }
 +
 
 +
}
 +
</source>
 +
<!---->
 +
 
 +
 
 +
2. Escriure un programa, que donat un objecte de la classe String compti diferents tipus de caràcters. En particular, el mètode haurà d'imprimir el nombre de lletres, dígits i espais en blanc de la cadena. Per exemple la cadena: "Hola, sóc Carles Moreno, i dono classes des de 2010" donaria com a resultat:
 +
 
 +
:Lletres: 36
 +
:Dígits: 4
 +
:Espais en blanc: 9
 +
 
 +
 
 +
<source lang = "java">
 +
package excharacter;
 +
 
 +
public class Ex2 {
 +
 
 +
    public static void main(String[] args) {
 +
        final String frase = "Cumpleixo 18 anys el 15 del 12 del 2020";
 +
        int numLletres = 0, numDigits = 0, numEspais = 0;
 +
 
 +
        for (int i = 0; i < frase.length(); i++) {
 +
            if (Character.isDigit(frase.charAt(i))) {
 +
                numDigits++;
 +
            } else if (Character.isLetter(frase.charAt(i))) {
 +
                numLletres++;
 +
            } else if (Character.isWhitespace(frase.charAt(i))) {
 +
                numEspais++;
 +
            }
 +
        }
 +
        System.out.println("Lletres: " + numLletres);
 +
        System.out.println("Dígits: " + numDigits);
 +
        System.out.println("Espais en blanc:" + numEspais);
 +
    }
 +
 
 +
}
 +
</source>
 +
<!---->

Revisió de 17:43, 10 juny 2021

1. Escriu un programa que codifiqui i descodifiquiuna frase. El procediment per a decodificar serà l'invers que el de codificar.

Per a codificar el text es segueix el següent algorisme:

  • Generar un número aleatori entre 5 i 1000.
  • Convertir cada caràcter (inclòs l'espai) al seu codi Unicode.
  • Sumar-li a aquest codi el número aleatori.
  • Obtenir el caràcter que representa aquest nou codi Unicode.
  • Afegir aquest caràcter a la cadena resultant.


package excharacter;

import java.util.Random;
import java.util.Scanner;

public class Ex1 {

    public static void main(String[] args) {
        Random rnd = new Random();
        int numAleatori = rnd.nextInt(995) + 5;
        Scanner lector = new Scanner(System.in);
        System.out.println("Introdueix la frase a codificar: ");
        String text = lector.nextLine();
        String textCodificat = "";
        // Codificació
        for (int i = 0; i < text.length(); i++) {
            char caracter = text.charAt(i);
            int codi = (int) caracter + numAleatori;
            textCodificat += (char) codi;
        }
        System.out.println(textCodificat);

        //Decodificació
        String textDecodificat = "";
        for (int i = 0; i < textCodificat.length(); i++) {
            char caracter = textCodificat.charAt(i);
            int codi = (int) caracter - numAleatori;
            textDecodificat += (char) codi;
        }
        System.out.println(textDecodificat);

    }

}


2. Escriure un programa, que donat un objecte de la classe String compti diferents tipus de caràcters. En particular, el mètode haurà d'imprimir el nombre de lletres, dígits i espais en blanc de la cadena. Per exemple la cadena: "Hola, sóc Carles Moreno, i dono classes des de 2010" donaria com a resultat:

Lletres: 36
Dígits: 4
Espais en blanc: 9


package excharacter;

public class Ex2 {

    public static void main(String[] args) {
        final String frase = "Cumpleixo 18 anys el 15 del 12 del 2020";
        int numLletres = 0, numDigits = 0, numEspais = 0;

        for (int i = 0; i < frase.length(); i++) {
            if (Character.isDigit(frase.charAt(i))) {
                numDigits++;
            } else if (Character.isLetter(frase.charAt(i))) {
                numLletres++;
            } else if (Character.isWhitespace(frase.charAt(i))) {
                numEspais++;
            }
        }
        System.out.println("Lletres: " + numLletres);
        System.out.println("Dígits: " + numDigits);
        System.out.println("Espais en blanc:" + numEspais);
    }

}