ASIX-M3-UF1-A2.5-Exercicis estructura iterativa: recorregut

De wikiserver
La revisió el 11:54, 29 oct 2020 per Rsort (Discussió | contribucions) (Es crea la pàgina amb «1. Escriu un programa que llegeixi números enters positius i mostri el més petit i el més gran. El programa finalitzarà quan ens introdueixin un número negatiu....».)
(dif) ← Versió més antiga | Versió actual (dif) | Versió més nova → (dif)
Dreceres ràpides: navegació, cerca

1. Escriu un programa que llegeixi números enters positius i mostri el més petit i el més gran. El programa finalitzarà quan ens introdueixin un número negatiu.

package exrecorregut;

import java.util.Scanner;

/**
 * Escriu un programa que llegeixi números enters positius i mostri el més petit
 * i el més gran. El programa finalitzarà quan ens introdueixin un número
 * negatiu.
 */
public class Ex1 {

    public static void main(String[] args) {
        Scanner teclat = new Scanner(System.in);
        //Declaració de variables
        int num, max, min;
        // Inicialitzar tractament
        max = Integer.MIN_VALUE;
        min = Integer.MAX_VALUE;
        // Accedir al primer element
        System.out.println("Introdueix un valor positiu + "
                + "(per acabar negatiu)");
        num = teclat.nextInt();
        // Mentre no ultim element 
        while (num >= 0) {
        // Tractar_element
            if (num > max) {
                max = num;
            }
            if (num < min) {
                min = num;
            }
        // Obtenir següent element 
            System.out.println("Introdueix un valor positiu + "
                    + "(per acabar negatiu)");
            num = teclat.nextInt();
        }
        // Tractament_final 
        System.out.println("El valor màxim és: " + max);
        System.out.println("El valor mínim és: " + min);
    }
}

2. Donat un número llegit per teclat, calcula el número de dígits que té.

package exrecorregut;

import java.util.Scanner;

/**
 * Donat un número llegit per teclat, calcula el número de dígits que té.
 */
public class Ex2 {

    public static void main(String[] args) {
        Scanner teclat = new Scanner(System.in);
        //Declaració de variables
        int num, digits = 0;
        // Accedir al primer element
        System.out.print("Introdueix un valor positiu:");
        num = teclat.nextInt();
        // Mentre no ultim element 
        while (num > 0) {
            // Tractar_element
            digits++;
            // Obtenir següent element 
            num = num / 10;

        }
        // Tractament_final 
        System.out.println("El número té " + digits + " dígits");

    }
}

3. Donat un número llegit per teclat, realitzar la suma de tots els dígits del número.

Per exemple si introdueixen el valor 1238, s'imprimirà el valor : 1+2+3+8 --> 14

package exrecorregut;

import java.util.Scanner;

/**
 * Donat un número llegit per teclat, realitzar la suma de tots els dígits del número.
 */
public class Ex3 {

    public static void main(String[] args) {
        Scanner teclat = new Scanner(System.in);
        //Declaració de variables
        int num, suma = 0;
        // Accedir al primer element
        System.out.print("Introdueix un valor positiu:");
        num = teclat.nextInt();
        // Mentre no ultim element 
        while (num > 0) {
           // Tractar_element
           suma=suma+(num%10);
           // Obtenir següent element 
           num=num/10;                                    
        }
        // Tractament_final 
        System.out.println("La suma dels dígits és: "+suma);

    }
}

4. Donat un número llegit per teclat, realitzar la suma de tots els dígits parells del número.

package exrecorregut;

import java.util.Scanner;

/**
 * Donat un número llegit per teclat, realitzar la suma de tots els dígits parells del número.
 */
public class Ex4 {

    public static void main(String[] args) {
        Scanner teclat = new Scanner(System.in);
        int num, mod, suma = 0;
        System.out.print("Introdueix un valor positiu:");
        num = teclat.nextInt();
        while (num > 0) {
            mod = (num % 10);
            //Si és parell, sumo
            if (mod % 2 == 0) {
                suma = suma + mod;
            }
            num = num / 10;
        }
        System.out.println("La suma dels dígits parells és: " + suma);

    }

}

5. Donat un número llegit per teclat, determina el número de dígits més grans que 5.

package exrecorregut;

import java.util.Scanner;

/**
 * Donat un número llegit per teclat, determina el número de dígits més grans que 5.
 */
public class Ex5 {

    public static void main(String[] args) {
        Scanner teclat = new Scanner(System.in);
        int num, mod, quants = 0;
        System.out.print("Introdueix un valor positiu:");
        num = teclat.nextInt();
        while (num > 0) {
            if (num%10>5){
                quants++;
            }
            num=num/10;                        
        }
        System.out.println("Hi ha "+quants+" dígits més grans que 5");

    }
}

6. Escriu un programa que llegeixi números enters positius (finalitzarà amb la introducció de -1) i mostri totes les parelles de números consecutius que apareixen a la seqüència.

