' Programma da completare per costruire file che rappresentino fenomeni ' casuali analizzabili con STAT, con estensione STF '** Il file e' registrato nella cartella definita nel sottoprogramma CARTELLA '** Nel sottoprogramma PROVA devi mettere una o piu` righe ' che assegnino a U il dato che man mano vuoi mettere nel file ' Ad es per l'esito del lancio di due dadi 'equi' puoi mettere: ' U1 = FIX(RND*6)+1 : U2 = FIX(RND*6)+1 ' U = U1 + U2 ' oppure: ' U = FIX(RND*6) + FIX(RND*6) + 2 '** Altri ESEMPI li trovi in fondo '** Se vuoi prendere a caso la successione di numeri pseudocasuali togli ' l'apice dalla riga seguente: 'RANDOMIZE TIMER PRINT : COLOR 11 PRINT "Finito l'uso del programma, non registrare le modifiche (o registra" PRINT "il programma con un nuovo nome)": COLOR 10 PRINT "Hai letto i commenti presenti nella lista del programma e modificato" INPUT "opportunamente il sottoprogramma PROVA (s/n)"; risp$ IF UCASE$(risp$) <> "S" THEN END GOSUB Cartella : est$=CHR$(46)+"stf" INPUT "nome file"; nome$ IF UCASE$(RIGHT$(nome$, 4)) <> ucase$(est$) THEN nome$ = nome$ + est$ INPUT "eventuale commento"; Commento$ INPUT "numero dati"; NumeroDati OPEN Percorso$ + nome$ FOR OUTPUT AS #1 PRINT #1, "'" + Commento$ FOR dato = 1 TO NumeroDati GOSUB Prova PRINT #1, U NEXT CLOSE #1 PRINT "Il file e` stato generato" END '------ Sottoprogramma PROVA ------------------------------------- Prova: U = RETURN '------ Sottoprogramma CARTELLA ------------------------------------- Cartella: ' In percorso$ metti l'indirizzo della cartella in cui vuoi registrare i file ' C:/DOCUME~1/PIPPO/DOCUME~1/ questo (o con \ al posto di /) e' il possibile ' percorso per arrivare alla cartella Documenti contenuta nella cartella dell' ' utente Pippo contenuta nella cartella Documents and Settings ' percorso+nome devi usarlo nel box per importare file del programma Poligon ' Per individuare un percorso puoi usare File-Open e poi copiarlo dalla fine- ' stra di dialogo usando Modifica-Segna dal menu che si apre cliccando in alto ' a sinistra Percorso$ = "C:/" RETURN '------------ ESEMPI ------------------------------------------------ ' Copia, modifica, incolla nel sottprogramma Prova, prima di RETURN '------------------- ' Distribuzione gaussiana di media M e sqm S M = 11: S = 7 U = 0: FOR i = 1 TO 20: U = U + RND: NEXT U = M + (U - 10) * S / SQR(20 / 12) '------------------- ' Distribuzione delle altezze di una popolazione composta per il 45% ' da una sottopopolazione con altezza di media 174 e sqm 7,1 e per il ' resto da una sottopop con altezza di media 148 e sqm 5,9 U = 0: FOR i = 1 TO 20: U = U + RND: NEXT IF RND > 45/100 THEN U = 174 + (U - 10) * 71E-1 / SQR(20 / 12) ELSE U = 148 + (U - 10) * 59E-2 / SQR(20 / 12) END IF '------------------- ' Distribuzione esponenziale di media M (cambia l'assegnazione a M) M = 97 U = -LOG(1 - RND) * M '------------------- ' Distribuzione Chi^2 a NG gradi di liberta' NG = 5 nc = NG + 1: FrAtt = 50 / nc ' n=50, Pr=1/nc, FrAtt=n*Pr DIM FrOss(nc) ' frequenza assoluta osservata FOR h = 1 TO 50 ' eseguo 50 lanci e metto in FrOss(k) k = INT(RND * nc + 1) FrOss(k) = FrOss(k) + 1 ' il numero delle volte che esce k NEXT U = 0: FOR i = 1 TO nc: U = U + (FrOss(i) - FrAtt) ^ 2: NEXT U = U / FrAtt ERASE FrOss