3
« on: May 12, 2012, 12:17:08 PM »
Hello,
I need somebdy help who is good in GWBASIC and C-language,
actually I want someone to write this little GWBASIC code into C-Language
10 DIM SAT(6000)
20 ON ERROR GOTO 20
30 SCREEN 9
40 RANDOMIZE TIMER
50 PAPPOG=20000
60 APERIG=8000
70 PANGINC=40
80 COL = 2
90 CLS
100 CIRCLE(5,5),3,COL
110 PAINT(5,5),COL,COL
120 LINE (0,0)-(10,10),COL
130 LINE (0,10)-(10,0),COL
140 GET(0,0)-(10,10),SAT
150 ON KEY(1) GOSUB 1040
160 KEY(1) ON
170 CLS
180 A$=""
190 LOCATE 23,20
200 INPUT "ENTER APPOGEE (DEFAULT=20000 Km)..";APPOG
210 IF APPOG=0 THEN APPOG=PAPPOG
220 IF APPOG < 6400 OR APPOG > 60000! THEN SOUND 530,1:GOTO 170
230 CLS:LOCATE 23,20
240 INPUT "ENTER PERIGEE (DEFAULT=8000 Km)..";PERIG
250 IF PERIG=0 THEN PERIG=APERIG
260 IF PERIG < 6400 OR PERIG > 12000 THEN SOUND 530,1:GOTO 230
270 CLS:LOCATE 23,20
280 INPUT "ENTER ANGLE OF INCLINITION (DEFAULT=40 Deg)..";ANGINC
290 IF ANGINC=0 THEN ANGINC=PANGINC
300 IF ANGINC < 0 OR ANGINC > 360 THEN SOUND 530,1:GOTO 270
310 CLS
320 LOCATE 20,55:PRINT "APPOGEE (Km) = ";APPOG
330 LOCATE 21,55:PRINT "PERIGEE (Km) = ";PERIG
340 LOCATE 22,41:PRINT "ANGLE OF INCLINITION (Deg) = ";ANGINC
350 LOCATE 24,30:PRINT "PRESS < C > TO ALTER THE PARAMETERS.."
360 LOCATE 20,30:PRINT "PRESS < F1 > TO STOP...."
370 LINE(5,5)-(645,5),1
380 LINE -(645,195),1
390 LINE(5,5)-(5,195),1
400 LINE -(645,195),1
410 PAINT(3,3),0,0
420 CENTREX = 300
430 CENTREY = 100
440 APPOGEE = INT(APPOG/100)
450 PERIGEE = INT(PERIG/100)
460 EARTHRAD = INT(6370/100)
470 PI=3.141593:A=INT((APPOGEE+PERIGEE)/2):B=20
480 FOCUS = A - PERIGEE
490 EARTHX1 = FOCUS*COS(PI)
500 EARTHY1 = FOCUS*SIN(PI)
510 EARTHX = EARTHX1*COS((ANGINC-23)*PI/180)+EARTHY1*SIN((ANGINC-23)*PI/180)+CENTREX
520 EARTHY = EARTHY1*COS((ANGINC-23)*PI/180)-EARTHX1*SIN((ANGINC-23)*PI/180)+CENTREY
530 CIRCLE (EARTHX,EARTHY),EARTHRAD,1
540 PAINT (EARTHX,EARTHY),6,1
550 LINE ((EARTHRAD+5)*COS(113*PI/180)+EARTHX,(EARTHRAD+5)*SIN(113*PI/180)*8.76/12+EARTHY)-(EARTHRAD*COS(113*PI/180)+EARTHX,EARTHRAD*SIN(113*PI/180)*8.76/12+EARTHY),14
560 LINE ((EARTHRAD+5)*COS(293*PI/180)+EARTHX,(EARTHRAD+5)*SIN(293*PI/180)*8.76/12+EARTHY)-((EARTHRAD-2)*COS(293*PI/180)+EARTHX,(EARTHRAD-2)*SIN(293*PI/180)*8.76/12+EARTHY),14
570 FOR T=0 TO 360
580 X2=INT((RND*310)+5)
590 Y2=INT((RND*190)+5)
600 IF X2>(EARTHX-EARTHRAD) AND X2<(EARTHX+EARTHRAD) AND Y2>(EARTHY-EARTHRAD) AND Y2<(EARTHY+EARTHRAD) THEN 630
610 PCOL=1
620 PSET(X2,Y2),PCOL
630 X=A*COS(T*PI/180)
640 Y=B*SIN(T*PI/180)
650 X1=X*COS((ANGINC-23)*PI/180)+Y*SIN((ANGINC-23)*PI/180)+300
660 Y1=Y*COS((ANGINC-23)*PI/180)-X*SIN((ANGINC-23)*PI/180)+100
670 IF X1 > 630 THEN X1=630
680 IF X1 < 10 THEN X1=10
690 IF Y1 > 190 THEN Y1=190
700 IF Y1 < 10 THEN Y1=10
710 V= POINT(X1,Y1)
720 IF T>180 AND V>0 THEN 740
730 PSET(X1,Y1),14
740 NEXT
750 C=2000:D=100:E=3000:V=0
760 FOR T=360 TO 0 STEP -1
770 REM Z=T/90
780 REM IF Z=1 OR Z=3 OR Z=4 THEN DU=5 ELSE DU=.2
790 A$=INKEY$
800 IF A$="C" OR A$="c" THEN 170
810 X=A*COS(T*PI/180)
820 Y=B*SIN(T*PI/180)
830 X1=X*COS((ANGINC-23)*PI/180)+Y*SIN((ANGINC-23)*PI/180)+300
840 Y1=Y*COS((ANGINC-23)*PI/180)-X*SIN((ANGINC-23)*PI/180)+100
850 IF X1 > 630 THEN X1=630
860 IF X1 < 10 THEN X1=10
870 IF Y1 > 190 THEN Y1=190
880 IF Y1 < 10 THEN Y1=10
890 V= POINT(X1,Y1)
900 IF T>180 AND V<>14 THEN 910 ELSE 940
910 FOR I=1 TO C:NEXT
920 REM C=C-3
930 GOTO 1000
940 PUT(X1-5,Y1-5),SAT,XOR
950 IF T>30 AND T<310 THEN 955 ELSE 960
955 IF T>130 AND T<230 THEN 980 ELSE 965
960 FOR I= 1 TO E:NEXT: SOUND 5000,5
962 GOTO 990
965 FOR I= 1 TO C:NEXT
970 GOTO 990
980 FOR I= 1 TO D:NEXT
985 D=D+1
990 PUT(X1-5,Y1-5),SAT,XOR
1000 SOUND 6000,DU
1010 NEXT
1020 GOTO 760
1030 END
1040 RETURN 1030
I could have done this myself but since i've never used GWBASIC and have a very basic knowldge of C-Language I couldn't be able to understand the code.
I'd very glad if somebody would help me with this.
P.S: the thread is posted with the permission of one the Admin.