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....».)
 
 
(Hi ha 18 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
 
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.
 
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.
 +
<!--
 +
<source lang="python">
 +
'''
 +
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.
 +
'''
 +
print("Més gran i més petit d'una seqüencia de números")
 +
 +
# Accedir al primer element
 +
num = int(input("Introdueix un valor positiu (per acabar negatiu): "))
  
<source lang="java">
+
# Inicialitzar tractament
package exrecorregut;
+
max = num
 +
min = num
  
import java.util.Scanner;
+
# Mentre no ultim element
 +
while num >= 0:
  
/**
+
  # Tractar_element
* Escriu un programa que llegeixi números enters positius i mostri el més petit
+
  if num > max:
* i el més gran. El programa finalitzarà quan ens introdueixin un número
+
    max = num
* negatiu.
+
  if num < min:
*/
+
    min = num
public class Ex1 {
+
 
 +
  # Obtenir següent element
 +
  num = int(input("Introdueix un valor positiu (per acabar negatiu): "))
  
    public static void main(String[] args) {
+
# Tractament_final  
        Scanner teclat = new Scanner(System.in);
+
print("El valor màxim és: ", max)
        //Declaració de variables
+
print("El valor mínim és: ", min)
        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);
 
    }
 
}
 
 
</source>
 
</source>
<!---->
+
-->
 +
 
 
2. Donat un número llegit per teclat, calcula el número de dígits que té.
 
2. Donat un número llegit per teclat, calcula el número de dígits que té.
 +
<!--
 +
<source lang="python">
 +
'''
 +
Donat un número llegit per teclat, calcula el número de dígits que té.
 +
'''
 +
print("Càlcul del nombre de dígits d'un número")
  
<source lang="java">
+
# Accedir al primer element
package exrecorregut;
+
num = int(input("Introdueix un valor positiu: "))
  
import java.util.Scanner;
+
# Inicialitzar tractament
 +
 
 +
digits = 0
  
/**
+
# Mentre no ultim element
* Donat un número llegit per teclat, calcula el número de dígits que té.
+
while num > 0:
*/
 
public class Ex2 {
 
  
    public static void main(String[] args) {
+
  # Tractar_element
        Scanner teclat = new Scanner(System.in);
+
  digits += 1
        //Declaració de variables
+
   
        int num, digits = 0;
+
  # Obtenir següent element  
        // Accedir al primer element
+
  num = num // 10
        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  
        // Tractament_final  
+
print("El número té %d dígits" %digits)
        System.out.println("El número té " + digits + " dígits");
 
 
 
    }
 
}
 
 
</source>
 
</source>
<!---->
+
-->
  
 
3. Donat un número llegit per teclat, realitzar la suma de tots els dígits del número.
 
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
 
Per exemple si introdueixen el valor 1238, s'imprimirà el valor : 1+2+3+8 --> 14
 
<source lang="java">
 
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);
 
 
    }
 
}
 
</source>
 
<!---->
 
  
 
4. Donat un número llegit per teclat, realitzar la suma de tots els dígits parells del número.
 
4. Donat un número llegit per teclat, realitzar la suma de tots els dígits parells del número.
 
<source lang="java">
 
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);
 
 
    }
 
 
}
 
</source>
 
<!---->
 
  
 
5. Donat un número llegit per teclat, determina el número de dígits més grans que 5.
 
5. Donat un número llegit per teclat, determina el número de dígits més grans que 5.
 
<source lang="java">
 
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");
 
 
    }
 
}
 
</source>
 
<!---->
 
  
 
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.  
 
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.  
Línia 183: Línia 75:
 
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
 
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
  
<source lang="java">
+
7. Escriu un programa que llegeixi números enters positius (finalitzarà amb la introducció de -1) i mostri quants números parells han sortit, quants números imparells han sortit, la suma del números parells, la suma del números imparells i la resta de la suma dels parells menys la suma dels imparells.
package exrecorregut;
 
  
import java.util.Scanner;
+
Per exemple si la seqüència de números és: 7 6 11 10 4 5 8 10 3 8 -1, mostrarà:
  
/**
 
* 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();
 
 
        }
 
    }
 
}
 
</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>
 
<pre>
Camió Capacitat Sac Capacitat      Camió Capacitat Sac Capacitat      Camió Capacitat Sac Capacitat
+
Parells: 6
     
+
Imparells: 4
    1    22000    1    3000            2    18000    5    3000            3    18000    7    9000
+
Suma parells: 46
                  2    5000                          6    8000                          8    7000
+
Suma imparells: 26
                  3    9000
+
Resta de sumes: 20
                  4    3000
+
</pre>
  
    4    20000    9    7000            5    28000  12    5000            6    20000  16    4000
+
8. Escriu un programa que llegeixi dos números enters positius i mostri i sumi tots els nombres parells que van des del primer número fins el segon (ambdós inclosos). Cal controlar que el segon número introduït és més gran que el primer.
                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
+
Exemple: num1 = 14 i num2 = 5 mostrarà un missatge d'error.
                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
+
Exemple: num1 = 5 i num2 = 14 mostrarà:  
                32    3000                        35    6000                        38    3000
 
                33    9000                        36    6000                        39    7000
 
                                                                                        40    5000
 
  ...               
 
</pre>
 
 
 
Resultat:
 
 
<pre>
 
<pre>
Camió    Sacs que carrega    Càrrega que portarà      Camió    Sacs que carrega    Càrrega que portarà
+
Números parells: 6 8 10 12 14
 
+
Suma: 50
  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>
 
</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ó de 16:41, 30 nov 2021

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.

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

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

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

5. Donat un número llegit per teclat, determina el número de 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

7. Escriu un programa que llegeixi números enters positius (finalitzarà amb la introducció de -1) i mostri quants números parells han sortit, quants números imparells han sortit, la suma del números parells, la suma del números imparells i la resta de la suma dels parells menys la suma dels imparells.

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

Parells: 6
Imparells: 4
Suma parells: 46
Suma imparells: 26
Resta de sumes: 20

8. Escriu un programa que llegeixi dos números enters positius i mostri i sumi tots els nombres parells que van des del primer número fins el segon (ambdós inclosos). Cal controlar que el segon número introduït és més gran que el primer.

Exemple: num1 = 14 i num2 = 5 mostrarà un missatge d'error.

Exemple: num1 = 5 i num2 = 14 mostrarà:

Números parells: 6 8 10 12 14
Suma: 50