ছয় অধ্যায়


6.1 Define Subroutine

অনেক প্রোগ্রামে একটি একক ইন্সট্রাকশনের মাধ্যমে কোন কাজ করা যায় না। এজন্য কাজটিকে একাধিক ধাপে বিভক্ত করা হয়। এভাবে একটি কাজকে একাধিক ধাপে বিভক্ত করাকেই বলা হয় সাব রুটিন অপারেশন।

6.2 State the Advantages of Subroutine.

সাববুটিনে একটি প্রোগ্রাম ভাঙার সুবিধার মধ্যে রয়েছে:


1. জটিল প্রোগ্রামিং টাস্কটিকে সহজ পদক্ষেপে সাজিয়ে তোলা: এটি ডেটা স্ট্রাকচারের পাশাপাশি স্ট্রাকচার্ড প্রোগ্রামিংয়ের দুটি প্রধান সরঞ্জামগুলির মধ্যে একটি

2.একটি প্রোগ্রামের মধ্যে সদৃশ কোড হ্রাস করা

3.একাধিক প্রোগ্রাম জুড়ে কোড পুনরায় ব্যবহার

4. বিভিন্ন প্রোগ্রামার বা কোনও প্রকল্পের বিভিন্ন পর্যায়ে একটি বৃহত প্রোগ্রামিংয়ের কাজ ভাগ করা

6.3 Explain calling and returning from Subroutine.

প্রায় প্রতিটি প্রোগ্রামিং ভাষায় লেখা কোডে একটি মূল অংশ থাকে যাকে বলা হয় মেইন রুটিন বা মেইন ফাংশন। প্রোগ্রাম চালু করলে মেইন রুটিন প্রথমে চালু হয়। একটি সাবরুটিন হলো মেইন রুটিনের বাইরে কোডের একটি বিশেষ অংশ যেখানে কোনো একটি নির্দিষ্ট কাজ করার জন্য কিছু নির্দেশনা থাকে।
  1. নামঃ প্রতিটি সাবরুটিনের একটি নাম থাকে। কোডের অন্যান্য অংশে সাবরুটিনের নাম ব্যবহার করে ওই নির্দিষ্ট কাজটি করা যায় ফলে প্রতিবার কাজটি করার সময় সবগুলো নির্দেশনা লেখা দরকার হয়না। নাম ব্যবহার করে সাবরুটিনের কাজ করাকে সাবরুটিন ইনভোক করা বা কল করা বলা হয়।
  1. রিটার্ণ টাইপঃ সাবরুটিন কাজ করার পর যেখান থেকে সাবরুটিন ইনভোক করা হয়েছে সেখানে একটি মান ফেরত পাঠাতে পারে। এই মান বিভিন্ন ডাটাটাইপের হতে পারে,যেমন ইন্টিজার,ডাবল ইত্যাদি। কোনো কোনো সাবরুটিন কিছুই ফেরত পাঠায় না,এদের ভয়েড সাবরুটিন বলা হয়।
  1. প্যারামিটারঃ সাবরুটিনের কাজ করার জন্য কিছু ইনপুটের প্রয়োজন হতে পারে। যেমন দুটি সংখ্যার যোগফল বের করার সাবরুটিনে প্রথমে দুটি সংখ্যা গ্রহণ করে তারপর কাজটি করে। একটি সাবরুটিন কি কি ইনপুট নিয়ে কাজ করবে সেটা নির্দিষ্ট করে দিতে হয়,এদের সাবরুটিনের প্যারামিটার বলা হয়।
6.4 Mention subroutine for creating delay.
 
MAIN:
MOV TMOD,#10H ; Init timer 1
.......
.......
SETB TR1 ; Start timer 1
LCALL DELAY ;

DELAY:
MOV R1,#200D ; 200 x 50 ms = 10 sec
D1:
MOV TH1,#3CH
MOV TL1,#B0H
D2:
JNB TF1,D2 ; timer overflow in 50 ms
CLR TF1
DJNZ R1,D1 ; loop 200 times
RET

No comments

Theme images by Dizzo. Powered by Blogger.