M3 - Programació estructurada / Exercicis UF1: For-Solucions

De wikiserver
Dreceres ràpides: navegació, cerca

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("");

        }

    }
}