Slides del corso
Se si individuano errori/imprecisioni o parti non chiaramente illustrate nelle slides,
sono apprezzati commenti che possono essere inviati per mail a marin _AT_ dsi.unive.it.
Esercizi
- Esercizi assegnati il 09/04/2011
- Acquisire una da tastiera una sequenza di interni che termina con lo zero. Memorizzare la sequenza
inserita in una lista ordinata e quindi stamparla.
- Scrivere una funzione ricorsiva che copi gli elementi di un array di interi in una lista
mantenendone l'ordine.
- Si supponga di avere due liste di caratteri. Si scriva una funzione ricorsiva che confronti
le due liste e restituisca 0 se sono identiche, 1 se la prima lista è alfabeticamente
minore della seconda, e -1 altrimenti.
- Esercizi assegnati il 26/02/2011
- Scrivere una funzione che restituisca tipo void la quale calcoli resto e quoziente
della divisione intera di due numeri. Non usare gli operatori di divisione e resto.
- Scrivere una funzione che restituisca tipo void la quale calcoli il minimo e il
massimo di un array di float
- Esercizi assegnati il 19/02/2011
- Si immagini di avere un cilindro trasparente nel quale si inseriscono biglie colorate
di rosso e di blu una sopra l'altra. Il cilindro può contenere N biglie sovrapposte.
Scrivere una funzioni che conti il numero di possibili riempimenti dell'array con N biglie
con il vincolo che non si possono inserire più di due biglie rosse consecutive.
- Modificare l'algoritmo di Bubble sort visto a lezione in modo da interrompere l'esecuzione
del ciclo esterno se quello interno non esegue alcuno scambio.
- Esercizi assegnati il 12/02/2011
- Scrivere una funzione ricorsiva che conti il numero di vocali in una stringa.
Non utilizzare la funzione strlen (o equivalenti).
- Scrivere una funzione ricorsiva che confronti due stringhe restituendo: 0 se
le stringhe sono uguali, 1 se la prima stringa viene alfabeticamente dopo la seconda,
-1 altrimenti.
- Scrivere una funzione che calcoli l'ennesimo numero della successione di Fibonacci
F(n). Questa è definita ricorsivamente come segue:
F(0)=1, F(1)=1, F(n)=F(n-1)+F(n-2). Calcolare F(8).
- Esercizi assegnati il 05/02/2011
-
Scrivere la funzione int sottostringa(char str1[], char str2[]) che restituisce 1 se str2
è contenuta in str1, 0 altrimenti.
-
Scrivere una funzione int palindroma(char str[]) che restituisce 1 se la stringa str
è palindroma, 0 altrimenti.
- Esercizi assegnati il 28/01/2011
- Scrivere una funzione che decida se un array contiene SOLO numeri primi usando
la funzione is_prime definitina in precedenza
- Scrivere una funzione che ritorni il valore 1 se un array contiene elementi tutti
diversi, 0 altrimenti.
- scrivere una funzione che ritorni il valore 1 se due array (che possono presentare
elementi ripetuti) contengono gli stessi valori, 0 altrimenti
- Esercizi assegnati il 04/12/2010
- Scrivere un programma che legga una sequenza di numeri da tastiera e si interrompa quando
la somma degli ultimi due numeri è pari.
- Scrivere un programma che dato un numero naturale in ingresso ne calcoli la radice quadrata
intera aprossimata per difetto. Usare solo operazioni aritmetiche elementari.
- Acquisito u numero naturale n, stampare il minore numero primo strettamente maggiore di n
- Scrivere un programma che acquisito un numero naturale maggiore di 0 stampi a video
l'elenco dei suoi fattori primi con la corrispondente molteplicità.
- Esercizi assegnati il 27/11/2010
- Calcolare il minimo comune multiplo di tre numeri naturali acquisiti in ingresso
- Esercizi assegnati il 20/11/2010
- Scrivere un programma che conti il numero di divisori di un numero naturale n compresi tra 1 e n
- Scrivere un programma che calcoli il minimo comune multiplo tra due numeri naturali acquisiti in
ingresso
- Esercizi assegnati il 06/11/2010
- Scrivere un programma che letti due numeri ne stampi il prodotto mediante somme successive
- Scrivere un programma che letto un numero positivo n, calcoli quanti multipli di 7 sono
compresi tra 1 e n, senza usare gli operatori /, *
- Scrivere un programma che legga una sequenza di numeri da tastiera e interrompa
l'acquisizione quando vengono inseriti due numeri consecutivi
- Esercizi assegnati il 30/10/2010
- Letto un numero da tastiera, dire se è un multiplo di 5 (si/no), un multiplo di 10 (si/no)
o un multiplo di 6 (si/no). Nidificare opportunamente i condizionali.
- Letti tre numeri interi da tastiera, stamparne il maggiore
- Letti tre numeri in virgola mobile da tastiera, dire se tre segmenti di lunghezza
corrispondente possono formare i lati di un triangolo rettangolo
Materiali di approfondimento
I materiali di approfondimento proposti hanno lo scopo di integrare parti trattate a lezione ma non adeguatamente affrontate
nel libro di testo.
Libri di testo
- B. W. Kernichan, D. M. Ritchie. Il linguaggio C: principi di programmazione e manuale di riferimento. Pearson. II ed.
- Bellini, A. Guidi. Linguaggio C - guida alla
programmazione. Quarta edizione. McGraw-Hill
Orario delle lezioni
Le lezioni si svolgono il sabato dalle 10:30 alle 12:00 in Aula 1 c/o il Dipartimento di Informatica, via Torino, 155, Mestre
Avvisi
- Risultati del secondo appello di giugno, parte C (testo)
Candidato | Teoria | Laboratorio | Totale |
Angeli | 6 | 14 | 20 |
Tommasella | 8.5 | 9 | 18 |
De Lucia | Insuff. | Insuff. | Insuff. |
Lizzi | 4,5 | 14,5 | 18 |
Savi | 6 | 10 | Insuff. |
Adriani | R | R | R |
Per la visione degli elaborati ` possibile prendere appuntamento per mail.
- Risultati del primo appello di giugno, parte C (testo)
Matricola | Teoria | Laboratorio | Totale |
835103 | 5.5 | 14 | 20 |
835270 | 6.5 | Insuff. | Insuff. |
779264 | 6 | 15 | 21 |
835175 | Insuff. | Insuff. | Insuff. |
Per la visione degli elaborati è possibile prendere appuntamento per mail.
- Pubblicato il testo dell'esercitazione di laboratorio Testo
- La lezione di Sabato 16/04/11 di Programmazione C si terrà le prime due ore. Seguiranno 4 ore di programmazione funzionale.
- La lezione di Sabato 09/04/11 di Programmazione C sarà di 4 ore a partire dalle 8.45
- La lezione di Sabato 26/02/11 di Programmazione C sarà di 4 ore.
- La lezione di Sabato 19/02/11 di Programmazione C sarà di 4 ore.
- La lezione di Sabato 05/02/11 di Programmazione C sarà di 4 ore: due di teoria e due
in laboratorio. Pertanto le lezioni si concluderanno alle 13.45
- Sulla pagina web del corso del precedente anno sono stati pubblicati gli esiti dell'esame di gennaio
- Si ricorda che le lezioni riprenderanno col termine della sessione d'esami cioè il 29/01/2011
- La lezione del 18 dicembre di programmazione (sia funzionale che imperativa) sono sospese per neve. Sarà
recuperata nelle settimane seguenti secondo modalità concordate.
- La lezione del 13 novembre di programmazione (sia funzionale che imperativa) è sospesa. Sarà
recuperata nelle settimane seguenti secondo modalità concordate.
Registro delle lezioni
- 30/04/2011 Laboratorio: svolgimento degli esercizi dei precedenti appelli d'esame
- 16/04/2011 Esercizi sulle liste
- 09/04/2011 4 ore. Teoria: manipolazione di liste (inserimento in testa e coda,
cancellazione delle liste. Laboratorio: liste ordinate.
- 26/03/2011 Laboratorio: esercizi sulle liste
- 19/03/2011 Scorrimento di liste mediante ricorsione e iterazione.
- 12/03/2011 Introduzione alle liste. Definizioni e primi esempi
- 05/03/2011 Esercizi sui puntatori
- 26/02/2011 4 ore. Indirizzi e puntatori. Laboratorio: implementazione del passaggio
per indirizzo coi puntatori.
- 19/02/2011 4 ore. Teoria: La ricorsione: esercizi. Ricerca per bisezione in array ordinati.
Laboratorio: ordinamento con Bubble sort.
- 12/02/2011 La ricorsione. Primi esempio. Uso dello stack.
- 05/02/2011 4 ore. Teoria: le stringhe ed algoritmi fondamentali su di esse. Laboratorio: esercizi
su vettori e stringhe.
- 29/01/2010 Scope dei nomi. Array monodimensionali. Esercizi
- 11/12/2010 Sottoprogrammi e passaggio dei parametri per copia
- 04/12/2010 Laboratorio: esercizi sui cicli.
- 27/11/2010 Ciclo for. Esercizi sui cicli. Calcolo del MCD, mcm, test di primalità
- 20/11/2010 Cicli while, do.. while e for. Uso preferenziale dei cicli. Esercizi
- 06/11/2010 Ancora sulla selezione binaria. Nidificazione. Introduzione ai cicli.
- 30/10/2010 Laboratorio: ambiente di lavoro Linux. La compilazione. Primo programma C.
- 23/10/2010 Variabili ed assegnamento. Espressioni aritmetiche. Sequenza. Introduzione al condizionale.
- 16/10/2010 Introduzione al corso. Macchina di Von Neumann. Linguaggi imperativi. Macchina astratta C.
|