Notes of Computer Science For Class 10th Chapter 3

Control Statement

باب نمبر3 ( کنٹرول سٹیٹ منٹ Control Statement - )
سوال نمبر-:1کنٹرول کی منتقلی سے کیا مراد ہے؟ کسطرح کے کنٹرول کے انتقال بیسک زبان میں ہو سکتاہے۔ مثال کی مدد سے وضاحت کریں جواب -: وہ مرحلہ جس میں پروگرام کا کنٹرول اس کے ایک حصے سے دوسرے حصے کو منتقل کیا جائے ۔ کنٹرول کی منتقلی کہلاتاہے۔اس مقصد کے لئے استعمال ہونے والی سٹیٹ منٹس کو کنٹرول سٹیٹ منٹ کہتے ہیں۔یہ سٹیٹ منٹس پروگرام کا کنٹرول ایک حصے سے دوسرے حصے کو منتقل کرنے (Branching) کے لئے ، کوئی ایک عمل بار بار دہرانے (Looping) کے لئے اور پروگرام ختم کرنے (Termination) کے لئے استعمال ہوتی ہیں
بیسک لینگوئج میں درج ذیل کنٹرول سٹیٹ منٹس استعمال ہوتی ہیں۔
GOTO, IF-THEN, FOR-NEXT, STOP, END.  
کنٹرول کی منتقلی کے لئے استعمال ہونے والے سٹیٹ منٹس کی دو (2) اقسام ہیں ۔  
(1) ۔ مشروط (Conditional) اور (2) ۔ غیر مشروط منتقلی(Unconditional) :
-:1 اگر کسی شرط کے کنٹرول منتقل کیا جائے تو اسے کنٹرول کی مشروط منتقلی کہتے ہیں۔یعنی پروگرام کے ایک حصے سے دوسرے حصے میں چلانگ شرط کی بنا پر ہوتی ہے۔ مثلاً IF, ON/GOTO  
مثال 10 IF MARKS> 33 THEN PRINT \"PASS\" ELSE \"FAIL\" -:  
-:2 اگر پروگرام کا کنٹرول بغیر کسی شرط کے منتقل کیا جائے تو اسے کنٹرول کی غیر مشروط منتقلی کہتے ہیں۔
مثلاً ON GOTO سٹیٹ منٹ۔ مثالLine # 1 GOTO Line # 2  
سوال نمبر-:2 نیسٹیڈلوپ سے کیا مراد ہے؟ نیسٹیڈلوپ کو استعمال کرنے میں کونسے قوانین کی پیروی کی جاتی ہیں۔
جواب -: بیسک زبان میں یہ ممکن ہے۔ کہ پروگرام کے ایک خاص حصے پر باربار عمل کیا جائے اس صورت خال کو لوپ(LOOP) کہا جاتا ہے۔جبکہ بعض اوقات کسی لوپ کے اندر کوئی اور لوپ بنانا ضروری ہوتا ہے۔ ایسے لوپ کو نسٹیڈلوپ کہتے ہیں۔اندر لکھا ہوا لوپ اپنی (FOR) سٹیٹ منٹ سے شروع ہوتاہے۔ اور اپنی (NEXT) سٹیٹ منٹ پر ختم ہوتا ہے۔ہر ایک داخلی لوپ یعنی نیسٹیڈلوپ (Inner Loop) کو مکمل طور پر خارجی لوپ(Outer Loop) کے اندر لکھنا چاہیے۔ اور ایک اوٹر لوپ کے اندر کئی اندرونی (نیسٹیڈلوپ) ہوسکتے ہیں۔  
 

visit www.learninghints.com

مثلاً

 FOR A = 1 TO 6  
 FOR B = 1 TO 4  
 FOR C = 1 TO 2  
40 :  
50 :  
 NEXT C  
 NEXT B  
 NEXT  


جو قوانین صرف ایک لوپ کیلئے استعمال ہوتے ہیں ۔وہی قوانین نیسٹیڈ لوپ کیلئے بھی استعمال ہوتے ہیں۔ جو کہ مندرجہ ذیل ہیں:
(1 ہر نیسٹیڈلوپ لازما اپنے FOR/TO اور NEXT کے ہدایت کیساتھ شروع ہوگا۔
(2 اوٹر لوپ اور انر لوپ کے انڈکس ویریبل مختلف ہونگے۔ ایک جیسے نہیں ہو سکتے۔
(3 نیسٹیڈ لوپ کے ہدایت سے اوٹرلوپ کے ہدایت کی کنٹرول منتقل نہیں کیا جا سکتا ۔  
(4 ہر انر لوپ مکمل طور پر اوٹر لوپ کے اند ر ہو گا۔ یعنی لوپ آپس میں قطع نہیں کریں گے۔
سوال نمبر-:3 مندرجہ ذیل کے درمیان فرق واضح کریں:

a)-Loop and Nested loop .  
b)-Conditional & Unconditional transfer of control statements.  
c)-IF/THEN/ELSE and OF/GOTO statements.
d)-FOR/NEXT and WHILE/WEND statements.
e)-RESUME and WEND statements.  

