Diferència entre revisions de la pàgina «M3 - Programació estructurada / Exercicis UF1: For»

De wikiserver
Dreceres ràpides: navegació, cerca
 
Línia 1: Línia 1:
 
1. Imprimir els números del 1 al 100.
 
1. Imprimir els números del 1 al 100.
 
<source lang="java">
 
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);
 
 
        }
 
 
    }
 
 
}
 
</source>
 
<!---->
 
  
 
2. Imprimir els números parells del 0 al 98.
 
2. Imprimir els números parells del 0 al 98.
 
<source lang="java">
 
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);
 
 
        }
 
 
    }
 
 
}
 
</source>
 
<!---->
 
  
 
3. Imprimir els números del 100 al 1.
 
3. Imprimir els números del 100 al 1.
 
<source lang="java">
 
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);
 
                       
 
        }
 
                           
 
    }   
 
}
 
</source>
 
<!---->
 
  
 
4. Demanar cinc números i mostrar la suma.
 
4. Demanar cinc números i mostrar la suma.
 
<source lang="java">
 
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);
 
 
    }
 
}
 
</source>
 
<!---->
 
  
 
5. Igual que l'anterior però només sumant els valors més grans de 10.
 
5. Igual que l'anterior però només sumant els valors més grans de 10.
 
<source lang="java">
 
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);
 
 
    }
 
}
 
</source>
 
<!---->
 
  
 
6. Calcular el producte dels números del 1 al 10.
 
6. Calcular el producte dels números del 1 al 10.
 
<source lang="java">
 
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);
 
    }
 
   
 
}
 
</source>
 
<!---->
 
  
 
7. Demanar cinc números i mostrar el valor més gran.
 
7. Demanar cinc números i mostrar el valor més gran.
  
 
Inicialitzeu max = Integer.MIN_VALUE; i aneu actualitzant max a cada iteració.
 
Inicialitzeu max = Integer.MIN_VALUE; i aneu actualitzant max a cada iteració.
 
<source lang="java">
 
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);
 
    }
 
}
 
</source>
 
<!---->
 
  
 
8. Imprimir 20 asteriscos a la mateixa línia.
 
8. Imprimir 20 asteriscos a la mateixa línia.
 
<source lang="java">
 
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");
 
    }
 
   
 
}
 
</source>
 
<!---->
 
  
 
9. Fem el mateix però el número d’asteriscos el decideix l’usuari.
 
9. Fem el mateix però el número d’asteriscos el decideix l’usuari.
 
<source lang="java">
 
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");
 
 
    }
 
 
}
 
</source>
 
<!---->
 
  
 
10. Com l'anterior però fent un quadrat d'asteriscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:
 
10. Com l'anterior però fent un quadrat d'asteriscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:
Línia 243: Línia 27:
 
     * * * * *
 
     * * * * *
 
</pre>
 
</pre>
 
<source lang="java">
 
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("");
 
           
 
        }
 
       
 
    }
 
   
 
}
 
</source>
 
<!---->
 
  
 
11. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:
 
11. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:
Línia 281: Línia 37:
 
</pre>
 
</pre>
  
<source lang="java">
 
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("");
 
 
        }
 
    }
 
}
 
</source>
 
<!---->
 
  
 
12. Escriu un programa que llegeixi un número N i mostri per pantalla el següent:
 
12. Escriu un programa que llegeixi un número N i mostri per pantalla el següent:
Línia 322: Línia 47:
 
</pre>
 
</pre>
  
<source lang="java">
 
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("");   
 
        }
 
       
 
    }
 
}
 
</source>
 
<!---->
 
  
 
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)
 
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)
Línia 355: Línia 57:
 
</pre>
 
</pre>
  
<source lang="java">
 
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("");
 
           
 
        }
 
 
    }
 
}
 
</source>
 
<!---->
 
  
 
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)
 
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)
Línia 388: Línia 66:
 
     *  
 
     *  
 
</pre>
 
</pre>
 
<source lang="java">
 
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("");
 
    }
 
   
 
}
 
}
 
</source>
 
<!---->
 
  
 
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)
 
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)
Línia 421: Línia 75:
 
     1  
 
     1  
 
</pre>
 
</pre>
 
 
<source lang="java">
 
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(""); 
 
        }
 
    }
 
}
 
</source>
 
<!---->
 
  
 
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)
 
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)
Línia 451: Línia 84:
 
     1  
 
     1  
 
</pre>
 
</pre>
 
 
<source lang="java">
 
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(""); 
 
        }
 
    }
 
}
 
