PinoTux
| Inviato il: 11/11/2014 14:15:04
|
Con Punti Parabola hai risvegliato vecchi ricordi di quando programmavo(!) in Basic...
La prima opzione calcola i punti per la realizzazione meccanica, la seconda la dimensione della bocca del'illuminatore troncopiramidale in guida d'onda... era il tempo che mi cimentavo sulle microonde già da una decina di anni...
PARABOLA.BAS
10 CLS : KEY OFF: FOR I = 1 TO 10: KEY I, "": NEXT: SCREEN 0, 0, 0
20 R1$ = CHR$(201) + STRING$(78, 205) + CHR$(187): R2$ = CHR$(200) + STRING$(78, 205) + CHR$(188)
30 TIT$ = CHR$(186) + " CALCOLO DEI PARAMETRI DI UNA PARBOLA E DELL' ILLUMINATORE TRONCOPIRAMIDALE " + CHR$(186)
40 D = 0: C = 0: F = 0: FD = 0: DF = 0: LS = 299780!: T = 0: AR = 0: A = 0: B = 0: PI = 3.141592654#: FL = 0: Q$ = " LE QUOTE SONO IN CENTIMETRI "
50 GOSUB 1120
60 LOCATE 6, 3: PRINT "Scelta Opzioni :"
70 LOCATE 8, 20: PRINT "1. CALCOLO DELLA PARABOLA"
80 LOCATE 10, 20: PRINT "2. CALCOLO DELL' ILLUMINATORE"
90 LOCATE 12, 20: PRINT "3. FINE LAVORO"
100 LOCATE 23, 3: PRINT "Quale scegli ?";
110 FL$ = INKEY$: IF FL$ = "" THEN 110
120 FL = VAL(FL$)
130 IF FL < 1 OR FL > 3 THEN BEEP: GOTO 100
140 LOCATE 23, 20: PRINT FL$: FOR I = 1 TO 500: NEXT
150 IF FL = 3 THEN 1130
160 GOSUB 1120
170 IF FL = 1 THEN LOCATE 6, 20: PRINT "CALCOLO DELLA PARABOLA"
180 IF FL = 2 THEN LOCATE 6, 20: PRINT "CALCOLO DELL' ILLUMINATORE"
190 LOCATE 8, 20: PRINT "Caratteristiche note :"
200 LOCATE 10, 20: PRINT "1. DIAMETRO e PROFONDITA'"
210 LOCATE 12, 20: PRINT "2. DIAMETRO e DISTANZA FOCALE"
220 LOCATE 14, 20: PRINT "3. DIAMETRO e RAPPORTO f/D"
230 LOCATE 16, 20: PRINT "4. DIAMETRO e RAPPORTO D/f"
240 LOCATE 18, 20: PRINT "5. Ritorno al Menu' Opzioni"
250 LOCATE 23, 3: PRINT "Quale scegli ?";
260 SC$ = INKEY$: IF SC$ = "" THEN 260
270 SC = VAL(SC$)
280 IF SC < 1 OR SC > 5 THEN BEEP: GOTO 250
290 LOCATE 23, 20: PRINT SC$: FOR I = 1 TO 500: NEXT
300 CLS : IF SC = 5 THEN 50
310 LOCATE 2, 2: INPUT "DIAMETRO in centimetri......: "; D
320 IF D = 0 THEN 310
330 ON SC GOTO 340, 380, 410, 450, 1120
340 LOCATE 4, 2: INPUT "PROFONDITA' in centimetri...: "; C
350 IF C = 0 THEN 340
360 F = (D ^ 2) / (16 * C)' F = FUOCO
370 FD = F / D: DF = D / F: GOTO 500
380 LOCATE 4, 2: INPUT "FUOCO in centimetri.........: "; F
390 IF F = 0 THEN 380
400 FD = F / D: DF = D / F: GOTO 490
410 LOCATE 4, 2: INPUT "RAPPORTO F/D................: "; FD
420 IF FD = 0 THEN 410
430 F = D * FD' F = FUOCO
440 DF = D / F: GOTO 490
450 LOCATE 4, 2: INPUT "RAPPORTO D/F................: "; DF
460 IF DF = 0 THEN 450
470 F = D / DF' F = FUOCO
480 FD = F / D: GOTO 490
490 C = (D ^ 2) / (16 * F)' C = PROFONDITA'
500 T = D / (2 * (F - C))
510 AR = (ATN(T) * 180 / PI) * 2'h angolo sotteso dal fuoco ai bordi della parabola
520 IF FL = 1 THEN 900
530 LOCATE 6, 2: INPUT "FREQUENZA in MHz............: "; FR
540 IF FR = 0 THEN 530
550 LA = LS / FR 'lambda
560 A = (79 / (AR - 31)) * LA'lato maggiore dell'illuminatore
570 B = (88 / AR) * LA'lato minore dell'illuminatore
580 GR = .707 / ((FR / 1000) * (D / 100) / 30)'angolo di radiazione
590 GA = (PI ^ 2) * ((((D / 100) * FR) / 300) ^ 2)'guadagno teorico
600 GB = GA * .3 'guadagno 30%
610 GC = GA * .5 'guadagno 50%
620 GD = GA * .6 'guadagno 60%
630 GA1 = 10 * LOG(GA) / LOG(10) 'guadagno in dB
640 GB1 = 10 * LOG(GB) / LOG(10)
650 GC1 = 10 * LOG(GC) / LOG(10)
660 GD1 = 10 * LOG(GD) / LOG(10)
670 '------ stampa risultati calcolo illuminatore ------
680 CLS : LOCATE 2, 2: PRINT "RISULTATI CALCOLATI PER LA FREQUENZA DI"; FR; "MHz"
690 LOCATE 4, 2: PRINT "Diametro parabola........cm :"; USING "####.#"; D
700 LOCATE 4, 43: PRINT "Profondita' parabola.....cm :"; USING "####.#"; C
710 LOCATE 6, 2: PRINT "Distanza focale..........cm :"; USING "####.#"; F
720 LOCATE 6, 43: PRINT "Apertura focale h.....gradi : "; USING "###.#"; AR
730 LOCATE 8, 2: PRINT "Rapporto f/D................: "; USING "#.###"; FD
740 LOCATE 8, 43: PRINT "Rapporto D/f................: "; USING "#.###"; DF
750 LOCATE 10, 2: PRINT "Angolo di rad. -3 dB gradi : "; USING "###.#"; GR
760 LOCATE 10, 43: PRINT "Guadagno in potenza.........: "; USING "######"; GA
770 LOCATE 12, 2: PRINT "Guadagno teorico.........dB : "; USING "###.#"; GA1
780 LOCATE 12, 43: PRINT "Guadagno con resa 30%....dB : "; USING "###.#"; GB1
790 LOCATE 14, 2: PRINT "Guadagno con resa 50%....dB : "; USING "###.#"; GC1
800 LOCATE 14, 43: PRINT "Guadagno con resa 60%....dB : "; USING "###.#"; GD1
810 LOCATE 16, 2: PRINT "DIMENSIONI DELL' ILLUMINATORE TRONCOPIRAMIDALE"
820 LOCATE 18, 2: PRINT "Apertura lato A..........mm : "; USING "###.#"; A
830 LOCATE 18, 43: PRINT "Apertura lato B..........mm : "; USING "###.#"; B
840 LOCATE 25, 23: PRINT "(S/N)";
850 '
860 LOCATE 25, 2: COLOR 23, 0: PRINT " UN ALTRO CALCOLO ? "; : COLOR 7, 0
870 A$ = INKEY$: IF A$ = "" THEN 840
880 IF A$ = "S" OR A$ = "s" THEN 160 ELSE GOTO 10
890 '-------- calcolo della curvatura --------
900 CLS : LOCATE 25, 50: COLOR 0, 7: PRINT Q$; : COLOR 7, 0: LOCATE 24, 4: PRINT "Y^ X^"; " Y=Distanza dal centro X=Profondita'";
910 A = (4 * C) / (D * D): J = 1: Z = 1: ZZ = 1
920 D = INT(D + .5)
930 FOR Y = 1 TO D / 2 STEP .5
940 X = C - (A * (Y * Y))
950 IF J = 24 THEN J = 1: Z = Z + 16: ZZ = ZZ + 1
960 IF ZZ = 5 AND J = 23 THEN GOSUB 1050
970 LOCATE J, Z: PRINT USING " ####.#="; Y; : PRINT USING "###.## "; X
980 J = J + 1
990 NEXT Y
1000 BEEP: LOCATE 25, 23: PRINT "(S/N)";
1010 '
1020 LOCATE 25, 2: COLOR 23, 0: PRINT " UN ALTRO CALCOLO ? "; : COLOR 7, 0
1030 A$ = INKEY$: IF A$ = "" THEN 1030
1040 IF A$ = "S" OR A$ = "s" THEN 160 ELSE GOTO 10
1050 BEEP
1060 '
1070 LOCATE 25, 2: COLOR 23, 0: PRINT " PREMI UN TASTO PER CONTINUARE "; : COLOR 7, 0
1080 WHILE INKEY$ = "": WEND
1090 J = 1: Z = 1: ZZ = 1
1100 CLS : LOCATE 25, 50: COLOR 0, 7: PRINT Q$; : COLOR 7, 0: LOCATE 24, 4: PRINT "Y^ X^"; " Y=Distanza dal centro X=Profondita'"; : RETURN
1110 '
1120 CLS : PRINT R1$; TIT$; R2$: RETURN
1130 CLS : END
1140 'Programma scritto da IW3QCV - Giuseppe Steffe' - TRIESTE - 06/03/1989
E se provassi a portare le routine in EAbasic?
--------------- "Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza" http://iv3gfn.altervista.org/ http://pptea.altervista.org/
|