Sei sulla pagina 1di 2

29.

Sette e mezzo
Scrivete un programma python che implementa il gioco di carte Sette e mezzo. Lo scopo del gioco quello
di realizzare il punteggio pi alto possibile senza mai sballare, vale a dire senza superare il 7 e mezzo. Il
programma svolge il ruolo del mazziere, e genera casualmente un numero intero (la carta) compreso tra 1 e 10.
Le carte dall'1 al 7 valgono tanti punti quanto il loro valore numerico (1 vale 1 punto, il 2 vale 2 punti, ecc.)
le carte dall8 al 10 valgono mezzo punto. Il programma genera una carta per volta e chiede allutente se vuole
continuare a giocare fino a quando lutente non ha vinto o ha superato il 7 e mezzo (in tal caso ha perso).
Per generare numeri casuali, usate le seguenti istruzioni:
import random # da inserire allinizio del programma python, importa la
# libreria contenente le funzioni per generare casualmente il numero
carta = random.randint(1,10) #assegna alla variabile carta un numero intero casuale compreso tra 1 e 10.
30. Lista 1
Modificate lesercizio 28 in modo da lavorare su una lista di numeri precaricata (la lunghezza della lista a vostra
scelta) al posto dei valori immessi da tastiera e calcolate quanti numeri pari e quanti dispari ci sono.
31. Maggiore e minore
Scrivete un programma che a partire da una lista contenente 10 numeri gi inseriti, cerca il minore ed il maggiore
tra i numeri presenti. Per comodit potete copiare ed incollare nel vostro programma il seguente comando:
li=[30, 18, 54, 90, 6, 150, 114, 162, 72, 78]
32. Moltiplicazione di una matrice riga per una matrice colonna.
Date due liste: r = [2, 4, 10, 22, 5] c= [10, -1, 5, 3, 12]
supponete che le due liste rappresentino due matrici, rispettivamente una matrice riga di dimensioni [1,5] ed
una matrice colonna di dimensioni [5,1]. Scrivete un programma che calcola il prodotto delle due matrici. Il
prodotto in questo caso un intero pari alla somma dei prodotti degli elementi corrispondenti delle due liste. Il
programma dovr stampare alla fine il risultato trovato. Se non conoscete il calcolo matriciale chiedete al
docente.
33. Controllo divisori
Scrivete un programma che crea due liste con 10 numeri interi luna (scegliete voi se inserire i numeri da tastiera
oppure inizializzare le liste con dei numeri direttamente dentro il programma). Il programma dovr costruire
una (terza) lista di dieci valori booleani, ognuno di questi dir se il corrispondente elemento della seconda lista
un divisore intero del corrispondente elemento della prima lista (cio se il resto della divisione dei due elementi
nullo). Il programma dovr stampare poi le tre liste.
34. Dati su tuple
Scrivete un programma che richiede il cognome, il nome e let di una persona. Queste informazioni devono
essere memorizzate in una tupla, la quale sar aggiunta in coda ad una lista. Il programma dovr ripetere
loperazione di inserimento delle informazioni per 4 persone. Alla fine dellinserimento il programma dovr
mostrare i dati delle persone che hanno Rossi come cognome.
35. Funzioni 1
Prendete lesercizio Calcolatrice (1. Foglio), e modificatelo in modo che la parte del programma che opera come
una calcolatrice sia il corpo di una funzione che viene richiamata dal nuovo programma che scriverete (scegliete
voi cosa inserire nel corpo principale del programma per testare la funzione).
36. Funzioni 2
Prendete lesercizio Classificazione (1. Foglio), e modificatelo in modo che la parte del programma che
classifica un numero sia il corpo di una funzione che viene richiamata dal nuovo programma che scriverete
(scegliete voi cosa inserire nel corpo principale del programma per testare la funzione).
37. Funzioni 3
Prendete lesercizio Riconoscimento triangoli (1. Foglio), e modificatelo in modo che la parte del programma
che riconosce un triangolo sia il corpo di una funzione che viene richiamata dal nuovo programma che scriverete
(scegliete voi cosa inserire nel corpo principale del programma per testare la funzione).
38. Funzioni 4
Scrivete una funzione (nome della funzione: e_pari) che prende in ingresso un numero e restituisce vero o falso
a seconda che il numero passato come parametro sia pari o dispari. Scrivete poi nello stesso file il corpo
principale del programma che usa la funzione (scegliete voi cosa inserire nel corpo principale del programma
per testare la funzione).
39. Funzioni 5
Prendete la funzione e_pari dellesercizio precedente, salvatela in un file di libreria (nomefile: mialibreria.py),
implementate nel file di libreria la funzione e_dispari (che restituisce vero o falso a seconda che il numero
passato come parametro sia dispari o pari). Create un altro script python (es. calcoli.py) che importa ed usa le
due funzioni di libreria.
Accertatevi che nel file mialibreria.py ci sia solamente limplementazione delle due funzioni (e_pari, e_dispari)
e nientaltro (non copiate il corpo principale dellapplicazione descritta nel punto precedente).
40. Ordinamento tramite Bubble Sort
Scrivere un programma che richiede allutente di inserire 10 numeri da tastiera, li inserisce in una lista, ordina
la lista in modo crescente (dal numero pi piccolo al numero pi grande) e stampa la lista ordinata.
Si consiglia, durante la stesura del programma, per fare le prove, di utilizzare la seguente lista di numeri, in
questo modo, durante ogni esecuzione, non dovrete ogni volta inserire i 10 numeri:
li=[30, 18, 54, 90, 6, 150, 114, 162, 72, 78]
Per ordinare la lista, implementate lalgoritmo del bubble sort, (non utilizzate gli algoritmi gi pronti delle
librerie python). Lalgoritmo del bubble sort descritto qui di seguito:
Confrontate il primo elemento della lista con lelemento successivo, se non sono in ordine (cio se il primo
elemento maggiore del secondo) scambiateli tra di loro. Se invece sono in ordine procedete al punto
successivo senza fare niente
Ripetete loperazione di cui sopra tra il 2 e il 3 elemento, tra il 3 e 4 elemento e cos via fino ad arrivare
a confrontare il penultimo e ultimo elemento della lista
Se si porta a termine un insieme di controlli (per insieme di controlli si intendono le operazioni descritte nei
punti precedenti di confronto tra tutti gli elementi) senza effettuare neanche uno scambio, allora la lista
ordinata e il programma pu terminare. Se invece durante un insieme di controlli avviene uno scambio, al
termine occorre ripetere da capo linsieme dei controlli (dal primo allultimo elemento) fino a che non si
effettueranno pi scambi. Quando non saranno pi necessari scambi, lalgoritmo di ordinamento avr
terminato. Vi conviene utilizzare una variabile flag per verificare se durante un controllo sono stati effettuati
o meno degli scambi
41. Ordinamento per selezione
Scrivere un programma che richiede allutente di inserire 10 numeri da tastiera, li inserisce in una lista, ordina
la lista in modo crescente (dal numero pi piccolo al numero pi grande) e stampa la lista ordinata.
Si consiglia, durante la stesura del programma, per fare le prove, di utilizzare una lista di numeri precaricata,
come quella riportata nellesercizio precedente.
Per ordinare la lista, implementate lalgoritmo di ordinamento per selezione. Lalgoritmo descritto qui di
seguito:
Cercate nella lista la posizione dellelemento pi piccolo. Scambiate lelemento pi piccolo con lelemento
di indice 0 (il primo elemento della lista). In questo modo si sposta a sinistra lelemento pi piccolo della
lista.
Cercate lelemento pi piccolo tra gli elementi rimanenti (si tratta di tutti gli elementi della lista ad
esclusione di quello di indice 0; detto in altro modo, la ricerca deve essere effettuata a partire dallelemento
di indice 1 fino allultimo elemento della lista). Scambiate lelemento trovato con lelemento di indice 1.
Ripetete il procedimento descritto nei punti precedenti cercando lelemento pi piccolo a partire dalla
posizione i fino alla fine della lista, e una volta trovato, scambiandolo con lelemento in posizione i. Questa
operazione va ripetuta per tutti i valori di i compresi tra 0 e la lunghezza della lista. Di fatto ogni volta si cerca
lelemento minimo tra quelli rimanenti e lo si sposta a sinistra. Quando si raggiunge la fine della lista, la lista
ordinata

Potrebbero piacerti anche