</source>
 
<!---->
 
  
 
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)
 
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)
Línia 481: Línia 93:
 
     5  
 
     5  
 
</pre>
 
</pre>
 
<source lang="java">
 
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("");   
 
        }
 
       
 
    }
 
   
 
}
 
</source>
 
<!---->
 
  
 
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)
 
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)
Línia 526: Línia 113:
 
     7
 
     7
 
</pre>
 
</pre>
 
 
<source lang="java">
 
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("");
 
        }
 
                   
 
    }
 
 
</source>
 
<!---->
 
  
 
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)
 
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)
Línia 568: Línia 124:
 
     1  
 
     1  
 
</pre>
 
</pre>
 
 
<source lang="java">
 
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("");
 
        }
 
                   
 
    } 
 
}
 
</source>
 
<!---->
 
  
 
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)
 
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)
Línia 607: Línia 133:
 
     * * * * *
 
     * * * * *
 
</pre>
 
</pre>
 
<source lang="java">
 
// 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("");
 
 
        }
 
    }
 
}
 
</source>
 
<!---->
 
 
<source lang="java">
 
// 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("");
 
 
        }
 
    }
 
}
 
</source>
 
<!---->
 
  
 
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)
 
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)
Línia 681: Línia 142:
 
             *
 
             *
 
</pre>
 
</pre>
 
<source lang="java">
 
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("");
 
 
        }
 
 
    }
 
 
}
 
</source>
 
<!---->
 
  
 
Algun exercici més:
 
Algun exercici més:
Línia 729: Línia 153:
 
     *  *  *
 
     *  *  *
 
</pre>
 
</pre>
 
 
<source lang="java">
 
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("");
 
        }
 
 
    }
 
 
}
 
</source>
 
<!---->
 
  
 
24. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.
 
24. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.
Línia 783: Línia 164:
 
                           *        *
 
                           *        *
 
</pre>
 
</pre>
 
<source lang="java">
 
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("");
 
 
        }
 
    }
 
}
 
</source>
 
<!---->
 
  
 
25. Mostra per pantalla aquesta "representació" a partir de la introducció de d'un número imparell més gran de 3.
 
25. Mostra per pantalla aquesta "representació" a partir de la introducció de d'un número imparell més gran de 3.
Línia 830: Línia 178:
 
     * * * * * * *
 
     * * * * * * *
 
</pre>
 
</pre>
 
 
<source lang="java">
 
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("");
 
        }
 
       
 
    }
 
}
 
</source>
 
<!---->
 
  
 
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
 
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
Línia 882: Línia 193:
 
                   * * * * * * *
 
                   * * * * * * *
 
</pre>
 
</pre>
 
<source lang="java">
 
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("");
 
            }
 
        }
 
    }
 
}
 
</source>
 
<!---->
 
  
 
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
 
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
Línia 926: Línia 204:
 
     * * * * * * *
 
     * * * * * * *
 
</pre>
 
</pre>
 
<source lang="java">
 
// 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("");
 
        }
 
    }
 
}
 
</source>
 
<!---->
 
 
<source lang="java">
 
// 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("");
 
        }
 
    }
 
}
 
</source>
 
<!---->
 
  
 
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
 
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
Línia 1.004: Línia 215:
 
     1 2 3 4 5 6 7
 
     1 2 3 4 5 6 7
 
</pre>
 
</pre>
 
<source lang="java">
 
// 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("");
 
        }
 
    }
 
}
 
</source>
 
<!---->
 
  
 
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).  
 
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).  
Línia 1.058: Línia 236:
 
     * # * # * # * # *       
 
     * # * # * # * # *       
 
</pre>
 
</pre>
 
<source lang="java">
 
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("");
 
 
        }
 
    }
 
 
}
 
</source>
 
<!---->
 
  
 
30. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número (en el exemple 5).  
 
30. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número (en el exemple 5).  
Línia 1.124: Línia 245:
 
     *    *  *    *  *  *    *  *  *  *    *  *  *  *  *  
 
     *    *  *    *  *  *    *  *  *  *    *  *  *  *  *  
 
</pre>
 
</pre>
 
 
<source lang="java">
 
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("");
 
 
        }
 
 
    }
 
}
 
</source>
 
<!---->
 
  
 
31. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número (en el exemple 5).  
 
31. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número (en el exemple 5).  
Línia 1.166: Línia 254:
 
     * * * * * * * * *   
 
     * * * * * * * * *   
 
</pre>
 
</pre>
 
 
 
<source lang="java">
 
