M3 - Programació estructurada / Exercicis UF1: Proves
Contingut
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 6 1 2 4 5 6 6 4 3 2 1 6 5 4 2 1 1 2 3 4 6 1 2 4 5 6 6 4 3 2 1 1 2 3 4 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("");
}
}
}
Prova 3
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 1 2 3 7 6 7 6 5 4 1 2 3 4 5 1 2 3 7 6 7 6 5 4 1 2 3 4 5 1 2 3 7 6 5 4 1 2 3
2. Escriu un programa que mostri tots el números de n xifres que compleixen que tenen més dígits senars que parells. 1,5 punts
Ex n=7 1000111 – 1000113 – 1000115 – 1000117 ...
3. Fes un programa que demani un número de línies (més gran que 4 i imparell) i "dibuixi" la lletra 'P' (en l'exemple el número és 7)
# # # # # # # # # # # # # # # # # # # # #
4. En una seqüencia de números enters positius acabada en -1, indicar quina és la mida de la seqüència més gran de números senars consecutius.
Exemples. 3 7 22 3 4 67 12 87 76 111 123 33 45 56 77 -1 → 4 3 7 22 3 1 67 11 25 76 111 124 88 45 36 17 11 -1 → 5
5. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5).
5 4 4 3 3 2 2 1 1 1 1 1 1 1 1 1
6. Mostra per pantalla aquesta "representació" a partir d’un número introduït per teclat (en el exemple 5).
# # # # # # # # * # # * * # # * * # # * * # # * # # # # # # # #
Prova 4
1. Fes un programa que demani dos números més grans que 3 i mostri el següent:
Ex. 5 i 8 Ex. 7 i 3 1 2 3 4 * 6 7 * 9 1 2 * 4 5 6 * 8 9 * 8 * * 5 * * * * * * 7 * * * 3 * * 1 2 3 4 * 6 7 * 9 1 2 * 4 5 6 * 8 9 * 8 * * 5 * * * * * * 7 * * * 3 * * 1 2 3 4 * 6 7 * 9 1 2 * 4 5 6 * 8 9 * * 7 * * * 3 * * 1 2 * 4 5 6 * 8 9. Escriu un programa que mostri tots el números de n xifres (n senar) que compleixen que la suma dels dígits de la part esquerra és igual a la suma dels dígits de la part dreta.
Ex n=7 1000001 – 1000010 – 1000100 – 1001001 - 1001010...
3. Fes un programa que demani un número de línies (més gran que 4 i imparell) i "dibuixi" la lletra 'M' (en l'exemple el número és 7)
* * * * * * * * * * * * * * * * * * *