M3 - Programació estructurada / Exercicis UF1: For-Solucions
1. Imprimir els números del 1 al 100.
package ex_for;
/**
* Imprimir els números del 1 al 100
*/
public class Ex1 {
public static void main(String[] args) {
for (int i = 1; i <=100; i++) {
System.out.println(i);
}
}
}
2. Imprimir els números parells del 0 al 98.
package ex_for;
/**
* Imprimir els números parells del 0 al 98
*/
public class Ex2 {
public static void main(String[] args) {
for (int i = 0; i <100; i=i+2) {
System.out.println(i);
}
}
}
3. Imprimir els números del 100 al 1.
package ex_for;
/**
* Imprimir els números del 100 al 1
*/
public class Ex3 {
public static void main(String[] args) {
for (int i = 100; i > 0; i--) {
System.out.println(i);
}
}
}
4. Demanar cinc números i mostrar la suma.
package ex_for;
import java.util.Scanner;
/**
* Ex4: Demanar cinc números i mostrar la suma
*/
public class Ex4 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
int valor, suma, i;
suma = 0;
for (i = 0; i < 5; i++) {
System.out.print("Introdueix un valor: ");
valor = teclat.nextInt();
suma = suma + valor;
}
System.out.println("La suma és: " + suma);
}
}
5. Igual que l'anterior però només sumant els valors més grans de 10.
package ex_for;
import java.util.Scanner;
/**
* Demanar cinc números i sumar els valors que siguin més grans de 10
*/
public class Ex5 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
int valor, suma, i;
suma = 0;
for (i = 0; i < 5; i++) {
System.out.print("Introdueix un valor: ");
valor = teclat.nextInt();
if (valor > 10) {
suma = suma + valor;
}
}
System.out.println("La suma és: " + suma);
}
}
6. Calcular el producte dels números del 1 al 10.
package ex_for;
/**
* Calcular el producte dels números del 1 al 10
*/
public class Ex6 {
public static void main(String[] args) {
int mult=1;
for (int i = 1; i <=10 ; i++) {
mult=mult*i;
}
System.out.println("EL resultat és: "+mult);
}
}
7. Demanar cinc números i mostrar el valor més gran.
Inicialitzeu max = Integer.MIN_VALUE; i aneu actualitzant max a cada iteració.
package ex_for;
import java.util.Scanner;
/**
* Demanar cinc números i mostrar el valor més gran
*/
public class Ex7 {
public static void main(String[] args) {
int valor, max = Integer.MIN_VALUE;
System.out.println(max);
Scanner teclat = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
System.out.print("Introdueix un valor: ");
valor = teclat.nextInt();
if (valor > max) {
max = valor;
}
}
System.out.println("El màxim és: " + max);
}
}
8. Imprimir 20 asteriscos a la mateixa línia.
package ex_for;
/**
* Imprimir 20 asteriscos a la mateixa línia.
*/
public class Ex8 {
public static void main(String[] args) {
for (int i = 0; i < 20; i++) {
System.out.print("* ");
}
System.out.println("\n\n");
}
}
9. Fem el mateix però el número d’asteriscos el decideix l’usuari.
package ex_for;
import java.util.Scanner;
/**
* Imprimir n asteriscos a la mateixa línia.
*/
public class Ex9 {
public static void main(String[] args) {
int aster;
Scanner teclat = new Scanner(System.in);
System.out.println("Quants asteriscos vols?: ");
aster = teclat.nextInt();
for (int i = 0; i < aster; i++) {
System.out.print("* ");
}
System.out.println("\n\n");
}
}
10. Com l'anterior però fent un quadrat d'asteriscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:
* * * * * * * * * * * * * * * * * * * * * * * * *
package ex_for_imbricats;
/**
* Quadrat n x n d'asteriscos
*/
import java.util.Scanner;
public class Ex10 {
public static void main(String[] args) {
int aster;
Scanner teclat = new Scanner(System.in);
System.out.println("Quants asteriscos vols?: ");
aster = teclat.nextInt();
//Cada línia
for (int linia = 1; linia <= aster; linia++) {
//Asteriscos dins la línia
for (int columna=1;columna <= aster;columna++){
System.out.print("* ");
}
System.out.println("");
}
}
}
11. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:
* * * * * * * * * * * * * * * *
package ex_for_imbricats;
import java.util.Scanner;
/**
* Quadrat n x n d'asteriscos buit
*/
public class Ex11 {
public static void main(String[] args) {
int aster;
Scanner teclat = new Scanner(System.in);
System.out.println("Quants asteriscos vols?: ");
aster = teclat.nextInt();
//Cada línia
for (int linia = 1; linia <= aster; linia++) {
//Asteriscos dins la línia
for (int columna = 1; columna <= aster; columna++) {
if (linia == 1 || linia ==aster || columna == 1 || columna == aster){
System.out.print("* ");
}
else{
System.out.print(" ");
}
}
System.out.println("");
}
}
}
12. Escriu un programa que llegeixi un número N i mostri per pantalla el següent:
1 1 2 1 2 3 ... 1 2 3 ... N
package ex_for_imbricats;
import java.util.Scanner;
public class Ex12 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix el número de línies: ");
int lin = teclat.nextInt();
//Cada línia
for (int fila =1; fila<=lin;fila++){
//Valors per línia
for(int columna=1;columna<=fila;columna++){
System.out.print(columna+" ");
}
System.out.println("");
}
}
}
13. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)
* * * * * * * * * * * * * * *
package ex_for_imbricats;
import java.util.Scanner;
public class Ex13 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix el número de línies: ");
int lin = teclat.nextInt();
for (int fila = 1; fila <=lin; fila++) {
for (int columna = 1; columna <=fila; columna++) {
System.out.print("* ");
}
System.out.println("");
}
}
}
14. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)
* * * * * * * * * * * * * * *
package ex_for_imbricats;
import java.util.Scanner;
public class Ex14 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix el número de línies: ");
int lin = teclat.nextInt();
//Cada línia
for (int fila =1; fila<=lin;fila++){
//Asteriscos per línia
for (int columnes=fila;columnes<=lin;columnes++){
System.out.print("* ");
}
System.out.println("");
}
}
}
15. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)
1 2 3 4 5 1 2 3 4 1 2 3 1 2 1
package ex_for_imbricats;
public class Exercici15 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix el número de línies: ");
int num = teclat.nextInt();
for (int i = num; i >=1; i-- ){
for(int j=1; j <=i; j++){
System.out.print(j+ " ");
}
System.out.println("");
}
}
}
16. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)
5 4 3 2 1 4 3 2 1 3 2 1 2 1 1
package ex_for_imbricats;
public class Exercoco16 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix el número de línies: ");
int num = teclat.nextInt();
for (int i = num; i >=1; i-- ){
for(int j=i; j >=1; j--){
System.out.print(j+ " ");
}
System.out.println("");
}
}
}
17. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)
1 1 1 1 1 2 2 2 2 3 3 3 4 4 5
package ex_for_imbricats;
import java.util.Scanner;
public class Ex17 {
public static void main(String[] args) {
Scanner lector = new Scanner(System.in);
System.out.println("Introudueix un número: ");
int num = lector.nextInt();
for (int i=1; i<= num; i++) {
for (int j=i; j <= num; j++) {
System.out.print(i+ " ");
}
System.out.println("");
}
}
}
18. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)
5 5 5 5 5 4 4 4 4 3 3 3 2 2 1
19. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)
1 1 1 1 1 1 1 1 2 3 4 5 6 3 3 3 3 3 1 2 3 4 5 5 5 1 2 7
package ex_for_imbricats;
import java.util.Scanner;
public class Ex19 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix el número de línies: ");
int num = teclat.nextInt();
for (int i=1; i <= num; i++){
if(i%2==1){
for(int j =1; j<= num-i+1; j++){
System.out.print(i+ " ");
}
}
else{
for(int j =1; j<= num-i+1; j++){
System.out.print(j+ " ");
}
}
System.out.println("");
}
}
}
20. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 7)
7 7 7 7 7 7 7 6 5 4 3 2 1 5 5 5 5 5 4 3 2 1 3 3 3 2 1 1
package ex_for_imbricats;
import java.util.Scanner;
public class Ex20 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix el número de línies: ");
int num = teclat.nextInt();
for (int i=num; i >= 1; i--){
if(i%2==1){
for(int j =i; j>= 1; j--){
System.out.print(i+ " ");
}
}
else{
for(int j = i; j>= 1; j--){
System.out.print(j+ " ");
}
}
System.out.println("");
}
}
}
21. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)
* * * * * * * * * * * * * * *
// Com a 2 triàngles...
package ex_for_imbricats;
import java.util.Scanner;
public class Ex21 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix el número de línies: ");
int lin = teclat.nextInt();
//Cada línia
for (int fila = 1; fila <= lin; fila++) {
//Nombre d'espais
for (int espais=fila;espais<lin;espais++) {
System.out.print(" ");
}
//Nombre d'asteriscos
for (int asteriscos=1;asteriscos<=fila;asteriscos++) {
System.out.print("* ");
}
System.out.println("");
}
}
}
// Com a 1 quadrat...
package ex21;
import java.util.Scanner;
public class Ex21 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix un número: ");
int num = teclat.nextInt();
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= num; j++) {
if (j >= num - i + 1) {
System.out.print("* ");
} else {
System.out.print(" ");
}
}
System.out.println("");
}
}
}
22. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)
* * * * * * * * * * * * * * *
package ex_for_imbricats;
import java.util.Scanner;
/**
*
* @author acanela
*/
public class Ex22 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix el número de línies: ");
int lin = teclat.nextInt();
for (int fila = 1; fila <= lin; fila++) {
for (int espais = 1; espais < fila; espais++) {
System.out.print(" ");
}
for (int asteriscos = fila; asteriscos <= lin; asteriscos++) {
System.out.print(" *");
}
System.out.println("");
}
}
}
Algun exercici més:
23. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari (a l’exemple 5)
* * * * * * * * * * * * *
package ex_for_imbricats;
import java.util.Scanner;
public class Ex23 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix el número de línies: ");
int lin = teclat.nextInt();
for (int i = 1; i <= lin; i++) {
if (i%2==1){
for (int j = 1; j <=lin; j++) {
if (j%2==1){
System.out.print("* ");
}
else {
System.out.print(" ");
}
}
} else{
for (int j = 1; j <=lin; j++) {
if (j%2==1){
System.out.print(" ");
}
else {
System.out.print("* ");
}
}
}
System.out.println("");
}
}
}
24. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.
exemple 5 exemple 6 * * * * * * * * * * * * * * * * * * * * *
package ex_for_imbricats;
import java.util.Scanner;
public class Ex24 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix el número de línies: ");
int lin = teclat.nextInt();
//Cada línia
for (int i = 1; i <= lin; i++) {
for (int j=1;j<=lin;j++) {
if ((i==j)||(i+j==lin+1)){
System.out.print("* ");
}
else{
System.out.print(" ");
}
}
System.out.println("");
}
}
}
25. Mostra per pantalla aquesta "representació" a partir de la introducció de d'un número imparell més gran de 3.
Per exemple si num = 7
* * * * * * * * * A A A * * * B * A * C * * B B * C C * * B * D * C * * * D D D * * * * * * * * *
package ex_for_imbricats;
import java.util.Scanner;
public class Ex25 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix un número imparell més gran que 3: ");
int num = teclat.nextInt();
for (int i=1; i<=num; i++){
for (int j= 1; j<=num; j++){
if (i==1 || i==num || j==1 || j==num || i==j || i==num-j+1){
System.out.print("* ");
}else{
if(j>i && j<num-i+1){
System.out.print("A ");
}else if(j<i && j<num-i+1){
System.out.print("B ");
}else if(j>num-i+1 && j>i){
System.out.print("C ");
}
else{
System.out.print("D ");
}
}
}
System.out.println("");
}
}
}
26. Dibuixa un rectangle amb '*' i números, demanant l'alçada (mínim 5 i imparell) i l'amplada (mínim 3). En el exemple
exemple alçada 9 i amplada 7 * * * * * * * * 2 2 2 2 2 * * 3 3 3 3 3 * * 4 4 4 4 4 * * * * * * * * * 6 6 6 6 6 * * 7 7 7 7 7 * * 8 8 8 8 8 * * * * * * * *
package ex_for_imbricats;
import java.util.Scanner;
public class Ex26 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix un número imparell més gran que 5 per l'alçada: ");
int alçada = teclat.nextInt();
System.out.print("Introdueix un número imparell més gran que 1 per l'amplada: ");
int amplada = teclat.nextInt();
if (alçada <= 5 || alçada == 0 || amplada <= 1 || amplada % 2 == 0) {
System.out.println("Dades d'entrada incorrectes!");
} else {
for (int i = 1; i <= alçada; i++) {
for (int j = 1; j <= amplada; j++) {
if (i == 1 || i == alçada / 2 + 1 || i == alçada || j == 1 || j == amplada) {
System.out.print("* ");
} else {
System.out.print(i + " ");
}
}
System.out.println("");
}
}
}
}
27. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
// Tractat com un quadrat...
package ex_for_imbricats;
import java.util.Scanner;
public class Ex27 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix un número imparell més gran que 5: ");
int num = teclat.nextInt();
for (int i = 1; i<= num; i++){
for (int j = 1; j<= num; j++){
if ((j >= i && j <= num-i+1) || (j >= num -i +1 && j <= i)){
System.out.print("* ");
}else{
System.out.print(" ");
}
}
System.out.println("");
}
}
}
// Tractat com a dos triàngles...
package ex_for_imbricats;
import java.util.Scanner;
public class Ex27 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix un número imparell més gran que 5: ");
int num = teclat.nextInt();
for (int i = 1; i <= num; i++) {
if (i <= num / 2 + 1) {
for (int j = 1; j<i ; j++){
System.out.print(" ");
}
for (int j = 1; j <= num - ((i - 1) * 2); j++) {
System.out.print("* ");
}
} else {
for (int j = 1; j <= num-i ; j++) {
System.out.print(" ");
}
for (int j = 1; j <= (i * 2) - num; j++) {
System.out.print("* ");
}
}
System.out.println("");
}
}
}
28. Mostra per pantalla aquest dibuix demanant a parit de la introducció d'un número (mínim 5 i imparell). En el exemple 7
1 2 3 4 5 6 7 1 2 3 4 5 1 2 3 1 1 2 3 1 2 3 4 5 1 2 3 4 5 6 7
// Tractat com un quadrat...
package ex_for_imbricats;
import java.util.Scanner;
public class Ex28 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix un número imparell més gran que 5: ");
int num = teclat.nextInt();
for (int i = 1; i<= num; i++){
for (int j = 1; j<= num; j++){
if ((j >= i && j <= num-i+1) || (j >= num -i +1 && j <= i)){
if (i <= num / 2 +1 ){
System.out.print((j-i+1) + " ");
}else{
System.out.print((j+i-num) +" ");
}
}else{
System.out.print(" ");
}
}
System.out.println("");
}
}
}
29. Mostra per pantalla aquesta "representació" a partir de la introducció de dos números imparells i es segon més gran que el primer (en el exemple 7 i 9).
* # * # o # * # * # * # * o * # * # * # * # o # * # * o o o o o o o o o * # * # o # * # * # * # * o * # * # * # * # o # * # *
Pas previ:
* # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # * # *
package ex_for_imbricats;
import java.util.Scanner;
public class EX29 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix el número de línies: ");
int lin = teclat.nextInt();
System.out.print("Introdueix el número de columnes: ");
int col = teclat.nextInt();
for (int i = 1; i <= lin; i++) {
if (i % 2 == 1) {
for (int j = 1; j <= col; j++) {
if (i == lin / 2 + 1 || j == col / 2 + 1) {
System.out.print("0 ");
} else {
if (j % 2 == 1) {
System.out.print("* ");
} else {
System.out.print("# ");
}
}
}
} else {
for (int j = 1; j <= col; j++) {
if (i == lin / 2 + 1 || j == col / 2 + 1) {
System.out.print("0 ");
} else {
if (j % 2 == 1) {
System.out.print("# ");
} else {
System.out.print("* ");
}
}
}
}
System.out.println("");
}
}
}
30. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número (en el exemple 5).
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
package ex_for_imbricats;
import java.util.Scanner;
public class Ex30 {
public static void main(String[] args) {
Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix el número de línies: ");
int lin = teclat.nextInt();
for (int i = 1; i <= lin; i++) {
// if (i==1 || i==5) {
for (int vegades = 1; vegades <= lin; vegades++) {
for (int j = 1; j <= vegades; j++) {
System.out.print("* ");
}
System.out.print(" ");
}
System.out.println("");
}
}
}