Although GwBasic is quite outdated, unfortunately it is still very much a part of the syllabus of Indian schools and colleges. And myself being Indian also has known the pain of typing programs in that black DOS screen.
Here are a few examples of GwBasic programs:

|
|
5
DIM X(5) 10 REM BUBBLE SORT METHOD 20 ' 30 CLS 40 DIM A(10) 50 REM INPUT MODULE 60 FOR I=1 TO 10 70 INPUT "ENTER ANY NO.=";A(I) 80 NEXT I 90 ' 100 REM BUBBLESORT ROUTINE STARTS 110 FLAG=0: NE=10 120 WHILE FLAG=0 130 FLAG=1: NE=NE-1 140 FOR I=1 TO NE 150 WHILE A(I)>A(I+1) 160 SWAP A(I),A(I+1) 170 FLAG=0 180 WEND 190 NEXT I 200 WEND 210 ' 220 REM PRINTING MODULE 230 CLS 240 PRINT TAB(35) "SORTED LIST" 250 FOR I=1 TO 10 260 PRINT TAB(40) A(I) 270 NEXT I 280 END |
|
|
10
REM PROGRAM TO CHANGE LOWER CASE - UPPER CASE LETTER 20 ' 30 CLS 40 A$="a quick brown fox jumps on a lazy dog" 50 L=LEN(A$) 60 Y$=LEFT$(A$,1):P=1:GOSUB 1000 70 FOR I=1TOL 80 Y=INSTR (I,A$," ") 90 IF Y<>0 THEN Y$=MID$(A$,Y+1,1):P=Y+1:GOSUB 1000:Y=Y+1 100 NEXT I 110 PRINT "MODIFIER NAME=";A$ 120 END 1000 ' 1010 REM SUBROUTINE TO MODIFY LOWER CASE - UPPER CASE LETTER 1020 ' 1030 MID$ (A$,P,1)=CHR$ (ASC(Y$)-32) 1040 RETURN |
|
|
20
REM DAYS 30 INPUT "ENTER ANY DAY NUMBER=";DAYN 40 IF DAYN<1 OR DAYN>7 OR INT(DAYN)<>DAYN THEN PRINT"***INVALID DATA:TRY AGAIN***":GOTO 30 50 FOR I=1 TO DAYN 60 READ DAY$ 70 NEXT I 80 DATA MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY 90 RESTORE 100 CLS 110 PRINT"DAY NUMBER=";DAYN 120 PRINT"DAY=";DAY$ 130 INPUT"DO U WANNA KONTINU(Y/N?)";ANS$ 140 Y$=LEFT$(ANS$,1) 150 IF Y$="Y" OR Y$="y" THEN 20 160 N$=LEFT$(ANS$,1) 170 IF N$="N" OR N$="n" THEN PRINT"GOOD BYE**SEEYA**" 180 END |
|
|
2
REM DECIMAL TO BINARY 5 CLS 6 S=0 10 INPUT "ENTER BINARY NO.=";N$ 20 ' 30 L=LEN(N$) 40 FOR I= L TO 1 STEP -1 50 Y$=MID$(N$,I,1) 60 Y=VAL(Y$) 70 S=S+Y*2^(L-I) 80 NEXT I 90 PRINT"RESULT="S |
|
|
10
REM PROGRAM TO FIND THE SQUARE ROOT USING NEWTON
RAPHSON METHOD 20 ' 30 CLS 40 INPUT "ENTER THE GUESS VALUE =";G# 50 DEF FNX(X#)=X#*X# 60 FOR I=1 TO N 70 XI=G#-FNX(G#)/(2*G#) 80 NEXT I 90 S#=G#-H# |
|
|
5 REM SEARCH |
|
|
10
DIM A(20) 20 FOR I=1 TO 20 30 INPUT "ENTER ANY NUMBER=";A(I) 40 NEXT I 50 FLAG=0:NE=20 60 WHILE FLAG=0 70 FLAG=1:NE=NE-1 80 FOR I=1 TO NE 90 WHILE A(I)>A(I+1) 100 SWAP A(I),A(I+1) 110 FLAG=0 120 WEND 130 NEXT I 140 WEND 150 INPUT " ENTER NUMBER TO SEARCH FOR =",N 160 FOR I = 1 TO 20 170 IF N=A(I) THEN PRINT "NO. FOUND AT POSITION ", I 175 PRINT "NO. NOT FOUND" 180 NEXT I 190 END |
|
|
10
REM PROGRAM TO FIND INTEGRAL USING (1)TRAPEZOIDAL RULE
(2)SIMPSONS 1/3rd RULE 20 ' 30 CLS 40 DEF FNTRAP#(X#)=4/(1+X#*X#) 50 DEF FNSIMP#(X#)=4/(1+X#*X#) 60 INPUT "ENTER THE LOWER LIMIT=";LOW# 70 INPUT "ENTER THE UPPER LIMIT=";HIGH# 80 INPUT "ENTER THE NO OF INTERVALS IN TRAPEZOIDAL RULE=";NT 90 INPUT "ENTER THE NO OF INTERVALS IN SIMPSONS 1/3rd RULE=";NS 100 GOSUB 1000'TO APPLY TRAPEZOIDAL RULE 110 GOSUB 2000' TO APPLY SIMPSONS 1/3rd RULE 120 END 1000 ' 1010 REM TRAPEZOIDAL RULE SUBROUTINE BEGINS 1020 ' 1030 H#=(HIGH# -LOW#)/NT 1040 S#=.5*(FNTRAP#(HIGH#)+FNTRAP#(LOW#)) 1050 FOR I=1 TO (NT-1) 1060 X#=LOW#+(I*H#) 1070 S#=S#+FNTRAP#(X#) 1080 NEXT I 1090 S#=S#*H# 1100 PRINT S# 1110 RETURN 2000 ' 2010 REM SIMPSON'S 1/3 rd RULE BEGINS 2020 ' 2030 H#=(HIGH#- LOW#)/NS 2040 S#=(FNSIMP(HIGH#)+FNSIMP(LOW#)) 2050 FOR I=1 TO (NS-1) STEP+2 2060 X#=LOW#+(I*H#) |
|
|
10
REM PROGRAM TO PRINT SORTED TELEPHONE DIRECTORY 20 ' 30 CLS 40 DIM N$(5), A$(5), T(5) 50 REM I M 60 FOR I=1 TO 5 65 READ N$(I),A$(I),T(I) 100 NEXT I 110 ' 120 REM BUBBLE SORT ROUTINE STARTS 130 FLAG=0:NE=5 140 WHILE FLAG=0 150 FLAG=1:NE=NE-1 160 FOR I=1 TO NE 170 WHILE N$(I)>N$(I+1) 180 SWAP N$(I),N$(I+1) 190 SWAP A$(I),A$(I+1) 200 SWAP T(I), T(I+1) 210 FLAG=0 220 WEND 230 NEXT I 240 WEND 250 ' 260 REM P M 270 CLS 280 PRINT TAB(20) "TELEPHONE DIRECTORY" 290 FOR I=1 TO 5 300 PRINT TAB(5)N$(I);TAB(30)A$(I);TAB(70)T(I) 310 DATA AYUSH,HOWRAH,8600582 315 DATA AYUSH,CAL,4567890 320 DATA AYUSH,CAL,2332100 340 DATA AYUSH,CAL,2468114 350 DATA AYUSH,CAL, 5309032 370 NEXT I 380 END |
|
|
10
REM 2 WAY MERGE SORT 20 ' 30 CLS 40 FLAG=0 50 WHILE FLAG=0 60 INPUT "ENTER THE SIZE OF THE ARRAY:";N 70 IF N<1 OR N>30 THEN PRINT "INVALID DATA.TRY AGAIN" ELSE FLAG=1 80 WEND 90 DIM A(N),AUX(N) 100 FOR I=1 TO N 110 READ A(I) 120 NEXT I 130 DATA 5,10,1,-1,85,6,45,-7,15,82,13,0,0,7,9,-10,-15,1,2,7,100,-12,-82,12,23,5,2,6,6,,0,21,93,52,15 140 CLS 150 PRINT "UNSORTED LIST" 160 FOR I=1 TO N 170 PRINT "A(";I;")=";A(I) 180 NEXT I 190 GOSUB 1000'TO SORT THE UNSORTED LIST 200 PRINT "PRESS ANY KEY TO DISPLAY THE SORTED LIST" 210 Y$=INPUT$(1) 220 CLS:PRINT "SORTED LIST" 230 FOR I=1 TO N 240 PRINT "A(";I;")=";A(I) 250 NEXT I 260 PRINT "PRESS ANY KEY TO FINISH THE PROGRAM" 270 Y$=INPUT$(1) 280 END 1000 ' 1010 REM MERGE SORT SUBROUTINE 1030 SIZE=1 1040 WHILE SIZE<=N 1050 IA=1 1060 IX=1 1070 WHILE (IA+SIZE)<=N 1080 IB=IA+SIZE 1090 UA=IB-1 1100 IF (IB+SIZE-1)<=N THEN UB=(IB+SIZE-1) ELSE UB=N 1110 I=IA 1120 J=IB 1130 WHILE I<=UA AND J<=UB 1140 IF A(I)<=A(J) THEN AUX(IX)=A(I):I=I+1 ELSE AUX(IX)=A(J):J=J+1 1150 IX=IX+1 1160 WEND 1170 WHILE I<=UA 1180 AUX(IX)=A(I) 1190 I=I+1 1200 IX=IX+1 1210 WEND 1220 WHILE J<=UB 1230 AUX(IX)=A(J) 1240 J=J+1 1250 IX=IX+1 1260 WEND 1270 IA=UB+1 1280 WEND 1290 FOR I=IA TO N 1300 AUX(IX)=A(I) 1310 IX=IX+1 1320 NEXT I 1325 FOR I= 1 TO N 1326 A(I)=AUX(I) 1327 NEXT I 1330 SIZE=2*SIZE 1340 WEND 1350 RETURN |
|
|
10
REM PROGRAM TO CREATE A DATA FILE 20 ' 30 CLS 40 LINE INPUT "ENTER A FILE NAME:",FILE$ 50 IF FILE$="" THEN PRINT INVALID FILENAME TRY AGAIN":GOTO 40 60 OPEN "O",#1,FILE$ 70 LINE INPUT "ENTER NAME:",N$ 80 LINE INPUT "ENTER ADDRESS",A$ 90 INPUT "ENTER TELEPHONE#:",T 100 PRINT #1,USING "\ \";N$ 110 PRINT #1,USING "\ \";A$; 120 PRINT #1,USING "#######";T 130 INPUT "DO U WANT ANY MORE(Y/N)",ANS$ 140 Y$=LEFT$(ANS$,1) 150 IF Y$="Y" OR Y$="y" THEN 70 160 CLOSE#1 170 END |
|
|
10
REM PROGRAM TO READ A DATA FILE 20 ' 30 CLS 40 LINE INPUT "ENTER A FILENAME:",FILE$ 50 IF FILE$="" THEN PRINT "INVALID FILE NAME TRY AGAIN ":GOTO 40 60 OPEN "I",#1,FILE$ 70 NREC=0 80 WHILE NOT EOF(1) 90 LINE INPUT #1,X$:NREC=NREC+1 100 N$=MID$(X$,1,20) 110 A$=MID$(X$,21,25) 120 T=VAL(RIGHT$(X$,7)) 130 PRINT N$;TAB(30)A$;TAB(60)T 140 WEND 150 CLOSE#2 160 PRINT "NO OF RECORDS IN ";FILE$;"=";NREC 170 END |
|
|
10
REM PROGRAM TO SORT A DATA FILE 20 ' 30 CLS 40 LINE INPUT "ENTER A FILENAME =";FILE$ 50 OPEN "I",#1,FILE$ 60 NREC=0 70 WHILE NOT EOF(1) 80 LINE INPUT #1,X$ 90 NREC=NREC+1 100 WEND 110 CLOSE #1 120 DIM N$(NREC),A$(NREC),T(NREC) 130 OPEN "I",#1,FILE$ 140 REM READING RECORDS FROM INPUT FILE 150 FOR I=1 TO NREC 160 LINE INPUT #1,X$ 170 N$(I)=LEFT$(X$,20) 180 A$(I)=MID$(X$,21,25) 190 T(I)=VAL(RIGHT$(X$,7)) 200 NEXT I 210 CLOSE#1 220 REM BUBBLE SORT ROUTINE STARTS 230 ' 240 FLAG=0:NE=NREC 250 WHILE FLAG=0 260 FLAG=1:NE=NE-1 270 FOR I=1 TO NE 280 WHILE N$(I)+A$(I)>N$(I+1)+A$(I+1) 290 SWAP N$(I),N$(I+1) 300 SWAP A$(I),A$(I+1)_ 310 SWAP T(I),T(I+1) 320 FLAG=0 330 WEND 340 NEXT I 350 WEND 360 ' 370 REM WRITING ON TO THE MASTER FILE 380 OPEN "O",#1,FILE$ 390 FOR I=1 TO NREC 400 PRINT #1,N$(I);A$(I); 410 PRINT #1,USING"#######";T(I) 420 NEXT I 430 CLOSE #1 440 END |
