Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio11:esercitazioni:esercitazione1

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
informatica:sol:laboratorio11:esercitazioni:esercitazione1 [01/03/2011 alle 10:18 (14 anni fa)] – [Esercizio 4: sul debugging] Susanna Pelagattiinformatica:sol:laboratorio11:esercitazioni:esercitazione1 [04/03/2011 alle 09:57 (14 anni fa)] (versione attuale) – [Esercizio 1: sul debugging] Susanna Pelagatti
Linea 1: Linea 1:
-====== Esercitazione 1bis ======+====== Esercitazione ======
  
  
-Dove si approfondiscono alcune caratteristiche del C sequenziale: puntatori, puntatori a funzione, librerie macro con parametri.+Dove si richiama il C sequenziale: in particolarere puntatori, strutture ricorsive, puntatori a funzione
 +Poi si introduce con un esempio il concetto di libreria (che verra' approfondito nelle lezioni di teoria) si fa la conoscenza con il debugger
  
  
-===== Esercizio 1: liste concatenate di interi =====+===== Esercizio 1: sul debugging ===== 
 +Usare il debugger [[http://www.gnu.org/software/ddd/manual/|ddd]] per trovare cosa non va nel seguente programma C:  
 +<code> 
 +#include <stdio.h> 
 +#include <stdlib.h> 
 +#include <unistd.h> 
 +#include <time.h> 
 +#define N 5 
 + 
 +int main(void) 
 +
 +  int a[N]; 
 +  int i; 
 +  srand(time(NULL)); 
 +  i=0; 
 +  while (i<N) 
 +    { 
 +       
 +      a[++i]=rand()%2; 
 +      printf("iterazione %d\n",i); 
 +    }  
 +  printf("exiting ...\n");  
 +
 +</code> 
 +in pratica il codice, salvato in "file.c" compilato con  
 +<code> 
 +gcc -Wall -pedantic -o ese file.c 
 +</code> 
 +ed eseguito con  
 +<code> 
 +$ ./ese 
 +</code> 
 +va inspiegabilmente in ciclo all'interno del ciclo. Per eseguire in modalita' interattiva di debugging: 
 +  * Compilare con opzione "-g", ad esempio <code> 
 +gcc -Wall -pedantic -g -o ese file.c 
 +</code> 
 +  * lanciare l'eseguibile usando il debugger come in <code> 
 +$ ddd ./ese 
 +</code> 
 + a questo punto e' possibile fermare il programma durante la sua esecuzione, ispezionare le variabili etc.. 
 + 
 +//Elaborazione//: Per i solutori piu' che abili, provare a trovare cosa non va nei due programmi C nei due programmi in {{:informatica:sol:laboratorio11:esercitazioni:esempi-debug.tar|esempi.tar}} 
 + 
 +===== Esercizio 2: liste concatenate di interi =====
  
 Implementare in C le seguenti funzioni che lavorano su liste concatenate di interi di tipo Implementare in C le seguenti funzioni che lavorano su liste concatenate di interi di tipo
Linea 49: Linea 93:
 Testare il funzionamento delle funzioni implementate con un opportuno ''main()''. Testare il funzionamento delle funzioni implementate con un opportuno ''main()''.
  
-===== Esercizio 2: map e reduce su liste =====+===== Esercizio 3: map e reduce su liste =====
  
 Usando le liste dell'esercizio 1 implementare le seguenti funzioni: Usando le liste dell'esercizio 1 implementare le seguenti funzioni:
Linea 71: Linea 115:
 Testare il risultato con un opportuno main. Testare il risultato con un opportuno main.
  
-===== Esercizio 3: Libreria di liste =====+===== Esercizio 4: Libreria di liste =====
  
 Realizzare una libreria che fornisce le operazioni su liste implementate negli esercizi 1 e 2.  Realizzare una libreria che fornisce le operazioni su liste implementate negli esercizi 1 e 2. 
Linea 101: Linea 145:
  
  
-===== Esercizio 4: sul debugging ===== +
-Usare il debugger ''ddd'' per trovare cosa non va nel seguente programma C:  +
-<code> +
-TBA +
-</code> +
-in pratica il codice, salvato in "file.c" compilato con  +
-<code> +
-gcc -Wall -pedantic -o ese file.c +
-</code> +
-ed eseguito con  +
-<code> +
-$ ./ese +
-</code> +
-va inspiegabilmente in ciclo all'interno di un apparentemente innocuo ''for''. Per eseguire in modalita' interattiva di debugging: +
-  * Compilare con opzione "-g", ad esempio <code> +
-gcc -Wall -pedantic -g -o ese file.c +
-</code> +
-  * lanciare l'eseguibile usando il debugger come in <code> +
-$ ddd ./ese +
-</code> +
-  * a questo punto e' possibile fermare il programma durante la sua esecuzione, ispezionare le variabili etc..+
informatica/sol/laboratorio11/esercitazioni/esercitazione1.1298974685.txt.gz · Ultima modifica: 01/03/2011 alle 10:18 (14 anni fa) da Susanna Pelagatti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki