Tuesday, September 26, 2017

Debug the Qbasic Programs [SEE Qbasic Practice PART IV]

1.      REM TO FIND LONGEST NAME
DECLARE FUNCTION LONGETS$(A$, B$, C$)
INPUT A$, B$, C$
PRINT LONGEST(A$, B$, C$)
END

FUNCTION LONGEST$(A$, B$, C$)
A = LEN$(A$)
B = LEN(B$)
C = LEN(C$)
IF A > B OR A > B THEN
A$ = L$
ELSEIF B > A OR B > C THEN
L$ = B$
ELSE
L$ = C$
END IF
LONGEST$(A$, B$, C$) = L$
FUNCTION END

2.      DECLARE SUB REV(S$)
CLS
ACCEPT “ENTER ANY STRING”;S$
CALL REV$(S$)
END

SUB REV(S$)
FOR I = LEN(S$) TO 1 STEP -1
B$ = MID$(S$,1,I)
W$ = W$ + B$
NEXT I
IF S$ = W$ THEN
PRINT S$;”IS  PALINDROME”
ELSE
PRINT S$;”IS PALINDROME”
END SUB

3.      DECLARE SUB CHECK(N$,W$)
INPUT”ENTER A STRING:::”;N$
CHECK CALL (N$,W$)
END

SUB CHECK(N$,W$)
FOR K=1 TO LEN(W$)
A$=MID$(N$,1,K)
W$=W$+A$
NEXT K
IF W$=N$ THEN
PRINT “NOT PALINDROME”
ELSE
PRINT”PALINDROME”
END IF
END SUB


4.      DECLARE SUB Hello (N)
CLS
INPUT “Enter a number”; Num
CALL Hello (N)
END

SUB Hello (N)
WHILE N > < 0
R=N MOD 10
REV=REV * 10 + R
N = N \ 10
WEND
PRINT “Its reversed form is”; reverse
SUB END

5.      REM do display the reverse of the supplied number
DECLARE FUNCTION rev(n)
CLS
INPUT n
PRINT rev(n)
END

FUNCTION rev(n)
WHILE n = 0
R = n MOD 10
D$ = STR$(R) + D$
n = n / 10
WEND
Rev = ASC(D$)
END FUNCTION

6.      Rem program to reverse the string or word
DECLARE SUB REV(W$)
CLS
INPUT “Enter a wod”;W$
CALL REV(W$)
END

SUB REV(W$)
FOR I=LEN(W$) to 1 step -1
C$=LEFT$(W$,I,1)
S$=D$+1
LOOP
PRINT “Reverse string is:”; D$
CLOSE SUB

7.      REM to display the string in reverse form
CLS
DECLARE SUB REV(A$)
INPUT "ENTER A STRING";A$
CALL REV(A)
END

SUB REV(A$)
FOR I=1 TO TEN
B$=MID(A$,I,1)
C$=B$+C$
NEXT I
PRINT C$
END SUB

8.      DECLARE FUNCTION REV$(ST$)
CLS
INPUT “Enter a string”; S$
LET R$=REV$(ST$)
PRINT “The string in reverse is”; R$
END

FUNCTION REV$(ST$)
FOR I = LEN(ST$) TO 1
RV$=RV$+MID$(ST$,1,I)
NEXT I
RV$=REV$
END FUNCTION

9.      DECLARE FUNCTION TEST(A$)
CLS
INPUT "ENTER A STRING";N$
CALL TEST$(N$)
PRINT "Reverse of supplied string";D$
END

FUNCTION TEST$(M$)
FOR I=1 TO LEN$(M$)
B$=MID$(M$,I,1)+B
NEXT I
B$=TEST$
END FUNCTION

10.   Rem to count the character of given string
CLS
DECLARE SUB Count (word$)
INPUT ”enter a string”, word$
Count W$
END

SUB Count (w$)
B$=MID$(WORD$, C, 1)
WHILE B$ < > ” ”
C=C+1
WEND
PRINT C, “CHARACTERS IN “, W$
END FUNCTION


11.   REM test if user input character is alphabet or digit using sub procedure
DECLARE SUB TEST(C$)
ENTER “Supply a character”; T$
CALL TEST(C$)
END

SUB TEST(C$)
SELECT CASE T$
CASE “A” TO “Z” OR “a” TO “z”
PRINT “Alphabet”
CASE “0” TO “9”
PRINT “Digit”
SELECT END
END SUB

12.   REM to display a word by extracting characters of even position
CLS
DECLARE SUB NAME$(X$,Y$)
INPUT”ENTER A WORD”;X$
CALL SUB NAME$(X$,Y$)
PRINT Y$
END

SUB WORD$(X$,Y$)
FOR P=1 TO LEN (X$) STEP 2
E$=LEFT$(X$,1,P)
WORD$=E$+WORD$
NEXT P
Y$=WORD$
END SUB

13.   REM TO COUNT VOWELS USING NEPAL
DECLARE SUB REV(N$)
CALL REV(NEPAL)
END

SUB REV (N$)
N$=UCASE$(N$)
FOR K = 1 TO LEN(N$)
X$= MID$ (N$, 1, K)
SELECT CASE X$
CASE “A”, “E”,”I”,”O”,”U”
C = C+1
SELECT END
NEXT K
PRINT “VOWELS=”; C                 
END SUB

14.   DECLARE FUNCTION OCCUR(C$)
INPUT “Enter any sentence”; S$
PRINT “Occurrence of A is”; OCCUR(C$)
END


SUB OCCUR(C$)
C$ = UCASE$(C$)
L = LEN(C$)
A = 0
FOR J = 1 TO L STEP -1
IF “A” = MID$(C$, J, 1) THEN A = A + 1
NEXT
OCCUR = A
END FUNCTION

15.   REM to display those records whose name starts from “A”.
OPEN “Employee.dat” FOR OUTPUT AS #1
CLS
WHILE NOT EOF (1)
INPUT #, N$, P$, S#
C$=MID$(N$, 1, 1)
IF C$=”A” THEN
PRINT #1, N$, P$, S#
END IF
LOOP        
CLOSE #1
END

16.   REM to display records from 2nd position to 6th position.
OPEN record.txt FOR INPUT AS #2
DO WHILE EOF(2)
INPUT #1, N, Add$, DOB$
C=C+1
IF C<=2 AND C>=6 THEN
PRINT N$, Add$, DOB$
END IF
LOOP
CLOSE #2
END

17.   REM to update the salary by 10%
CLS
OPEN "EMP.DAT" FOR INPUT AS #1
OPEN "TEMP.DAT" FOR OUTPUT AS#1
WHILE NOT EOF(1)
INPUT NM$, POST$, S
LET  NS = S + S*10/100
WRITE NM$, POST$,NS
WEND
KILL "EMP.DAT"
CLOSE #1,#2
NAME "TEMP.DAT" AS "EMP.DAT"
END
18.   REM display all data if post is manager or officer
OPEN “info.dat” FOR INPUT AS #1
CLS
PRINT “Name”, “Post”, “Dept”, “Salary”
DO WHILE NOT EOF(10)
INPUT N$, P$, D$, S
IF P$ = “MANAGER” AND P$ = “OFFICER” THEN
PRINT N$, P$, D$, S
END IF
WEND
CLOSE
END

19.   CLS
REM copy the data of ‘mark.dat’ file to ‘update.dat’ file.
OPEN "MARK.DAT" FOR OUTPUT AS #1
OPEN “UPDATE.DAT” FOR OUTPUT AS #2
DO UNTIL EOF (1)
INPUT #2, RollNumber, N$, Age
WRITE #2, RN, N$, Age
CLOSE #1, 2
LOOP
END

20.   REM COPY THE DATA OF “SRC.INF” TO “DEST.INF”
OPEN “SRC.INF” FOR INPUT AS #1
OPEN “DEST.INF” FOR OUTPUT AS #2
CLS
WHILE NOT EOF( )
INPUT #2, NM$, RN, AGE
WRITE #1, NM$, RN, AGE
CLOSE #1, #2
END

