Il corso verte sulla programmazione, per cui utilizza il linguaggio C++. L'aggetto del corso, tuttavia, non è il linguaggio, ma alcuni aspetti di base della programmazione.
Per ciascun argomento viene reso via via visibile un riquadro ad esso dedicato, contenente lucidi, dispense, testi di esercizi ovvero risorse interattive.
Gli argomenti del corso includono (non necessariamente in ordine di presentazione):
Variabili, espressioni assegnazioni
Controllo del flusso
Le funzioni
Strutture dati statiche: array e record
Tempo di calcolo
Iterazione
Ricorsione
Strutture dati dinamiche: liste ed alberi
Astrazione dei dati e classi
Il compilatore Dev-C++.
Compilatori C . Ricordate che per sostenere l'esame e' necessario
essere iscritti a Moodle.
L'aula informatica 1 (a
sinistra entrando per lo scalone grande) e' a vostra disposizione
quando non ci sono lezioni. Per segnalare malfunzionamenti, rivolgetevi
al tecnico Tiziana Armani
(ufficio nel Centro di Calcolo, a destra entrando per lo scalone
grande). Per esercitarvi a casa, qualunque compilatore C va bene. Ecco
come procurarvene uno gratuito.
Avvertimenti sul Dev-C++ .
(1) Programmi C++. Ricordatevi di includere le librerie tipiche del C++, con i
comandi: #include stdlib.h e #include stdio.h.
(2) Nomi dei file. Per i file C++, evitate i nomi
lunghi, che contengano spazi vuoti o caratteri speciali. Il compilatore
non li legge bene, e rischia di non trovare il file o di scambiarlo con
un altro.
(3) La finestra di output del Dev-C++. Questa
finestra ha un difetto: si chiude da sola, impedendoci di vedere i
risultati di un calcolo. Per evitarlo dovete inserire, come ultima
istruzione del main: system("pause") .
Questa istruzione fa sì che, terminato il programma, l’esecuzione si fermi mostrando il risultato, e aspettando un “a capo”.
(4) Programmi non modificabili. Attenzione però:
finchè non si darà tale “a capo”, il programma sarà considerato ancora
in esecuzione, e non potrà essere modificato. Potra' capitare di
correggere un errore quante volte vogliamo, salvando le modifiche ogni
volta: eseguendo il programma incontreremo nuovamente l'errore appena
eliminato. Questo perche', finche' almeno una finestra di output e'
aperta, ogni modifica che potremo scrivere sarà, semplicemente,
ignorata.
Il Laboratorio di Calcolo I si occupa di familiarizzare gli studenti
con uno strumento di calcolo, il programma "Mathematica", utilizzato
nei corsi di Analisi, Geometria e Sperimentazioni. Svolge un'attivita'
di supporto a tali corsi, e lavora in stretto contatto con essi. Un
precorso introduce gli studenti all'uso dell'aula informatica.
Ricevimento del Docente:
Su appuntamento. Mandare un messaggio oppure telefonare al +39 320 420 5586.
Anno di Corso: Primo
Trimestre: Primo.
Corso (fine Settembre-fine Novembre, consultate il calendario sul sito di
fisica). Una lezione introduttiva in aula magna,
poi 10 laboratori di 2 ore, in genere uno per settimana (20 ore in tutto), aula C.
Gli studenti saranno divisi in 2 gruppi, A e B, ogni lezione verra' ripetuta una volta per
gruppo.
Crediti: 3.
Codice Esame: F8003.
Orari In genere ore 14-16 lunedi' per un corso e martedi' per l'altro. Le informazioni si trovano
nel sito del Corso di Laurea in Fisica.
Forum "Moodle" del Laboratorio di Calcolo I.
Controllate qui di essere
e di ricordarvi nome utente e parola d'ordine, altrimenti non potete sostenere l'esame.
Seguite questo link e troverete le istruzioni per iscrivervi.
Se non siete iscritti potete visitare il sito schiacciando
il tasto "login come ospite", ma non potete utilizzarlo.
Dispense e Materiale Vario degli anni passati (non fanno parte del corso)
Il materiale del corso è disponibile qui sotto in tre formati:
(1) dei siti (.html),
(2) una cartella compressa (.zip),
(3) dei singoli file (.nb).
Per leggere e eseguire gli ultimi due formati avete bisogno del programma Mathematica ,
per leggere il primo formato solo di un navigatore (non potete pero' eseguirlo). Qualche commento.
(1) Dispense sotto forma di Siti.
C'e' un sito contenente le
Dispense
,
un altro contenente esempi di applicazioni all'interno di altri
Corsi
del programma Mathematica ,
infine uno contenente tutti i
brevi articoli
di argomento vario scritti utilizzando Mathematica .
Non sono eseguibili: per esempio, delle animazioni e' possibile vedere solo i singoli fotogrammi.
(2) Dispense sotto forma di cartella compressa .
Potete scaricare una sola cartella "Mathematica.zip",
in forma compressa, contenente
Alternativamente, potete scaricare
i singoli file in forma non compressa
(per esempio, se li avete già e desiderate solo aggiornarli).
Dispense.
La cartella "Mathematica.zip" contiene le
Dispense del Corso
(un'introduzione a Mathematica Scritta in Word).
La cartella "Mathematica.zip" contiene una
Scheda riassuntiva
di Mathematica di 2 pagine, scritta in Word.
Esercizi.
La cartella "Mathematica.zip" contiene il
testo
e le
soluzioni
degli esercizi del corso
(leggibili solo con Mathematica);
Applicazioni.
La cartella "Mathematica.zip" contiene esempi di applicazioni di Mathematica nei altri corsi dei
primi due anni, con
testo
e
soluzioni
(leggibili solo con Mathematica). Ecco un breve elenco
degli esercizi trattati. Per Geometria Lineare: risoluzioni di sistemi
lineari. Per Analisi: studio di funzioni, e soluzione di equazioni
mediante il metodo di bisezione.
Per il corso di Sperimentazioni, vengono sviluppati vari argomenti di
Statistica: la regressione lineare,
la curva di Gauss, l'indice di correlazione statistica, lo studio delle
frequenze di somme di variabili casuali uniformi. Per Fisica II:
soluzioni ricorsive di equazioni di moto.
Macro.
Infine, la cartella "Mathematica.zip" contiene il file
MathMacro.txt
, di testo puro, che include tutte le macro (programmi aggiuntivi)
utilizzati nel corso (Arrow3D, per disegnare vettori nello spazio, e
WordTable, ExcelTable, MathTable per trasferire matrici da Mathematica
a Word o Excel, o viceversa).
Articoli. . La cartella "Mathematica.zip" contiene anche
brevi articoli
(leggibili solo con Mathematica),
con esempi di uso divertente di Mathematica
(esempi che, e' inutile aggiungere, non fanno parte del corso).
Modalita' d'esame e argomenti di esame.
L'esame consiste in una prova pratica di laboratorio: la risoluzione, utilizzando Mathematica,
di un semplice esercizio di Geometria dello spazio
(qui di seguito trovate un elenco di esercizi di esame),
oppure, a scelta e per i soli studenti lavoratori, di uno studio di funzioni
(per degli esempi, cercate la voce Analisi I nel fascicolo Corsi).
Trovate le dispense per preparare gli esercizi di Geometria nel Quaderno didattico di Abbena-Gianella:
Complementi di Geometria e Algebra Lineare I
, sezioni 1.1, 1.2, 2.1, 2.2, 3.1, 5.1-5.4.
Per gli appelli consultate il sito di
Fisica. Controllate subito qui sotto di essere
e di ricordarvi nome utente e parola d'ordine, altrimenti non potete sostenere l'esame.
Seguite questo link e troverete le istruzioni per iscrivervi.
Se non siete iscritti potete visitare il sito schiacciando
il tasto "login come ospite", ma non potete utilizzarlo.
e di ricordarvi nome utente e parola d'ordine, altrimenti non potete sostenere l'esame.
Seguite questo link e troverete le istruzioni per iscrivervi.
Se non siete iscritti potete visitare il sito schiacciando
il tasto "login come ospite", ma non potete utilizzarlo.
I Dati del Corso.
Anno di Corso: primo.
Semestre: Primo (da fine Settembre al 31 Gennaio)
Orario del 2005/2006. Lunedi' 9-11, martedi' 9-11
laboratorio (aule informatiche 1-2-3), giovedi' 9-10 esercitazioni, tutoraggio nell'aula informatica
(Prof. Baldi
in orario da decidersi.
).
Codice Esame : M8507. Crediti : 7.
Contenuto del corso. Introduzione al Linguaggio C: cicli e procedure. Scaricate la
scheda del corso
con la presentazione del corso e il programma completo.
Testo di riferimento:
Alessandro Bellini, Andrea Guidi: Linguaggio C, guida alla programmazione,
Mc Graw-Hill, consultabile all'indirizzo web:
http://www.hyperbook.it .
Vi consigliamo di comprarlo, per avere a disposizione un testo da consultare.
Come manuale, invece, consigliamo il testo Ansi-C disponibile in biblioteca (non e' necessario comprarlo).
Voti degli esami passati.
I voti saranno comunicati tramite il
forum
.
Trovate qui alcuni voti degli anni passati:
2006
e
2005
Tutti i programmi spiegati in aula o in laboratorio nel corso del 2006-2007.
Complemento di Teoria.
La descrizione degli algoritmi di ordinamento
BubbleSort e InsertSort (fa parte dell'esame, ma non e' trattata sul libro di testo).
Prossimo Laboratorio.
Il testo da svolgere durante il prossimo laboratorio si trova nel
forum
.
Le soluzioni si trovano nell'elenco completo di tutti i programmi di cui sopra.
Esercizi di Esame. E' disponibile la struttura dati contenente tutti
(E' anche disponibile, ma richiede una certa abilitá d'uso,
un programma per simulare compiti di esame:
C-Tests.exe.
Questo programma ha bisogno per funzionare di leggere il seguente file di dati:
C-Es2006.txt. Se avete dubbi su come usarlo, oppure degli errori da segnalare, scrivete a:
berardi@di.unito.it
).
Il compilatore Dev-C++.
Compilatori C . Per preparare l'esame e' necessario
essere iscritti al forum, ed aver svolto degli esercizi di C al calcolatore, o durante le
esercitazioni, o al tutoraggio, oppure a casa. L'aula informatica 1 (a
sinistra entrando per lo scalone grande) e' a vostra disposizione
quando non ci sono lezioni. Per segnalare malfunzionamenti, rivolgetevi
al Prof. Baldi
(ufficio nel Centro di Calcolo, a destra entrando per lo scalone
grande). Per esercitarvi a casa, qualunque compilatore C va bene. Ecco
come procurarvene uno gratuito.
Avvertimenti sul Dev-C++ .
(1) Programmi C e C++. Per scrivere programmi in C, è
necessario salvare il file con estensione “.c”. Se non si fa
attenzione, il file viene salvato con l’estensione “.cpp”, e diventa un
file C++. Ogni programma corretto in C puo'essere salvato anche come
programma C++, purche' si includano le librerie tipice del C, con i
comandi: #include stdlib.h e <#include stdio.h. Se si
desidera salvare in estensione ".c" occorre rimpiazzare l'istruzione
#include iostream.h del C++ (inclusa automaticamente dal Dev-C++) con
l'istruzione #include stdio.h del C. Altrimenti il programma scritto
sara' corretto in C++, ma non in C, e verra' quindi considerato errato
se gli avete assegnato estensione ".c".
(2) Nomi dei file. Per i file C/C++, evitate i nomi
lunghi, che contengano spazi vuoti o caratteri speciali. Il compilatore
non li legge bene, e rischia di non trovare il file o di scambiarlo con
un altro.
(3) La finestra di output del Dev-C++. Questa
finestra ha un difetto: si chiude da sola, impedendoci di vedere i
risultati di un calcolo. Per evitarlo dovete inserire, come ultima
istruzione del main: system("pause") .
Questa istruzione fa sì che, terminato il programma, l’esecuzione si fermi mostrando il risultato, e aspettando un “a capo”.
(4) Programmi non modificabili. Attenzione però:
finchè non si darà tale “a capo”, il programma sarà considerato ancora
in esecuzione, e non potrà essere modificato. Potra' capitare di
correggere un errore quante volte vogliamo, salvando le modifiche ogni
volta: eseguendo il programma incontreremo nuovamente l'errore appena
eliminato. Questo perche', finche' almeno una finestra di output e'
aperta, ogni modifica che potremo scrivere sarà, semplicemente,
ignorata.
Modalita' dell'Esame (e' obbligatorio essere iscritti al forum ).
Modalità dell'Esame scritto (dal primo Gennaio al 31 Dicembre 2007).
Forum "Moodle" di Informatica I.
Controllate qui sotto di essere iscritti al
e di ricordarvi nome utente e parola d'ordine, altrimenti non potete sostenere l'esame.
Seguite questo link e troverete le istruzioni per iscrivervi.
Se non siete iscritti potete visitare il sito schiacciando
il tasto "login come ospite", ma non potete utilizzarlo.
L'esame consiste in un test scritto a risposta chiusa (da 0 a 9 punti); poi in 3
esercizi pratici, svolti al calcolatore ,
che richiederanno di scrivere delle procedure in linguaggio C
(da -1 a 7 punti per domanda, dunque 21 punti al massimo).
È essenziale che risolviate ogni esercizio definendo una funzione,
ed è essenziale che scriviate un main di prova per questa funzione,
ed è essenziale che il main si compili, altrimenti l' esercizio vale 0 punti.
Il totale dei punti di: tests + 3 esercizi pratici (al massimo 9+7+7+7=30)
da' il voto dello scritto in trentesimi. Chi ha preso 27 oppure 28 oppure 29 oppure 30
puo' chiedere una domanda all'orale per alzare il voto (per la lode e' sempre necessario).
Argomenti di teoria richiesti all'Esame.
Gli argomenti di teoria richiesti all'Esame sono:
ricerca lineare e binaria, ordinamento bubblesort e per inserzione da destra,
visibilita'' di variabili, gestione a stack delle chiamate di
funzione/procedura .
Norme generali sugli gli Appelli .
Non si puo' iscrivere a due appelli nello stesso mese:
o ci si iscrive all'uno o ci si iscrive all'altro.
Non ci puo' iscrivere a piu' di 3
appelli all'anno per lo stesso esame,
ma si puo' ritirare da una iscrizione prima che lo scritto abbia luogo.
In questo caso, l'appello non viene contato nei tre appelli per anno.
Quando si chiede la correzione di uno scritto, gli eventuali voti ottenuti in precedenza perdono automaticamente ogni valore.
Un voto non registrato perde comunque valore il 31 Gennaio di ogni anno, all'inizio del periodo di esami del corso successivo.
Materiale degli anni precedenti (non fanno parte del Corso).
Uso avanzato del Dev-C++ (non fa parte del Corso).
E' possibile estendere il Dev-C++ per Windows con numerosi pacchetti.
Raccomandiamo qui il pacchetto di grafica
"Allegro", disponibile
qui .
Oppure potete trovare nel sito
http://www.bloodshed.net
una versione piu' aggiornata.
Per istallarlo scaricatelo e apritelo. Vi chiedera' dove si trova
la vostra istallazione di Dev-C++. (Attenzione all'indirizzo esatto:
fa differenza scrivere, per esempio,
"C:\Dev-Cpp" oppure "C:\Dev-C++"). Dopo averlo istallato, dovete ancora
sistemare a mano due files: "liballeg" e "alleg40.dll". (a) "liballeg"
e' detto la "libreria" di Allegro. In realta' e' soltanto un vocabolario che
consente di tradurre le funzioni C di allegro con le funzioni Windows
corrispondenti.
Per renderlo accessibile, occorre scrivere "-lalleg" alla voce
"opzioni di compilazione/aggiungi i seguenti comandi in fase di compilazione".
(b) "alleg40.dll" e' detto un file "dll". Contiene la libreria vera e
propria di allegro, con le definizioni delle funzioni Windows usate da allegro.
Perche' sia accessibile, deve trovarsi copiato nello stesso faldone del vostro eseguibile C
costruito con Allegro, oppure nel faldone di Windows (o in tutti e due).
Quest'ultima restrizione vale, purtroppo, anche se volete soltanto eseguire
un file X.exe costruito con allegro. Dovrete comunque avere
il file "alleg40.dll" o nello stesso faldone dove tenete X.exe,
oppure nel vostro faldone di Windows (o in tutti e due).
Ricevimento del Docente:
Su appuntamento. Mandare un messaggio oppure telefonare al +39 320 420 5586.
Votazioni disponibili:
Esami di Programmazione 1 Laurea dal Dicembre 2000 fino al Settembre 2001.
Formato dei voti:
testo puro
oppure
Excel
.
Anno di Corso: Primo
Trimestri: Primo: Ottobre - fine Novembre.
Orari: ore 11-13 il Lunedí e Giovedí, 9-11 il Mercoledí.
Argomento: semplici cicli, procedure e funzioni in Pascal.
Cenni sugli invarianti, e sulla gestione a pile delle chiamate di
procedura. Complessita' in tempo di InsertSort e (solo nel '99/'00) BubbleSort, MaxSort.
Avvertimenti sul Dev-Pascal .
(1) La finestra di output del Dev-Pascal si chiude da sola,
impedendoci di vedere i risultati di un calcolo. Per evitarlo dovete
inserire, come ultima istruzione del main: readln; .
Questa istruzione fa sì che, terminato il programma, l’esecuzione si fermi mostrando il risultato, e aspettando un “a capo”.
(2) Attenzione però: finchè non si darà tale “a capo”, il
programma sarà considerato ancora in esecuzione, e non potrà essere
modificato (ogni modifica che potremo scrivere sarà, semplicemente,
ignorata). (3) Per scrivere programmi in Pascal, è necessario salvare il file con estensione “.pas”.
(4) Per i file Pascal, evitate i nomi lunghi, che contengano
spazi vuoti o caratteri speciali. Il compilatore non li legge bene, e
rischia di non trovare il file o di scambiarlo con un altro.
Libri:
puo' risultare utile (non e' pero' richiesto) comprare un
qualunque testo della Mac-Graw Hill sulla programmazione
in Pascal, per esempio: "Pascal e C: guida pratica alla programmazione",
Marco Gori, Paolo Nesi, Elio Pasca.
Manuali:
si consiglia piuttosto l'uso del comando "Help" del Pascal.
Testi del corso:
esercizi per Programmazione 1 del 2000
,
dispense per Programmazione 1 del '98
(ne verrano svolte le sezioni: 1.4-1.9, 2.1-2.8, 3.4, 4.1-4.4.4).
Esercizi assegnati nei compiti di esame
del
1999-2000
,
2000-2001
(i più importanti sono in fondo).
Potete anche scaricare il programma windows usato per
generare i tests
,
puo' essere usato sia per simulare un esame che per il
ripasso guidato. Dovete scaricarlo, decomprimerlo (e' un file ".zip"), mettere tutti i file che trovate in uno stesso faldone,
quindi eseguirlo (le istruzioni sono incluse).
Includiamo qui la
tabella
di correzione dei tests del Settembre 2001.
Infine, ecco gli esempi di
primi programmi pascal
proiettati a lezione (A.A. 2000/2001).
Nota: per leggere le dispense di Giovannetti occorre Acrobate Reader,
un Editor scaricabile gratuitamente dalla rete.
Copie cartaceee sono disponibili
in Biblioteca e nelle copisterie presso il Dipartimento di Informatica.
Il compito consistera' di due parti:
(a) tests (6 domande da 2 punti, sufficenza 7/12),
(b) due esercizi di programmazione e una domanda di teoria
(3 domande da 6 punti, sufficienza 10/18). E' richiesta
la sufficienza in entrambe le parti. Il voto sara' la
somma dei due voti ottenuti. Esercizi con errori gravi hanno
punteggi negativi, mentre un esercizio non svolto ha punteggio 0.
Si richiede allo studente di tenere, quando consegna il compito, una una scheda con copia delle risposte date ai tests, e di
correggerla usando una tabella che gli verra' consegnata.
Se otterra' almeno 7/12 potra' chiedere la correzione
della seconda parte, inviando con un messaggio a
berardi@di.unito.it
il voto che ha ottenuto.
Attenzione. (1) Prima di chiedere la correzione della seconda
parte del compito, controllare che sia sufficiente, confrontandola
con le soluzioni che saranno rese pubbliche. Non si puo' richiedere la
correzione di un compito di Prog1 piu' di tre volte nell'anno
accademico. (2) Trascorsi 30 giorni senza si richiesta
di corrrezione, o senza che si sia registrato il voto, si suppora' che
lo studente abbia rinunciato al voto, e non si conservera' piu' il
compito. Dunque per partecipare a un nuovo compito e' necessario
rinunciare al voto preso nel compito precedente (tranne per i compiti
di Dicembre e Gennaio).
1. (Primo Modulo) Generalita' sull'architettura degli Elaboratori.
Testo di riferimento: capitoli 1, 2.1, 2.2 del Tanenbaum,
"Architettura degli Elaboratori".
2. Linguaggio C (vedi
dispense di C
ed
esercizi di C
. Insieme agli esercizi e' disponibile un
interfaccia per gli esercizi C
ed un
main per gli esercizi C
).
Testo di riferimento: Kernighan, Linguaggio C, Jackson libri.
Se si desidera una breve introduzione si consigliano le dispense
di
introduzione al C
di U. de'Liguoro.
Compilatore "djgpp" . (E' incompatibile con Windows NT). Si trova nel sito
http://www.delorie.com/djgpp/
. Per scaricarlo, seguite le istruzioni che trovate nel sito. Dopo
averlo copiato, decomprimetelo in una cartella che chiamerete C:\DJGPP.
Per istallare djgpp sotto Windows dovete cercare il vostro file
autoexec.bat con FindFile. Aprite autoexec.pad con un NotePad, e
inserite al fondo le due linee seguenti:
set PATH=C:\DJGPP\BIN;%PATH%
set DJGPP=C:\DJGPP\DJGPP.ENV
A questo punto riavviate il sistema e mettete in funzione il compilatore cliccando sull'icona di nome "Rhide".
3. (Secondo Modulo) Linguaggio C++ (vedi
dispense di C++ e di ricorsione in C
ed
esercizi).
Testo di riferimento: Derek M. Capper, Introduzione a C++, McGraw-Hill.
4. Cenni all'uso di un strumento di calcolo simbolico e
grafica per la matematica (vedi
dispense di Mathematica
).
Modalita' d'esame
(Primo Modulo) Per svolgere l'esame nell'Aprile del 1999,
e' richiesto aver prima svolto gli esercizi assegnati per Aprile
contenuti nella sezione 2.2
delle dispense incluse al punto 2 qui sopra.
L'esame consistera' di tre parti.
1. la discussione delle soluzioni portate (meglio avere pronti sia una
stampa dei programmi che un dischetto);
2. la risoluzione di un esercizio simile;
3. una domanda di teoria (generalita' sull'architettura dei calcolatori,
svolte nelle prime due lezioni, e costrutti del linguaggio C, vedi dispense,
sezione 1).