Diferència entre revisions de la pàgina «ASIX-M3-UF1-A2.5-Exercicis estructura iterativa: recorregut»

De wikiserver
Dreceres ràpides: navegació, cerca
(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....».)
 
Línia 217: Línia 217:
 
</source>
 
</source>
 
<!---->
 
<!---->
 
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, ...
 
 
<source lang="java">
 
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);
 
    }
 
}
 
 
</source>
 
<!---->
 
 
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:
 
<pre>
 
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
 
  ...               
 
</pre>
 
 
Resultat:
 
<pre>
 
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
 
 
...
 
</pre>
 
<!--
 
<source lang="java">
 
package centralcamions;
 
import java.util.Scanner;
 
 
public class CentralCamions {
 
 
 
 
    public static void main(String[] args) {
 
        int numcamio=1, capcamio, carregat,carregatotal=0, numsac=1, pessac=0;
 
        final int NUM_CAMIONS=20;
 
        Scanner lector = new Scanner(System.in);
 
        while (numcamio<NUM_CAMIONS) {
 
            System.out.println("Introdueix capacitat camió: " + numcamio);
 
            capcamio = lector.nextInt();
 
            lector.nextLine();
 
            carregat = 0;
 
            System.out.println("Comença la carrega del camió: " + numcamio);       
 
            while (capcamio>=carregat+pessac){
 
                if (numsac!=1) {
 
                  System.out.println("Carregat sac: " + (numsac-1));
 
                  carregat=carregat+pessac;
 
                  carregatotal=carregatotal+carregat;
 
                }
 
                System.out.println("Introdueix pes sac: " + numsac);
 
                pessac=lector.nextInt();
 
                numsac++;
 
            }
 
            System.out.println("Finalitzada la carrega del camió: " + numcamio);       
 
            System.out.print("Camió "+numcamio+" carregat amb "+carregat+" kilos.");
 
            System.out.println(" Diferencia respecte a capacitat: "+(capcamio-carregat)+" kilos");
 
            numcamio++;         
 
        }
 
        System.out.println("Carrega total: "+carregatotal+"Kilos. Sacs emprats "+ (numsac-1));
 
        System.out.println("");       
 
    }   
 
}
 
</source>
 
-->
 

Revisió del 12:55, 29 oct 2020

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

        }
    }
}