Debug the Qbasic Programs [SEE Qbasic Practice PART III]

1.      DECLARE FUNCTION MAX(N ( ))
CLS
FOR I = 1 TO 10
INPUT A(I)
NEXT I
A = MAX(A ( ))
PRINT “The greatest number is”; X
END

FUNCTION MAX(N ( ))
FOR I = 1 TO 10
IF A(I) < H THEN H = A(I)
NEXT I
H = MAX
END FUNCTION

2.      REM TO FIND THE FACTORIAL OF GIVEN NUMBER
DECLARE FUNCTION FACT(N)
CLS
INPUT NUM
PRINT “The factorial is:”; FACT(N)
END

FUNCTION FACT(NUM)
F=2
WHILE N=0
F=F*N
N=N-1
WEND
F=FACT
END FUNCTION

3.      DECLARE FUNCTION dec(X)
INPUT”ENTER ANY BINARY NUMBER:’;n
PRINT”DECIMAL EQUIVALENT”;dec(n)
END

FUNCTION dec(n)
P=1
WHILE N<>0
R= N MOD 10
S=S+R*10^P
P=P+1
N=N/10
WEND
S=DEC
END FUNCTION

4.      DECLARE FACT (N)
CLS
REM PRINT FACTORS OF INPUT NUMBER WITH SUB PROCEDURE
INPUT “ENTER NUMBER:”, A
CALL FACT(N)
END

SUB FACT (N)
FOR K=1 TO N
IF N MOD K =1 THEN
PRINT K
IF END
END FUNCTION

5.      CLS
DECLARE FUNCTION factor(N)
INPUT “Enter a number”; X
LET S = factor(X)
PRINT “Frequency of factor is” ; S
END Function

FUNCTION factor(N)
FOR I = 1 to N
G = N MOD I
IF G = 0 THEN
F=F+1
NEXT I
F = Factor
END FUNCTION

6.      REM to print odd numbers from 32 to 12
DECLARE SUB SHOW ( )
CLS
CALL SHOW ( )
END

SUB SHOW ( )
N = 12
WHILE N <= 32
IF N MOD 2 = 0 THEN PRINT N;
N = N-1
NEXT N
END SUB

7.      REM to remove odd digits from a supplied numbers
DECLARE FUNCTION remodd(n)
CLS
INPUT “any number”; a
PRINT “Even digits only”; remodd(n)
END

FUNCTION remodd(n)
p = 0
WHILE n < > 0
R = n MOD 10
IF r MOD 2 = 1 THEN
s = s + r ^ p
p = p * 10
END IF
N = n \ 10
WEND
S = remodd
END FUNCTION


8.      DECLARE SUB TOTAL(P, D$)
CLS
INPUT "ENTER NO. OF PASSENGER"; P$
INPUT "ENTER DESTINATIONS"; D$
PRINT TOTAL (P, D$)
END

SUB TOTAL (P, D$)
IF UCASE$(D$) IS EQUAL TO "POKHARA" THEN
T = P * 450
ELSEIF UCASE$(D$) = "BUTWAL" THEN
T = P * 500
ELSEIF UCASE$(D$) = "CHITWAN" THEN
T = P * 300
END IF
IF P >= 5 THEN D = 5 / 100 * T
F = T - D
DISPLAY "TOTAL BUS FARE="; F
END SUB

9.      DECLARE SUB CHECK(N)
CLS
INPUT”ENTER A NUMBER”;NUM
C=CHECK(N)
END

SUB CHECK(A)
FOR I=2 TO N/2
IF N MOD 1=0 THEN
C=C+2
END IF
WEND
IF C>0 THEN
PRINT”IT IS COMPOSITE”
ELSE
PRINT”IT IS PRIME”
END IF
END SUB
10.   DECLARE FUNCTION CHECK(N)
CLS
INPUT”ENTER A NUMBER”;NUM
IF AB(N)>0 THEN
PRINT”IT IS COMPOSITE”
ELSE
PRINT”IT IS PRIME”
END IF
END

