fisica:informatica:201516:secondoanno:laboratorio_10
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
| fisica:informatica:201516:secondoanno:laboratorio_10 [06/05/2016 alle 08:04 (10 anni fa)] – [Esercitazione 9] Roberta Gori | fisica:informatica:201516:secondoanno:laboratorio_10 [06/05/2016 alle 08:24 (10 anni fa)] (versione attuale) – [Esercizio 9] Roberta Gori | ||
|---|---|---|---|
| Linea 23: | Linea 23: | ||
| Per fare questo procedere come segue: | Per fare questo procedere come segue: | ||
| - | *compilare il file da verificare con opzione -g per includere le informazioni di debugging. Ad esempio se il mio file si chiama | + | |
| < | < | ||
| bash$ gcc -Wall -pedantic -g -o prova main.c | bash$ gcc -Wall -pedantic -g -o prova main.c | ||
| </ | </ | ||
| - | *eseguire | + | |
| < | < | ||
| bash$ valgrind ./prova | bash$ valgrind ./prova | ||
| Linea 53: | Linea 53: | ||
| Definire un nuovo tipo di dato capace di rappresentare una data. | Definire un nuovo tipo di dato capace di rappresentare una data. | ||
| Scrivere poi delle opportune funzioni/ | Scrivere poi delle opportune funzioni/ | ||
| - | *ricevuta una data la aggiorni al giorno successivo (ignorando gli anni bisestili); | + | |
| - | | + | *ricevute due date verifichino che la prima preceda la seconda; |
| - | | + | *ricevute due date, ritornino la differenza in anni fra la prima e la seconda. |
| ===== Esercizio 2 ===== | ===== Esercizio 2 ===== | ||
| - | | ||
| - | Inizializzare tre istanze di coppie con i primi tre numeri naturali e i loro | ||
| - | doppi. | ||
| - | |||
| - | ===== Esercizio 3 ===== | ||
| Scrivere un programma che crei dinamicamente una lista di 3 interi e li | Scrivere un programma che crei dinamicamente una lista di 3 interi e li | ||
| - | inizializzi con valori chiesti all' | + | inizializzi con valori chiesti all' |
| - | e la stampi a video in questo modo: | + | e stampi |
| + | < | ||
| 1 -> 9 -> 3 // | 1 -> 9 -> 3 // | ||
| + | </ | ||
| Il programma deve deallocare | Il programma deve deallocare | ||
| correttamente la lista prima di uscire, verificare con valgrind che questo sia | correttamente la lista prima di uscire, verificare con valgrind che questo sia | ||
| avvenuto (se correttamente installato sul vostro pc). | avvenuto (se correttamente installato sul vostro pc). | ||
| + | |||
| + | ===== Esercizio 3 ===== | ||
| + | Scrivere una procedura iterativa | ||
| + | < | ||
| + | 1 -> 9 -> 3 // | ||
| + | </ | ||
| + | |||
| + | Utilizzare la procedura nel main precedente per verificarne la correttezza. | ||
| ===== Esercizio 4 ===== | ===== Esercizio 4 ===== | ||
| Linea 81: | Linea 85: | ||
| installato sul vostro pc). | installato sul vostro pc). | ||
| + | ===== Esercizio 5 ===== | ||
| + | | ||
| + | lista dall' | ||
| + | Testare questa funzione utilizzando un' | ||
| - | + | Ricordarsi di deallocare la lista prima di uscire dal main. | |
| - | 11) Scrivere un programma che, creata una lista di interi come | + | |
| - | nell' | + | |
| - | lista dall' | + | |
| - | Ricordarsi di deallocare la lista prima di uscire dal main (e verificare con | + | |
| - | valgrind che questo sia avvenuto, vedi n | + | |
| + | ===== Esercizio 6 ===== | ||
| + | Scrivere una procedura *ricorsiva* | ||
| + | < | ||
| + | 1 -> 9 -> 3 // | ||
| + | </ | ||
| - | In alcuni degli esercizi che seguono (quando richiesto) si utilizzi la | + | ===== Esercizio 7 ===== |
| - | seguente definizione di tipo "lista di interi": | + | |
| - | typedef struct El { | + | Scrivere una *procedura* iterativa che dato un n intero, crei una lista di n elementi inizializzati con variabili random. |
| - | int info; | + | |
| - | struct El *next; | + | Scrivere un main per testarla. |
| - | } ElementoListaInt; | + | |
| - | typedef ElementoListaInt* ListaDiInteri; | + | ===== Esercizio 8 ===== |
| - | Inoltre, dove c'è bisogno | + | |
| - | dovete assicurarvi di deallocare SEMPRE tutta la memoria allocata. | + | Scrivere una *funzione* |
| - | Per verificarlo potete usare valgrind se correttamente installata sul | + | |
| - | vostro computer. | + | Scrivere un main per testarla. |
| - | Questo strumento permette fra l' | + | |
| - | sono inizializzate prima del loro uso, se accediamo a memoria gia' | + | |
| - | deallocata o mai allocata e situazioni similari. | + | ===== Esercizio 9 ===== |
| - | Per fare questo procedere come segue: | + | |
| - | • | + | Scrivere una *funzione* *ricorsiva* |
| - | compilare il file da verificare con opzione | + | |
| - | -g | + | |
| - | per includere le | + | Scrivere un main per testarla. |
| - | informazioni | + | |
| - | chiama | + | |
| - | main.c | + | ===== Esercizio 10 ===== |
| - | posso compilare con | + | |
| - | bash$ gcc -Wall -pedantic -g -o prova main.c | + | Scrivere una *funzione* *iterativa* |
| - | • | + | |
| - | eseguire | + | |
| - | bash$ valgrind ./prova | + | Scrivere un main per testarla. |
| - | in questo modo, a schermo verranno riportare le infrazioni | + | |
| - | rilevate. Ad esempio, | + | ===== Esercizio 11 ===== |
| - | invalid read | + | |
| - | o | + | Scrivere una *funzione* *ricorsiva* |
| - | invalid write | + | |
| - | sono accessi in | + | |
| - | lettura o scrittura a memoria non allocata o gia' deallocata. | + | |
| - | valgrind | + | |
| - | contiene moltissime opzioni, invitiamo gli studenti | + | |
| - | interessati ad esplorarle partendo dal sito | + | |
| - | http:// | + | |
| - | . | + | |
| - | Ricordate infine | + | |
| - | gestione della memoria dinamica. | + | |
| - | 1) Scrivere | + | Scrivere |
| - | una ListaDiInteri, | + | |
| - | modo: | + | |
| - | 1 -> 2 -> 3 -> 4 -> / / | + | |
| - | Usare questa funzione | + | |
| - | dei prossimi esercizi. | + | |
| - | 2)Scrivere una procedura che, data una lista di | + | |
| - | interi, restituisca l' | + | |
| - | stessa. | + | |
| - | 3)Definire una funzione (fornirne due versioni, | + | |
| - | una iterativa e una ricorsiva) lunghezzaLista che | + | |
| - | dat una ListaDiInteri, | + | |
| - | lunghezza. | + | |
fisica/informatica/201516/secondoanno/laboratorio_10.1462521894.txt.gz · Ultima modifica: 06/05/2016 alle 08:04 (10 anni fa) da Roberta Gori
