Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
Sommario
6 – Funzioni – Stringhe - Tuple – Liste ............................................................................................................... 2
Dizionari ............................................................................................................................................................. 6
Funzioni ricorsive .......................................................................................................................................... 6
7 – File – I/O....................................................................................................................................................... 9
8 – File System ................................................................................................................................................. 10
605. Sommatrice
Scrivi una funzione "sommatrice" che somma tra loro tutti gli elementi di una lista di numeri.
606. Moltiplicatore
Scrivi una funzione "moltiplicatrice" che moltiplica tra loro tutti gli elementi di una lista di numeri
607. Palindromo
Scrivi una funzione a cui viene passata una parola e riconosce se si tratta di un palindromo(parole
che si leggono uguali anche al contrario) oppure meno.
610. Istogrammi
Scrivi una funzione che, data una lista di numeri, fornisce in output un
istogramma basato su questi numeri, usando asterischi per disegnarlo. Ad
esempio, data la lista [3,7,9,5] deve produrre questo grafico:
615. paroliamo1
Date due frasi in input, svolgere i seguenti punti:
1) realizzare una terza frase che alterni i caratteri della prima e della seconda frase;
2) realizzare una terza frase che alterni la parola di una con la parola dell'altra;
3) contare le vocali delle due frasi di input
4) contare le consonanti delle due frasi di input
5) raddoppiare le consonanti m e n
6) realizzare un dizionario italiano inglese in cui siete voi a mettere il significato inglese di ogni
parola delle due frasi di input
7) mettete in maiuscolo tutte le iniziali delle due frasi di input
8) stampare tutte le parole delle due frasi che iniziano con una vocale.
617. Presenza
Scrivi una funzione a cui vengono passati un valore e una lista di valori, e che ti dica in output se il
valore passato è presente o meno nella lista.
618. il frequenzimetro
Scrivi una funzione a cui passare una stringa come parametro, e che restituisca un dizionario
Giaccaglini Giorgio - Liceo Scientifico “L. Da Vinci” Jesi pagina 3
eserciziario di programmazione (versione 01-2019)
619. Geometria
Scrivi una funzione che, a scelta dell'utente, calcoli l'area di: -un cerchio -un quadrato -un rettangolo
-un triangolo
620. Min-max-media
Creare un programma che riempia una lista (100 elementi) con numeri casuali da 1 a 1000. Si vuole
conoscere il valore massimo, minimo, la media dei numeri inseriti.
Inoltre, si vuole sapere la percentuale dei pari e dispari inseriti in maniera random.
623. ROT-13
Il ROT-13 è un semplice cifrario monoalfabetico, in cui ogni lettera del messaggio da cifrare viene
sostituita con quella posta 13 posizioni più avanti nell'alfabeto.
Scrivi una semplice funzione in grado di criptare una stringa passata, o decriptarla se la stringa è già
stata precedentemente codificata.
suggerimento: si usi un dizionario per… e nel caso in cui nella stringa da decifrare ci sia una “NON”
lettera (numero o carattere), quella NON lettera non deve essere sostituita
624. gara (liste)
In una gara podistica ci sono 5 partecipanti. Si inseriscano in input i nomi dei partecipanti (in una
lista) e i relativi tempi (in un’altra lista). Si stampi poi la graduatoria di arrivo dal più veloce al più
lento. Suggerimento: probabilmente c’è bisogno di altre liste di appoggio e dei metodi studiati sulla
dispensa.
625. dati 2 liste di numeri naturali di N e M numeri ciascuna (N e M da chiedere in input e le liste da
riempire sempre in input), eseguire le seguenti operazioni:
1) costruire una lista di N+M elementi unendo le due liste date in input;
2) costruire una lista di N+M elementi (elementi delle liste di input) che sia però ordinata in ordine
decrescente.
3) costruire una lista con solo gli elementi PARI delle due liste di input (si ordini in senso crescente la
lista ottenuta).
626. Carrello elettronico (con liste)
Si scriva un programma che calcoli la spesa che si sostiene in un supermercato. Ad ogni inserimento
del prodotto nel carrello, il programma memorizza il bene inserito e il suo relativo costo. Ogni volta
che si raggiunge una spesa multipla di 50 euro (>50, >100, >150...) il programma deve fornire un
avvertimento del tipo: "Attenzione hai raggiunto la cifra di 50 euro...100 euro... Alla fine del ciclo, si
deve stampare lo scontrino (elenco dei beni acquistati con relativi prezzi e il totale della spesa).
Dizionari
Gli esercizi seguenti vanno svolti usando i dizionari. Da pensare bene la struttura dati.
Funzioni ricorsive
Nota: una funzione ricorsiva è una funzione che chiama se stessa.
Esempio:
Si definisce fattoriale di un numero naturale n (e si indica con n!), il prodotto dei numeri interi positivi
minori o uguali a tale numero.
n! = n*(n-1)*(n-2)*…….3*2*1
È possibile eseguire il calcolo del fattoriale in modo ricorsivo, nel seguente modo:
per n=0; n! = 1;
return 1
else:
return n*fatt(n-1)
Di seguito è riportato lo schema grafico della ricorsione nel caso del fattoriale del numero 4.
Funzione invocante
main()
24
fatt(4)
Fattoriale 6
4*Fatt(3)
4
Fattoriale 2
3*Fatt(2)
3
Fattoriale 1
2*Fatt(1)
2
Fattoriale
1*Fatt(0)
1
664. Potenza
Calcolare con una funzione ricorsiva la potenza di un numero n fornito in input
665. Base 2
Convertire un numero decimale in un numero binario utilizzando la chiamata a funzione (funzione
ricorsiva). Ricordarsi del procedimento che divide il numero per due, nel calcola il resto. Il
procedimento ricorsivo termina quando la divisione per 2 è uguale a zero
666. Somma
Scrivere una funzione ricorsiva per calcolare la somma dei primi N numeri naturali, dove N è dato in
input dall’utente
667. Somma di due numeri
Scrivere una funzione ricorsiva che calcola l’operazione di somma sfruttando la seguente definizione
induttiva:
somma(x,y) = x se y=0;
somma(x,y) = 1 + somma(x, y-1) se y>0;
668. Prodotto di due numeri
Scrivere una funzione ricorsiva che calcola l’operazione di prodotto sfruttando la seguente
definizione:
prodotto(x,y)=0 se y=0;
prodotto(x,y) = somma(x, prodotto(x,y-1) se y>0
669. Contrario
Scrivi un programma che legge un numero intero positivo e stampa le cifre al contrario utilizzando
una funzione ricorsiva; esempio: letto 765, stampi 567
7 – File – I/O
701. secondi
Implementare un software che legge dal file “secondi.txt” un valore intero che rappresenta i
secondi trascorsi dalla mezzanotte di un dato giorno e che trasforma questo valore,
visualizzandolo su schermo in ore:minuti:secondi. Ad esempio, se il valore caricato dal file
“secondi.txt” fosse 4000 (uguale a 3600, 1 ora, + 360, 6 minuti, + 40), il programma scriverebbe su
video 1 : 6 : 40. I numeri vanno poi memorizzati nello stesso formato nel file “orario.txt”.
702. media
Dato un file denominato “numeri.txt” contenente esattamente 10 numeri interi, caricarne il
contenuto su una lista, procedere al calcolo della media aritmetica dei numeri inseriti,
visualizzare il risultato a video e salvarlo nel file “media.txt”
704. ordinamenti
Scrivere un programma che legge dal file sequenza.txt una sequenza di interi. La ordina in modo
crescente e la salva ordinata sul file ordinati.txt.
Passo successivo: modificare l’esercizio precedente in modo che la sequenza ordinata sia salvata
sullo stesso file sequenza.txt
706. doppie
Scrivere un programma che letto un test da un file, elimini dal file tutte le doppie e riscrivi il
risultato su altro file
8 – File System
800. MB
Scrivi una funzione che calcoli la somma delle dimensioni dei file presenti nella Cartella in cui si
sta operando, e che la restituisca in output espressa in MB
801. Backup
Scrivi una funzione "backup" che sia in grado di effettuare copie di backup di determinati tipi di
file, con le seguenti caratteristiche:
-Percorso da Scansionare, Percorso della Cartella di Backup e Tipologia dei File da copiare
vengono passate dall'Utente in esecuzione;
-Lo Script deve verificare la presenza o meno della Cartella di Backup al percorso fornito, e
qualora non fosse presente crearla in maniera autonoma.
802. Elenco
Stampare l’elenco dei file e cartelle che si trovano nella cartella corrente. Poi fate una versione più
evoluta in cui si fornisce in input il path della cartella di cui si vuole stampare l’elenco dei file della
cartella.
805. La cercatrice
Scrivi una funzione "cercatrice" che scansioni un dato percorso di sistema alla ricerca di file .pdf.
La funzione deve avere le seguenti caratteristiche:
Il percorso fornito dev'essere anzitutto validato, in quanto deve portare a una cartella esistente;
Deve fornire un elenco dei file .pdf (con relativo percorso) man mano che questi vengono trovati;
Giaccaglini Giorgio - Liceo Scientifico “L. Da Vinci” Jesi pagina 10
eserciziario di programmazione (versione 01-2019)
In fine deve fornire in output il totale dei file .pdf che sono stati trovati durante la scansione
807. Voti
Scrivere un programma che permetta la gestione dei voti e delle materie. Si deve sviluppare un
programma che permetta l’inserimento delle materie (informatica, matematica, …), dei voti per
ogni materie suddivisi per quadrimestre, che permetta il calcolo della media per ogni materia e per
quadrimestre, il calcolo della media generale di tutte le materie.
808. ContoCorrente
Realizzare un programma che vi permette di gestire il vostro “Conto Corrente”. In pratica:
1) il programma deve permettere l’inserimento di soldi che entrano (paghetta settimanale,
guadagni, vincite…) e di quelli che escono (spese per merende, per il fantacalcio, per la benzina del
motorino…)
2) bisogna calcolare il totale delle spese, degli ingressi e il saldo (entrate-spese)
3) queste informazioni devono essere memorizzate su un file in modo che la prossima volta che si
carica il programma per inserire altri dati, quelli precedentemente inseriti non siano persi. (si
ricarica il file)
Siete liberi di pensare ad una struttura dati come più vi piace e più si addice al vostro bisogno.
Importante è che ci sia un file da leggere e scrivere in cui siano memorizzate almeno il saldo, il
totale delle entrate e delle uscite