Saturday, March 20, 2021

SUB AND FUNCTION PROCEDURE

 1. Test whether the given number is positive or negative.

SUB PROCEDURE
DECLARE SUBTEST(N)
CLS
INPUT "Enter a number"; N
CALL TEST(N)
END
SUB TEST(N)
IF N>0 THEN
PRINT N; "is positive number"
ELSE
PRINT N; "is negative number"
END IF
END SUB

FUNCTION PROCEDURE
DECLARE FUNCTION CHECK$ (N)
CLS
INPUT "ENTER ANY NUMBER"; N
PRINT N; "IS "; CHECK$(N)
END
FUNCTION CHECK$ (N)
IF N > 0 THEN
CHECK$ = "POSITIVE NUMBER"
ELSEIF N < 0 THEN CHECK$ = "NEGATIVE NUMBER" ELSE CHECK$ = "ZERO" END IF END FUNCTION


2. Accept any three different numbers and find the maximum number among them.
Ans:
DECLARE SUB MAX(A,B,C)
CLS
INPUT "Enter any three number"; A,B,C
CALL MAX(A,B,C)
END
SUB MAX(A,B,C)
IF A>B AND A>C THEN
PRINT A; "is maximum number"
ELSEIF B>A AND B>C THEN
PRINT B; "is maximum number"
ELSE
PRINT C; "is maximum number"
END IF
END SUB


3. Declare a SUB procedure module to generate multiplication table of any non-negative number, where number is passed as a parameter.
SUB Procedure
DECLARE SUB MUL(N)
CLS
INPUT "Enter a number"; N
CALL MUL(N)
END
SUB MUL(N)
FOR I = 1 TO 10
PRINT N; "*";I; "="; N*I
NEXT I
END SUB


4. Reversing Word
SUB Procedure

DECLARE SUB REV(N$)
CLS
INPUT "ENTER A WORD"; W$
CALL REV(W$)
END
SUB REV (N$)
FOR I = LEN(N$) TO 1 STEP -1
A$ = A$ + MID$(N$, I, 1)
NEXT I
PRINT "REVERSED STRING="; A$
END SUB

FUNCTION Procedure
CLS
INPUT "ENTER A STRING"; W$
PRINT "REVERSED STRING="; REV$(W$)
END
FUNCTION REV$ (N$)
FOR I = LEN(N$) TO 1 STEP -1
A$ = A$ + MID$(N$, I, 1)
NEXT I
REV$ = A$
END FUNCTION


5. Prime or Composite
FUNCTION Procedure
DECLARE FUNCTION PRIME(N)
CLS
INPUT "ENTER ANY NUMBER"; N
P = PRIME(N)
IF P = 2 THEN
PRINT N; "IS PRIME NUMBER"
ELSE
PRINT N; "IS COMPOSITE NUMBER"
END IF
END
FUNCTION PRIME (N)
C = 0
FOR I = 1 TO N
IF N MOD I = 0 THEN C = C + 1
NEXT I
PRIME = C
END FUNCTION


6. ARMSTRONG or not
[An Armstrong number of three digits is an integer such that the sum of the cubes of its digits is equal to the number itself. Eg: 153 = 1^3 + 5^3 + 3^3= 153]
SUB Procedure
DECLARE SUB ARMS (N)
CLS
INPUT "ENTER ANY NUMBER"; N
CALL ARMS(N)
END
SUB ARMS (N)
A = N
S = 0
WHILE N <> 0
R = N MOD 10
S = S + R ^ 3
N = N \ 10
WEND
IF A = S THEN
PRINT A; "IS ARMSTRONG NUMBER"
ELSE
PRINT A; "IS NOT ARMSTRONG NUMBER"
END IF
END SUB

FUNCTION Procedure
DECLARE FUNCTION ARMS (N)
CLS
INPUT "ENTER ANY NUMBER"; N
A = N
AR = ARMS(N)
IF A = AR THEN
PRINT A; "IS ARMSTRONG NUMBER"
ELSE
PRINT A; "IS NOT ARMSTRONG NUMBER"
END IF
END
FUNCTION ARMS (N)
S = 0
WHILE N <> 0
R = N MOD 10
S = S + R ^ 3
N = N \ 10
WEND
ARMS = S
END FUNCTION


