M3 - Programació estructurada / Exercicis UF1: Proves+Solucions
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
package provessrc;
import java.util.Scanner;
public class Ex1 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.println("Introdueix un número:");
int num1 = teclat.nextInt();
System.out.println("Introdueix un segon número:");
int num2 = teclat.nextInt();
for (int i = 1; i <= num1; i++) {
if (i % 2 == 1) {
for (int j = 1; j <= num2; j++) {
if (j % 2 == 1) {
System.out.print(j + " ");
} else {
System.out.print(" ");
}
}
} else {
for (int j = num2; j >= 1; j--) {
if (j % 2 == 1) {
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 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)
package provessrc;
public class Ex2 {
public static void main(String[] args) {
int d1,d2,d3;
for (int i = 100; i < 1000; i++) {
d3 = i%10;
d2 = i/10%10;
d1 = i/10/10;
if (d1+d2==d3){
System.out.println(i);
}
}
}
}
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)
# # # # # # # # # # # # #
package provessrc;
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 num = teclat.nextInt();
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= num; j++) {
if (j==1 || j==num || i==j){
System.out.print("# ");
}else{
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 3 números parells o imparells seguits.
package provessrc;
import java.util.Scanner;
public class Ex4 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
int contParells=0, contImparells=0;
System.out.println("Introdueix un número:");
int num=teclat.nextInt();
while (num!=-1 && contParells<3 && contImparells<3){
if (num%2==0){
contParells++;
contImparells=0;
}else{
contImparells++;
contParells=0;
}
if (contParells<3 && contImparells<3){
System.out.println("Introdueix un número:");
num=teclat.nextInt();
}
}
if (contParells==3){
System.out.println("Tres parells seguits..,");
}
else if (contImparells==3){
System.out.println("Tres imparells seguits...");
}
else{
System.out.println("No s'ha produït cap seqüència de tres 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
package provessrc;
import java.util.Scanner;
public class Ex5 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
int contParells=0, contImparells=0;
System.out.println("Introdueix un número:");
int num=teclat.nextInt();
for (int i = 1; i <= num; i++) {
for (int j = 1; j < num-i+1; j++) {
System.out.print(" ");
}
for (int j = 1; j <=i; j++) {
System.out.print(num-i+1+" ");
}
System.out.println("");
}
}
}
6. Mostra per pantalla aquesta "representació" a partir d’un número introduït (en el exemple 5). 2 punts
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
package provessrc;
import java.util.Scanner;
public class Ex6 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
int contParells=0, contImparells=0;
System.out.println("Introdueix un número:");
int num=teclat.nextInt();
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
for (int j = 1; j <=2*(num-i); j++) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println("");
}
}
}