Il seguente programma random.c scrive una immagine random su un file. La istruzione srandom(time(NULL)); è necessaria all'inizio per inizializzare il generatore di numeri random. Dopo aver aperto il file, si determinano altezza e larghezza dell'immagine sempre come numeri random. Per ogni punto dell'immagine, si decide se deve essere nero o bianco semplicemente usando il generatore di numeri casuali. Si ricorda che il risultato della espressione random()%n, in cui n è un numero intero, ritorna un numero casuale compreso fra 0 ed n-1.
/* Scrive una bitmap random. */ #include<stdlib.h> #include<stdio.h> #include<time.h> int main() { FILE *fd; int x, y; int w, h; /* inizializza il generatore casuale */ srandom(time(NULL)); /* apre il file in scrittura */ fd=fopen("test.pbm", "w"); if(fd==NULL) { perror("Errore in apertura del file"); exit(1); } /* determina larghezza e altezza */ w=random()%300; h=random()%300; /* intestazione */ fprintf(fd, "P1 %d %d\n", w, h); /* scrive la bitmap su file */ for(y=h-1; y>=0; y--) for(x=0; x<=w-1; x++) if(random()%2) fprintf(fd, "1\n"); else fprintf(fd, "0\n"); /* chiude il file */ fclose(fd); return 0; }
Un esempio di immagine prodotta è qui sotto.
|