M3 - Programació estructurada / Exercicis UF1: Recorregut

De wikiserver
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.

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

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

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

10. Escriu un programa que verifiqui la conjectura de Collatz per qualsevol enter positiu, i que mostri la seqüència corresponent.

Conjectura de Collatz

Donat un número enter positiu la següent successió sempre acaba en 1: si el número és 1 el procés acaba. Sinó, si és parell es divideix entre 2 i si és imparell es multiplica per 3 i se li suma 1.

Exemple si comencem amb el número 6 obtindrem la seqüència següent:

6, 3, 10, 5, 16, 8, 4, 2, 1

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

...