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 daw;
 +
 +
/**
 +
* 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 daw;
 +
 +
/**
 +
* 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 daw;
 +
 +
/**
 +
* 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 daw;
 +
 +
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();
 +
            if (valor > 10) {
 +
                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 daw;
 +
 +
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">
 +
</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.
Línia 21: Línia 141:
 
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">
 +
</source>
 +
<!---->
  
 
8. Imprimir 20 asteriscos a la mateixa línia.
 
8. Imprimir 20 asteriscos a la mateixa línia.
  
 +
<source lang="java">
 +
</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">
 +
</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 37: Línia 166:
 
</pre>
 
</pre>
  
 +
<source lang="java">
 +
</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 47: Línia 179:
 
</pre>
 
</pre>
  
 +
<source lang="java">
 +
</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 57: Línia 192:
 
</pre>
 
</pre>
  
 +
<source lang="java">
 +
</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 66: Línia 204:
 
     * * * * *
 
     * * * * *
 
</pre>
 
</pre>
 +
 +
<source lang="java">
 +
</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 75: Línia 217:
 
     *  
 
     *  
 
</pre>
 
</pre>
 +
 +
<source lang="java">
 +
</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 84: Línia 230:
 
     * * * * *
 
     * * * * *
 
</pre>
 
</pre>
 +
 +
<source lang="java">
 +
</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 93: Línia 243:
 
             *
 
             *
 
</pre>
 
</pre>
 +
 +
<source lang="java">
 +
</source>
 +
<!---->
  
 
Algun exercici més:
 
Algun exercici més:
Línia 105: Línia 259:
 
</pre>
 
</pre>
 
<!--
 
<!--
-->
+
 
 
<source lang="java">
 
<source lang="java">
 
package daw;
 
package daw;
Línia 146: Línia 300:
 
}
 
}
 
</source>
 
</source>
 
+
-->
 
 
  
 
18. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.
 
18. Realitzar un programa que mostri el següent dibuix per a un nombre de línies demanat a l'usuari.

Revisió del 11:08, 11 oct 2020

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

package daw;

/**
 * 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 daw;

/**
 * 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 daw;

/**
 * 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 daw;

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();
            if (valor > 10) {
                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 daw;

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.

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)

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

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)

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

Algun exercici més:

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)

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

18. 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 daw;

import java.util.Scanner;


public class Ex18 {

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

        }
    }
}

19. 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 daw;

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

        }
    }

}


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

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


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

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


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

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


package daw;

import java.util.Scanner;

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

        }
    }
}

23. Dibuixa un rectangle amb '*' demanant l'alçada (mínim 2) i l'amplada (mínim 2). En el exemple

         exemple alçada 7 i amplada 5 
 
                   *****
                   *   *
                   *   *
                   *   *
                   *   *
                   *   *
                   *****

24. 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 

25. 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

26. 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.

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

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