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

De wikiserver
Dreceres ràpides: navegació, cerca
Línia 212: Línia 212:
 
</pre>
 
</pre>
 
<!--
 
<!--
 +
<source lang="java">
 
package daw;
 
package daw;
  
Línia 265: Línia 266:
  
 
}
 
}
 +
</source>
 
-->
 
-->
  
Línia 275: Línia 277:
 
     *    *  *    *  *  *    *  *  *  *    *  *  *  *  *  
 
     *    *  *    *  *  *    *  *  *  *    *  *  *  *  *  
 
</pre>
 
</pre>
 +
<!--
 +
<source lang="java">
 +
package daw;
 +
 +
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 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>
 +
-->
 +
  
 
21. 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).  
Línia 284: Línia 319:
 
     * * * * * * * * *   
 
     * * * * * * * * *   
 
</pre>
 
</pre>
 +
 +
<!--
 +
<source lang="java">
 +
package daw;
 +
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 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>
 +
-->
 +
  
 
22. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número imparell més gran de 3.  
 
22. Mostra per pantalla aquesta "representació" a partir de la introducció d'un número imparell més gran de 3.  
Línia 297: Línia 371:
 
</pre>
 
</pre>
  
 +
<!--
 +
<source lang="java">
 +
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("");
 +
 +
        }
 +
    }
 +
}
 +
 +
 +
</source>
 +
-->
 
23. Dibuixa un rectangle amb '*' demanant l'alçada (mínim 2) i l'amplada (mínim 2). En el exemple
 
23. Dibuixa un rectangle amb '*' demanant l'alçada (mínim 2) i l'amplada (mínim 2). En el exemple
 
<pre>
 
<pre>
Línia 309: Línia 426:
 
                   *****
 
                   *****
 
</pre>
 
</pre>
 +
<!--
 +
<source lang="java">
 +
package daw;
 +
 +
import java.util.Scanner;
 +
 +
public class Ex23 {
 +
 +
    public static void main(String[] args) {
 +
        Scanner teclat = new Scanner(System.in);
 +
        System.out.print("Si us plau, introduexu l'amplada del rectàngle (com a mínim 2): ");
 +
        int anchura = teclat.nextInt();
 +
        teclat.nextLine();
 +
 +
        System.out.print("Ara introduexi l'alçada (com a mínim 2): ");
 +
        int altura = teclat.nextInt();
 +
        teclat.nextLine();
 +
        if ((anchura < 2) || (altura < 2)) {
 +
 +
            System.out.print("Ho sento, les dades introduïdes no són correctes, ");
 +
            System.out.println(" el valor mínim per a l'amplada i l'alçada és 2.");
 +
 +
        } else {
 +
 +
            // Línea superior ////////////////////////////////////////////////////////
 +
            for (int i = 1; i <= anchura; i++) {
 +
                System.out.print("*");
 +
            }
  
 +
            // Part intermitja  //////////////////////////////////////////////////////
 +
            for (int i = 2; i < altura; i++) {
 +
                System.out.print("\n*");
 +
                for (int espacios = 2; espacios < anchura; espacios++) {
 +
                    System.out.print(" ");
 +
                }
 +
                System.out.print("*");
 +
            }
 +
            System.out.println();
 +
 +
            // Línea inferior ////////////////////////////////////////////////////////
 +
            for (int i = 1; i <= anchura; i++) {
 +
                System.out.print("*");
 +
            }
 +
        } // else
 +
    }
 +
}
 +
</source>
 +
-->
 
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).  
 
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).  
 
<pre>
 
<pre>

Revisió del 11:30, 20 des 2018

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)

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

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

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:

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

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

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 

2. (30%) ean: 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. A continuació posem alguns exemples d'execució: > Program p = new Program() > p.isValidEAN("1234567890418") true > p.isValidEAN("1234567890419") false > p.isValidEAN("5901234123457") true > p.isValidEAN("5901234123459") false NOTA: Podeu afegir al programa qualsevol mètode o fragment de codi fet a classe.