Diferència entre revisions de la pàgina «M3 - Programació estructurada / Exercicis UF1: Proves T C TD»
(→Prova 1) |
(→Prova 1) |
||
Línia 12: | Línia 12: | ||
13 14 15 16 4 8 12 16 | 13 14 15 16 4 8 12 16 | ||
− | |||
<source lang="java"> | <source lang="java"> | ||
package provatcted; | package provatcted; | ||
Línia 62: | Línia 61: | ||
} | } | ||
</source> | </source> | ||
− | --> | + | |
+ | <!----> | ||
2. Indicar si una taula ja declarada per codi que conté Strings diferents està ordenada alfabèticament o no, sense distingir majúscules i minúscules. | 2. Indicar si una taula ja declarada per codi que conté Strings diferents està ordenada alfabèticament o no, sense distingir majúscules i minúscules. | ||
Línia 78: | Línia 78: | ||
SÍ! | SÍ! | ||
</pre> | </pre> | ||
− | + | ||
<source lang="java"> | <source lang="java"> | ||
package provatcted; | package provatcted; | ||
Línia 107: | Línia 107: | ||
} | } | ||
</source> | </source> | ||
− | --> | + | <!----> |
3. A partir d’una frase introduïda per teclat creu una taula que contingui les paraules que surten més d’una vegada a la frase sense distingir minúscules i majúscules i el número de repeticions de les mateixes. A continuació, imprimiu la taula. | 3. A partir d’una frase introduïda per teclat creu una taula que contingui les paraules que surten més d’una vegada a la frase sense distingir minúscules i majúscules i el número de repeticions de les mateixes. A continuació, imprimiu la taula. | ||
Línia 227: | Línia 227: | ||
'''eus eixes es es espostes ers es es eguntes''' | '''eus eixes es es espostes ers es es eguntes''' | ||
− | + | ||
<source lang="java"> | <source lang="java"> | ||
package provatcted; | package provatcted; | ||
Línia 260: | Línia 260: | ||
} | } | ||
<source> | <source> | ||
− | --> | + | <!----> |
5. Ompliu un vector de 1000 posicions amb números enters del 1 al 9 generats de forma aleatòria i a continuació mostreu la seqüència més llarga de números imparells seguits. | 5. Ompliu un vector de 1000 posicions amb números enters del 1 al 9 generats de forma aleatòria i a continuació mostreu la seqüència més llarga de números imparells seguits. | ||
Línia 271: | Línia 271: | ||
</pre> | </pre> | ||
− | + | ||
<source lang="java"> | <source lang="java"> | ||
package provatctd; | package provatctd; | ||
Línia 316: | Línia 316: | ||
} | } | ||
<source> | <source> | ||
− | --> | + | <!----> |
Revisió del 21:41, 13 feb 2019
Prova 1
1. Transposar una matriu quadrada de N*N sense utilitzar una matriu auxiliar.
Ex. N=4
Matriu Original Matriu Transposada
1 2 3 4 1 5 9 13 5 6 7 8 2 6 10 14 9 10 11 12 3 7 11 15 13 14 15 16 4 8 12 16
package provatcted;
import java.util.Scanner;
public class ex1 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
int N, cont=0, aux;
System.out.print("Introduce un numero: ");
N=teclat.nextInt();
int Mat[][] = new int[N][N];
//Omplim la matriu
for (int i = 0; i < Mat.length; i++) {
for (int j = 0; j < Mat[i].length; j++) {
cont++;
Mat[i][j]=cont;
}
}
//Transposem la matriu
for (int i = 0; i < Mat.length; i++) {
int j=0;
while (j<i){
aux=Mat[i][j];
Mat[i][j]=Mat[j][i];
Mat[j][i]=aux;
j++;
}
}
//Mostrem la matriu transposada
for (int i = 0; i < Mat.length; i++) {
System.out.println("");
for (int j = 0; j < Mat[i].length; j++) {
System.out.printf("%2d ",Mat[i][j]);
}
}
}
}
2. Indicar si una taula ja declarada per codi que conté Strings diferents està ordenada alfabèticament o no, sense distingir majúscules i minúscules.
Per exemple si tenim: String[] taula1= {"Python", "JAVA", "PHP", "HTML", "JavaScript","SQL"}; NO! I si tenim: String[] taula1= {"HTML", "JAVA","JavaScript","PHP","Python", "SQL"}; SÍ!
package provatcted;
public class ex2 {
public static void main(String[] args) {
String text[]={"HTML","JAVA","JavaScript","PHP","Python","SQL"};
boolean ordenat=true;
int paraulaAtractar=1;
String paraulaAnterior=text[0],paraulaActual;
while(paraulaAtractar<text.length&& ordenat){
paraulaActual=text[paraulaAtractar];
if (paraulaAnterior.compareToIgnoreCase(paraulaActual)>0) {
ordenat=false;
}else{
paraulaAnterior=paraulaActual;
paraulaAtractar++;
}
}
if (ordenat) {
System.out.println("La taula esta ordenada alfabeticament.");
}else{
System.out.println("La taula no esta ordenada alfabeticament.");
}
}
}
3. A partir d’una frase introduïda per teclat creu una taula que contingui les paraules que surten més d’una vegada a la frase sense distingir minúscules i majúscules i el número de repeticions de les mateixes. A continuació, imprimiu la taula.
Per exemple si la frase és:
Oblidaran el que vas fer i oblidaran el que vas dir però mai oblidaran el que els vas fer sentir
El contingut de la taula seria:
Oblidaran | el | que | vas | fer |
3 | 3 | 3 | 3 | 2 |
I si la frase és:
Abans que la sang de les teves venes retorni al mar i la pols dels teus ossos a la terra recorda que aquesta terra no et pertany sinó que ets tu qui pertany a aquesta terra
El contingut de la taula seria:
que | la | a | terra | aquesta | pertany |
3 | 3 | 2 | 3 | 2 | 2 |
<source lang="java">
package provatcted;
import java.util.Scanner;
public class ex3 {
public static void main(String[] args) { Scanner teclat = new Scanner(System.in); System.out.println("Introdueix una frase: "); String text = teclat.nextLine(); String textSeparat[] = text.split(" ");
ex3Paraula taula[] = new ex3Paraula[textSeparat.length]; int numParaules = 0; int paraulesTaula = 0;
while (numParaules < textSeparat.length) { String paraula = textSeparat[numParaules]; System.out.println("paraula: "+textSeparat[numParaules]); //Mirem si ja hem tractar la paraula boolean trobat = false; int index = 0;
while (index < paraulesTaula && !trobat) { if (paraula.equalsIgnoreCase(taula[index].paraula)) {
trobat = true; } else { index++; }
} if (!trobat) { //busquem si apareix a la frase més vegades la paraula
int segonaAparicio = numParaules + 1; boolean igualParaula = false;
while (segonaAparicio < textSeparat.length && !igualParaula) { if (paraula.equalsIgnoreCase(textSeparat[segonaAparicio])) {
igualParaula = true; } else { segonaAparicio++; } } if (igualParaula){ //hem trobat una repetició de la paraula ex3Paraula nova_paraula = new ex3Paraula(); nova_paraula.paraula = paraula; nova_paraula.numAparicio=2; taula[paraulesTaula]=nova_paraula; for (int i = segonaAparicio+1; i < textSeparat.length; i++) { if (paraula.equalsIgnoreCase(textSeparat[i])){ taula[paraulesTaula].numAparicio++; } } paraulesTaula++; } } numParaules++; }
for (int j = 0; j < paraulesTaula; j++) { if (taula[j].numAparicio > 1) { System.out.println(taula[j].paraula + " numAparicio: " + taula[j].numAparicio); }
} }
} <source>
4. Donada una frase i dos caràcters introduïts per teclat, mostreu, si existeix, la cadena de caràcters de cada paraula de la frase compresa entre la primera aparició del primer caràcter i la darrera aparició del segon caràcter (ambdós caràcters inclosos) .
Per exemple si la frase és:
Quan creus que coneixes totes les respostes arriba l'univers i et canvia totes les preguntes
I els caràcters són : primer ‘e’ i segon ‘s’.
El resultat seria:
eus eixes es es espostes ers es es eguntes
<source lang="java">
package provatcted;
import java.util.Scanner;
public class ex4 {
public static void main(String[] args) { Scanner teclat = new Scanner(System.in); int idxc1, idxc2; System.out.println("Introdueix una frase: "); String frase=teclat.nextLine(); String paraulesFrase[] = frase.split(" "); System.out.print("Introdueix un caràcter: "); char car1 =teclat.next().charAt(0); System.out.print("Introdueix un segon caràcter: "); char car2 =teclat.next().charAt(0); for (int i = 0; i < paraulesFrase.length; i++) { idxc1 = paraulesFrase[i].indexOf(car1); idxc2 = paraulesFrase[i].lastIndexOf(car2); if (idxc1!=-1 && idxc2!=-1){ System.out.print(paraulesFrase[i].substring(idxc1, idxc2+1)+ " "); } } }
} <source>
5. Ompliu un vector de 1000 posicions amb números enters del 1 al 9 generats de forma aleatòria i a continuació mostreu la seqüència més llarga de números imparells seguits.
import java.util.Random; ... Random rand = new Random(); int rand_int = rand.nextInt(10)+1;
<source lang="java">
package provatctd;
import java.util.Random;
public class Ex6 {
public static void main(String[] args) {
int MIDATAULA = 1000; Random rand = new Random(); int taulaEnters[] = new int[MIDATAULA];
for (int i = 0; i < MIDATAULA; i++) { taulaEnters[i] = rand.nextInt(10) + 1; }
int idxSeqMesLlarga = 0, contSeqMesLlarga = 0, idxSeqActual = -1, contSeqActual = 0;
for (int i = 0; i < MIDATAULA; i++) { if (taulaEnters[i] % 2 == 0) {
if (contSeqActual > contSeqMesLlarga) { contSeqMesLlarga = contSeqActual; idxSeqMesLlarga = idxSeqActual; } idxSeqActual = -1; contSeqActual = 0;
} else { contSeqActual++; if (idxSeqActual == -1) { idxSeqActual = i; } } }
System.out.println("Seqüència d'imparells més llarga:"); for (int i = idxSeqMesLlarga; i < idxSeqMesLlarga + contSeqMesLlarga; i++) { System.out.print(taulaEnters[i] + " "); } }
} <source>