Strumenti Utente

Strumenti Sito


fisica:informatica:201516:secondoanno:laboratorio_10

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
fisica:informatica:201516:secondoanno:laboratorio_10 [06/05/2016 alle 08:07 (9 anni fa)] – [Esercizio 3] Roberta Gorifisica:informatica:201516:secondoanno:laboratorio_10 [06/05/2016 alle 08:24 (9 anni fa)] (versione attuale) – [Esercizio 9] Roberta Gori
Linea 56: Linea 56:
   *ricevute due date verifichino che la prima preceda la seconda;   *ricevute due date verifichino che la prima preceda la seconda;
   *ricevute due date, ritornino la differenza in anni fra la prima e la seconda.   *ricevute due date, ritornino la differenza in anni fra la prima e la seconda.
- 
  
 ===== Esercizio 2  ===== ===== Esercizio 2  =====
- Scrivere un nuovo tipo di dato coppia di interi.  
-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'utente inizializzi con valori chiesti all'utente
Linea 74: Linea 68:
 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  che stampi  una lista (di lunghezza qualsiasi) a video in questo modo:
 +<code>
 +1 -> 9 -> 3 //
 +</code> 
 +
 +Utilizzare la procedura nel main precedente per verificarne la correttezza.
  
 ===== Esercizio 4  ===== ===== Esercizio 4  =====
Linea 83: Linea 85:
 installato sul vostro pc). installato sul vostro pc).
  
 +===== Esercizio 5  =====
 + Scrivere una *funzione* che   calcoli  la  lunghezza di una lista percorrendo la
 +lista dall'inizio alla fine.
  
 +Testare questa funzione utilizzando un'opportuno  main.
  
-  +Ricordarsi di deallocare la lista prima di uscire dal main. 
-11) Scrivere un programma che, creata una lista di interi come + 
-nell'esercizio precedente, calcoli e stampi la sua lunghezza percorrendo la +===== Esercizio 6  ===== 
-lista dall'inizio alla fine+Scrivere una procedura *ricorsiva*  che stampi  una lista (di lunghezza qualsiasia video in questo modo: 
-Ricordarsi di deallocare la lista prima di uscire dal main (e verificare con  +<code> 
-valgrind che questo sia avvenuto, vedi n+1 -> 9 -> 3 // 
 +</code>  
 + 
 +===== Esercizio 7  ===== 
 + 
 +Scrivere una *procedura* iterativa che  dato un n interocrei una lista di n elementi inizializzati con variabili random. 
 + 
 +Scrivere un main per testarla.  
 + 
 +===== Esercizio 8  ===== 
 + 
 +Scrivere una *funzione*  che  dato un n interocrei una lista di n elementi inizializzati con variabili random. 
 + 
 +Scrivere un main per testarla.  
 + 
 + 
 +===== Esercizio 9 ===== 
 + 
 +Scrivere una *funzione* *ricorsiva*  che calcoli la lunghezza di una lista. 
 + 
 + 
 +Scrivere un main per testarla.  
 +   
 +   
 +===== Esercizio 10 ===== 
 + 
 +Scrivere una *funzione* *iterativa*  che controlli che la lista contenga solo interi positivi.  
 + 
 + 
 +Scrivere un main per testarla. 
  
 +===== Esercizio 11 =====
  
-In alcuni degli esercizi che seguono (quando richiesto) si utilizzi la +Scrivere una *funzione* *ricorsiva*  che controlli che la lista contenga solo interi positivi
-seguente definizione di tipo "lista di interi": +
-typedef struct El { +
-int info; +
-struct El *next; +
-} ElementoListaInt; +
-typedef ElementoListaIntListaDiInteri; +
-Inoltre, dove c'è bisogno di allocazione dinamica della memoria, +
-dovete assicurarvi di deallocare SEMPRE tutta la memoria allocata. +
-Per verificarlo potete usare valgrind se correttamente installata sul +
-vostro computer.  +
-Questo strumento permette fra l'altro di capire se tutte le variabili +
-sono inizializzate prima del loro uso, se accediamo a memoria gia' +
-deallocata o mai allocata e situazioni similari. +
-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  +
-main.c +
- posso compilare con +
-bash$ gcc -Wall -pedantic -g -o prova main.c +
-• +
-eseguire +
-bash$ valgrind ./prova +
-in questo modo, a schermo verranno riportare le infrazioni +
-rilevate. Ad esempio,  +
-invalid read +
- o  +
-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://valgrind.org/ +
-.  +
-Ricordate infine che dovete includere la libreria stdlib.h per la +
-gestione della memoria dinamica.+
  
  
-1) Scrivere una funzione stampaLista che ricevuta +Scrivere un main per testarla.
-una ListaDiInteri, la stampi a video in questo +
-modo: +
-1 -> 2 -> 3 -> 4 -> / / +
-Usare questa funzione per verificare le funzioni +
-dei prossimi esercizi.  +
-2)Scrivere una procedura che, data una lista di +
-interi, restituisca l'i-esimo elemento della lista +
-stessa. +
-3)Definire una funzione (fornirne due versioni, +
-una iterativa e una ricorsiva) lunghezzaLista che +
-dat una ListaDiInteri, restituisca la sua +
-lunghezza.+
fisica/informatica/201516/secondoanno/laboratorio_10.1462522037.txt.gz · Ultima modifica: 06/05/2016 alle 08:07 (9 anni fa) da Roberta Gori

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki