Il ciclo for

Qui trovi un insieme di esercizi che richiedono l'utilizzo del ciclo a conteggio, ossia il ciclo for. Realizza la tua soluzione e poi confronta la tua soluzione con quella proposta dal professore.

Richiami teorici sul ciclo for

L'iterazione definita è realizzata con il ciclo for. Permette di eseguire le stesse istruzioni per un numero di volte prestabilito. Si tratta di un costrutto che non introduce una nuova funzionalità, in quanto è un caso particolare del ciclo while. Tale costrutto viene definito a conteggio in quanto solitamente il suo funzionamento è governato da una variabile contatore:

  • Viene inizializzata ad un valore;

  • Le istruzioni interne al ciclo vengono eseguite fino a che tale contatore soddisfa una certa condizione;

  • Al termine dell'esecuzione delle istruzioni tale contatore subisce una modifica (di solito viene incrementato o decrementato di un valore chiamato passo).

for (inizializzazione; condizione; incremento del contatore)

Esempio:
int contatore;
for (contatore = 1; contatore <= 5; contatore++) {
<istruzioni>
}

In questo caso il ciclo for esegue le istruzioni al suo interno per 5 volte.

Esercizi sul ciclo for

Esercizio 1: Il countdown fino a zero!

Si vuole realizzare un'applicazione che permetta di mostrare a schermo i numeri tipici di un conto alla rovescia, partendo da un valore deciso dall'utente. Tale valore deciso dall'utente deve essere maggiore di 0.

Esempi:
Input: 10 Output: 10 , 9, 8, 7, 6, 5, 4, 3, 2, 1, 0.
Input: 5 Output: 5, 4, 3, 2, 1, 0.

Esercizio 2: Numeri compresi

Si vuole realizzare un'applicazione che permetta di mostrare a schermo i numeri compresi all'interno di un intervallo scelto dall'utente (compresi gli estremi). Fare inserire prima l'estremo sinistro dell'intervallo e poi l'estremo destro e mostrare a schermo i valori maggiori o uguali all'estremo sinistro e minori o uguali all'estremo destro.

ATT: l'estremo destro deve essere maggiore dell'estremo sinistro.

Se l'utente sceglie come estremo sinistro -5 e come estremo destro 2, il programma mostrerà i numeri che vanno da -5 a 2 con gli estremi inclusi.

Esempi:
Input:
-5, 2 Output: -5, -4, -3, -2, -1, 0, 1 , 2
Input: 5,
8 Output: 5, 6, 7, 8

Esercizio 3: La tabellina come siamo abituati

Il professor Tabellino chiede ai suoi studenti di creare un'applicazione in grado di mostrare la tabellina di un numero scelto dall'utente partendo dal numero moltiplicato per zero fino al numero moltiplicato per 10.

Esempi:
Input: 3 Output: 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30.
Input: 2 Output: 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20.

Esercizio 4: La tabellina estesa

Il professor Tabellino chiede ai suoi studenti di creare un'applicazione in grado di mostrare la tabellina di un numero scelto dall'utente partendo dal numero moltiplicato per zero fino al numero moltiplicato per un altro numero scelto dall'utente.

Esempi:
Input: 3
, 5 Output: 0, 3, 6, 9, 12, 15. --> La tabellina del 3 fino a 3*5
Input: 2, 15 Output: 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30. --> La tabellina del 2 fino a 2* 15

Esercizio 5: La tavola pitagorica

Il professor Pitagora chiede ai suoi studenti di creare un'applicazione in grado di mostrare la tavola pitagorica dei numeri che vanno da 1 fino ad un numero scelto dall'utente (non più grande di 25). La tavola pitagorica è una tabella che ha lo stesso numero di righe e colonne. Nella prima riga vi è riportata la tabellina dell'uno, nella seconda riga la tabellina del due... e così via.

Esempi di esecuzione del programma:

Tavola pitagorica grandezza = 5

Esempio di esecuzione dell'esercizio 4.

Tavola pitagorica grandezza = 10

Esempio di esecuzione dell'esercizio 4.

Esercizio 6: numero primo

Realizzare un programma che permetta all'utente di inserire un numero positivo e sia in grado di determinare se tale numero è primo o no.

Ricorda un numero è primo se è divisibile SOLO per 1 e per sé stesso. Ad esempio 5 è primo perché è divisibile solo per 1 e per 5. Mentre 4 non è primo perché oltre ad essere divisibile per 1 e per 4 è anche divisibile per 2.