جواب -: -:(a لوپ اینڈ نیسٹیڈ لوپ(Loop and Nested loop.) -: بعض دفعہ ایک ہی کا م کو بار بار کرنا پڑتا ہے۔ ایک کام کو بار بار کرنے کے لئے لوپ(LOOP) کی ہدایت استعمال کی جاتی ہے۔یعنی لوپ ہدایات کا وہ سیٹ ہے۔ جو باربار چلتے ہیں ۔ جبکہ ایک لوپ ہدایت کو دوسرے لوپ کے اندر استعمال کو نیسٹیڈ لوپ کہا جاتاہے۔
-:b مشروط انتقال سے مراد یہ کہ جس کا انحصار شرط پر ہو۔مثلاً IF/THEN/ELSE ہدایات میں شرط لازما ہوتا ہے۔ جبکہ غیر مشروط انتقال کیلئے کسی شرط کی ضرورت نہیں ہوتی۔ مثلاً GOTO وغیرہ میں پروگرام کے ایک حصے سے دوسرے حصے میں چلانگ کیلئے کسی شرط کی ضرورت نہیں ہوتی۔
-:c IF/THEN/ELSE کی ہدایت مشروط انتقال کیلئے استعمال کی جاتی ہے۔ اگر شرط پوری ہورہی ہو ۔ تو انتقال مجوزہ لائن پر منتقل ہو جائے گا ۔ ورنہ اس ہدایت میں دی گئی دوسری لائن پر منتقل ہو جائے گا۔ جبکہ ON/GOTOکی ہدایت پروگرام کے کئی حصے پر کنٹرول کومنتقل کرتاہے۔یہ مشروط انتقال کی ہدایت ہے۔ یعنی یہ ہدایت ایک سے زیادہ لائنوں سے کسی ایک لائن پر کنٹرول کو منتقل کرنے کیلئے استعمال کی جاتی ہے۔
-:d FOR / NEXT لوپ کی وہ قسم ھے۔ جو ایک کام کو بار بارکرنے کیلئے کہا جاتاہے۔اور دہرانے کا پتہ ہو ۔ جبکہ WHILE / WEND لوپ اس وقت استعمال کی جاتی ہے جب کام کے دہرائی کی تعداد معلوم نہ ہو ۔اور اس لوپ کی یہ حاصیت ہے کہ کسی بھی وقت شرط کی بناء پر ختم ہو سکتا ہے۔
-:e RESUME ہدایت کنٹرول کو واپس اس نقطہ پرلاتا ہے جہاں سے پروگرام کو دوبارہ چلنا چاہیئے جب غلطی کو پایا جائے اور اس کے ٹھیک کرنے کے اقدامات کئے گئے ہو جبکہ WEND ہدایت WHILE لوپ کا حصہ ہے۔ جب مشروط صحیح ہو WHILE لوپ کی باڈی چلتی رہتی ہے۔ لیکن شرط کے غلط ہونے پر کنٹرول WEND کو منتقل ہو جاتا ہے۔اور WEND کے بعد ہدایات چلنا شروع کر دیتے ہیں۔
سوال نمبر-:4 خالی جگہ پُر کریں۔
-:i GOTO سٹیٹمنٹ کسی خاص لائن نمبر پر جانے کی ہدایت دیتی ہے۔
-:ii ON/GOTO سٹیٹ منٹ پروگرام کا کنٹرول کئی حصوں کو منتقل کرنے کیلئے استعمال ہوتا ہے
-:iii IF سٹیٹ منٹ پروگرام کے کنٹرول کی مشروط منتقلی کے لئے استعمال ہوتی ہے۔
-:iv IF-THEN-ELSE سٹیٹ منٹ کو کسی پروگرام کے لوپ کے اندر بھی لکھا جاسکتاہے۔
-:v ہدایات کے مجموعہ کو مخصوص تعداد میں بار بار دہرانے کے عمل کو (Looping) کہتے ہیں۔
سوال نمبر-:5 دُرست یا غلط میں جواب دیں۔
-:a GOTO انتقال کنٹرول کی ہدایت ہے۔ درست
-:b Goto کی ہدایت کے ذریعے سے ہم کنٹرول ایک جگہ سے دوسری جگہ منتقل کر سکتے ہیں۔ دُرست
-:c ON/GOTO ہدایت کے ذریعے سے ہم صرف دو جگہوں پر کنٹرول کو منتقل کرسکتے ہیں۔ غلط
-:d IF کی ہدایت غیر مشروط انتقال کنٹرول ہے۔ غلط
سوال نمبر-:6 درجہ ذیل پروگرام کیلئے آؤٹ پٹ معلوم کیجئے یا Error Message دیجئے

a)- 10 READ A,B b)- 10 READ A , B
20 PRINT A & B 20 PRINT A & B
30 RESTORE 30 RESTORE
40 GOTO 10 40 DATA 5,7,8,4
50 DATA 3,8,6,4 50 GOTO 20
60 END 60 END

