Scopo di questa esercitazione è di familiarizzarsi con operazioni su allocazione dinamica della memoria, stringhe, arrays, strutture, lettura e scrittura di files.
Al solito, si suggerisce di creare una directory apposita per i files relativi a questa esercitazione.
pc = (char *)malloc(n);Dove n, nella chiamata a malloc, e' un intero letto dall' esterno. Inserire la lettura di n e la chiamata a malloc in un programma C ed eseguirlo con valori via via crescenti di n. Quando malloc non riesce ad allocare memoria ritorna il valore NULL. Verificando quando questo accade, si puo' dedurre qualcosa sulla memoria del processore ?
char buffer[200]; char *buff_ptr; ... buff_ptr = gets(buffer); /* l' input e' letto in buffer il puntatore buf_ptr punta a buffer se non ci sono errori. Altrimenti a NULL */ sscanf(buffer,format_string,argomenti,....); /* legge buffer come scanf legge stdin */Scrivere un programma che legga da stdin 5 nomi in altrettante stringhe, prima usando scanf e dopo con il costrutto gets/sscanf sopra descritto.
La struttura astratta "pila" (stack) puo' essere realizzata mediante un array (la cui dimensione determinera' la lunghezza massima della pila) ed un puntatore al tipo dati degli elementi dell' array usato come indicatore del primo elemento libero dell' array.
La gestione della pila richiede di definire varie functions per controllare:
limite per x->x0 di (f(x) -f(x0))/(x-x0).Implementare con un programma C il calcolo dei rapporti incrementali
(f(x0+h)-f(x0))/h per h->0e
(f(x)-f(x0))/(x-x0) per x->x0nel caso della funzione f(x)= x2 e x0=1 . Verificare l' accuratezza delle due formule al diminuire della distanza tra punti scrivendo i risultati su un file.