From 93ef0f14072a692875928aae791f4aa2a5810d46 Mon Sep 17 00:00:00 2001 From: Fulvio Corno Date: Tue, 4 Jul 2023 12:42:41 +0200 Subject: [PATCH] Testi d'esame assegnati il 30/06/2023 --- esami2022-23/battaglia_navale/main.py | 35 +++ esami2022-23/battaglia_navale/mosse.txt | 14 + esami2022-23/battaglia_navale/navi1.txt | 10 + esami2022-23/battaglia_navale/navi2.txt | 10 + esami2022-23/battaglia_navale/readme.md | 242 ++++++++++++++++++ esami2022-23/capitan_nemo/main.py | 33 +++ .../capitan_nemo/pietre_preziose_luoghi.txt | 5 + esami2022-23/capitan_nemo/readme.md | 53 ++++ esami2022-23/capitan_nemo/viaggi_nemo.txt | 3 + esami2022-23/enterprise/lingue_pianeti.txt | 8 + esami2022-23/enterprise/main.py | 33 +++ esami2022-23/enterprise/readme.md | 59 +++++ esami2022-23/enterprise/viaggi_enterprise.txt | 5 + esami2022-23/torneo_calcio/main.py | 31 +++ esami2022-23/torneo_calcio/readme.md | 43 ++++ esami2022-23/torneo_calcio/torneo.txt | 6 + readme.md | 6 +- teoria/architettura.md | 23 +- teoria/numeri.md | 27 ++ teoria/python.md | 25 +- 20 files changed, 668 insertions(+), 3 deletions(-) create mode 100644 esami2022-23/battaglia_navale/main.py create mode 100644 esami2022-23/battaglia_navale/mosse.txt create mode 100644 esami2022-23/battaglia_navale/navi1.txt create mode 100644 esami2022-23/battaglia_navale/navi2.txt create mode 100644 esami2022-23/battaglia_navale/readme.md create mode 100644 esami2022-23/capitan_nemo/main.py create mode 100644 esami2022-23/capitan_nemo/pietre_preziose_luoghi.txt create mode 100644 esami2022-23/capitan_nemo/readme.md create mode 100644 esami2022-23/capitan_nemo/viaggi_nemo.txt create mode 100644 esami2022-23/enterprise/lingue_pianeti.txt create mode 100644 esami2022-23/enterprise/main.py create mode 100644 esami2022-23/enterprise/readme.md create mode 100644 esami2022-23/enterprise/viaggi_enterprise.txt create mode 100644 esami2022-23/torneo_calcio/main.py create mode 100644 esami2022-23/torneo_calcio/readme.md create mode 100644 esami2022-23/torneo_calcio/torneo.txt diff --git a/esami2022-23/battaglia_navale/main.py b/esami2022-23/battaglia_navale/main.py new file mode 100644 index 0000000..aa57f58 --- /dev/null +++ b/esami2022-23/battaglia_navale/main.py @@ -0,0 +1,35 @@ +# Write your solution here, DO NOT START A NEW PROJECT +# ATTENTION: if you create a new project, your exam paper will not be collected +# and you will be obliged to come in the subsequent exam session +# +# ATTENTION: on Win 10 (Italian keyboard) characters like [ ] { } have to be +# created using ALTgr+è (e.g. for [ ) and NOT CTRL-ALT-è +# +# ATTENTION: on macOS you have to use CTRL-C and CTRL-V inside the virtual +# machine and NOT command-C command-V +# +# if your keyboard is broken you can do copy/paste also with mouse +# and you can copy special characters like [ ] { } < > here +# +# Scrivete qui la vostra soluzione, NON CREATE UN NUOVO PROGETTO +# ATTENZIONE: se create un nuovo progetto il vostro compito non sara' +# raccolto correttamente e dovrete tornare all'appello successivo +# +# ATTENZIONE: su Win 10 (tastiera italiana) i caratteri speciali (es. { ) vanno +# scritti ad esempio con ALTgr+è (caso di [ ) e NON CTRL-ALT-è +# +# ATTENZIONE: su macOS vanno usati CRTL-C e CTRL-V per il copia incolla +# nella macchina virtuale e NON command-C command-V +# +# se la vostra tastiera è guasta potete fare copia/incolla anche con il mouse +# e per i caratteri speciali potete copiare da questi caratteri [ ] { } < > +# print(string.punctuation) +## ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ + + +print(open('navi1.txt', 'r').read()) +print() +print(open('navi2.txt', 'r').read()) +print() +print(open('mosse.txt', 'r').read()) +print() diff --git a/esami2022-23/battaglia_navale/mosse.txt b/esami2022-23/battaglia_navale/mosse.txt new file mode 100644 index 0000000..42e8a28 --- /dev/null +++ b/esami2022-23/battaglia_navale/mosse.txt @@ -0,0 +1,14 @@ +A,1 +F,5 +A,4 +C,1 +A,5 +C,3 +A,6 +B,3 +A,3 +A,3 +A,2 +D,3 +H,2 +E,3 diff --git a/esami2022-23/battaglia_navale/navi1.txt b/esami2022-23/battaglia_navale/navi1.txt new file mode 100644 index 0000000..7b7895a --- /dev/null +++ b/esami2022-23/battaglia_navale/navi1.txt @@ -0,0 +1,10 @@ +,,,1,1,,,,, +,,1,,,,,,, +,,1,,,,,,, +,,1,,,,,,, +,,1,,,,,,, +,,,,,,,,, +,,,1,1,1,1,,, +,,,,1,1,1,,, +,,,,,,,,, +,,,1,1,,,,, \ No newline at end of file diff --git a/esami2022-23/battaglia_navale/navi2.txt b/esami2022-23/battaglia_navale/navi2.txt new file mode 100644 index 0000000..7829e16 --- /dev/null +++ b/esami2022-23/battaglia_navale/navi2.txt @@ -0,0 +1,10 @@ +,2,2,2,2,,,,, +,,,,,,,,, +,,2,,,,,,, +,,2,,,,,,, +,,2,,,,,,, +,,,,,,,,, +,,,2,2,2,2,,, +,,,,2,2,2,,, +,,,,,,,,, +,2,2,,,,,,, \ No newline at end of file diff --git a/esami2022-23/battaglia_navale/readme.md b/esami2022-23/battaglia_navale/readme.md new file mode 100644 index 0000000..c56e978 --- /dev/null +++ b/esami2022-23/battaglia_navale/readme.md @@ -0,0 +1,242 @@ +# Battaglia Navale + +#### (Esame proposto il 30/06/2023) + +Si vuole realizzare una versione base del gioco di battaglia navale. +La posizione delle navi di ciascun giocatore è salvata in una matrice di dimensione 10x10 +come nei file riportati di seguito, in cui la cifra +(1 per il primo giocatore, 2 per il secondo giocatore) +indica la presenza di una parte di nave. + +#### File `navi1.txt` + + ,,,1,1,,,,, + ,,1,,,,,,, + ,,1,,,,,,, + ,,1,,,,,,, + ,,1,,,,,,, + ,,,,,,,,, + ,,,1,1,1,1,,, + ,,,,1,1,1,,, + ,,,,,,,,, + ,,,1,1,,,,, + +#### File `navi2.txt` + + ,2,2,2,2,,,,, + ,,,,,,,,, + ,,2,,,,,,, + ,,2,,,,,,, + ,,2,,,,,,, + ,,,,,,,,, + ,,,2,2,2,2,,, + ,,,,2,2,2,,, + ,,,,,,,,, + ,2,2,,,,,,, + +Il programma dovrà chiedere in input ad ogni giocatore il nome del file da +caricare e salvarlo all'interno di una tabella. +(Per fare ciò si consiglia la creazione di una funzione +`read_data()` +). + +Successivamente il programma legge le mosse dei giocatori dal file mosse.txt. Ciascuna riga del file indica le coordinate di un colpo, espresse nel formato + + R,C + +dove `R` (indice di riga) è una lettera compresa tra A e J, e `C` (indice di colonna) +è un numero compreso tra 1 e 10. I colpi si alternano (prima riga giocatore 1, seconda riga giocatore 2, terza riga giocatore 1, ecc.). + +#### File `mosse.txt` + + A,1 + F,5 + A,4 + C,1 + A,5 + C,3 + A,6 + B,3 + A,3 + A,3 + A,2 + D,3 + H,2 + E,3 + +Il programma deve stampare a schermo: + +- il giocatore che sta effettuando il colpo +- le coordinate del colpo +- l'esito del colpo: + - `acqua` o `colpito` +- la tabella dell'avversario in seguito al colpo effettuato (senza far vedere la posizione delle barche). I colpi in cui è stata presa acqua sono indicati con `o`, mentre i colpi a segno con `*`. + +(Si consiglia la creazione di una funzione `play_round(tabella)` che prende in input la tabella dell'avversario e la modifica in base all'esito del colpo. Si consiglia inoltre la creazione di una funzione +`stampa_matrice` per la stampa e visualizzazione della matrice.) + +La partita si conclude quando vengono affondate tutte le navi di uno dei due giocatori, oppure quando il file `mosse.txt` termina (se entrambi gli avversari hanno ancora navi, la partita si considera sospesa). + +### Esempio di esecuzione + + Giocatore 1 + Inserire il nome del file con le navi: navi1.txt + Giocatore 2 + Inserire il nome del file con le navi: navi2.txt + + E' il turno del giocatore 1 + Coordinate dell'attacco: A, 1 + Acqua + | 1| 2| 3| 4| 5| 6| 7| 8| 9|10| + _________________________________ + A |o | | | | | | | | | | + _________________________________ + B | | | | | | | | | | | + _________________________________ + C | | | | | | | | | | | + _________________________________ + D | | | | | | | | | | | + _________________________________ + E | | | | | | | | | | | + _________________________________ + F | | | | | | | | | | | + _________________________________ + G | | | | | | | | | | | + _________________________________ + H | | | | | | | | | | | + _________________________________ + I | | | | | | | | | | | + _________________________________ + J | | | | | | | | | | | + _________________________________ + + E' il turno del giocatore 2 + Coordinate dell'attacco: F, 5 + Acqua + | 1| 2| 3| 4| 5| 6| 7| 8| 9|10| + _________________________________ + A | | | | | | | | | | | + _________________________________ + B | | | | | | | | | | | + _________________________________ + C | | | | | | | | | | | + _________________________________ + D | | | | | | | | | | | + _________________________________ + E | | | | | | | | | | | + _________________________________ + F | | | | |o | | | | | | + _________________________________ + G | | | | | | | | | | | + _________________________________ + H | | | | | | | | | | | + _________________________________ + I | | | | | | | | | | | + _________________________________ + J | | | | | | | | | | | + _________________________________ + + E' il turno del giocatore 1 + Coordinate dell'attacco: A, 4 + Colpito + | 1| 2| 3| 4| 5| 6| 7| 8| 9|10| + _________________________________ + A |o | | |* | | | | | | | + _________________________________ + B | | | | | | | | | | | + _________________________________ + C | | | | | | | | | | | + _________________________________ + D | | | | | | | | | | | + _________________________________ + E | | | | | | | | | | | + _________________________________ + F | | | | | | | | | | | + _________________________________ + G | | | | | | | | | | | + _________________________________ + H | | | | | | | | | | | + _________________________________ + I | | | | | | | | | | | + _________________________________ + J | | | | | | | | | | | + _________________________________ + + E' il turno del giocatore 2 + Coordinate dell'attacco: C, 1 + Acqua + | 1| 2| 3| 4| 5| 6| 7| 8| 9|10| + _________________________________ + A | | | | | | | | | | | + _________________________________ + B | | | | | | | | | | | + _________________________________ + C |o | | | | | | | | | | + _________________________________ + D | | | | | | | | | | | + _________________________________ + E | | | | | | | | | | | + _________________________________ + F | | | | |o | | | | | | + _________________________________ + G | | | | | | | | | | | + _________________________________ + H | | | | | | | | | | | + _________________________________ + I | | | | | | | | | | | + _________________________________ + J | | | | | | | | | | | + _________________________________ + + E' il turno del giocatore 1 + Coordinate dell'attacco: A, 5 + Colpito + | 1| 2| 3| 4| 5| 6| 7| 8| 9|10| + _________________________________ + A |o | | |* |* | | | | | | + _________________________________ + B | | | | | | | | | | | + _________________________________ + C | | | | | | | | | | | + _________________________________ + D | | | | | | | | | | | + _________________________________ + E | | | | | | | | | | | + _________________________________ + F | | | | | | | | | | | + _________________________________ + G | | | | | | | | | | | + _________________________________ + H | | | | | | | | | | | + _________________________________ + I | | | | | | | | | | | + _________________________________ + J | | | | | | | | | | | + _________________________________ + + E' il turno del giocatore 2 + Coordinate dell'attacco: C, 3 + Colpito + | 1| 2| 3| 4| 5| 6| 7| 8| 9|10| + _________________________________ + A | | | | | | | | | | | + _________________________________ + B | | | | | | | | | | | + _________________________________ + C |o | |* | | | | | | | | + _________________________________ + D | | | | | | | | | | | + _________________________________ + E | | | | | | | | | | | + _________________________________ + F | | | | |o | | | | | | + _________________________________ + G | | | | | | | | | | | + _________________________________ + H | | | | | | | | | | | + _________________________________ + I | | | | | | | | | | | + _________________________________ + J | | | | | | | | | | | + _________________________________ + diff --git a/esami2022-23/capitan_nemo/main.py b/esami2022-23/capitan_nemo/main.py new file mode 100644 index 0000000..19f3828 --- /dev/null +++ b/esami2022-23/capitan_nemo/main.py @@ -0,0 +1,33 @@ +# Write your solution here, DO NOT START A NEW PROJECT +# ATTENTION: if you create a new project, your exam paper will not be collected +# and you will be obliged to come in the subsequent exam session +# +# ATTENTION: on Win 10 (Italian keyboard) characters like [ ] { } have to be +# created using ALTgr+è (e.g. for [ ) and NOT CTRL-ALT-è +# +# ATTENTION: on macOS you have to use CTRL-C and CTRL-V inside the virtual +# machine and NOT command-C command-V +# +# if your keyboard is broken you can do copy/paste also with mouse +# and you can copy special characters like [ ] { } < > here +# +# Scrivete qui la vostra soluzione, NON CREATE UN NUOVO PROGETTO +# ATTENZIONE: se create un nuovo progetto il vostro compito non sara' +# raccolto correttamente e dovrete tornare all'appello successivo +# +# ATTENZIONE: su Win 10 (tastiera italiana) i caratteri speciali (es. { ) vanno +# scritti ad esempio con ALTgr+è (caso di [ ) e NON CTRL-ALT-è +# +# ATTENZIONE: su macOS vanno usati CRTL-C e CTRL-V per il copia incolla +# nella macchina virtuale e NON command-C command-V +# +# se la vostra tastiera è guasta potete fare copia/incolla anche con il mouse +# e per i caratteri speciali potete copiare da questi caratteri [ ] { } < > +# print(string.punctuation) +## ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ + + +print(open('viaggi_nemo.txt', 'r').read()) +print() +print(open('pietre_preziose_luoghi.txt', 'r').read()) +print() diff --git a/esami2022-23/capitan_nemo/pietre_preziose_luoghi.txt b/esami2022-23/capitan_nemo/pietre_preziose_luoghi.txt new file mode 100644 index 0000000..150d596 --- /dev/null +++ b/esami2022-23/capitan_nemo/pietre_preziose_luoghi.txt @@ -0,0 +1,5 @@ +Atlantide,Pietra dell'Anima,Opale Marino +Grande Barriera Corallina,Corallo Nero,Pietra di Luna,Perla +Mariana Trench,Topazio,Quarzo Fumé,Perla,Pietra dell'Anima +Pacific Rim,Corallo Nero,Pietra di Luna,Opale Marino +Atlantide,Pietra dell'Anima,Opale Marino,Quarzo Fumé,Perla \ No newline at end of file diff --git a/esami2022-23/capitan_nemo/readme.md b/esami2022-23/capitan_nemo/readme.md new file mode 100644 index 0000000..3adddc5 --- /dev/null +++ b/esami2022-23/capitan_nemo/readme.md @@ -0,0 +1,53 @@ +# I Viaggi del Capitano Nemo + +#### (Esame proposto il 30/06/2023) + +Si vuole creare un programma Python per l'analisi dei viaggi del Capitano Nemo su +diversi luoghi subacquei e delle affinità tra i tipi di pietre preziose presenti in quei luoghi. + +Occorre leggere due file, uno contenente informazioni sui viaggi e l'altro sui tipi +di pietre preziose presenti nei luoghi visitati. + +Formato del file "viaggi_nemo.txt": +- Ogni riga del file rappresenta un viaggio del Capitano Nemo su un luogo subacqueo e contiene le informazioni separate da virgole nel seguente formato: + + luogo,durata,passeggeri + +Formato del file "pietre_preziose_luoghi.txt": +- Ogni riga del file rappresenta un luogo subacqueo e i tipi di pietre preziose presenti in quel luogo, con le informazioni separate da virgole nel seguente formato: + + luogo,pietra1,pietra2,pietra3,... + +Risultati desiderati: +1. Durata media di tutti i viaggi del Capitano Nemo. +2. Numero totale di passeggeri trasportati dal Capitano Nemo. +3. Per ciascun luogo subacqueo visitato dal Capitano Nemo, stampare l'elenco dei tipi di pietre preziose presenti in quel luogo. +4. Stampare i tipi di pietre preziose più comuni tra i luoghi visitati + +### Esempio: + +#### File `viaggi_nemo.txt` + + Atlantide,7,15 + Grande Barriera Corallina,4,8 + Mariana Trench,10,12 + +#### File `pietre_preziose_luoghi.txt` + + Atlantide,Pietra dell'Anima,Opale Marino + Grande Barriera Corallina,Corallo Nero,Pietra di Luna,Perla + Mariana Trench,Topazio,Quarzo Fumé,Perla,Pietra dell'Anima + Pacific Rim,Corallo Nero,Pietra di Luna,Opale Marino + Atlantide,Pietra dell'Anima,Opale Marino,Quarzo Fumé,Perla + +#### Output + +L'output del programma dovrà essere il seguente: + + Durata media dei viaggi: 7.0 + Numero totale di passeggeri: 35 + Tipi di pietre preziose per luogo visitato: + - Atlantide: Pietra dell'Anima, Opale Marino, Quarzo Fumé, Perla + - Grande Barriera Corallina: Corallo Nero, Pietra di Luna, Perla + - Mariana Trench: Topazio, Quarzo Fumé, Perla, Pietra dell'Anima + I tre tipi di pietre preziose più comuni: Perla, Pietra dell'Anima, Quarzo Fumé diff --git a/esami2022-23/capitan_nemo/viaggi_nemo.txt b/esami2022-23/capitan_nemo/viaggi_nemo.txt new file mode 100644 index 0000000..a2e8345 --- /dev/null +++ b/esami2022-23/capitan_nemo/viaggi_nemo.txt @@ -0,0 +1,3 @@ +Atlantide,7,15 +Grande Barriera Corallina,4,8 +Mariana Trench,10,12 \ No newline at end of file diff --git a/esami2022-23/enterprise/lingue_pianeti.txt b/esami2022-23/enterprise/lingue_pianeti.txt new file mode 100644 index 0000000..2328054 --- /dev/null +++ b/esami2022-23/enterprise/lingue_pianeti.txt @@ -0,0 +1,8 @@ +Terra,Inglese,Cinese,Spagnolo +Vulcan,Vulcaniano,Golic Vulcan +Kronos,Klingonese,Orioni +Andoria,Andoriano,Klingonese,Vulcaniano +Betazed,Betazoid,Lapis +Romulus,Romulano,Inglese,Klingonese,Vulcaniano +QonoS,Klingonese,Inglese +Cardassia,Cardassiano,Inglese,Cinese \ No newline at end of file diff --git a/esami2022-23/enterprise/main.py b/esami2022-23/enterprise/main.py new file mode 100644 index 0000000..44f717b --- /dev/null +++ b/esami2022-23/enterprise/main.py @@ -0,0 +1,33 @@ +# Write your solution here, DO NOT START A NEW PROJECT +# ATTENTION: if you create a new project, your exam paper will not be collected +# and you will be obliged to come in the subsequent exam session +# +# ATTENTION: on Win 10 (Italian keyboard) characters like [ ] { } have to be +# created using ALTgr+è (e.g. for [ ) and NOT CTRL-ALT-è +# +# ATTENTION: on macOS you have to use CTRL-C and CTRL-V inside the virtual +# machine and NOT command-C command-V +# +# if your keyboard is broken you can do copy/paste also with mouse +# and you can copy special characters like [ ] { } < > here +# +# Scrivete qui la vostra soluzione, NON CREATE UN NUOVO PROGETTO +# ATTENZIONE: se create un nuovo progetto il vostro compito non sara' +# raccolto correttamente e dovrete tornare all'appello successivo +# +# ATTENZIONE: su Win 10 (tastiera italiana) i caratteri speciali (es. { ) vanno +# scritti ad esempio con ALTgr+è (caso di [ ) e NON CTRL-ALT-è +# +# ATTENZIONE: su macOS vanno usati CRTL-C e CTRL-V per il copia incolla +# nella macchina virtuale e NON command-C command-V +# +# se la vostra tastiera è guasta potete fare copia/incolla anche con il mouse +# e per i caratteri speciali potete copiare da questi caratteri [ ] { } < > +# print(string.punctuation) +## ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ + + +print(open('lingue_pianeti.txt', 'r').read()) +print() +print(open('viaggi_enterprise.txt', 'r').read()) +print() diff --git a/esami2022-23/enterprise/readme.md b/esami2022-23/enterprise/readme.md new file mode 100644 index 0000000..0e11186 --- /dev/null +++ b/esami2022-23/enterprise/readme.md @@ -0,0 +1,59 @@ +# Analisi dei viaggi dell'USS Enterprise e delle affinità linguistiche + +#### (Esame proposto il 30/06/2023) + +L'USS Enterprise vi chiede di creare un programma Python per l'analisi dei suoi viaggi su pianeti alieni e delle +affinità linguistiche tra le specie presenti. Il programma deve leggere dati da due file, uno contenente informazioni +sui viaggi e l'altro sulle lingue parlate sui pianeti visitati. + +I viaggi sono elencati nel file `viaggi_enterprise.txt`, in cui ogni riga del file rappresenta un viaggio dell'USS +Enterprise su un pianeta e contiene le informazioni separate da virgole nel seguente formato: + + destinazione,durata,passeggeri + +Le informazioni sulle lingue sono elencate nel file `lingue_pianeti.txt`, ogni riga del quale rappresenta un pianeta e +le lingue parlate su di esso, con le informazioni separate da virgole nel seguente formato: + + pianeta,lingua1,lingua2,lingua3,... + +Il numero di lingue parlate può essere diverso per ogni pianeta. + +Il programma deve generare in output le seguenti informazioni: + + Durata media di tutti i viaggi dell'USS Enterprise. + Numero totale di passeggeri trasportati dall'USS Enterprise. + Per ciascun pianeta visitato dall'USS Enterprise, l'elenco delle lingue parlate su quel pianeta. + L’elenco delle tre lingue più ricorrenti tra i pianeti visitati. + +### Esempio File: + +#### viaggi_enterprise.txt + + Terra,10,150 + Vulcan,7,100 + Kronos,12,200 + Andoria,9,120 + Betazed,6,80 + +#### lingue_pianeti.txt + + Terra,Inglese,Cinese,Spagnolo + Vulcan,Vulcaniano,Golic Vulcan + Kronos,Klingonese,Orioni + Andoria,Andoriano,Klingonese,Vulcaniano + Betazed,Betazoid,Lapis + Romulus,Romulano,Inglese,Klingonese,Vulcaniano + QonoS,Klingonese,Inglese + Cardassia,Cardassiano,Inglese,Cinese + +l'output del programma dovrà essere il seguente: + + Durata media dei viaggi: 8.8 + Numero totale di passeggeri: 650 + Lingue parlate su ciascun pianeta visitato: + Terra : ['Inglese', 'Cinese', 'Spagnolo'] + Vulcan : ['Vulcaniano', 'Golic Vulcan'] + Kronos : ['Klingonese', 'Orioni'] + Andoria : ['Andoriano', 'Klingonese', 'Vulcaniano'] + Betazed : ['Betazoid', 'Lapis'] + Tre lingue più ricorrenti tra i pianeti visitati: ['Vulcaniano', 'Klingonese', 'Inglese'] diff --git a/esami2022-23/enterprise/viaggi_enterprise.txt b/esami2022-23/enterprise/viaggi_enterprise.txt new file mode 100644 index 0000000..a72d344 --- /dev/null +++ b/esami2022-23/enterprise/viaggi_enterprise.txt @@ -0,0 +1,5 @@ +Terra,10,150 +Vulcan,7,100 +Kronos,12,200 +Andoria,9,120 +Betazed,6,80 \ No newline at end of file diff --git a/esami2022-23/torneo_calcio/main.py b/esami2022-23/torneo_calcio/main.py new file mode 100644 index 0000000..2eff060 --- /dev/null +++ b/esami2022-23/torneo_calcio/main.py @@ -0,0 +1,31 @@ +# Write your solution here, DO NOT START A NEW PROJECT +# ATTENTION: if you create a new project, your exam paper will not be collected +# and you will be obliged to come in the subsequent exam session +# +# ATTENTION: on Win 10 (Italian keyboard) characters like [ ] { } have to be +# created using ALTgr+è (e.g. for [ ) and NOT CTRL-ALT-è +# +# ATTENTION: on macOS you have to use CTRL-C and CTRL-V inside the virtual +# machine and NOT command-C command-V +# +# if your keyboard is broken you can do copy/paste also with mouse +# and you can copy special characters like [ ] { } < > here +# +# Scrivete qui la vostra soluzione, NON CREATE UN NUOVO PROGETTO +# ATTENZIONE: se create un nuovo progetto il vostro compito non sara' +# raccolto correttamente e dovrete tornare all'appello successivo +# +# ATTENZIONE: su Win 10 (tastiera italiana) i caratteri speciali (es. { ) vanno +# scritti ad esempio con ALTgr+è (caso di [ ) e NON CTRL-ALT-è +# +# ATTENZIONE: su macOS vanno usati CRTL-C e CTRL-V per il copia incolla +# nella macchina virtuale e NON command-C command-V +# +# se la vostra tastiera è guasta potete fare copia/incolla anche con il mouse +# e per i caratteri speciali potete copiare da questi caratteri [ ] { } < > +# print(string.punctuation) +## ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ + + +print(open('torneo.txt', 'r').read()) +print() diff --git a/esami2022-23/torneo_calcio/readme.md b/esami2022-23/torneo_calcio/readme.md new file mode 100644 index 0000000..2777a8a --- /dev/null +++ b/esami2022-23/torneo_calcio/readme.md @@ -0,0 +1,43 @@ +# Calcolo delle statistiche di un torneo sportivo + +#### (Esame proposto il 30/06/2023) + +IL gazzettino dello Sport ti chiede di sviluppare un programma in Python per calcolare le statistiche di un torneo di +calcio. Il programma deve ricevere in input un file (`partite.txt`) con i risultati delle partite giocate. Il file in +ingresso ha questo formato: + + squadra1:squadra2:punteggio1:punteggio2 + +Dove tutti i campi sono separati dal carattere "`:`" (e.g.: `Milan:Inter:2:1`) + +Il programma deve generare in output le seguenti informazioni: + +1. **Classifica del torneo**: + - Il programma deve tenere traccia dei punti ottenuti da ciascuna squadra, assegnando 3 punti per una vittoria, 1 punto per un pareggio e 0 punti per una sconfitta. + - La classifica finale deve essere ordinata in ordine decrescente in base al numero di punti + - Il programma deve stampare oltre ai punti anche i gol fatti e i gol subiti dalla squadra +5. **Calcolo del miglior attacco**: + - Il programma deve stampare la squadra che ha segnato più gol durante il torneo insieme al numero di gol segnati (in caso di parità, stampare la prima squadra trovata). +7. **Calcolo della miglior difesa**: + - Il programma deve stampare la squadra che ha subito meno gol durante il torneo con il numero di gol subiti (in caso di parità, stampare la prima squadra trovata). + +### Esempio di input: + + Inter:Milan:2:2 + Juventus:Roma:1:0 + Milan:Juventus:0:1 + Roma:Inter:1:2 + Inter:Juventus:2:1 + Roma:Milan:0:0 + +### Output generato dal programma: + + Classifica: + + 1. Inter - Punti: 7, Gol fatti: 6, Gol subiti: 4 + 2. Juventus - Punti: 6, Gol fatti: 3, Gol subiti: 2 + 3. Milan - Punti: 2, Gol fatti: 2, Gol subiti: 3 + 4. Roma - Punti: 1, Gol fatti: 1, Gol subiti: 3 + + Miglior attacco: Inter - Gol fatti: 6 + Miglior difesa: Juventus - Gol subiti: 2 diff --git a/esami2022-23/torneo_calcio/torneo.txt b/esami2022-23/torneo_calcio/torneo.txt new file mode 100644 index 0000000..355f2a8 --- /dev/null +++ b/esami2022-23/torneo_calcio/torneo.txt @@ -0,0 +1,6 @@ +Inter:Milan:2:2 +Juventus:Roma:1:0 +Milan:Juventus:0:1 +Roma:Inter:1:2 +Inter:Juventus:2:1 +Roma:Milan:0:0 \ No newline at end of file diff --git a/readme.md b/readme.md index 747d218..2e46cc8 100644 --- a/readme.md +++ b/readme.md @@ -17,7 +17,11 @@ I seguenti esercizi sono tratti direttamente dai testi d'esame proposti nei dive 2022/2023. Terzo appello (30/06/2023): -- [Campeggio](./esami2022-23/campeggio) _new_ +- [Battaglia Navale](./esami2022-23/battaglia_navale) +- [Capitan Nemo](./esami2022-23/capitan_nemo) +- [Campeggio](./esami2022-23/campeggio) +- [Enterprise](./esami2022-23/enterprise) +- [Torneo calcio](./esami2022-23/torneo_calcio) Secondo appello (13-14/02/2023): diff --git a/teoria/architettura.md b/teoria/architettura.md index 6924ec0..962df7c 100644 --- a/teoria/architettura.md +++ b/teoria/architettura.md @@ -177,4 +177,25 @@ Qual è la funzione della memoria principale (o primaria) in un calcolatore? ## 40 -Descrivere il concetto di ciclo macchina esplicitandone le varie fasi. \ No newline at end of file +Descrivere il concetto di ciclo macchina esplicitandone le varie fasi. + +## 41 + +Che cosa è la RAM ? A cosa serve? + +## 42 + +Quali sono le funzioni del BUS? + +## 43 + +Spiegare cosa sono e a cosa servono i bus. Quali tipi di bus esistono? + +## 44 + +Spiegare il concetto di gerarchia della memoria. + +## 45 + +Che cosa è la ALU ? A cosa serve? + diff --git a/teoria/numeri.md b/teoria/numeri.md index 7567daa..28cd4a2 100644 --- a/teoria/numeri.md +++ b/teoria/numeri.md @@ -294,3 +294,30 @@ quali sono i valori rappresentati? 1. 001101 2. 110011 + +## 42 + +Ordinare in ordine crescente i seguenti numeri su 8 bit rappresentati in esadecimale in complemento a due: CB, 7F, AA + +## 43 + +Trasformare i due numeri seguenti espressi in base esadecimale in: (a) base 2, (b) base 4 e (c) base 8 + + AB15 + 12FF + +## 44 + +Data l'equazione 12(i)+10(i)=16(10) dove i numeri 12 e 10 sono espressi in +una base ignota (i) e il 16 è espresso in base 10, trovare la base ignota (i). + +## 45 + +Trasformare i due numeri seguenti espressi in base esadecimale in: (a) base 2, (b) base 4 e (c) base 8 + + C2A4 + A0C3 + +## 46 + +Ordinare in ordine crescente i seguenti numeri su 8 bit rappresentati in esadecimale in complemento a due: 5B, 4F, DA diff --git a/teoria/python.md b/teoria/python.md index 0408a46..1055420 100644 --- a/teoria/python.md +++ b/teoria/python.md @@ -181,4 +181,27 @@ Che cosa succede se dopo aver costruito l'insieme Python `colori` come segue: ```python colori = set(['bianco','giallo','verde','rosso','viola']) ``` -viene eseguita la riga di codice `print(colori[2])`? Motivare la risposta. \ No newline at end of file +viene eseguita la riga di codice `print(colori[2])`? Motivare la risposta. + +## 37 + +Come si può fare in Python a convertire una stringa in maiuscolo? + +## 38 + +È possibile usare una lista come chiave di un dizionario Python? E una tupla? +Rispondere si o no, motivando la risposta. + +## 39 + +In una funzione Python, qual è la differenza tra argomenti e valori restituiti? +Quanti argomenti può avere una invocazione di funzione? +E quanti valori può restituire una funzione? + +## 40 + +Quali sono le differenze tra lista e set? + +## 41 + +Come si può fare in Python a convertire un carattere numerico in intero? \ No newline at end of file