جوابات -: درجہ بالا پروگرام کیلئے (Output) ذیل ہیں۔

a)- Output b)- Output
3 8 5 7
3 8 5 7
3 8 5 7

سوال نمبر-:7 لائن 123 پر کنٹرول ٹرانسفر کے لئے سٹیٹمنٹ لکھیے۔
جواب -: GOTO 123
سوال نمبر-:8 اگر A$ لہ قیمت \"YES\" ہو ۔تو لائن 123 پر کنٹرول ٹرانسفر کے لئے سٹیٹمنٹ لکھیے۔
جواب -: IF A$ = \"YES\" THEN GOTO 123  
سوال نمبر-:9 اگر A تقسیم B کی قیمت 96 سے زیادہ ہو تو لائن85 پر کنٹرول ٹرانسفر کے لئے سٹیٹمنٹ لکھیے۔  
جواب -: IF A$ = \"YES\" THEN GOTO 123  

سوال نمبر-:10 اگر B کی قیمت 6ہو تو لائن نمبر 70 کو \' اگر B کی قیمت 7 ہو تو لائن نمبر 90 کو یا قیمت 8 ہو تو لائن نمبر 120 پر کنٹرول ٹرانسفر کرنے کے لئے سٹیٹ منٹ لکھیں۔
جواب: 30 IF B = 6 THEN GOTO 70  
40 IF B = 7 THEN GOTO 90  
50 IF B = 8 THEN GOTO 120  
سوال نمبر-:11 IF....THEN سٹیٹمنٹ کو استعمال کرتے ہوئے 20 اور 40 کے درمیان جفت اعداد لکھنے کے لئے پروگرام لکھیے۔  

 جواب

10 20 PRINT \"Even Noumbers B/W 20 TO 40\"  
30 I = 20  
40 PRINT I
50 I = I + 2
60 IF I> 40 THEN GOTO 80
70 GOTO 40
80 END