7. Input String and Count Total Number of vowels
SUB Procedure
DECLARE SUB COUNT (S$)
CLS
INPUT "ENTER ANY STRING"; S$
CALL COUNT(S$)
END
SUB COUNT (S$)
VC = 0
FOR I = 1 TO LEN(S$)
B$ = MID$(S$, I, 1)
C$ = UCASE$(B$)
IF C$ = "A" OR C$ = "E" OR C$ = "I" OR C$ = "O" OR C$ = "U" THEN
VC = VC + 1
END IF
NEXT I
PRINT "TOTAL NO. OF VOWELS= "; VC
END SUB

FUNCTION PROCEDURE
DECLARE FUNCTION COUNT (S$)
CLS
INPUT "ENTER ANY STRING"; S$
PRINT "TOTAL NO. OF VOWELS= "; COUNT(S$)
END
FUNCTION COUNT (S$)
VC = 0
FOR I = 1 TO LEN(S$)
B$ = MID$(S$, I, 1)
C$ = UCASE$(B$)
IF C$ = "A" OR C$ = "E" OR C$ = "I" OR C$ = "O" OR C$ = "U" THEN
VC = VC + 1
END IF
NEXT I
COUNT = VC
END FUNCTION


8. Input String and display only vowels
SUB PROCEDURE
DECLARE SUB DISPV (S$)
CLS
INPUT "ENTER ANY STRING"; S$
CALL DISPV(S$)
END

SUB DISPV(S$)
FOR I = 1 TO LEN(S$)
B$ = MID$(S$, I, 1)
C$ = UCASE$(B$)
IF C$ = "A" OR C$ = "E" OR C$ = "I" OR C$ = "O" OR C$ = "U" THEN
PRINT B$
END IF
NEXT I
END SUB

FUNCTION PROCEDURE
DECLARE FUNCTION DISP (S$)
CLS
INPUT "ENTER ANY STRING"; S$
VC = DISP(S$)
END
FUNCTION DISP (S$)
FOR I = 1 TO LEN(S$)
B$ = MID$(S$, I, 1)
C$ = UCASE$(B$)
IF C$ = "A" OR C$ = "E" OR C$ = "I" OR C$ = "O" OR C$ = "U" THEN
PRINT B$
END IF
NEXT I
END FUNCTION


9.Input String and display only consonant
SUB Procedure
DECLARE SUB DISC (S$)
CLS
INPUT "ENTER ANY STRING"; S$
CALL DISC(S$)
END
SUB DISC (S$)
FOR I = 1 TO LEN(S$)
B$ = MID$(S$, I, 1)
C$ = UCASE$(B$)
IF C$ <> "A" AND C$ <> "E" AND C$ <> "I" AND C$ <> "O" AND C$ <> "U" AND C$ <> " " AND C$ <> "." THEN
PRINT B$
END IF
NEXT I
END SUB

FUNCTION Procedure
DECLARE FUNCTION DISPC (S$)
CLS
INPUT "ENTER ANY STRING"; S$
CC = DISPC(S$)
END
FUNCTION DISPC (S$)
FOR I = 1 TO LEN(S$)
B$ = MID$(S$, I, 1)
C$ = UCASE$(B$)
IF C$ <> "A" AND C$ <> "E" AND C$ <> "I" AND C$ <> "O" AND C$ <> "U" AND C$ <> " " AND C$ <> "." THEN
PRINT B$
END IF
NEXT I
END FUNCTION


10.Sum of EVEN Number
SUB Procedure
DECLARE SUB SUMEVEN (N)
CLS
INPUT "ENTER ANY NUMBER"; N
CALL SUMEVEN(N)
END
SUB SUMEVEN (N)
S = 0
WHILE N <> 0
R = N MOD 10
IF R MOD 2 = 0 THEN S = S + R
N = N \ 10
WEND
PRINT "SUM OF EVEN DIGITS"; S
END SUB

