Nel sito principale del corso e' possibile
trovare tutte le informazioni utili, fra cui le comunicazioni agli studenti.
In questa pagina invece sono contenute solamente le informazioni su come dotarsi
dell'ambiente di sviluppo usato a laboratorio.
Inoltre viene fornito del material didattico riguardante il linguaggio assembler,
tutto il materiale utilizzato nei laboratori e del materiale didattico integrativo.
Sia i laboratori che l'esame dell'insegnamento di Fondamenti di Programmazione
verranno svolti utilizzando il compilatore g++ su sistema operativo Linux, distribuzione Debian.
Procedure lavorare da casa utilizzando lo stesso ambiente
- Passo 1. Scaricare questo file di 807 MB.
Si tratta di una immagine ISO di un sistema operativo LINUX a 32 bit.
Si tratta di una distribuzione Debian personalizzata dai docenti del corso.
Procedure A: mediante DVD (E' richiesto un PC abilitato al boot da DVD e dotato di masterizzatore)
- Passo 2A. Masterizzare il file su di un DVD vergine, ad esempio utilizzando ImgBurn
- Passo 3A. Riavviare il PC mettendo il DVD nel lettore.
Procedure B: mediante installazione di macchina virtuale linux
- Passo 2B. Scaricare da internet la macchina virtuale free Oracle VirtualBox
- Passo 3B. Avviare Virtual Box e cliccare sul pulsante 'Nuova' (macchina virtuale) seguendo
- Passo 4B. Seguire la procedura guidata per creare una nuova macchina virtuale, in particolare:
- Inserire 'debian 1' come nome della macchina e premere 'avanti'
- Stabilire una certa quantita' di RAM per la macchina (consigliato: 500 MB) e premere 'avanti'
- De-selezionare 'Disco d'avvio' e premere 'avanti' (apparira' un messaggio di avvertimento: premere continua)
- Premere 'Crea' e poi avviare la macchina 'debian 1' appena creata, cliccandoci sul menu' di sinistra
- (se richiesto, specificare che si tratta di un sistema operativo a 32 bit)
- Nella schermata 'Scegli il supporto per l'installazione' selezionare il file 'debian.iso' scaricato al punto 1 e avviare
NB: Chi avesse installato in precedenza la VMWare Player virtual machine
nel proprio PC,
la puo' usare evitando di installare Oracle VirtualBox (le due si equivalgono).
Verifica delle procedure
Se la procedura seguita fra le due proposte avra' avuto successo
verrà mostrata una schermata con un menu' nel quale andra' scelta
la prima voce ('Live').
Una volta effettuato il login con l'utente 'studenti' (e dopo aver inserito la relativa password)
si avrà a disposizione lo stesso ambiente utilizzato a lezione.
In particolare sara' possibile aprire una finestra di comando (terminal) ed
iniziare ad editare file .cpp usando il programma 'gedit'
e a compilarli utilizzando il comando 'g++ -g nomefile.cpp -o nomefile'.
Nel caso la compilazione avvenga con successo e' possibile lanciare il programma
con il comando './nomefile'.
Per assemblare un programma assembler basta aprire il terminale e dare il comando:
as nome_file.s -o nome_file.o
( as e' un eseguibile presente in tutte le
distribuzioni linux, fra cui Debian, ovviamente).
Per creare l'eseguibile basta chiamare il linker
(esattamente come per i programmi compilati in C++):
g++ nome_file.o -o nome_file.exe
Per assemblare un programma assembler che include la libreria utility
(quella contenente inbyte, outbyte, input, output, ecc...)
occorre scaricare il file utility (versione per Linux a 32 bit)
(NB: si tratta di un file di testo, che va salvato con il nome 'utility'
all'interno della directory in cui si trovano i sorgenti assembler)
Programmini Assembler visti a lezione
NB: E' possibile assemblare e linkare programmi assembler anche in ambiente Windows:
per prima cosa occorre installare il pacchetto MinGW.
Una volta installato, aprendo la console, si avranno a disposizione i comandi
as per assemblare e g++ per linkare
Per poter utilizzare le funzioni di libreria occorre scaricare anche
in questo caso il relativo file utility (versione per Windows a 32 bit)
Testi e soluzioni degli esercizi C++ proposti a laboratorio.
Le slides del laboratorio possono essere scaricate qui.
(NB: verranno caricati in questa sezione via via che verranno svolti.)
Sono scaricabili qui sotto come file compressi da decomprimere
in un punto a piacere del file system.
Le istruzioni di compilazione del generico esercizio X (X=CiaoMondo, Molt, ecc...) sono:
g++ -c esX.cpp (produce il file in codice oggetto esX.o)
g++ esX.o -o esX.exe (produce il file eseguibile esX.exe, avviabile mediante ./esX.exe)
- lab_01 [ contiene esCiaoMondo.cpp ed esMolt.cpp ]
- lab_02 [ contiene esPNZ.cpp, esMultipli.cpp ed esEq2.cpp ]
- lab_03 [ contiene esBit.cpp, esBelevatoE.cpp ed esStampaQuadrato.cpp ]
- lab_04 [ contiene esFattoriale.cpp, esStampaForme.cpp ed esMenuOperazioni.cpp ]
- lab_05 [ esFile1.cpp, esFile2.cpp ed esFile3.cpp ]
- lab_06 [ esTavPitagorica.cpp, esPuntatori.cpp, esPuntatori2.cpp ed esRiferimenti.cpp]
- lab_07 [ contiene esVett.cpp, esVettPerCasa.cpp, esMatrice.cpp, esStringa.cpp ed esStringaPerCasa.cpp ]
- lab_08 [ contiene esListe1.cpp, esListe2.cpp, esListe2PerCasa.cpp, esDDD1.cpp, esDDD2.cpp, ed esDDD3.cpp ]
- lab_09 [ contiene struct_main.cpp, struct_Iscrizione.h, struct_Iscrizione.cpp + la versione con le classi]
- lab_10 [ contiene la classe Tetris (main.cpp, compito.h e compito.cpp) ]
- lab_11 [ contiene la classe Palazzo (main.cpp, compito.h e compito.cpp) ]
- lab_12 [ contiene la classe VettoreSparso (main.cpp, compito.h e compito.cpp) ]
In questa sezione viene riportato il materiale didattico relativo ad alcune
esercitazioni, ad integrazione del materiale didattico inerente lo stesso argomento
gia' presente nel libro o nelle slides.