Per exemple si la seqüència de números és: 7 10 11 23 4 5 8 10 11 12 -1, mostrarà: 10 11, 4 5, 10 11, 11 12

package exrecorregut;

import java.util.Scanner;

/**
 * Escriu un programa que llegeixi números enters positius (finalitzarà amb la introducció de -1) 
 * i mostri totes les parelles de números  consecutius que apareixen a la seqüència.
 */
public class Ex6 {

    public static void main(String[] args) {
        Scanner teclat = new Scanner(System.in);
        int anterior, actual;
        System.out.println("Introdueix un valor positiu + "
                + "(per acabar -1");
        actual = teclat.nextInt();
        anterior = actual;

        while (actual != -1) {
            if (actual == anterior + 1) {
                System.out.println(anterior + "-" + actual);

            }
            anterior = actual;
            System.out.println("Introdueix un valor positiu + "
                    + "(per acabar -1");
            actual = teclat.nextInt();

        }
    }
}

7. Escriu un programa que mostri i sumi n (entrada per teclat) nombres de la següent successió de números: 2, 4, 8, 6, 36, 72, 70, 4900, 9800 ...

  • La lògica de la sèrie és: elevar al quadrat, multiplicar per dos, restar dos, elevar al quadrat, ...
package ex_recorregut;

import java.util.Scanner;

/**
 * Escriu un programa que mostri i sumi n (entrada per teclat) nombres de la següent successió de números: 
 * 2, 4, 8, 6, 36, 72, 70, 4900, 9800 ... 
 * La lògica de la sèrie és: elevar al quadrat, multiplicar per dos, restar dos, elevar al quadrat, ...
 */
public class Ex7 {
    public static void main(String[] args) {
        Scanner teclat = new Scanner(System.in);
       
        int numSeq, valorSeq, suma=0;
        System.out.println("Introdueix el número d'elements de la seqüència: ");
        int num = teclat.nextInt();
        if (num > 0){
            numSeq = 0;
            valorSeq = 2;
            System.out.print("Seqüència: "+valorSeq+" ");
            suma = valorSeq;    
      
            while (numSeq < num) {
              numSeq++;
              switch (numSeq%3){
                  case 0:
                    valorSeq *= 2;
                    break;
                case 1:
                    valorSeq -= 2;
                    break;
                case 2:
                    valorSeq *= valorSeq;
                    break;
        
                }
                System.out.print(valorSeq + " ");
                suma += valorSeq;
            }
        }    
        System.out.println("");     
        System.out.println("El resultat de la suma és: "+ suma);
    }
}

8. Una central distribueix cal cap a diferents sucursals. Disposen d'un lloc de càrrega a on van arribant sacs amb pesos variables. L'empresa disposa d'una flota de camions amb capacitat de càrrega diferents. Es pretén establir un protocol consistent en carregar 20 camions. Un camió no es pot carregar amb més quilos que la seva capacitat i marxarà si amb el següent sac ja supera aquesta capacitat. L'empresa vol un programa que li demani el treballador la capacitat del camió i el pes dels sacs, indicant si ha de carregar el sac o enviar-lo al seu destí i començar a carregar un altre. El procés continua fins que s'hagin omplert els 20 camions, moment en el que sortirà un missatge amb el text "Finalitzada la càrrega del dia"

Exemple:

 Camió Capacitat Sac Capacitat       Camió Capacitat Sac Capacitat       Camió Capacitat Sac Capacitat
       
    1    22000    1     3000            2    18000    5     3000            3    18000    7    9000
                  2     5000                          6     8000                          8    7000
                  3     9000
                  4     3000

    4    20000    9     7000            5    28000   12     5000            6    20000   16    4000
                 10     9000                         13     9000                         17    3000
                 11     4000                         14     9000                         18    5000
                                                     15     3000                         19    4000
                                                                                         20    3000

    7    22000   21     4000            8    18000   26     9000            9    20000   28    8000
                 22     5000                         27     4000                         29    3000
                 23     6000                                                             30    5000
                 24     3000                              
                 25     3000

   10    20000   31     5000           11    20000   34     5000           12    28000   37    7000
                 32     3000                         35     6000                         38    3000 
                 33     9000                         36     6000                         39    7000
                                                                                         40    5000
   ...                 

Resultat:

 Camió    Sacs que carrega    Càrrega que portarà       Camió    Sacs que carrega    Càrrega que portarà

   1      1,2,3 i 4               20000                   2      5 i 6                   11000

   3      7 i 8                   16000                   4      9, 10 i 11              20000

   5      12, 13, 14 i 15         26000                   6      16, 17, 18, 19 i 20     19000

   7      21, 22, 23, 24 i 25     21000                   8      26 i 27                 13000

   9      28, 29 i 30             16000                  10      31, 32 i 33             17000

  11      34, 35 i 36             17000                  12      37, 38, 39 i 40         22000

...