Programma estrazione numeri della tombola

TOMBOLA_OK.CPP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
December 10, 2007
Page 1
// PROGRAMMA PER GENERARE A CASO I NUMERI DA 1 A 90
// E STAMPARLI A VIDEO COME SE FOSSE IL TABELLONE DELLA TOMBOLA
#include
#include
#include
#include
<conio.h>
<stdlib.h>
<stdio.h>
<time.h>
// funzione per stampare a video un numero come sul tabellone della tombola
void StampaNum(int Num);
void main()
{ int Num;
// valore generato a caso (da 1 a 90)
int i;
// contatore dei numeri fin ad ora generati
int Fine=0; // flag di controllo fine esecuzione
char Ch;
int Estratto[91]; //vettore di FLAG che ricordano se numero già estratto
int TotN=0;
//Totale Numeri estratti
clrscr();
printf("Batti ESC per uscire, qualsiasi altro tasto per estrarre un altro numero");
//azzero tutti gli elementi del vettore
for (i=0; i<91 ; i++ ) Estratto[i]=0;
randomize();
for (i=0; (i<=90) && (Fine==0) ; i++ ) {
//ritenta a generare numero se il numero è già uscito
do {
Num= (rand() % 90);
//
resto della divisione intera per 90
Num = Num +1;
// il suo valore è sicuramente tra 1 e 90 compresi
} while ((Estratto[Num]==1) && (TotN<90));
Estratto[Num]=1;
TotN++;
StampaNum(Num);
Ch=getch();
if (Ch==27 )
Fine=1; // se batti ESC (ASCII 27) termina programma
}
gotoxy(1,20);
printf ("\n\nbatti un ultimo tasto per finire");
getch();
}
// fine main
// funzione per stampare a video un numero come sul tabellone della tombola
void StampaNum(int Num)
{
int Riga;
//riga
in cui stampare il numero
int Colonna;
//Colonna
in cui stampare il numero
int Unita, Decine;
//unità e decine del numero ricevuto dal main
Unita=Num % 10;
// calcola le unità
Decine= (Num-Unita)/10; //calcola le decine
if (Unita==0) {
Colonna=40;
Riga= Decine + 1;
}
else {
Colonna=Unita*4;
Riga= Decine + 2;
}
gotoxy(Colonna,Riga);
printf("%3d" ,Num);
}
//posiziona il cursore nella posizione corretta
//stampa il numero
0..89
TOMBOLA_OK.CPP
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
December 10, 2007
/* ESEMPIO DI ESECUZIONE
1
11
21
31
51
61
71
81
*/
2
12
22
32
42
52
62
72
82
3
13
23
33
43
53
73
83
4
24
34
44
54
64
74
84
5
15
25
35
45
55
65
75
85
6
26
36
46
56
66
76
86
7
17
27
37
47
57
67
77
8
18
28
38
48
58
68
78
88
9
10
20
29
49
59
69
79
89
40
50
60
70
80
90
Page 2