باب نمبر4 (فہرستیںArray - )
سوال نمبر-:1 ایرے (فہرست) کیا ہوتی ہیں؟ یک رُوخی یا یک سمتی (One Dimensional) اور دو رُوخی یا دو سمتی فہرستوں Array) (Two Dimwnsional پر مفصل نوٹ تحریر کریں۔
جواب -: کمپیوٹر کی میموری میں ایسے ترتیب کو جن کے اجزاء کے درمیان کوئی ربطہ ہو ، ارے (Array) کہتے ہیں۔پورے ارے کو کسی ایک نام سے ہی منسوب کیا جاتاہے۔ ارے میں ہر جزو کا ایک شناختی نام ہوتا ہے اس طرح کے نام سب سکرپٹڈ (Subscripted) ویری ایبلز کہلاتے ہیں۔پروگرامنگ میں لسٹوں اور ٹیبلز کو اریز کہتے ہیں۔ اور یہ ارے کمپیوٹر پروگرامر کے کام کو نہایت آسان بناتا ہے۔
یک سمتی فہرست (One Dimensional Array) -:  
لیسٹ کو یک سمتی ارے کہتے ہیں۔ یعنی ایسا ارے جس میں ایک سب سکرپٹ استعمال ہو ،یک سمتی ارے کہلاتا ہے۔ اس میں ایک FOR ..... NEXT لوپ استعمال ہوتا ہے۔یک سمتی ارے ایک قطار (ROW) یا ایک کالم پر مشتمل ایک جیسا ڈیٹا محفوظ کرنے کیلئے استعما ل ہوتا ہے۔اسے لیسٹ ارے ، ویکٹر ارے یا لینر(Linear) ارے بھی کہتے ہیں۔
دو سمتی فہرست (Two Dimensional Array) -:  
ٹیبل کو دو سمتی ارے کہتے ہیں۔ یعنی ایسا ارے جس میں دو سب سکرپٹ استعمال ہو ، دو سمتی ارے کہلاتا ہے۔اس میں دو FOR ....... NEXT لوپ استعمال ہوتے ہیں۔  
ترکیب نحوی-: Dim E (i , j) مثلاً Dim E (3 , 5) یعنی 5 Rows اور 3 Columns کا فہرست بن جائے گا۔  
یک سمتی اور دو سمتی فہرستوں کی مثالیں

ORANGE

55
40
34
MANGO

34
34
74
APPLE

23

13
GRAPE


19
56
PEAR

12

27
یک سمتی سٹرنگ ارے میوہ جات کانام

دو سمتی نیومیرک ارے قیمت

سوال نمبر-:2 ہم DIM کی ہدایت کیوں استعمال کرتے ہیں۔ اگر اس کو ہٹایا جائے تو کیا ہوگا۔ اس پر مفصل نوٹ لکھیں۔
جواب -: DIM Dimension\" \" سے نکلا ہے۔جسکا مطلب سائز ہے۔یعنی یہ ہدایت فہرست کا سائز بتانے کیلئے استعمال ہوتاہے۔ کمپیوٹر میں کوئی ارے بنانے سے پہلے اس کو ارے کا سائز (Dimension) بتانا ضروری ہوتا ہے تاکہ میموری میں ارے کے لئے پیشگی جگہ پیدا کی جاسکے۔ یہ کام بیسک میں \"DIM\" سٹیٹ منٹ کے ذریعے کیا جاتا ہے۔ \"DIM\" سٹیٹ منٹ کی ترکیب نحوی(Syntex) مندرجہ ذیل ہے:  
Line # DIM variable name (size)...۔۔۔. یک سمتی ارے کے لئے  
DIM ITEMS (10) -:مثال  
اس طرح ایک فہرست جس کا نام ITEMS ہوگا اور جو 11 ارقام کو مخفوظ کر سکے گا (11 اسلئے کہ ہمیشہ شروعات 0 سے ہوگی اور احتتام 10 پر ہو گا۔ اس طرح 11 ارقام کیلئے 11 خانے بن جائیگے۔
Line # DIM variable name (size , size) ...... دو سمتی ارے کے لئے  
10 DIM COURSE ( 6 , 8 ) -: مثال
اس طرح ایک فہرست جس کا نام CURSE جس میں9 (0 سے 8 تک) قطاریں اور 8 (0 سے 7 ) کالمز ہونگے۔یوں ٹوٹل 72 ارقام کیلئے خانے بن جائینگے۔
DIM کی ہدایت کمپیوٹر کے میموری میں فہرست کیلئے بتائے گئے سائز کے مطابق جگہ کا انتظام کرتا ہے۔ اگر ہم DIM ہدایت کو استعمال نہ کریں تو یک رُخی فہرست میں دس یا دس سے کم خانے اور دو رُخی فہرست جس میں خانوں کی تعداد 100 سے کم ہو یعنی (10,10) ہو بنائی جاسکتی ہے۔ اس کا مطلب یہ ہوا کہ DIM ہدایت کے بغیر ایک محدود سائز والی ایک رُخی اور دو رُخی فہرست بنائی جا سکتی ہے۔ تاہم پروگرام کے شروع میں DIM کی ہدایت فہرست (Array) سے ہمیشہ پہلے ستعمال کرنی چاہیے۔ سوال نمبر-:3 مندرجہ ذیل کیلئے سٹیٹ منٹ لکھیں:  

i)- To declare an array fo 50 names.
ii)- Write a program segment to input 10 values an array.
iii)- To print 10 values of an array.
iv)- sum th values of an array.
v)- Find the largest and smallest numbes in an array of size 10.