FUNCTION Procedure
DECLARE FUNCTION SUMEVEN (N)
CLS
INPUT "ENTER ANY NUMBER"; N
SU = SUMEVEN(N)
PRINT "SUM OF EVEN DIGITS"; SU
END
FUNCTION SUMEVEN (N)
S = 0
WHILE N <> 0
R = N MOD 10
IF R MOD 2 = 0 THEN S = S + R
N = N \ 10
WEND
SUMEVEN = S
END FUNCTION


11. Centigrade to Fahrenheit
SUB Procedure
DECLARE SUB CONVERT (C)
CLS
INPUT "ENTER TEMPERATURE IN CELCIUS"; C
CALL CONVERT(C)
END
SUB CONVERT (C)
F = C * (9 / 5) + 160
PRINT "TEMPERATURE IN FARENHEIT="; F
END SUB

FUNCTION Procedure
DECLARE FUNCTION CONVERT (C)
CLS
INPUT "ENTER TEMPERATURE IN CELSIUS"; C
PRINT "TEMPERATURE IN FAHRENHEIT="; CONVERT(C)
END
FUNCTION CONVERT (C)
F = C * (9 / 5) + 160
CONVERT = F
END FUNCTION


12. Perimeter or rectangle 2(L+B)
SUB Procedure
DECLARE SUB PERIMETER (L, B)
CLS
INPUT "ENTER LENGTH"; L
INPUT "ENTER BREADTH"; B
CALL PERIMETER(L, B)
END
SUB PERIMETER (L, B)
P = 2 * (L + B)
PRINT "PERIMETER OF RECTANGLE "; P
END SUB

FUNCTION Procedure
DECLARE FUNCTION PERIMETER (L, B)
CLS
INPUT "ENTER LENGTH"; L
INPUT "ENTER BREADTH"; B
PR = PERIMETER(L, B)
PRINT "PERIMETER OF RECTANGLE "; PR
END
FUNCTION PERIMETER (L, B)
P = 2 * (L + B)
PERIMETER = P
END FUNCTION


13. Convert Nepalese Currency to Indian Currency
SUB Procedure
DECLARE SUB CONV(N)
CLS
INPUT "ENTER NEPALESE CURRENCY "; P
CALL CONV(P)
END
SUB CONV (P)
C = P / 1.6
PRINT "INDIAN CURRENCY "; C
END SUB

FUNCTION Procedure
DECLARE FUNCTION CONV(N)
CLS
INPUT "ENTER NEPALESE CURRENCY "; P
PRINT "INDIAN CURRRENCY = "; CONV(P)
END
FUNCTION CONV (P)
CONV = P / 1.6
END FUNCTION


14. Square of all digit of input number
SUB Procedure
DECLARE SUB SQU(A)
CLS
INPUT "ENTER A NUMBER"; N
CALL SQU(N)
END
SUB SQU (N)
WHILE N <> 0
R = N MOD 10
S = R ^ 2
PRINT S
N = N \ 10
WEND
END SUB


15. Greatest among two number
FUNCTION PROCEDURE
DECLARE FUNCTION MAX(A,B)
CLS
INPUT "Enter any two number"; A, B
PRINT "The greater number is"; MAX(A, B)
END
FUNCTION MAX (A, B)
IF A > B THEN
MAX = A
ELSE
MAX = B
END IF
END FUNCTION


16.Using user defined function, write a program to input monthly income in parameter then computer annual tax to be paid. The tax rate is 15% if annual income is above Rs. 200000, otherwise tax rate is 1%.
FUNCTION PROCEDURE
DECLARE FUNCTION TAX(I)
CLS
INPUT "Enter monthly income"; I
PRINT "Tax to be paid="; TAX(I)
END
FUNCTION TAX (I)
A = I * 12
IF A > 200000 THEN
TAX = 15 / 100 * A
ELSE
TAX = 1 / 100 * A
END IF
END FUNCTION

