Questa pagina contiene gli esercizi proposti in laboratorio e -alcune- delle soluzioni proposte.
Si suggerisce di provare a risolvere gli esercizi e solo in un secondo tempo di confrontare quanto fatto con le soluzioni proposte.
La funzione rand(), definita in stdlib.h, restituisce un intero
casuale compreso nell'intervallo [0, RAND_MAX]. La sequenza e' in
realta' pseudocasuale in quanto e' ottenuta a partire da un seme
(seed) ovvero un valore numerico. A questo seme si applicano formule,
operazioni bit a bit ecc. fino ad ottenere un numero che viene
restituito da rand() e verra' usato come seme per la volta successiva.
Ne consegue che rand() restituisce ogni volta la stessa sequenza di
numeri casuali. Per evitare tale comportamento e ottenere quindi una
sequenza ogni volta differente si puo' utilizzare la funzione srand().
Ad esempio invocandola all'inizio della main, una e una sola volta,
come:
#include
...
srand(time(0));
Scrivere codice che:
1. usi rand() per riempire un array di 100 elementi con numeri interi
casuali tra 0 e 70 e lo stampi (suggerimento, usare "%")
2. usi rand() per riempire un array di 100 elementi con numeri interi
casuali tra 10 e 80 e lo stampi
3. come il (2) in cui però non si stampa ma, solo dopo aver riempito
l'array, si richiede all'utente un numero, lo si ricerca nell'array
e si stampa se esiste e in quale posizione si trovi (limitarsi alla
prima occorrenza del numero cercato) o se non esiste.
4. come il (2) in cui però prima della stampa si eliminino gli
elementi duplicati
5. usi rand() per riempire un array di 100 elementi con numeri interi
univoci tra 1 e 300 e lo stampi
6. riempa un array di 100 elementi con i numeri tra 1 e 100 in ordine
e successivamente lo "mescoli", ovvero scambi di posizione in maniera
casuale i vari elementi dell'array, e poi lo stampi. Suggerimento: si
scorra l'array elemento per elemento e per ciascun elemento generare
casualmente (rand()) l'indice di un altro elemento con cui scambiarlo.
7. usi un array per memorizzare le caselle di una scacchiera 8x8, lo
si inizializzi usando uno o piú cicli mettendo 'N' per le caselle nere e
'B' per quelle chiare e successivamente lo stampi:
NBNBNBNB
BNBNBNBN
NBNBNBNB
BNBNBNBN
NBNBNBNB
BNBNBNBN
NBNBNBNB
BNBNBNBN
8. come il precedente ma usando un array monodimensionale...
(suggerimento: data una matrice di N righe e M colonne è possibile
memorizzarla in un array monodimensionale di dimensioni MxN; l'accesso
all'elemento in riga y e colonna x lo posso effettuare accedendo
all'elemento di indice x + M*y)
Se avete commenti o osservaƶioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it