FUNCTION CHECK(A)
FOR I=2 TO N/2
IF  N MOD I=0 THEN
C=C+2
END IF
WEND
CHECK=C
END FUNCTION
11.   DECLARE FUNCTION CHECK$ (n)
CLS
ACCEPT num
C = check$ (num)
PRINT c$
End

FUNCTOIN CHECK$(n)
WHILE cnt = 1 to n
If n mod cnt = 0 then
f = f + 1
End if
Next cnt
If f = 1 then
Check$ = “prime”
ELSE
Check$ = “composite”
END IF
END FUNCTION

12.   REM to check the number is prime or not
DECLARE SUB CHECK(N)
CLS
INPUT N
CALL CHECK(N)
END

SUB CHECK(N)
I=3
DO
IF N / I = 0 THEN
PRINT “PRIME”
END
END IF
I = I – 1
LOOP UNTIL I < N – 1
PRINT “NOT PRIME”
END SUB

13.   REM to check whether the supplied no is odd or even
DECLARE SUB TEST(N)
CLS
INPUT”ENTER THE NUMBER;”;N$
CALL TEST(N)
END

SUB TEST(N)
Y=2
R=Y MOD N
IF R=1 THEN
PRINT”EVEN”
OR
PRINT”ODD”
END
END SUB

14.   REM to check whether the given number is odd or even
DECLARE SUB CHECK (nl)
CLS
INPUT “ENTER THE NUIMBER:” ; nl
CALL sub (nl)
END

SUB CHECK (nl)
Y = 2
r = Y MOD nl
IF R = 0 THEN
PRINT “EVEN NUMBER”
OR
PRINT “ODD NUMBER”
END
END SUB

15.   CLS
DECLARE FUNCTION OE$(N)
INPUT " ENTER A NUMBER:"; X
ANS= OE$(X)
PRINT ANS
END

FUNCTION OE$(N)
R= N MOD 2
IF R = 0 THEN
X$= "EVEN"
ELSE
X$="ODD"
END IF
X$=OE$
END SUB

16.   REM to find whether the number is odd or even
DECLARE SUB SUM$ (A)
CLS
INPUT “range” ; A
Call SUM$
END

SUB SUM(A)
IF A mod 2=0 than print n$=”even” else print “odd”
END FUNCTION

17.   DECLARE FUNCTION TEST$(N)
REM to test user entered number is even or odd.
CLS
INPUT “ENTER A NUMBER”;A
CALL TEST$(A)
END

FUNCTION TEST (N)
IF N MOD 2 IS ZERO THEN
T$= “EVEN”
ELSE
T$= “ODD”
ENDIF
TEST=T$
END FUNCTION

18.   DECLARE FUNCTION DIVISIBLE$(N)
CLS
REM CHECK WHETHER NUMBER IS DIVISIBLE BY 2 AND 3 REM OR NOT
INPUT “ENTER NUMBER:”, A
S$ = DIVISIBLE$ ( A )
PRINT “Number is “; S$
END

FUNCTION DIVISIBLE$ (N)
R = N \ 2
R1= N MOD 3
IF R= 0 AND R1 = 1 THEN
"DIVISIBLE" = DIVISIBLE$
ELSE
DIVISIBLE$ = "NOT DIVISIBLE"
END IF
END FUNCTION

19.   DECLARE FUNCTION CHECK( N)
CLS
INPUT “Enter any number”; N$
PRINT CHECK$(N)
END

FUNCTION CHECK(N)
IF N = 0 THEN
CHECK$ = “POSITIVE”
ELSEIF N < 0 THEN
PRINT “NEGATIVE”
END FUNCTION


20.   DECLARE FUNCTION userlen (a$)
REM length of sting without LEN function
CLS
INPUT “Type any string value: ”; b$
PRINT “Length of the string: “; userlen(a$)
END

FUNCTION userlen (a$)
c=1
aa:
b$ = MID$(a$, p, 1)
IF b$ = “THEN”
p=p+1
c=c+1
GOTO aa
END IF
userlen = c
END FUNCTION