package ex_for_imbricats;
 
 
import java.util.Scanner;
 
 
public class Ex31 {
 
    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++) {
 
            if (i!=lin){
 
                for (int j=i;j<lin;j++) {
 
                    System.out.print("  ");
 
 
                }
 
                System.out.print("* ");
 
                if (i>1){
 
                    for (int j=1;j<=2*(i-2)+1;j++) {
 
                        System.out.print("  ");
 
                    }
 
                    System.out.print("* ");
 
                }         
 
                System.out.println("");
 
            }
 
            else {
 
                for (int k=1;k<=2*lin-1;k++) {
 
                System.out.print("* ");
 
                }
 
            }
 
        }
 
    }
 
}
 
</source>
 
 
<!---->
 
  
 
32. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número imparell més gran de 3.  
 
32. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número imparell més gran de 3.  
Línia 1.219: Línia 266:
 
                             *                      *  
 
                             *                      *  
 
</pre>
 
</pre>
 
 
<source lang="java">
 
package ex_for_imbricats;
 
 
import java.util.Scanner;
 
 
public class Ex32 {
 
 
    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++) {
 
            //  if (i!=lin){
 
            for (int j = i; j < lin; j++) {
 
                System.out.print("  ");
 
 
            }
 
            System.out.print("* ");
 
            if (i > 1) {
 
                if (i != lin / 2 + 1) {
 
                    for (int j = 1; j <= 2 * (i - 2) + 1; j++) {
 
                        System.out.print("  ");
 
                    }
 
                    System.out.print("* ");
 
                } else {
 
                    for (int j = 1; j <= lin - 1; j++) {
 
                        System.out.print("* ");
 
                    }
 
 
                }
 
            }
 
            System.out.println("");
 
 
        }
 
    }
 
}
 
 
 
</source>
 
<!---->
 
  
 
33. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número imparell més gran de 3 (en el exemple 5).  
 
33. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número imparell més gran de 3 (en el exemple 5).  
Línia 1.277: Línia 280:
 
</pre>
 
</pre>
  
<source lang="java">
 
package ex_for_imbricats;
 
 
import java.util.Scanner;
 
 
public class Ex33 {
 
 
  public static void main(String[] args) {
 
  
    Scanner teclat = new Scanner(System.in);
 
    System.out.print("Si us plau, introduexu un numero imparell: ");
 
    int num = teclat.nextInt();
 
    teclat.nextLine();
 
 
    for (int i=1; i<=num; i++) {
 
        for (int j=1; j<=i; j++){
 
            System.out.print(j+" ");
 
           
 
        }
 
        for (int j=1; j<=2*(num-i)-1; j++){
 
            System.out.print(i+" ");
 
           
 
        }
 
        for (int j=i; j>=1; j--){
 
            if (j!=num) System.out.print(j+" ");         
 
        }
 
      System.out.println("");
 
    }
 
    for (int i=1; i<=num-1; i++) {
 
        for (int j=1; j<=num-i; j++){
 
            System.out.print(j+" ");
 
           
 
        }
 
        for (int j=1; j<=(2*i)-1; j++){
 
            System.out.print(num-i+" ");
 
           
 
        }
 
        for (int j=num-i; j>=1; j--){
 
            System.out.print(j+" ");         
 
        }
 
      System.out.println("");
 
    }
 
 
  }
 
}
 
</source>
 
<!---->
 
<!--
 
 
34. L'objectiu d'aquest exercici és comprovar si un codi EAN és correcte.
 
34. L'objectiu d'aquest exercici és comprovar si un codi EAN és correcte.
  
Línia 1.372: Línia 328:
 
           *
 
           *
 
</pre>
 
</pre>
-->
 

Revisió de 18:35, 10 set 2022

1. Imprimir els números del 1 al 100.

2. Imprimir els números parells del 0 al 98.

3. Imprimir els números del 100 al 1.

4. Demanar cinc números i mostrar la suma.

5. Igual que l'anterior però només sumant els valors més grans de 10.

6. Calcular el producte dels números del 1 al 10.

7. Demanar cinc números i mostrar el valor més gran.

Inicialitzeu max = Integer.MIN_VALUE; i aneu actualitzant max a cada iteració.

8. Imprimir 20 asteriscos a la mateixa línia.

9. Fem el mateix però el número d’asteriscos el decideix l’usuari.

10. Com l'anterior però fent un quadrat d'asteriscos. Per exemple si l'usuari introdueix el valor 5, imprimirà:

    * * * * *
    * * * * *
    * * * * *
    * * * * *
    * * * * *