Numeric pattern programs in QBASIC

 WAP to display the series 2   3   5   8   12   17………. upto 10th terms

CLS
i = 2
FOR j = 1 TO 10
PRINT i;
i = i + j
NEXT j
END

Fibonacci Series

1    1    2    3     5      8……………………10th term

CLS
A = 1
B = 1
PRINT A; B;
FOR i = 1 TO 10
C = A + B
PRINT C;
A = B
B = C
NEXT
END




Hail stone series     7    22     11    34    17    52    26    13      40      20

CLS
a = 7
FOR i = 1 TO 10
PRINT a;
IF a MOD 2 = 0 THEN
a = a / 2
ELSE
a = a * 3 + 1
END IF
NEXT i
END

 

WAP to display the series 2, 22, 222, 2222, 22222

CLS
i = 2
FOR j = 1 TO 5
PRINT i;
i = i * 10 + 2
NEXT j
END

 

WAP to display the series  3   12   27   48  ……… upto 10th terms.

CLS
i = 3
FOR j = 1 TO 10
PRINT i * j ^ 2;
NEXT j
END

 

WAP to display the series 98   97   95   92   88 …….. upto 10th terms

CLS
i = 98
FOR j = 1 TO 10
PRINT i;
i = i – j
NEXT j
END

 

WAP to display the series 33333     3333      333     33     3

CLS
i = 33333
FOR j = 1 TO 5
PRINT i;
i = INT(i / 10)
NEXT j
END

 

WAP to display  1   5  9  13 up to 10th term

CLS
FOR i = 0 TO 10
PRINT 4 * i + 1;
NEXT i
END

 

Numeric Patterns

1

11

111

1111

11111

CLS

a = 1

FOR i = 1 TO 5

PRINT a

a=a * 10 + 1

NEXT

END


Display

1

12

123

1234

12345

CLS

FOR i = 1 TO 5

FOR j = 1 TO i

PRINT j;

NEXT j

PRINT

NEXT i

END




Display

12345

1234

123

12

1

CLS

FOR i = 5 TO 1 STEP -1

FOR j = 1 TO i

PRINT j;

NEXT j

PRINT

NEXT i

END


Display

1

22

333

4444

55555

CLS

FOR i = 1 TO 5

FOR j = 1 TO i

PRINT i;

NEXT j

PRINT

NEXT i

END


Display

55555

4444

333

22

1

CLS

FOR i = 5 TO 1 STEP -1

FOR j = 1 TO i

PRINT i;

NEXT j

PRINT

NEXT i

END


54321

5432

543

54

5

CLS
FOR i = 1 TO 5
FOR j = 5 TO i STEP -1
PRINT j;
NEXT
PRINT
NEXT
END

 

54321

4321

321

21

1

CLS
FOR i = 5 TO 1 STEP -1
FOR j = i TO 1 STEP -1
PRINT j;
NEXT j
PRINT
NEXT i
END

 

 

 

13579

1357

135

13

1

CLS
FOR i = 9 TO 1 STEP -2
FOR j = 1 TO i STEP 2
PRINT j;
NEXT j
PRINT
NEXT i
END

 

10101

1010

101

10

1

CLS
FOR i = 1 TO 5
FOR j = 5 TO i STEP -1
x = j MOD 2
PRINT x;
NEXT
PRINT
NEXT
END

 

 

.1

.03

.005

.007

.009

CLS
i = 10
FOR j = 1 TO 9 STEP 2
PRINT j / i
i = i * 10
NEXT
END

 

 

 

5

45

345

2345

12345

CLS
FOR i = 5 TO 1 STEP -1
FOR j = i TO 5
PRINT j;
NEXT j
PRINT
NEXT i
END

 

 

 

 

5

44

333

2222

11111

CLS
FOR i = 5 TO 1 STEP -1
FOR j = i TO 5
PRINT i;
NEXT j
PRINT
NEXT i
END

 

55555

4444

333

22

1

