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.
|
|