جوابات -: -(i 50 ناموں کی فہرست کیلئے ذیل ہدایت استعمال کی جائیگی۔
DIM Name (50)
-(ii فہرست میں 10 ارقام ان پُٹ کرنے کیلئے پروگرام کا چھوٹا حصہ

10 REM A Program input 10 values an array.  
20 DIM NUMBER (10)  
30 PRINT \"Enter any Ten Numbers\";
40 FOR I = 1 TO 10  
50 INPUT NUMBER(I)  
60 NEXT I  

-(iii فہرست میں محفوظ شدہ 10 ارقام کو پرنٹ کرنے کیلئے ذیل کوڈہوگا۔

10 PRINT \"The Numbers are\";  
20 FOR I = 1 TO 10
30 PRINT NUMBER ( )
40 NEXT I  

-(iv فہرست میں ارقام کوجمع کرنے کیلئے ذیل کوڈ استعمال ہوگا۔

10 DIM NUMBER (10)  
20 FOR I = 1 TO 10
30 INPUT NUMBER (I)
40 NEXT I  
50 SUM = 0  
60 FOR I = 1 TO 10  
70 SUM = SUM + NUMBER (I)  
80 NEXT I  
90 PRINT \"THE SUM IS=\"; SUM  
100 END  

-(iv دس ارقام کی فہرست میں سب سے بڑا اور چھوٹا ترین رقم تلاش کرنے کیلئے ذیل کوڈ استعمال ہوگا۔

10 REM THE LARGAST & SMALLEST NUMBER
20 DIM NUMBER (10)
30 PRINT \"ENTER ANY TEN NUMBERS\";
40 FOR I =1 TO 10
50 INPUT NUMBER (I)
60 NEXT I
70 LAR = NUMBER (I)
80 SMAL = NUMBER (I)
90 FRO I = 2 TO 10
100 IF NUMBER (I) > LAR THEN LAR =NUMBER (I)
110 IF NUMBER (I) < SMAL THEN SMAL =NUMBER (I)
120 NEXT I  
130 PRINT \"The Largest # is =\"; LAR
140 PRINT \"The Smallest # is =\"; SMAL
150 END
RUN
The Largest # is =
The Smallest # is =

سوال نمبر -:4 مندرجہ ذیل پرنٹ(Print) سٹیٹمنٹ سے کیا ظاہر ہوگا۔

PRINT LOG (1)
f.

PRINT SGN (22, 74)
a.
PRINT SIN ( )
g.

PRINT INT (-8.8)
b.
PRINT COS ( /2)
h.

PRINT ABS (-17.53)
c.
PRINT TAN (0)
i.

PRINT FIX (-17.53)
d.
PRINT CHR $ (80)
j.

PRINT SQR (25)
e.


جوابات -:  
0
f.


a.
0
g.

- 9
b.
0
h.

17.35
c.
0
i.

-17
d.
P
j.

5
e.

سوال نمبر-:5 تمام حروف(A تا Z اور aتاz ) کے ASCII کوڈ پرنٹ کرنے کیلئے پروگرام لکھیں۔

10 CLS -: جواب  
20 FOR A = 65 TO 90
30 PRINT CHR$(a), a; SPC(25); CHR$ (a + 25), a + 32  
40 NEXT
RUN

سوال نمبر-:6 درجہ ذیل پروگرام کیلئے آؤٹ پٹ بتلائے۔

a)- 10 FOR F = 1 TO 7 b)- 10 DIM N (11)
20 LET NUM (F) =F -1 20 FOR P = 1 TO 11
30 NEXT F 30 LET N (P) =P
40 FOR G = 1 TO 7 40 NEXT P
50 PRINT NUM (G) 50 FOR T =1 TO 11
60 NEXT G STEP 2
70 END 60 PRINT N (T)
70 NEXT T
80 END

جوابات -: درجہ بالا پروگرام کیلئے (Output) ذیل ہیں۔

a)- Output b)- Output
0 1
2 5
3 7
4 9
5 11
6

سوال نمبر-:7 ایک پروگرام لکھیے جو ایک ارے (Array) کو 16 رینڈم انٹیجرسے پُر کرتا اور ہر ایک 25 اور 60 کے درمیان ہوں تب اس ارے کو پرنٹ کیجئے۔

جواب -:
10 DIM P (20)
20 FOR I = 1 TO 16
30 READ P$ (I)
40 PRINT P$ (I)
50 NEXT I  
60 DATA 56, 29, 31, 26, 28, 47, 57, 44
70 DATA 30, 33, 25, 59, 51, 46, 48, 39
80 END

سوال نمبر-:8 ایک پروگرام لکھیے جو ایک ارے p کو16 نمبرز سے ڈیٹا لسٹ سے پڑھتے ہوئے پُر کرے ۔ ارے کے ارکان کی پروڈکٹ Product) کو پرنٹ کیجئے۔

جواب -:
5 D = 1
10 DIM P (20)
20 FOR I = 1 TO 20
30 READ P (I)
40 D = P (I) * D
50 NEXT I  
60 DATA 1, 2, 3,........20
70 PRINT D
80 END