COBOL এ কন্ট্রোল স্ট্রাকচারস (Control Structures in COBOL)
COBOL একটি স্ট্রাকচারড প্রোগ্রামিং ভাষা এবং এটি বিভিন্ন কন্ট্রোল স্ট্রাকচার সরবরাহ করে, যা প্রোগ্রামের নির্দিষ্ট অংশগুলির কার্যকারিতা নিয়ন্ত্রণ করতে সহায়ক। COBOL এ কন্ট্রোল স্ট্রাকচারস ব্যবহৃত হয় কোডের লজিক্যাল ফ্লো, শর্তসাপেক্ষ কার্যাবলী, এবং পুনরাবৃত্তি পরিচালনার জন্য। এই কন্ট্রোল স্ট্রাকচারস প্রোগ্রামের কার্যকারিতা এবং স্থিতিশীলতা বাড়ানোর জন্য অপরিহার্য। এখানে COBOL এর প্রধান কন্ট্রোল স্ট্রাকচারস এবং তাদের ব্যবহারের উদাহরণ দেওয়া হলো।
১. IF-ELSE স্টেটমেন্ট (IF-ELSE Statement)
IF স্টেটমেন্ট একটি শর্তমূলক কন্ট্রোল স্ট্রাকচার, যা একটি নির্দিষ্ট শর্তের ভিত্তিতে কোডের কার্যকারিতা পরিচালনা করে। এটি কোডের দুটি ভিন্ন পথ বেছে নিতে সাহায্য করে: যদি শর্ত সত্য হয়, একটি ব্লক কার্যকর হবে এবং যদি শর্ত মিথ্যা হয়, অন্য একটি ব্লক কার্যকর হবে।
সিনট্যাক্স:
IF condition
statement(s)
ELSE
statement(s)
END-IF.উদাহরণ:
IF AGE > 18
DISPLAY 'You are eligible to vote.'
ELSE
DISPLAY 'You are not eligible to vote.'
END-IF.এখানে, যদি AGE ১৮ এর বেশি হয়, তবে 'You are eligible to vote.' প্রদর্শিত হবে, অন্যথায় 'You are not eligible to vote.' প্রদর্শিত হবে।
২. IF-ELSEIF স্টেটমেন্ট (IF-ELSEIF Statement)
COBOL এ IF-ELSEIF স্টেটমেন্টটি একাধিক শর্ত যাচাই করতে ব্যবহৃত হয়। এটি একটি শর্তের উপর ভিত্তি করে একাধিক সম্ভাব্য পথ তৈরি করতে সহায়তা করে।
সিনট্যাক্স:
IF condition1
statement(s)
ELSE IF condition2
statement(s)
ELSE
statement(s)
END-IF.উদাহরণ:
IF AGE > 18
DISPLAY 'You are eligible to vote.'
ELSE IF AGE = 18
DISPLAY 'You are just eligible to vote.'
ELSE
DISPLAY 'You are not eligible to vote.'
END-IF.এখানে AGE এর ভিত্তিতে তিনটি শর্ত পরীক্ষা করা হচ্ছে, এবং তাদের ফলস্বরূপ যথাযথ মেসেজ প্রদর্শিত হবে।
৩. EVALUATE স্টেটমেন্ট (EVALUATE Statement)
EVALUATE স্টেটমেন্টটি switch-case স্টাইলের কন্ট্রোল স্ট্রাকচার, যা একাধিক শর্ত যাচাই করতে সহায়তা করে। এটি বেশ কার্যকর যখন অনেক শর্ত একসাথে যাচাই করা দরকার।
সিনট্যাক্স:
EVALUATE expression
WHEN value1
statement(s)
WHEN value2
statement(s)
WHEN OTHER
statement(s)
END-EVALUATE.উদাহরণ:
EVALUATE AGE
WHEN 18
DISPLAY 'You are just eligible to vote.'
WHEN 19 TO 25
DISPLAY 'You are in the youth age group.'
WHEN OTHER
DISPLAY 'You are not in the specific age range.'
END-EVALUATE.এখানে, AGE এর মান অনুসারে বিভিন্ন শর্তের জন্য একাধিক আউটপুট দেওয়া হচ্ছে।
৪. PERFORM স্টেটমেন্ট (PERFORM Statement)
PERFORM স্টেটমেন্টটি কোডের নির্দিষ্ট অংশ বা সাবরুটিন বারবার এক্সিকিউট করার জন্য ব্যবহৃত হয়। এটি প্রোগ্রামটির পুনরাবৃত্তি কার্যকরী অংশের জন্য ব্যবহৃত হয়।
সিনট্যাক্স:
PERFORM procedure-name {UNTIL condition}.উদাহরণ:
PERFORM DisplayMessage UNTIL Counter = 5.
DisplayMessage.
DISPLAY 'This is message number: ' Counter.
ADD 1 TO Counter.
END-PERFORM.এখানে, PERFORM স্টেটমেন্টটি DisplayMessage সাবরুটিনটি ৫ বার কার্যকর করবে যতক্ষণ না Counter এর মান ৫ হয়।
৫. VARYING WITHIN LOOP (VARYING in PERFORM)
PERFORM VARYING স্টেটমেন্ট ব্যবহার করে একটি কাউন্টার বা ইনডেক্স ভেরিয়েবল দিয়ে লুপ চালানো হয়। এটি সাধারণত একটি নির্দিষ্ট পরিসরে বা মানের পরিবর্তনের সাথে একাধিক বার কোড ব্লক এক্সিকিউট করতে ব্যবহৃত হয়।
সিনট্যাক্স:
PERFORM VARYING index-variable FROM start-value BY increment UNTIL end-condition
statement(s)
END-PERFORM.উদাহরণ:
PERFORM VARYING Counter FROM 1 BY 1 UNTIL Counter > 5
DISPLAY 'This is message number: ' Counter
END-PERFORM.এখানে, Counter ১ থেকে শুরু হবে এবং ৫ পর্যন্ত প্রতিটি পুনরাবৃত্তিতে ১ বাড়ানো হবে। তারপর, প্রতিটি Counter এর মান প্রদর্শিত হবে।
৬. EXIT WHEN (Breaking the Loop)
EXIT WHEN স্টেটমেন্ট ব্যবহার করা হয় লুপ বা PERFORM ব্লক থেকে বের হয়ে যেতে। এটি নির্দিষ্ট শর্ত পূর্ণ হলে লুপ বন্ধ করতে ব্যবহৃত হয়।
সিনট্যাক্স:
PERFORM UNTIL condition
statement(s)
EXIT WHEN condition.
END-PERFORM.উদাহরণ:
PERFORM UNTIL Counter > 5
DISPLAY 'Counter value is: ' Counter
ADD 1 TO Counter
EXIT WHEN Counter = 3
END-PERFORM.এখানে, লুপটি Counter এর মান ৩ হওয়ার পরেই থেমে যাবে, এবং EXIT WHEN শর্তটি পূর্ণ হলে লুপটি বন্ধ হয়ে যাবে।
সারসংক্ষেপ
COBOL প্রোগ্রামে কন্ট্রোল স্ট্রাকচারস কোডের লজিক্যাল ফ্লো এবং কার্যকারিতা নিয়ন্ত্রণ করতে ব্যবহৃত হয়। IF-ELSE, EVALUATE, PERFORM, এবং PERFORM VARYING স্টেটমেন্টগুলির মাধ্যমে শর্ত যাচাই এবং পুনরাবৃত্তি কার্যকর করা যায়। EXIT WHEN স্টেটমেন্ট ব্যবহার করে লুপ থেকে বের হওয়া সম্ভব। COBOL এ এই কন্ট্রোল স্ট্রাকচারস প্রোগ্রামের স্থিতিশীলতা এবং কার্যকারিতা নিশ্চিত করতে সহায়ক।
GOTO স্টেটমেন্ট এবং তার ব্যবহার
GOTO স্টেটমেন্ট COBOL প্রোগ্রামে একটি সরাসরি জাম্প স্টেটমেন্ট হিসাবে ব্যবহৃত হয়, যা প্রোগ্রামটির বর্তমান প্রবাহকে অন্য কোথাও পুনঃনির্দেশিত করে। এটি প্রোগ্রামের অন্য কোনো নির্দিষ্ট অংশে কোড এক্সিকিউট করার জন্য ব্যবহার করা হয়। যদিও GOTO স্টেটমেন্ট শক্তিশালী, তবে এটি কোডের পাঠযোগ্যতা এবং রক্ষণাবেক্ষণে জটিলতা তৈরি করতে পারে, তাই আধুনিক প্রোগ্রামিংয়ে এটি খুব কম ব্যবহৃত হয়।
তবে কিছু বিশেষ পরিস্থিতিতে, যেমন লুপের ভিতর থেকে বাইরে বেরোনো বা একাধিক শর্তপূর্ণ কার্যক্রমে, GOTO স্টেটমেন্ট অত্যন্ত কার্যকরী হতে পারে।
GOTO স্টেটমেন্টের সিনট্যাক্স
GOTO label-name.- label-name: এটি হলো প্রোগ্রামের যে অংশে আপনি GOTO ব্যবহার করতে চান, সেখানকার লেবেল নাম।
GOTO স্টেটমেন্টের উদাহরণ
১. একটি নির্দিষ্ট লেবেলে যাওয়া
DATA DIVISION.
WORKING-STORAGE SECTION.
01 COUNT PIC 9(2) VALUE 1.
PROCEDURE DIVISION.
START-PROGRAM.
DISPLAY 'Start of program'
IF COUNT > 10
GOTO END-PROGRAM
END-IF
DISPLAY 'Middle of program'
GOTO START-PROGRAM
END-PROGRAM.
DISPLAY 'End of program'
STOP RUN.এখানে, GOTO END-PROGRAM স্টেটমেন্টটি END-PROGRAM লেবেলে চলে যাবে যদি COUNT ১০ এর বেশি হয়। অন্যথায়, GOTO START-PROGRAM ব্যবহৃত হবে প্রোগ্রামটি আবার শুরু করার জন্য।
GOTO স্টেটমেন্টের ব্যবহার
২. লুপ থেকে বের হওয়া
GOTO স্টেটমেন্ট ব্যবহার করে একটি লুপ থেকে বের হতে বা একটি নির্দিষ্ট অবস্থানে যেতে সহজভাবে কোড পরিচালনা করা যায়। এইভাবে GOTO স্টেটমেন্ট সাধারণত তখন ব্যবহৃত হয় যখন কিছু শর্তের ভিত্তিতে প্রোগ্রামটি দ্রুত অন্য কোন অংশে চলে যাবে।
DATA DIVISION.
WORKING-STORAGE SECTION.
01 COUNT PIC 9(2) VALUE 1.
PROCEDURE DIVISION.
START-LOOP.
IF COUNT > 5
GOTO END-LOOP
END-IF
DISPLAY 'Count: ' COUNT
ADD 1 TO COUNT
GOTO START-LOOP
END-LOOP.
DISPLAY 'Loop finished.'
STOP RUN.এখানে, GOTO START-LOOP ব্যবহার করা হয়েছে লুপটি চালাতে, এবং GOTO END-LOOP ব্যবহার করা হয়েছে লুপ শেষ করার জন্য।
GOTO স্টেটমেন্টের সমস্যা
যদিও GOTO স্টেটমেন্ট একটি শক্তিশালী টুল হতে পারে, তবে এর অতিরিক্ত ব্যবহার কোডের স্থিতিশীলতা, পঠনযোগ্যতা এবং রক্ষণাবেক্ষণে সমস্যা তৈরি করতে পারে। কোডে অপ্রয়োজনীয় GOTO স্টেটমেন্টের মাধ্যমে spaghetti code তৈরি হতে পারে, যেখানে কোডের প্রবাহ একেবারে অদ্ভুতভাবে চলে। এ কারণে আধুনিক প্রোগ্রামিং ভাষায় এটি কম ব্যবহৃত হয়।
কখন GOTO ব্যবহার করা যায়
- লজিকাল জাম্পিং: যদি প্রোগ্রামে একটি শর্তভিত্তিক বা নির্দিষ্ট কোড ব্লক থেকে দ্রুত অন্য কোথাও চলে যেতে হয়, যেমন ফাংশন বা সেকশনে।
- একাধিক লুপের মধ্যে শর্ত অনুযায়ী অ্যাক্সেস: যখন লুপে অনেক শর্ত থাকে এবং তার ভিত্তিতে কোডের প্রবাহ দ্রুত পরিবর্তন করতে হয়।
সারসংক্ষেপ
COBOL-এ GOTO স্টেটমেন্ট প্রোগ্রামের এক স্থান থেকে অন্য স্থানে দ্রুত কোডের প্রবাহ পরিবর্তন করতে ব্যবহৃত হয়। এটি সরাসরি কোডের বর্তমান অবস্থান থেকে অন্য কোনো অংশে চলে যেতে সাহায্য করে। তবে এর ব্যবহার কোডের পরিষ্কারতা এবং রক্ষণাবেক্ষণের জন্য একটি চ্যালেঞ্জ হতে পারে, তাই এটির ব্যবহার সীমিত করা উচিত।
COBOL-এ লেবেল এবং কন্ট্রোল ট্রান্সফার
COBOL-এ লেবেল এবং কন্ট্রোল ট্রান্সফার একটি প্রোগ্রামের মধ্যে কোডের ফ্লো নিয়ন্ত্রণ করতে ব্যবহৃত হয়। লেবেল এবং কন্ট্রোল ট্রান্সফার স্টেটমেন্টগুলি প্রোগ্রামের মধ্যে এক জায়গা থেকে অন্য জায়গায় গতি স্থানান্তর (Transfer of control) করতে সাহায্য করে, যা সুনির্দিষ্ট শর্তে কার্যকর হয়। এটি প্রোগ্রামটির কার্যকারিতা এবং লজিক্যাল ফ্লো নিয়ন্ত্রণে ব্যবহৃত হয়।
১. লেবেল (Labels)
COBOL-এ লেবেল সাধারণত PERFORM, GO TO, বা CALL কমান্ডের সাথে ব্যবহৃত হয় এবং এটি প্রোগ্রামে একটি নির্দিষ্ট স্থান বা পয়েন্ট চিহ্নিত করে। লেবেলগুলি কোডের অংশের মধ্যে সঠিক স্থান নির্ধারণ করতে সাহায্য করে।
লেবেল ব্যবহার:
LABEL-NAME.
DISPLAY 'This is a labeled section'.
STOP RUN.LABEL-NAME.এখানে একটি লেবেল হিসাবে ব্যবহৃত হচ্ছে যা একটি নির্দিষ্ট কোড সেকশন বা পয়েন্টকে চিহ্নিত করেছে।
লেবেল লিখতে কিছু নিয়ম:
- লেবেলগুলি সাধারণত ১ থেকে ৭ কলামে থাকে এবং প্রথম কলামে কোনও স্পেস বা চিহ্ন ব্যবহার করা যাবে না।
- লেবেলগুলি প্রোগ্রামের মধ্যে পয়েন্ট বা অবস্থান চিহ্নিত করতে সাহায্য করে, এবং এটি সাধারণত
GO TO,PERFORMবাCALLকমান্ডে ব্যবহৃত হয়।
২. কন্ট্রোল ট্রান্সফার (Control Transfer)
COBOL-এ কন্ট্রোল ট্রান্সফার স্টেটমেন্টগুলি ব্যবহারকারীর নির্দিষ্ট অবস্থান বা কোড সেকশনে প্রোগ্রামটির গতি স্থানান্তর করার জন্য ব্যবহৃত হয়। প্রধান কন্ট্রোল ট্রান্সফার স্টেটমেন্টগুলি হল GO TO, PERFORM, এবং **CALL**।
১. GO TO স্টেটমেন্ট
GO TO স্টেটমেন্টটি সরাসরি এক লেবেল বা কোডের অংশে প্রবাহ স্থানান্তর করে। এটি সাধারণত কোন শর্তাবলী বা কোডের ব্লক থেকে অন্য ব্লকে স্থানান্তরের জন্য ব্যবহৃত হয়।
উদাহরণ:
START-PROGRAM.
DISPLAY 'This is the start of the program'.
GO TO NEXT-PART.
DISPLAY 'This will not be displayed'.
NEXT-PART.
DISPLAY 'This is the next part'.
STOP RUN.ব্যাখ্যা:
- প্রথমে
START-PROGRAMএ একটি ডায়ালগ প্রদর্শিত হবে। - তারপর
GO TO NEXT-PARTস্টেটমেন্টটি কোডের গতিNEXT-PARTলেবেলে স্থানান্তর করবে, এবং পরবর্তী ডায়ালগ প্রদর্শিত হবে।
২. PERFORM স্টেটমেন্ট
PERFORM স্টেটমেন্টটি একটি নির্দিষ্ট সাব-রুটিন বা ব্লক কোড চালানোর জন্য ব্যবহৃত হয়। এটি বিশেষ করে সাব-রুটিন কল এবং লজিক্যাল অংশগুলি একত্রে ব্যবহার করার জন্য উপযুক্ত।
উদাহরণ:
PERFORM INITIALIZE-DATA.
DISPLAY 'After Initialization'.
INITIALIZE-DATA.
MOVE 0 TO COUNTER.
MOVE ' ' TO NAME.ব্যাখ্যা:
PERFORMস্টেটমেন্টটিINITIALIZE-DATAসাব-রুটিনটি কল করবে এবং সেটি ডেটা ইনিশিয়ালাইজ করবে।
৩. CALL স্টেটমেন্ট
CALL স্টেটমেন্টটি একটি সাব-প্রোগ্রাম বা এক্সটার্নাল প্রোগ্রাম চালানোর জন্য ব্যবহৃত হয়।
উদাহরণ:
CALL 'EXTERNAL-PROGRAM' USING DATA.
DISPLAY 'Program called successfully'.
STOP RUN.ব্যাখ্যা:
CALLস্টেটমেন্টটিEXTERNAL-PROGRAMনামক একটি এক্সটার্নাল প্রোগ্রামকে কল করবে এবং এটি ডেটা গ্রহণ করবে।
৩. GO TO স্টেটমেন্ট এবং লেবেল: একাধিক লেবেল ব্যবহার
কখনও কখনও, একাধিক লেবেল ব্যবহার করে কোডের মধ্যে কন্ট্রোল স্থানান্তর করা হতে পারে।
উদাহরণ:
START-PROGRAM.
DISPLAY 'Start of Program'.
GO TO SECTION-ONE.
SECTION-ONE.
DISPLAY 'This is section one'.
GO TO SECTION-TWO.
SECTION-TWO.
DISPLAY 'This is section two'.
STOP RUN.ব্যাখ্যা:
- এখানে
GO TOস্টেটমেন্টটি কোডের মধ্যেSECTION-ONEএবং পরেSECTION-TWOতে কন্ট্রোল স্থানান্তর করছে।
সারসংক্ষেপ
| স্টেটমেন্ট | বর্ণনা |
|---|---|
| GO TO | কোডের একটি নির্দিষ্ট লেবেলে কন্ট্রোল স্থানান্তর করে। |
| PERFORM | নির্দিষ্ট একটি সাব-রুটিন বা ব্লক কোড চালানোর জন্য ব্যবহৃত হয়। |
| CALL | এক্সটার্নাল প্রোগ্রাম বা সাব-প্রোগ্রাম কল করার জন্য ব্যবহৃত হয়। |
| লেবেল | কোডের একটি নির্দিষ্ট অংশ বা অবস্থান চিহ্নিত করে, যা কন্ট্রোল ট্রান্সফারের জন্য ব্যবহৃত হয়। |
লেবেল এবং কন্ট্রোল ট্রান্সফার স্টেটমেন্টগুলি COBOL প্রোগ্রামের মধ্যে ফ্লো কন্ট্রোলের জন্য অত্যন্ত গুরুত্বপূর্ণ। এগুলি প্রোগ্রামের ভেতর ভেতর কোডের গতি স্থানান্তর করতে সহায়তা করে, যা প্রোগ্রামের লজিক্যাল ফ্লো আরও সুষ্ঠু এবং কার্যকরী করে তোলে।
কন্ট্রোল স্ট্রাকচারস এর মাধ্যমে প্রোগ্রামের ফ্লো কন্ট্রোল
COBOL প্রোগ্রামিং ভাষায় কন্ট্রোল স্ট্রাকচারস (Control Structures) হল এমন নির্মাণ যা প্রোগ্রামের ফ্লো বা প্রবাহ নিয়ন্ত্রণ করে। প্রোগ্রামের ফ্লো কন্ট্রোল করা মানে হল নির্দিষ্ট শর্তে বা নির্দিষ্ট নিয়ম অনুযায়ী প্রোগ্রামের কোড পরিচালনা করা। COBOL-এ বিভিন্ন কন্ট্রোল স্ট্রাকচার ব্যবহৃত হয় যেমন IF-ELSE, PERFORM, EVALUATE, GO TO, LOOPS (For iteration), ইত্যাদি, যা প্রোগ্রামটি একটি নির্দিষ্ট পদ্ধতিতে কাজ করতে সাহায্য করে।
এখানে, COBOL-এ ব্যবহৃত কিছু মূল কন্ট্রোল স্ট্রাকচার এবং তাদের মাধ্যমে প্রোগ্রামের ফ্লো কন্ট্রোলের বর্ণনা করা হলো।
১. IF-ELSE স্টেটমেন্ট
IF-ELSE স্টেটমেন্ট হল সবচেয়ে মৌলিক কন্ট্রোল স্ট্রাকচার যা একটি শর্তের উপর ভিত্তি করে কোডের চলমানতা নির্ধারণ করে। যদি শর্ত সত্য হয়, তবে একটি নির্দিষ্ট ব্লক কার্যকর হয়, আর যদি মিথ্যা হয়, তবে অন্য একটি ব্লক কার্যকর হয়।
১.১ IF-ELSE উদাহরণ
IF AGE >= 18
DISPLAY 'You are eligible to vote.'
ELSE
DISPLAY 'You are not eligible to vote.'
END-IF.এখানে, যদি AGE ১৮ বা তার বেশি হয়, তবে "You are eligible to vote." প্রদর্শিত হবে, অন্যথায় "You are not eligible to vote."।
১.২ IF-ELSE IF উদাহরণ
IF AGE < 18
DISPLAY 'You are a minor.'
ELSE IF AGE >= 18 AND AGE < 60
DISPLAY 'You are an adult.'
ELSE
DISPLAY 'You are a senior citizen.'
END-IF.এখানে, IF-ELSE IF শর্তে তিনটি আলাদা বিভাগে ভেদ করা হয়েছে। যদি শর্ত মেলে, তাহলে নির্দিষ্ট কোড ব্লক চালানো হবে।
২. PERFORM স্টেটমেন্ট
PERFORM স্টেটমেন্ট ব্যবহার করে আপনি কোডের নির্দিষ্ট অংশ (যেমন: সাব-রুটিন বা প্রোগ্রাম) একাধিক বার কার্যকর করতে পারেন। এটি পুনরাবৃত্তি এবং কোডের পুনঃব্যবহারের জন্য ব্যবহৃত হয়।
২.১ PERFORM উদাহরণ
PERFORM DISPLAY-MESSAGE
PERFORM CALCULATE-TOTALএখানে, DISPLAY-MESSAGE এবং CALCULATE-TOTAL নামক দুটি প্রোগ্রাম অংশ বা সাব-রুটিন একাধিক বার কার্যকর হচ্ছে।
২.২ PERFORM VARYING স্টেটমেন্ট
PERFORM VARYING i FROM 1 BY 1 UNTIL i > 5
DISPLAY 'Value of i: ' i
END-PERFORMএখানে, VARYING ব্যবহার করে একটি ভ্যারিয়েবল (i) এর মান নির্দিষ্ট শর্ত অনুযায়ী পরিবর্তিত হচ্ছে। এখানে ১ থেকে ৫ পর্যন্ত i এর মান বাড়ানো হচ্ছে এবং প্রতি ইটারেশনে প্রিন্ট হচ্ছে।
৩. EVALUATE স্টেটমেন্ট
EVALUATE স্টেটমেন্ট COBOL-এ Switch-Case স্টাইলের কন্ট্রোল স্ট্রাকচার হিসেবে কাজ করে। এটি একাধিক শর্ত পরীক্ষা করতে ব্যবহৃত হয় এবং প্রতিটি শর্ত অনুযায়ী একটি নির্দিষ্ট একশন নেয়।
৩.১ EVALUATE উদাহরণ
EVALUATE GRADE
WHEN 'A'
DISPLAY 'Excellent'
WHEN 'B'
DISPLAY 'Good'
WHEN 'C'
DISPLAY 'Average'
WHEN OTHER
DISPLAY 'Fail'
END-EVALUATE.এখানে, GRADE এর মানের উপর ভিত্তি করে বিভিন্ন বার্তা প্রদর্শিত হচ্ছে। যদি GRADE 'A' হয়, তবে 'Excellent' দেখাবে, এবং অন্যান্য শর্তের জন্য অন্য বার্তা।
৪. GO TO স্টেটমেন্ট
GO TO স্টেটমেন্ট ব্যবহৃত হয় প্রোগ্রামের ফ্লো সরাসরি অন্য একটি স্থানে নিয়ে যাওয়ার জন্য। এটি সাধারণত কম ব্যবহৃত হয় কারণ এর মাধ্যমে কোডের পঠনযোগ্যতা কমে যেতে পারে।
৪.১ GO TO উদাহরণ
IF AGE < 18
GO TO MINOR-PROCESS
ELSE
GO TO ADULT-PROCESS
END-IF.এখানে, GO TO ব্যবহার করে নির্দিষ্ট শর্তে অন্য একটি প্রোগ্রাম অংশে চলে যাওয়া হচ্ছে।
৫. LOOPS (Iteration)
LOOPS বা ইটারেশন ব্যবহার করা হয় যখন একই কাজ একাধিক বার সম্পন্ন করতে হয়। COBOL-এ বিভিন্ন ধরনের লুপ ব্যবহৃত হয়, যেমন PERFORM UNTIL, PERFORM VARYING।
৫.১ PERFORM UNTIL উদাহরণ
PERFORM UNTIL counter > 5
DISPLAY 'Counter value: ' counter
ADD 1 TO counter
END-PERFORMএখানে, PERFORM UNTIL ব্যবহৃত হয়েছে যা counter ৫ এর বেশি না হওয়া পর্যন্ত লুপ চালাবে।
৫.২ PERFORM VARYING উদাহরণ
PERFORM VARYING i FROM 1 BY 1 UNTIL i > 10
DISPLAY 'Number: ' i
END-PERFORMএখানে, PERFORM VARYING ব্যবহার করে একটি ভ্যারিয়েবল i এর মান ১ থেকে ১০ পর্যন্ত বাড়ানো হচ্ছে এবং প্রতি ইটারেশনে প্রিন্ট হচ্ছে।
সারসংক্ষেপ
COBOL প্রোগ্রামিং ভাষায় কন্ট্রোল স্ট্রাকচারস বা ফ্লো কন্ট্রোল স্টেটমেন্টগুলি প্রোগ্রামের কার্যকারিতা নিয়ন্ত্রণ করতে ব্যবহৃত হয়। এগুলি শর্ত এবং পুনরাবৃত্তির মাধ্যমে কোডের প্রবাহ নির্ধারণ করে। IF-ELSE, PERFORM, EVALUATE, GO TO, এবং LOOPS স্টেটমেন্টগুলি COBOL প্রোগ্রামিংয়ের ফ্লো কন্ট্রোলের জন্য সবচেয়ে সাধারণ কন্ট্রোল স্ট্রাকচার। এগুলোর মাধ্যমে প্রোগ্রামের কাঙ্ক্ষিত কাজের কার্যকারিতা এবং পঠনযোগ্যতা নিশ্চিত করা যায়।
COBOL এ Structured Programming Techniques
Structured Programming হল এমন একটি প্রোগ্রামিং কৌশল যা কোডিংয়ের সময় সফটওয়্যার ডেভেলপমেন্টে উন্নত এবং সহজবোধ্য কৌশল অনুসরণ করার উপর গুরুত্ব দেয়। COBOL-এ Structured Programming Techniques ব্যবহার করে কোডকে আরও পরিষ্কার, মডুলার, এবং রিইউসেবল করা হয়। COBOL এর প্রধান Structured Programming Techniques হল Sequence, Selection, এবং Iteration। এই তিনটি মৌলিক কৌশল ব্যবহার করে কোডের প্রবাহ সহজ এবং বাগ-মুক্ত করা যায়।
১. Sequence (ক্রম)
Sequence হল Structured Programming এর সবচেয়ে সহজ প্রক্রিয়া, যেখানে কোডের প্রতিটি স্টেটমেন্ট নির্দিষ্ট একের পর এক কার্যকর করা হয়। এটি এমন একটি পদ্ধতি যেখানে প্রতিটি স্টেটমেন্ট শিরোনামযুক্ত কোন শর্ত ছাড়া একে একে এক্সিকিউট হয়।
উদাহরণ: Sequence
IDENTIFICATION DIVISION.
PROGRAM-ID. SequenceExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUM1 PIC 9(3) VALUE 10.
01 NUM2 PIC 9(3) VALUE 20.
01 RESULT PIC 9(3).
PROCEDURE DIVISION.
ADD NUM1 TO NUM2 GIVING RESULT
DISPLAY 'The result is: ' RESULT
STOP RUN.ব্যাখ্যা:
- এখানে, NUM1 এবং NUM2 দুটি সংখ্যার যোগফল RESULT-এ সংরক্ষিত হচ্ছে। এটি একটি সোজা Sequence যেটি কোডের প্রতিটি স্টেটমেন্ট একে একে চালায়।
২. Selection (নির্বাচন)
Selection হল এমন একটি কৌশল যেখানে প্রোগ্রামটির সিদ্ধান্ত নেয়ার জন্য শর্তাবলী ব্যবহৃত হয়। এই পদ্ধতিতে IF-ELSE, EVALUATE, বা SWITCH-CASE স্টেটমেন্ট ব্যবহৃত হয় যা কিছু শর্তের ভিত্তিতে কোডের নির্দিষ্ট অংশটি কার্যকর করবে।
উদাহরণ: Selection (IF-ELSE)
IDENTIFICATION DIVISION.
PROGRAM-ID. SelectionExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUM1 PIC 9(3) VALUE 10.
01 NUM2 PIC 9(3) VALUE 20.
01 RESULT PIC 9(3).
PROCEDURE DIVISION.
IF NUM1 > NUM2
DISPLAY 'NUM1 is greater than NUM2'
ELSE
DISPLAY 'NUM2 is greater than NUM1'
END-IF.
STOP RUN.ব্যাখ্যা:
- IF-ELSE স্টেটমেন্টটি ব্যবহার করে NUM1 এবং NUM2 এর তুলনা করা হয়েছে। যদি NUM1 বড় হয়, তবে "NUM1 is greater than NUM2" প্রদর্শিত হবে, অন্যথায় "NUM2 is greater than NUM1" প্রদর্শিত হবে।
৩. Iteration (পুনরাবৃত্তি)
Iteration হল সেই কৌশল যা একই কাজ একাধিকবার পুনরাবৃত্তি করার জন্য ব্যবহৃত হয়। COBOL-এ PERFORM স্টেটমেন্ট ব্যবহৃত হয় একটি নির্দিষ্ট অংশ একাধিকবার চালানোর জন্য।
উদাহরণ: Iteration (PERFORM)
IDENTIFICATION DIVISION.
PROGRAM-ID. IterationExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUM PIC 9(3) VALUE 1.
01 LIMIT PIC 9(3) VALUE 5.
PROCEDURE DIVISION.
PERFORM UNTIL NUM > LIMIT
DISPLAY 'Current value of NUM: ' NUM
ADD 1 TO NUM
END-PERFORM.
STOP RUN.ব্যাখ্যা:
- PERFORM UNTIL লুপটি ব্যবহার করে NUM এর মান ৫ পর্যন্ত বাড়ানো হচ্ছে। প্রতিটি ইটারেশনে NUM এর মান প্রদর্শিত হচ্ছে এবং একে একে ১ যোগ করা হচ্ছে।
৪. Combination of Sequence, Selection, and Iteration
Structured Programming-এ, Sequence, Selection, এবং Iteration এর সংমিশ্রণ অনেক প্রোগ্রামে ব্যবহৃত হয় যাতে প্রোগ্রামটি আরও শক্তিশালী, পরিষ্কার এবং দ্রুত কাজ করতে পারে।
উদাহরণ: Sequence, Selection, এবং Iteration এর সংমিশ্রণ
IDENTIFICATION DIVISION.
PROGRAM-ID. CombinedExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUM PIC 9(3) VALUE 1.
01 LIMIT PIC 9(3) VALUE 5.
01 EVEN-ODD PIC X(5).
PROCEDURE DIVISION.
PERFORM UNTIL NUM > LIMIT
IF NUM MOD 2 = 0
MOVE 'Even' TO EVEN-ODD
ELSE
MOVE 'Odd' TO EVEN-ODD
END-IF
DISPLAY 'NUM: ' NUM ' is ' EVEN-ODD
ADD 1 TO NUM
END-PERFORM.
STOP RUN.ব্যাখ্যা:
- এখানে PERFORM UNTIL লুপটি ব্যবহার করা হয়েছে, যেখানে NUM এর মান ৫ পর্যন্ত বাড়ানো হচ্ছে।
- IF-ELSE শর্ত ব্যবহার করা হয়েছে এটি চেক করার জন্য যে কোন সংখ্যাটি Even না Odd।
- এর ফলে, কোডটি প্রথমে NUM এর মান প্রদর্শন করে এবং তারপর তার পার্থক্য জানায় (Even অথবা Odd)।
সারসংক্ষেপ
COBOL-এ Structured Programming Techniques ব্যবহারের মাধ্যমে কোড লেখা সহজ, মডুলার এবং বাগ-মুক্ত করা যায়। Sequence, Selection, এবং Iteration এই তিনটি মৌলিক কৌশল ব্যবহার করে কোডের কার্যকারিতা এবং স্থিতিশীলতা উন্নত করা সম্ভব। Structured Programming-এর সাহায্যে প্রোগ্রামিংয়ের সমস্যাগুলোর সমাধান আরও সহজ এবং কার্যকরী হয়ে ওঠে।
Read more