Esercizi

Tutti gli esercizi che seguono, tranne il primo, richiedono normalmente l'uso di cicli annidati, a meno di trucchi più o meno complicati.

Esercizio 1

Scrivere un programma che prende in input una stringa e ne genera una nuova ottenuta sostituendo tutti i caratteri non spazio con asterischi, che provvederà alla fine a stampare. Ad esempio, con input

Ciao a tutti

l'output sarà

**** * *****

Attenzione. Non bisogna semplicemente stampare l'output con gli asterischi che rimpiazzano le lettere, ma bisogna generare una nuova stringa contenente l'output voluto, e poi stampare questa stringa con una unica print.

Esercizio 2 (P4.17)

Scrivete un programma che chieda all'utente un numero intero e, poi, visualizzi tutti i numeri primi minori o uguali a tale numero. Se, ad esempio, l'utente fornisce il numero 12, il programma deve visualizzare:

2
3
5
7
11

Suggerimento. Abbiamo già scritto nelle precedenti lezioni di laboratorio un programma per determinare se un singolo numero è primo. Si tratta fondamentalmente di prendere quel programma e inserirlo dentro un ciclo che gli fa "provare" tutti i numeri da 2 fino al valore immesso dall'utente. 

Esercizio 3 (P4.18)

Scrivere un programma che prende in input un numero intero n, e stampa la tavola pitagorica per i numeri da 1 fino ad n. Ad esempio, se l'utente immette 4, l'output sarà:

 1   2   3   4
2  4   6  8
3  6   9  12
4  8  12  16

In fase iniziale non preoccupatevi della formattazione, ma una volta che il risultato è corretto cercate di far sì che le colonne siano correttamente allineate, usando le f-stringhe.

Suggerimento. Vi servono due cicli annidati, con indici i e j che vanno da 1 ad n. Ogni elemento della tabella è il prodotto dei corrispondenti indici.

Esercizio 4 (P4.41)

Scrivere un programma che prende in input un numero intero n, e visualizza una scacchiera di dimensione n*n. Qui sotto trovate un esempio con n=8.

Esercizio 5 (P4.12)

Scrivere un programma che legga una parola e visualizzi tutte le sue sotto-stringhe, ordinate per lunghezza crescente. Se, ad esempio, l'utente fornisce la string "rum", il programma deve visualizzare:

r
u
m
ru
um
rum

Suggerimento. Usare due cicli annidati. Il ciclo esterna determina la lunghezza della sotto-stringa che si vuole estrarre, il ciclo interno la posizione iniziale da cui si vuole estrarre la sotto-stringa.

Esercizio 6

Scrivere un programma che prende in input una stringa e stampa un tabella con l'elenco dei caratteri presenti nella stringa e per ogni carattere il numero di  volte in cui appare. Ad esempio, se l'input è "pippo" l'output sarà:

p 3
i 1
p 3
p 3
o 1

Notare che i caratteri duplicati come la p viene visualizzata più volte. Non è l'ideale, ma per ora va bene così.

Esercizio 7

Scrivere un programma che prende in input una stringa e stampa tutti caratteri che compaiono una volta sola. Ad esempio, se si inserisce la stringa "matematica" il programma stamperà "eic".

Esercizio 8

Modificare il programma dell'esercizio 3 in modo da aggiungere anche le intestazioni della tabella. Adesso, se l'utente immette 4, l'output dovrà essere:

  * |  1   2   3   4
--------------------
1 | 1  2   3   4
2 | 2  4   6  8
3 | 3  6   9  12
4 | 4  8  12  16
Esercizio 9

Modificare il programma dell'esercizio 6 in modo che i caratteri duplicati compaiano una sola volta. Ad esempio, con l'input "pippo" il programma deve rispondere con

p 3
i 1
o 1
Ultime modifiche: venerdì, 14 novembre 2025, 11:47