M3 - Programació estructurada / Exercicis UF1: Cadenes
1. L’última lletra del DNI pot calcular-se a partir del seus números. Per a això només has de dividir el número per 23 i quedar-te amb la resta. Fes un programa per calcular la lletra d’un DNI. La lletra que correspon a cada número la tens en aquesta taula:
0 - T 1 - R 2 - W 3 - A 4 - G 5 - M 6 - Y 7 - F 8 - P 9 - D 10 - X 11 - B 12 - N 13 - J 14 - Z 15 - S 16 - Q 17 - V 18 - H 19 - L 20 - C 21 - K 22 – E
2. Genera un programa que encripti una cadena de caràcters. Per exemple : “avadakedavra” encriptat es “bwbeblfebwsb” i el mètode d’encriptació és canviar un caràcter pel seu successor a l’abecedari (el successor de ‘z’ és ‘a’). 3. Feu un programa que si li passem un nom com a paràmetre ens doni la benvinguda: Benvingut Sr. ... i si no l'hi donem digui : Hola desconegut. 4. Feu un programa que calculi la mitjana aritmètica dels valors passats com a paràmetres. Si no es passa cap paràmetre sortirà un missatge d’error i si el primer paràmetre és –ajut el programa traurà una petita explicació del funcionament.5. Genereu un programa anomenat ComptaAsString que compti quantes lletres a conté una cadena de text. El text per tractar pot ser qualsevol i el podeu declarar com una constant en el codi font. 6. Feu un programa anomenat ParaulesSenars que llegeixi una frase escrita en una sola línia des del teclat i tot seguit escrigui les paraules que hi ha en posició senar (la primera, la tercera, etc.). Per exemple, si s'escriu “Hi havia una vegada un lloc...”, es mostrarà “Hi una un”. 7. Fés un programa que, primer demani a l’usuari escriure una rere l’altra, tres paraules que només continguin lletres minúscules. A continuació el programa ha d’escriure quina és la paraula més llarga i quina és l’alfabèticament menor. 8. Fes un programa que llegeixi una cadena i un número enter N i ens digui quantes paraules tenen longitud N. 9. Fes un programa que llegeixi una cadena i la mostri invertida. 10. Volem un programa per treballar amb cadenes que mitjançant un menú ens permeti les següents opcions : • Mostrar els n primers caràcters d’una cadena • Mostrar els n últims caràcters d’una cadena (d’esquerra a dreta) • Eliminar els espais en blanc que hi hagi al final de la cadena • Eliminar els espais en blanc que hi hagi al principi de la cadena • Eliminar d’una cadena els n caràcters que apareixen a partir de la posició p • Inserir una cadena dins d’una altra a partir de la posició p • Comptar el nombre de vegades que apareix una cadena dins d’una altra • Esborrar totes les aparicions d’una cadena dins d’una altra11. Escriu un programa que utilitzi el mètode regionMatches de la classe String per comparar dues cadenes introduïdes per l’usuari. L’aplicació rebrà com a entrada el nombre de caràcters a comparar i l’índex inicial de la comparació. L’aplicació haurà d’indicar si les cadenes són iguals. Ignoreu si els caràcters estan en majúscules o no en el moment de la comparació. 12. Escriu una aplicació que rebi com a entrada una línia de text i un caràcter de cerca i que utilitzi el mètode indexOf de la classe String per a determinar el nombre d’ocurrències del caràcter en el text. 13. Féu un programa que llegeixi una cadena de caràcters i indiqui si la cadena és un palíndrom. Un palíndrom és una cadena que es llegeix d’igual manera d’esquerra a dreta que de dreta a esquerra. Com per exemple : dabale arroz a la zorra el abad. Cal entendre que per poder-ho fer d’aquesta manera no han d’haver-hi espais en blanc. 14. Escriu una aplicació que utilitzi la generació de números aleatoris per a crear enunciats. Utilitza quatre taules de cadenes anomenades article, substantiu, verb i preposicio. Crea una oració seleccionant una paraula a l’atzar de cada una de les taules en el següent ordre: article, substantiu, verb, preposicio, article i substantiu. A mesura que es triï una paraula s’ha de concatenar amb les anteriors a l’enunciat. Les paraules es separen per espais. Quan es mostri l’enunciat final, haurà de començar amb una lletra majúscula i acabar amb punt. El programa ha de generar 20 enunciats. Nota: Per generar números aleatoris cal fer el codi següent: Random aleatori = new Random(); int valor = r.nextInt(maxim); això genera un valor >= 0 i < maxim