CLS
FOR i = 5 TO 1 STEP -1
FOR j = 1 TO i
PRINT i;
NEXT j
PRINT
NEXT i
END

 

 

 

11111

2222

333

44

5

CLS
FOR I = 1 TO 5
FOR J = I TO 5
PRINT I;
NEXT J
PRINT
NEXT I
END

 

 

 

 

5

54

543

5432

54321

CLS
FOR I = 5 TO 1 STEP -1
FOR J = 5 TO I STEP -1
PRINT J;
NEXT J
PRINT
NEXT I
END

 

 

 

 

1

21

321

4321

54321

CLS
FOR I = 1 TO 5
FOR J = I TO 1 STEP -1
PRINT J;
NEXT J
PRINT
NEXT I
END

 

 

1
121
12321
1234321
123454321

CLS
N# = 1
FOR I = 1 TO 5
PRINT N# * N#
N# = (N# * 10) + 1
NEXT I
END

 

123454321

1234321

12321

121

1

DEFDBL A
a = 11111
WHILE a <> 0
PRINT a * a
a = a \ 10
WEND
END

 

 

123454321
   1234321
     12321
       121
         1

CLS
n# = 11111
s = 10
FOR i = 1 TO 5
PRINT SPACE$(s); n# * n#
n# = n# \ 10
s = s + 1
NEXT i
END

 

1
2 3
4 5 6
7 8 9 10
11 12 13 14 15

CLS
c = 1
FOR i = 1 TO 5
FOR j = 1 TO i
PRINT c;
c = c + 1
NEXT j
PRINT
NEXT i
END

String Patterns program QBASIC

 

String Pattern

N
NE
NEP
NEPA
NEPAL

CLS

A$="NEPAL"

FOR I = 1 TO LEN (A$)

PRINT LEFT$(A$,i)

NEXT i

END


Display

NEPAL
NEPA
NEP
NE
N

CLS

A$ = "NEPAL"

FOR i = LEN(A$) TO 1 STEP -1

PRINT RIGHT$(A$, i)

NEXT i

END

Display:

PROGRAMMING
PROGRAMMIN
PROGRAMMI
PROGRAMM
PROGRAM
PROGRA
PROGR
PROG
PRO
PR
P

CLS
s$ = "PROGRAMMING"
t = 1
r = 1
FOR i = LEN(s$) TO 1 STEP -1
PRINT TAB(t); MID$(s$, r, i)
NEXT i
END




Display: 

PROGRAMMING
ROGRAMMING
OGRAMMING
GRAMMING
RAMMING
AMMING
MMING
MING
ING
IN
G

CLS
s$ = "PROGRAMMING"
t = 1
r = 1
FOR i = LEN(s$) TO 1 STEP -1
PRINT TAB(t); MID$(s$, r, i)

r = r + 1
NEXT i
END

 


Display

L
AL
PAL
EPAL
NEPAL

CLS

A$ = "NEPAL"

FOR I = 1 TO LEN(A$)

PRINT RIGHT$(A$, I)

NEXT I

END

 


 

Display

NE

           EP

                       PA

                                AL

CLS
a$ = "NEPAL"
x = LEN(a$)
FOR i = 1 TO x – 1
PRINT TAB(i); MID$(a$, i, 2)
NEXT i
END

 

Display

P

EPA

NEPAL

CLS
s$ = "NEPAL"
C = 1: b = 35
FOR i = 3 TO 1 STEP -1
PRINT TAB(b); MID$(s$, i, C)
C = C + 2
b = b – 1
NEXT i
END





Display

L

    A

        P

              E

                  N

CLS
s$ = "NEPAL"
t = 3
FOR i = LEN(s$) TO 1 STEP -1

PRINT TAB(t); MID$(s$, i, 1)
t = t + 1
NEXT i
END


Display

                                                        L

                                              A

                                     P

                            E

                  N

CLS
s$ = "NEPAL"
t = 8
FOR i = LEN(s$) TO 1 STEP -1

PRINT TAB(t); MID$(s$, i, 1)
t = t – 1
NEXT i
END


