M3 - Programació estructurada / Exercicis UF1: Proves
2018-19
Prova 1
Recorda: Scanner teclat = new Scanner(System.in);
1. Fes un programa que demani dos números senars més grans que 4 i mostri el següent (en l'exemple els números són 5 -files- i 7 -columnes-)
Ex. 5 i 7 Ex. 7 i 5 1 3 5 7 1 3 5 6 4 2 4 2 1 3 5 7 1 3 5 6 4 2 4 2 1 3 5 7 1 3 5 4 2 1 3 5
2. Escriu un programa que mostri tots el números de 3 xifres que compleixen que la suma dels dígits de més pes és igual al 3r dígit.
Ex 123 (1+2=3), 134 (1+3=4), 145 (1+4=5)
3. Fes un programa que demani un número de línies (més gran que 4 i imparell) i "dibuixi" la lletra 'N' (en l'exemple el número és 5)
# # # # # # # # # # # # #
4. En una seqüencia de números enters positius acabada en -1, determinar si s’ha produït una seqüencia de 3 números parells o imparells seguits.
5. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5). 2 punts
5 4 4 3 3 3 2 2 2 2 1 1 1 1 1
6. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5). 2 punts
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Prova 2
1. Fes un programa que demani dos números senars més grans que 2 i mostri el següent:
Ex. 5 i 7 Ex. 7 i 3 1 2 3 4 5 6 1 2 4 5 6 6 4 3 2 1 6 5 4 2 1 1 2 3 4 5 6 1 2 4 5 6 6 4 3 2 1 1 2 3 4 5 6
package proves; import java.util.Scanner; public class Proves { public static void main(String[] args) { Scanner teclat = new Scanner(System.in); System.out.println("Introdueix un número: "); int n1 = teclat.nextInt(); System.out.println("Introdueix un altre número: "); int n2 = teclat.nextInt(); int files, columnes; if (n1 > n2) { files = n2; columnes = n1; } else { files = n1; columnes = n2; } for (int i=1; i<=files; i++){ if (i%2==1){ for (int j= 1; j <=columnes; j++) { if (j==files || j== columnes){ System.out.print(" "); } else{ System.out.print(j +" "); } } } else { for (int j = columnes; j >=1; j--) { if (j==files || j== columnes){ System.out.print(" "); } else{ System.out.print(j +" "); } } } System.out.println(""); } } }
2. Escriu un programa que mostri tots el números de 3 xifres que compleixen que cada dígit és divisible per l’anterior.
Ex 111 (1%1=0 i 1%1=0) , 211 (2%1=0 i 1%1=0) , 221 (2%2=0 i 2%1=0), ...
package proves; public class ex2 { public static void main(String[] args) { int d1, d2, d3; for (int n=100; n<1000; n++){ d1 = n%10; d2 = n/10%10; d3 = n/100; if (d2!=0 && d1!=0){ if (d3%d2==0 && d2%d1==0){ System.out.println(n); } } } } }
3. Fes un programa que demani un número de línies (més gran que 4 i imparell) i "dibuixi" la lletra 'S' (en l'exemple el número és 7)
# # # # # # # # # # # # # # # # # # # # # # # # #
package proves; import java.util.Scanner; public class ex3 { public static void main(String[] args) { Scanner teclat = new Scanner(System.in); System.out.println("Introdueix un número: "); int n = teclat.nextInt(); for (int i=1; i<=n; i++){ if (i==1 || i==n || i==n/2+1){ for (int j = 1; j <= n; j++) { System.out.print("# "); } } else if (i<n/2+1){ System.out.print("# "); } else{ for (int j = 1; j < n; j++) { System.out.print(" "); } System.out.print("# "); } System.out.println(""); } } }
4. En una seqüencia de números enters positius acabada en -1, determinar si s’ha produït una seqüencia de 5 números en els que cada número és major que l’anterior o una seqüencia de 5 números en els que cada número és menor que l’anterior.
Exemples:
3 7 22 3 4 67 12 87 76 111 124 33 45 56 77 -1 → NO 3 7 22 3 4 67 12 87 76 111 124 33 45 56 77 88 99 → SÍ 3 7 22 3 4 67 12 87 76 111 124 88 45 36 17 11 → SÍ
package proves; import java.util.Scanner; public class ex4 { public static void main(String[] args) { int contMajors=0, contMenors=0; Scanner teclat = new Scanner(System.in); System.out.println("Introdueix un número: "); int num = teclat.nextInt(); if (num != -1) { int numant=num; System.out.println("Introdueix un número: "); num = teclat.nextInt(); while (num!=-1 && contMajors < 5 && contMenors<5){ if (num > numant){ contMajors++; contMenors=0; } else if (num < numant){ contMenors--; contMajors=0; }else{ contMajors=0; contMenors=0; } if (contMajors < 5 && contMenors<5){ numant=num; System.out.println("Introdueix un número: "); num = teclat.nextInt(); } } } if (num!= -1){ System.out.println("Sí"); } else{ System.out.println("No"); } } }
5. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5).
1 2 1 2 3 2 1 2 3 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5
package proves; import java.util.Scanner; public class ex5 { public static void main(String[] args) { Scanner teclat = new Scanner(System.in); System.out.println("Introdueix un número: "); int num = teclat.nextInt(); for (int i = 1; i <=num; i++) { for (int j = 1; j < 2*(num-i+1); j++) { System.out.print(" "); } for (int j = 1; j <= i; j++) { System.out.print((i-j+1)+" "); } for (int j = 2; j <= i; j++) { System.out.print(j+" "); } System.out.println(""); } } }
6. Mostra per pantalla aquesta "representació" a partir d’un número impar introduït per teclat (en el exemple 5).
* * * * * * * * * * * * * * * * * *
package proves; import java.util.Scanner; public class ex6 { public static void main(String[] args) { Scanner teclat = new Scanner(System.in); System.out.println("Introdueix un número: "); int num = teclat.nextInt(); for (int i = 1; i <= num / 2 + 1; i++) { for (int j = 1; j <= i; j++) { System.out.print("* "); } for (int j = 1; j < num - (2 * (i - 1)); j++) { System.out.print(" "); } for (int j = 1; j <= i; j++) { System.out.print("* "); } System.out.println(""); } for (int i = 1; i <= num - (num / 2 + 1); i++) { for (int j = i; j <= num - (num / 2 + 1); j++) { System.out.print("* "); } for (int j = 1; j <= 2 + (2 * (i - 1)); j++) { System.out.print(" "); } for (int j = i; j <= num - (num / 2 + 1); j++) { System.out.print("* "); } System.out.println(""); } } }