Suggerimento: Usa il ciclo for per trovare la soluzione e ragiona su quali siano i possibili divisori da controllare...

Esercizio 7: Sheldon Cooper

Il professor Incredulo non si può capacitare della scoperta fatta dal collega Sheldon Cooper. In corridoio, Cooper gli ha confidato la sua scoperta: "Il quadrato di ogni numero naturale n è uguale alla somma dei primi n numeri dispari".

Realizzare un programma che aiuti il professor Incredulo a confermare o smentire la tesi di Sheldon. Chi avrà ragione?

Si noti che la traccia è libera... realizza il programma come meglio credi!

Esercizio 8: Fibonacci

Realizzare un programma che sia in grado di mostrare i primi n numeri della sequenza di Fibonacci, con n scelto dall'utente (nell'intervallo [1, 46]).

La sequenza di Fibonacci è tale per cui i primi due numeri della successione di Fibonacci sono 0 e 1, i successivi sono dati dalla somma dei due numeri precedenti della successione. Storicamente la sequenza di Fibonacci fu creata per descrivere la crescita di una popolazione di conigli nel tempo:

Sequenza di Fibonacci abbinata alla popolazione di conigli

Al mese 0 = Zero coppie di conigli.
Al mese 1 = Una coppia di conigli (appena comprata).
Al mese 2 = Una coppia di conigli (diventata fertile e rimasta incinta).
Al mese 3 = Due coppie di conigli (la coppia iniziale (di nuovo incinta) e una coppia di figli).
Al mese 4 = tre coppie di conigli (la coppia iniziale (di nuovo incinta), la prima coppia di figli (ora fertile e incinta) e la seconda coppia di figli).
Al mese 5 = cinque coppie di conigli (la coppia iniziale (di nuovo incinta), la prima coppia di figli (di nuovo incinta), la seconda coppia di figli (ora incinta), la terza coppia di figli e la prima coppia di figli della prima coppia di figli dei conigli iniziali)...

Esercizio 9: La serie buffa

Realizzare un programma che sia in grado di mostrare i primi n valori (con n compreso tra 1 e 58) della serie buffa definita di seguito.

Definizione della serie buffa: i primi tre elementi della serie valgono 1. In generale avremo che l'elemento i-esimo con i >= 4 è uguale alla somma del valore (i-1) e del valore (i-3).

Quindi avremo:
primo=1
secondo=1
terzo=1

Secondo quanto detto prima avremo così che:

  • quarto=primo+terzo

  • quinto = secondo + quarto... e così via.

Quindi ad esempio i primi n elementi della serie buffa con n=9 sono 1, 1, 1, 2, 3, 4, 6, 9, 13.

Esercizio 10: Conversione da binario a decimale (numeri senza segno)

Realizzare un programma che inserito un numero binario riesca a calcolare il valore decimale associato. Si consideri il numero binario come un numero senza segno.
In particolare il programma deve:

  • Chiedere all'utente da quante cifre sia composto il numero binario;

  • Far inserire le singole cifre binarie (una alla volta) dalla più significativa alla meno significativa (cioè da sinistra verso destra);

  • Mostrare il valore decimale corrispondente.

Esercizio 11: Conversione da binario a decimale (numeri in complemento a 2)

Realizzare un programma che inserito un numero binario riesca a calcolare il valore decimale associato. Si consideri il numero binario come un numero con segno in notazione in complemento a 2.
In particolare il programma deve:

  • Chiedere all'utente da quante cifre sia composto il numero binario;

  • Far inserire le singole cifre binarie (una alla volta) dalla più significativa alla meno significativa (cioè da sinistra verso destra);

  • Mostrare il valore decimale corrispondente.

Esercizio 12: L'orario seguente

Realizzare un programma che permetta all'utente di inserire i dati relativi all'orario, ossia ora, minuti e secondi. In seguito il programma deve mostrare in output i 10 orari successivi (quelli che un orologio mostrerebbe nei 10 secondi successivi).

Suggerimento: Memorizzare il valore 10 in una costante da usare nel programma! Perché questo suggerimento ti aiuterebbe a fare della buona programmazione?

Esempi di esecuzione del programma:

Esercizio 13: Il metodo di Cramer

Realizzare un programma che permetta all'utente di trovare le soluzioni di un sistema lineare di due equazioni in due incognite usando il metodo di Cramer.

Ripassare il metodo di Cramer in questo sito.

