calcola frequenza lancio dado e disegna grafico frequenze VBA EXCEL PASCAL
Private Sub CommandButton1_Click() 'genera numeri casuali tra 1 e 6 con lancio dado 'calcola frequenza e visualizza per ogni numero 'disegna grafico numero,frequenza con Linee,istogrammi Dim numero As Double Dim f1, f2, f3, f4, f5, f6 As Integer Dim k As Integer Dim h As Integer Dim lanci As Integer 'inserire numero di lanci da eseguire lanci = Cells(2, 2) ' genera numeri casuali' For k = 1 To lanci Cells(k, 1) = Int(Rnd() * 6 + 1) h = Cells(k, 1) ' calcola frequenze ' Select Case h Case 1 f1 = f1 + 1 Case 2 f2 = f2 + 1 Case 3 f3 = f3 + 1 Case 4 f4 = f4 + 1 Case 5 f5 = f5 + 1 Case 6 f6 = f6 + 1 End Select Next k 'visualizza frequenze per lanci Cells(1, 4) = "f1" Cells(2, 4) = "f2" Cells(3, 4) = "f3" Cells(4, 4) = "f4" Cells(5, 4) = "f5" Cells(6, 4) = "f6" Cells(1, 5) = 1 Cells(2, 5) = 2 Cells(3, 5) = 3 Cells(4, 5) = 4 Cells(5, 5) = 5 Cells(6, 5) = 6 Cells(1, 6) = f1 Cells(2, 6) = f2 Cells(3, 6) = f3 Cells(4, 6) = f4 Cells(5, 6) = f5 Cells(6, 6) = f6 End Sub
creare PULSANTE ,scrivere numero lanci in B2,clic per risultati,selezionare
A | B | C | D | E | F | |
1 | 4 | lanci= | f1 | 1 | 315 | |
2 | 7 | 2000 | f2 | 2 | 308 | |
3 | 4 | f3 | 3 | 358 | ||
4 | 3 | f4 | 4 | 340 | ||
5 | 2 | f5 | 5 | 330 | ||
6 | 1 | f6 | 6 | 349 |
altri numeri generati in colonna A non visualizzati nello schema
scrivere formula per uscita numero casuale in A1 =INT(CASUALE()*6+1)
e ricopiarla con MODIFICA-SOSTITUISCI in tutte le celle A1..F10
scrivere in A12 la formula per leggere i valori =CONTA.SE(A1:F10;"=1")
e copiarla modificata nelle celle A12..F12 per calcolo frequenze:eseguire grafico
A B C D E F 1 3 4 5 1 6 6 2 2 3 6 2 1 3 3 3 6 4 3 6 1 4 1 2 2 1 6 3 5 6 5 4 3 4 2 6 6 1 1 5 3 3 7 6 2 1 5 4 2 8 2 2 1 6 2 2 9 1 4 2 3 6 4 10 3 4 2 1 6 3 11 12 11 13 12 8 4 12 FREQUENZE 13 14 1 11 f1 15 2 13 f2 16 3 12 f3 17 4 8 f4 18 5 4 f5 19 6 12 f6 =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =CONTA.SE(A1:F10;"=1") =CONTA.SE(A1:F10;"=2") =CONTA.SE(A1:F10;"=3") 14 1 =A12 F1 15 2 =B12 F2 16 3 =C12 F3 17 4 =D12 F4 18 5 =E12 F5 19 6 =F12 F6 =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =INT(CASUALE()*6+1) =CONTA.SE(A1:F10;"=4") =CONTA.SE(A1:F10;"=5") =CONTA.SE(A1:F10;"=6")
program pro8; uses crt,graph; var a,b,c:integer ; media:real; sc,tp:integer; drive:string; somma,f1,f2,f3,f4,f5,f6:integer; g1,g2,g3,g4,g5,g6:string; procedure grafica; var sc,tp:integer; drive:string; begin sc:=0; tp:=0; drive:='c:\tp\bgi'; initgraph(sc,tp,drive); end; procedure calcola; var n:integer; begin (* possibile cambiare n,ma ninore di 2000 per grafica..*) write('numero lanci <200 =? ');readln(n); for a:=1 to n do begin b:=(random(6)+1); somma:=somma+b; case b of 1:f1:=f1+1; 2:f2:=f2+1; 3:f3:=f3+1; 4:f4:=f4+1; 5:f5:=f5+1; 6:f6:=f6+1; end; end; media:=somma/n; writeln('media=',media:6:2); writeln('numero uscito e frequenza'); writeln('1=',f1); writeln('2=',f2); writeln('3=',f3); writeln('4=',f4) ; writeln('5=',f5) ; writeln('6=',f6) ; str(f1,g1); str(f2,g2); str(f3,g3); str(f4,g4); str(f5,g5); str(f6,g6); readln; end; procedure disegna; begin line(80,300,80,50); line(80,300,300,300); line(100,300,100,300-f1); line(130,300,130,300-f2); line(160,300,160,300-f3); line(190,300,190,300-f4); line(220,300,220,300-f5); line(250,300,250,300-f6); outtextxy(100,350,'f1'); outtextxy(130,350,'f2'); outtextxy(160,350,'f3'); outtextxy(190,350,'f4'); outtextxy(220,350,'f5'); outtextxy(250,350,'f6'); outtextxy(100,380,g1); outtextxy(130,380,g2); outtextxy(160,380,g3); outtextxy(190,380,g4); outtextxy(220,380,g5); outtextxy(250,380,g6); readln; end; begin clrscr; calcola; grafica; disegna; closegraph; end. run numero lanci <200 =? 1000 media= 3.47 numero uscito e frequenza 1=175 2=163 3=176 4=154 5=170 6=162