DECLARE SUB PROVA (U!) DECLARE SUB Cartella () DIM SHARED Percorso$ ' Programma da completare per costruire file che rappresentino fenomeni ' casuali analizzabili con STAT, con estensione STF. '*** Il file e' registrato nella cartella definita nel Sub CARTELLA '(puoi premere Alt+V+S+C+Invio per accedervi) '*** Nel sottoprogramma PROVA (Alt+V+S+P+Invio) 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 nel Sub ESEMPI '*** Se vuoi prendere a caso la successione di numeri pseudocasuali togli ' l'apice dalla riga seguente. 'RANDOMIZE TIMER CALL Cartella PRINT : COLOR (11) PRINT "Finito l'uso del programma, non registrare le modifiche (o registra il" PRINT "programma con un nuovo nome).": COLOR (10) PRINT "Hai letto i commenti presenti nella lista del programma e modificato oppor-" INPUT "tunamente il Sub PROVA (s/n)"; risp$ IF UCASE$(risp$) <> "S" THEN END INPUT "nome file"; nome$ IF UCASE$(RIGHT$(nome$, 4)) <> ".STF" THEN nome$ = nome$ + ".stf" INPUT "eventuale commento"; COMMENTO$ INPUT "n.dati"; n.dati OPEN Percorso$ + nome$ FOR OUTPUT AS #1 PRINT #1, "'" + COMMENTO$ FOR i = 1 TO n.dati CALL PROVA(U) PRINT #1, U NEXT CLOSE #1 PRINT "Il file e` stato generato." END SUB Cartella ' In percorso$ metti l'indirizzo della cartella in cui vuoi registrare i file Percorso$ = "C:/" ' 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. END SUB SUB ESEMPI ' Copia, modifica, incolla nel sub Prova '------------------- ' 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 THEN U = 174 + (U - 10) * 7.1 / SQR(20 / 12) ELSE U = 148 + (U - 10) * 5.9 / 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 '------------------- END SUB SUB PROVA (U) U = END SUB