Esercizi

Gli esercizi da 1 a 6 sono più o meno di difficoltà cresente. L'esercizio 7 è particolarmente difficile. Gli esercizi da 8 a 11 anticipano l'argomento della prossima lezione.

Esercizio 1

Dato un numero intero n, si chiama fattoriale di n il prodotto dei numeri da 1 fino ad n. Ad esempio, il fattoriale di 4 è 1 * 2 * 3 * 4 = 24. Scrivere un programma che prende in input un numero intero e ne calcola e visualizza il fattoriale.

Suggerimento: prendere spunto dal programma che calcola la somma dei numeri da 1 a n fatto a lezione.

Esercizio 2

Modifica il programma del fattoriale dell'esercizio precedente in modo tale da accettare come input solo numeri positivi. Ogni volta che l'utente immette un numero negativo, il programma chiede di reinserire il dato. Ad esempio, una possibile interazione con il programma può essere la seguente (in grassetto ciò che è immesso dall'utente):

Inserisci un numero positivo: -2 
Il numero deve essere positivo.
Inserisci un numero positivo: -10
Il numero deve essere positivo.
Inserisci un numero positivo: 4
Il fattoriale di 4 è 24.

Esercizio 3

Scrivere un programma che prende in input un numero intero n e visualizza la seguente figura realizzata con gli asterischi:

*
**
***
****

L'ultima riga deve avere n asterischi (qui in figura si suppone l'utente abbia inserito il numero 4).

Suggerimento: si ricordi dell'operazione di ripetizione di stringhe, per cui se volete generare una stringa con 10 asterischi è sufficiente scrivere "*" * 10.

Esercizio 4

Scrivere un programma che prende in input un numero intero n e visualizza la seguente figura realizzata con gli asterischi:

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

Il picco centrale deve avere n asterischi (qui in figura si suppone l'utente abbia inserito il numero 4). 

Suggerimento: convene impostare il programma in modo che ci sia una prima parte che visualizza la prima metà delle righe (quelle dove il numero di asterischi aumentano, vedi esercizio precedente) e una seconda parte con la seconda metà delle righe (dove gli asterischi diminuiscono). Per la seconda parte, una possibilità è di inizializzare la variabile contatore all'inizio del ciclo col valore n-1, e dentro il ciclo decrementare il valore del contatore invece di incrementarlo.

Esercizio 5

Scrivere un programma che prende in input un numero x maggiore o uguale a 1 (non c'è bisono di controllare che l'utente immette un valore corretto, vi potete fidare di lui) e stampa la parte intera del logaritmo in base 2 di x, senza usare nessuna funzione del modulo math. Per far ciò, è sufficiente dividere x per 2 ripetutamente fino a che il numero ottenuto è minore di 2. Il numero di volte che avete fatto la divisione è il risultato che cercate.

Ad esempio, se x=7.5, dividendo per 2 ottenete 3.75, quindi dividendo ancora si ottiene 1.875 che è minore di 2. Poiché abbiamo effettuato due divisioni, il risultato da stampare è 2.

Esercizio 6

Scrivere un programma che usa la libreria ezgraphics che prende in input un numero intero positivo n e visualizza sullo schermo n rettangoli uno dentro l'altro. Ad esempio, se l'utente immette il numero 5, questo potrebbe essere l'output grafico del programma.

Esercizio 7 (difficile)

Scrivete un programma che prende in input un numero intero positivo n e stampa Fn, ovvero l'n-esimo numero di Fibonacci. La successione di Fibonacci si ottiene partendo dai numeri 0 e 1, ed ogni termine successivo è la somma dei due che lo precedono. Esempio: 0, 1, 1, 2, 3, 5, 8, ... Fn è il n-esimo numero in questa successione (iniziando a contare da 0). Ad esempio, se l'input è 6 l'output sarà 8.

Esercizio 8

Scrivere un programma che prende in input un numero intero positivo n e determina se n è primo.

Suggerimento: per determinare se n è primo, sebbene non sia molto efficiente, basta controllare che non è divisibile per nessuno dei numeri da 2 ad n-1.

Esercizio 9

Scrivere un programma che prende in input un numero intero positivo n , quindi legge da tastiera n numeri e ne visualizza la somma. Una possibile interazione con il programma potrebbe essere la seguente (in grassetto ciò che è immesso dall'utente):

Quanti numeri vuoi inserire? 3
Inserisci numero 1: 10
Inserisci numero 2: 5
Inserisci numero 3: 5
La somma dei numeri inseriti è 20

Esercizio 10

Scrivere un programma che accetta in input una sequenza di numeri e, alla fine, ne visualizza la somma. Dopo ogni numero, il programma chiede se l'utente vuole inserire un altro numero oppure no, e si comporta di conseguenza. Ad esempio, una possibile interazione con il programma può essere la seguente (in grassetto ciò che è immesso dall'utente):

Inserisci un numero: 10
Vuoi inserire un altro numero? (S / N): S
Inserisci un numero: 5
Vuoi inserire un altro numero? (S / N): S
Inserisci un numero: 5
Vuoi inserire un altro numero? (S / N): N
La somma dei numeri inseriti è 20.

Esercizio 11

Scrivere un programma che accetta in input una sequenza di numeri e, alla fine, ne visualizza la somma. Il valore speciale -1 indica che l'utente non vuole inserire più numero.

Inserisci un numero: 10
Inserisci un numero: 5
Inserisci un numero: 5
Inserisci un numero: -1
La somma dei numeri inseriti è 20.
Last modified: Sunday, 10 November 2024, 5:18 PM