Chiedere inizialmente all'utente quanti sistemi lineari si vuole risolvere e tramite un ciclo for si permette all'utente di inserire i valori a1, b1, c1, a2, b2, c2 che servono per trovare la soluzione del sistema. Infine, stampare il risultato ossia i valori di x e y che soddisfano il sistema! (Att. il sistema potrebbe essere impossibile o indeterminato!)

Esercizi di ripasso

Esercizio 14: Calcolo della media tra 6 numeri positivi

Realizzare un programma che permetta all'utente di inserire 6 numeri reali ed il programma restituisce la somma e la media di tali numeri.

Esercizio 15: Massimo tra 7 valori inseriti dall'utente

Realizzare un programma che permetta all'utente di inserire 7 numeri reali ed il programma restituisce il valore massimo inserito dall'utente.

Esercizio 16: Minimo tra n valori inseriti dall'utente

Realizzare un programma che permetta all'utente di scegliere quanti valori inserire dalla tastiera. Memorizzare tale valore nella variabile n e calcolare il valore più piccolo inserito dall'utente.

Esempio:
Input: n = 5 --> 4.5 -3 9.4 15 2
Output: "Il valore minimo inserito è: -3"

Esercizio 17: Temperature polari?

Realizzare un programma che permetta all'utente di inserire n temperature. Il programma deve indicare quante di tali temperature sono sotto lo zero, quante uguali a 0 e quante maggiori di 0.

Esempio:
Input: n = 5 --> 4.5 -3 9.4
0 2
Output: "
Temperature sotto lo zero = 1 Temperature uguali a zero = 1 Temperature sopra lo zero = 3"

Esercizio 18: Olimpiadi di salto in lungo!

Realizzare un programma che consenta al giudice della gara di salto in lungo di inserire le misure dei diversi salti eseguiti da un atleta. Il programma chiede all'utente quante misure dei salti si vogliono inserire. Successivamente permette all'utente di inserire le n misure, ed infine viene mostrato a schermo il valore del salto peggiore, migliore e la media di tutti i salti.

Esempio:
Input: n = 5 --> 6.5 8.0 7.3 6.9 7.1
Output: "Salti effettuati = 5 Miglior salto = 8.0 Peggior salto = 6.5 Media dei salti = 7.16"

Nota bene: Controllare l'input inserito dall'utente. Un valore negativo non è ammissibile come misura di un salto!

Esercizio 19: Challenge editoriale!!

Marcus l'editore di libri di Thor Sapiens ha una grande passione per i numeri. Infatti, ogni libro della sua casa editrice stampa nel piè di pagina i numeri di pagina partendo dal numero 1.

Marcus è interessato a conoscere quante cifre vengono stampate in un libro con n pagine.
Esempio:
Input n = 8
Output "il numero di cifre stampate in un libro con 8 pagine è 8"

Input n = 15
Output "Il numero di cifre stampate in un libro con 15 pagine è 21"

Infatti, con 15 pagine vengono stampate: 1 cifra per i primi nove numeri (che vanno da 1 a 9) e due cifre per i sei numeri successivi (che vanno da 10 a 15). Dunque, 1*9 + 2 *6 = 21.

Realizzare un programma che partendo dal numero di pagine sia in grado di ottenere il numero di cifre stampate all'interno dei piè di pagina di tutto il libro.

Esercizio 20: Challenge editoriale bis!!

Marcus l'editore di libri di Thor Sapiens ha una grande passione per i numeri. Infatti, ogni libro della sua casa editrice stampa nel piè di pagina i numeri di pagina partendo dal numero 1.

Marcus è interessato a conoscere da quante pagine è composto un libro conoscendo che nel piè di pagina vengono stampate n cifre.
Esempio:
Input n = 8
Output "
Il numero di pagine del libro con 8 cifre nel piè di pagina è 8"

Input n = 21
Output "Il numero di pagine del libro con
21 cifre nel piè di pagina è 15"

Infatti, le 21 cifre vengono pagine vengono stampate: 1 cifra per i primi nove numeri (che vanno da 1 a 9) e due cifre per i sei numeri successivi (che vanno da 10 a 15). Dunque, le quindici pagine sono dovute al fatto che 15 = (9/1) + (12/2) = 9 + 6.

Realizzare un programma che partendo dal numero di cifre usate nei piè di pagina di un libro sia in grado di ottenere il numero di pagine da cui è composto il libro.