Diferència entre revisions de la pàgina «M3 - Programació estructurada / Exercicis UF1: classe Character»
De wikiserver
(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 | + | 1. Escriu un programa que codifiqui i descodifiquiuna frase. El procediment per a decodificar serà l'invers que el de codificar. |
− | 2. Escriure un | + | 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);
}
}