Display

                                                         N

                                             E

                                     P

                            A

                  L

CLS
s$ = "NEPAL"
t = 8
FOR i = 1 TO LEN(s$)

PRINT TAB(t); MID$(s$, i, 1)
t = t – 1
NEXT i
END


Display

N

     E

          P

               A

                        L

 

CLS
s$ = "NEPAL"
t = 8
FOR i = 1 TO LEN(s$)

PRINT TAB(t); MID$(s$, i, 1)
t = t + 1
NEXT i
END


Display

N

E

P

A

L

CLS
s$ = "NEPAL"

FOR i = 1 TO LEN(s$)

PRINT MID$(s$, i, 1)

NEXT i
END


Display

L

A

P

E

N

CLS
s$ = "NEPAL"

FOR i = LEN(s$) TO 1 STEP -1

PRINT MID$(s$, i, 1)

NEXT i
END


Display:

*
**
***
****
*****
*
**
***
****
*****
*
*
*
*
*

CLS
A$ = “*********”
A = 1
B = 1
FOR I = 1 TO 5
COLOR 4
PRINT MID$(A$, A, B)
B = B + 1
NEXT I
A = 1
B = 1
FOR J = 1 TO 5
COLOR 6
PRINT MID$(A$, A, B)
B = B + 1
NEXT J
FOR K = 1 TO 5
COLOR 5
PRINT MID$(A$, K, 1)
NEXT K
END





Display

*
**
***
****
*****

CLS

A$=”****”

FOR I = 1 TO LEN (A$)

PRINT LEFT$(A$,i)

NEXT i

END

OR

CLS
A$ = "*********"
A = 1
B = 1
FOR I = 1 TO 5
PRINT MID$(A$, A, B)
B = B + 1
NEXT I
END

Display

*****
****
***
**
*

CLS

A$ = "*****"

FOR I = LEN(A$) TO 1 STEP -1

PRINT LEFT$(A$, I)

NEXT I

END

OR

CLS
A$ = "*********"
A = 1
B = 5
FOR I = 5 to 1 step -1
PRINT MID$(A$, A, B)
B = B -1
NEXT I
END

R

GRA

OGRAM

ROGRAM

PROGRAM

CLS
s$ = "PROGRAM"
c = 1: b = 40
FOR i = 5 TO 1 STEP -1
PRINT TAB(b); MID$(s$, i, c)
c = c + 2
b = b – 1
NEXT i
END

 

*********

*******

*****

***

*

CLS
A$ = “***********”
C = 9: B = 30
FOR I = 1 TO 5
PRINT TAB(B); MID$(A$, I, C)
C = C – 2
B = B + 1
NEXT I
END


Display:

A
RAM
GRAMM
OGRAMMI
ROGRAMMIN
PROGRAMMING

CLS
s$ = "PROGRAMMING"
t = 6
FOR i = 1 TO LEN(s$) STEP 2
PRINT TAB(t); MID$(s$, t, i)
t = t – 1
NEXT i
END

Display:

PROGRAMMING
ROGRAMMIN
OGRAMMI
GRAMM
RAM
A

CLS
s$ = "PROGRAMMING"
t = 1
FOR i = LEN(s$) TO 1 STEP -2
PRINT TAB(t); MID$(s$, t, i)
t = t + 1
NEXT i
END

 

N

E         E       E

P              P            P

A                     A                 A

L                                 L                             L

 

 

CLS
s$ ="NEPAL"
t = 12: Q = 10: R = 14: s = 12
PRINT TAB(t); “N”
FOR K = 2 TO 5
z$ = MID$(s$, K, 1)
PRINT TAB(Q); z$; TAB(R); z$; TAB(s); z$
Q = Q – 2: R = R + 2: s = s + 0
NEXT
END

 

COMPUTER
OMPUTER
MPUTE
PUT
U

CLS
s$ = "COMPUTER"
c = 9: s = 30
FOR i = 1 TO 5
PRINT MID$(s$, i, c)
c = c – 2: s = s + 1
NEXT i
END