11. Com l'anterior però fent un quadrat buit. Per exemple si l'usuari introdueix el valor 5, imprimirà:

    * * * * *
    *       *
    *       *
    *       *
    * * * * *


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


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)

    * 
    * * 
    * * * 
    * * * * 
    * * * * *


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)

    * * * * *
    * * * * 
    * * * 
    * * 
    * 

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 

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 

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 

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

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 

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)

            *
          * *
        * * *
      * * * *
    * * * * *

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)

    * * * * *
      * * * *
        * * *
          * *
            *

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)

    *   *   *
      *   * 
    *   *   *
      *   * 
    *   *   *

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
    *       *             *         *
      *   *                 *     * 
        *                     * *  
      *   *                   * *  
    *       *               *     * 
                          *         *

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 * *
    * * * * * * *

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 *
                   * * * * * * *

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

    * * * * * * *
      * * * * * 
        * * *  
          *            
        * * * 
      * * * * *
    * * * * * * *

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

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:

    * # * # * # * # *  
    # * # * # * # * #
    * # * # * # * # *  
    # * # * # * # * #
    * # * # * # * # *  
    # * # * # * # * #
    * # * # * # * # *      

30. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número (en el exemple 5).

    *    *  *    *  *  *    *  *  *  *    *  *  *  *  *    
    *    *  *    *  *  *    *  *  *  *    *  *  *  *  *    
    *    *  *    *  *  *    *  *  *  *    *  *  *  *  *    
    *    *  *    *  *  *    *  *  *  *    *  *  *  *  *    
    *    *  *    *  *  *    *  *  *  *    *  *  *  *  * 

31. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número (en el exemple 5).

            *       
          *   *      
        *       *      
      *           *     
    * * * * * * * * *   

32. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número imparell més gran de 3.

         exemple 5                    exemple 7
            *                            * 
          *   *                        *   * 
        * * * * *                    *       * 
      *           *                * * * * * * * 
    *               *            *               * 
                               *                   * 
                             *                       * 

33. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número imparell més gran de 3 (en el exemple 5).

   1 1 1 1 1 1 1 1 1 
   1 2 2 2 2 2 2 2 1 
   1 2 3 3 3 3 3 2 1 
   1 2 3 4 4 4 3 2 1 
   1 2 3 4 5 4 3 2 1 
   1 2 3 4 4 4 3 2 1 
   1 2 3 3 3 3 3 2 1 
   1 2 2 2 2 2 2 2 1 
   1 1 1 1 1 1 1 1 1 


34. L'objectiu d'aquest exercici és comprovar si un codi EAN és correcte.

El codi EAN és el codi numèric que hi ha als codis de barres. Aquest codi té 13 nombres, l'últim dígit dels quals és un dígit de control que ens assegura que el codi s'ha introduït correctament.

El càlcul d'aquest dígit de control es fa de la següent manera, es detalla amb un exemple, imagineu el codi EAN “ 1234567890418”, on el dígit 8 és el dígit de control, anem a veure d'on surt aquest dígit:

a) Girem el codi (evidentment, sense el dígit de control, que és el que estem calculant): 140987654321

b) Sumem els nombres que estan a les posicions senars (on la posició 1 és la que està més a l'esquerra): 1+0+8+6+4+2 = 21

c) Multipliquem aquest últim dígit per 3: 21 × 3 = 63

d) Sumem els nombres que estan a les posicions parelles: 4+9+7+5+3+1 = 29

e) Calculem la suma dels nombres obtinguts a l'apartat c) i a l'apartat d): 63 + 29 = 92

f) Suposant que el nombre obtingut a l'apartat e) l'anomeno sum, apliquem la següent fórmula per obtenir el dígit de control: (10 - sum % 10) % 10 = 8

Per tant, el codi de control és 8 i el codi EAN és, com ja havíem dit 1234567890418.

El mètode que heu de codificar ha d'esbrinar si donada una cadena que conté un codi EAN, aquest és un codi correcte o no.

Exemples d'execució:

"1234567890418" -> true

"1234567890419" -> false

"5901234123457" -> treu

"5901234123459" -> false

35. Necessitem mostrar un comptador amb 5 dígits, que mostri els números del 0-0-0-0-0 al 9-9-9-9-9, amb la particularitat que s'ha de substituir el número 3 per una E.

36. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número imparell més gran de 3 (en el exemple 5).

          *
        * * *  
      * * * * * 
    * * * * * * * 
  * * * * * * * * * 
    * * * * * * *   
      * * * * * 
        * * *  
          *