অ্যালগোরিদম, ফ্লোচার্ট ও সূডোকোড – নোট
১. অ্যালগোরিদম (Algorithm)
সংজ্ঞা:
কোনো সমস্যা সমাধানের জন্য যুক্তিসম্মত এবং সসীম সংখ্যক ধাপের ধারাবাহিক নির্দেশনার সমষ্টিকে অ্যালগোরিদম বলা হয়।
উদাহরণ: দুটি সংখ্যার গড় নির্ণয়ের অ্যালগোরিদম
-
শুরু
-
a ও b এর মান গ্রহণ
-
avg = (a + b)/2 নির্ণয়
-
avg প্রদর্শন
-
শেষ
অ্যালগোরিদম তৈরির শর্ত:
-
সহজবোধ্য ও বোধগম্য হতে হবে
-
ইনপুট ও আউটপুট স্পষ্ট হতে হবে
-
কোনো ধাপ পুনরাবৃত্তি বা অস্পষ্ট না হবে
-
ধাপের লজিক্যাল ক্রম থাকতে হবে
-
সসীম ধাপে সমস্যার সমাধান হতে হবে
-
ব্যাপকভাবে প্রয়োগযোগ্য হতে হবে
-
কোন প্রোগ্রামিং কোড ব্যবহার করা যাবে না
সুবিধা:
-
প্রোগ্রামের উদ্দেশ্য সহজে বোঝা যায়
-
ভাষা নিরপেক্ষ, যেকেউ বুঝতে পারে
-
ডিবাগিং ও প্রোগ্রাম উন্নয়ন সহজ হয়
২. ফ্লোচার্ট (Flowchart)
সংজ্ঞা:
ফ্লোচার্ট হলো অ্যালগোরিদমের চিত্ররূপ। এটি বিভিন্ন প্রতীক এবং তীর চিহ্ন ব্যবহার করে সমস্যার সমাধানের ধাপগুলো দেখায়।
ফ্লোচার্টের নিয়মাবলী:
-
অবশ্যই শুরু এবং শেষ চিহ্ন থাকবে
-
নিয়ন্ত্রণ প্রবাহ টপ থেকে শুরু, বটমে শেষ হবে
-
প্রচলিত প্রতীক ব্যবহার করা হবে
-
তীর চিহ্ন দিয়ে প্রবাহ নির্দেশ করা হবে
-
অতিরিক্ত সংযোগ রেখা বা প্রতীক ব্যবহার করা যাবে না
-
প্রোগ্রামিং ভাষা ব্যবহার করা যাবে না
ফ্লোচার্টের সুবিধা:
-
প্রোগ্রামের যুক্তি সহজে বোঝা যায়
-
সমস্যা বিশ্লেষণ সহজ হয়
-
প্রোগ্রাম ডিজাইনে blueprint হিসেবে কাজ করে
-
প্রোগ্রাম রক্ষণাবেক্ষণ সহজ হয়
-
যেকোনো প্রোগ্রামিং ভাষার কোডে রূপান্তর সহজ হয়
ফ্লোচার্টের প্রকারভেদ:
-
সিস্টেম ফ্লোচার্ট: জটিল সিস্টেমের কার্যপ্রণালী বোঝাতে
-
প্রোগ্রাম ফ্লোচার্ট: অ্যালগোরিদমের যৌক্তিক ধাপ দেখাতে
ফ্লোচার্টে ব্যবহৃত প্রতীক:
| প্রতীক | ব্যবহার |
|---|---|
| আয়তক্ষেত্র | প্রক্রিয়াকরণ (Processing) |
| ডায়মন্ড | সিদ্ধান্ত/শর্ত (Decision) |
| প্যারালালোগ্রাম | ইনপুট/আউটপুট |
| বল বা অণ্ডাকৃতি | শুরু/শেষ |
| তীর চিহ্ন | প্রবাহ নির্দেশ |
মূল স্ট্রাকচার:
-
সরল অনুক্রম (Simple Sequence): ধাপগুলো ধারাবাহিকভাবে
-
নির্বাচন (Selection): শর্তের সত্য বা মিথ্যায় সিদ্ধান্ত
-
পুনরাবৃত্তি (Loop): একই কাজ পুনরাবৃত্তি
-
জাম্প (Jump): শর্ত অনুযায়ী নির্দেশ সরাসরি অন্য ধাপে
৩. সূডোকোড (Pseudo Code)
সংজ্ঞা:
সূডোকোড হলো প্রোগ্রামের ইনফরমাল বর্ণনা, যা কোন প্রোগ্রামিং ভাষা ব্যবহার করে লেখা হয় না। এটি কোডের রূপরেখা বা খসড়া তৈরির জন্য ব্যবহৃত হয়।
উদাহরণ: দুটি সংখ্যার গড় নির্ণয়
সুবিধা:
-
যেকেউ বুঝতে পারে, প্রোগ্রামার বা নন-প্রোগ্রামার
-
অ্যালগোরিদমে মনোনিবেশ করতে সাহায্য করে
-
প্রোগ্রামের লগিক ঠিক রাখে
৪. অ্যালগোরিদম বনাম ফ্লোচার্ট বনাম সূডোকোড
| বিষয় | অ্যালগোরিদম | ফ্লোচার্ট | সূডোকোড |
|---|---|---|---|
| ধরন | ধাপে ধাপে বর্ণনা | চিত্ররূপ | ইনফরমাল ইংরেজি কোড |
| ভাষা নিরপেক্ষ | ✔ | ✔ | ✔ |
| সুবিধা | সহজে বুঝা যায়, ডিবাগ সহজ | প্রোগ্রামের প্রবাহ বোঝায় | অ্যালগোরিদমের রূপরেখা দেখায় |
| ব্যবহার | প্রোগ্রাম ডেভেলপমেন্টের পূর্বে | প্রোগ্রাম ডিজাইনে | কোডিং পূর্বে পরিকল্পনা |
৫. সংক্ষিপ্ত টিপস
-
সমস্যা সমাধানের পূর্বে অ্যালগোরিদম → ফ্লোচার্ট → সূডোকোড ধাপে ধাপে ব্যবহার করা যায়।
-
ফ্লোচার্ট মানে “চিত্রভিত্তিক অ্যালগোরিদম”, যা সমস্যা সমাধান সহজ করে।
-
সূডোকোড শুধু নির্দেশনার রূপরেখা, কোন প্রোগ্রামিং কোড নয়
অ্যালগোরিদম, ফ্লোচার্ট ও সূডোকোড – ২০টি MCQ
-
অ্যালগোরিদম কী?
ক) কোনো প্রোগ্রামের কোড
খ) সমস্যা সমাধানের ধাপে ধাপে নির্দেশনা ✔
গ) ফ্লোচার্টের চিত্র
ঘ) ইনপুট এবং আউটপুটের মান -
ফ্লোচার্টের মূল উদ্দেশ্য কী?
ক) প্রোগ্রামিং ভাষা শেখা
খ) প্রোগ্রামের যৌক্তিক ধাপ চিত্রের মাধ্যমে দেখানো ✔
গ) ডিবাগিং করা
ঘ) ইনপুট নেওয়া -
সূডোকোড কী?
ক) প্রোগ্রামিং ভাষা
খ) অ্যালগোরিদমের ইনফরমাল রূপ ✔
গ) ফ্লোচার্টের প্রতীক
ঘ) কম্পাইলার -
অ্যালগোরিদম তৈরির শর্তের মধ্যে কোনটি অন্তর্ভুক্ত?
ক) ধাপগুলো অস্পষ্ট হতে হবে
খ) লজিক্যাল ক্রম থাকা উচিত ✔
গ) কোড ব্যবহার করা যাবে
ঘ) অনির্দিষ্ট ধাপে সমস্যার সমাধান হবে -
ফ্লোচার্টে সিদ্ধান্ত নেয়ার প্রতীক কোনটি?
ক) আয়তক্ষেত্র
খ) ডায়মন্ড ✔
গ) প্যারালালোগ্রাম
ঘ) বল/অণ্ডাকৃতি -
ফ্লোচার্টে ইনপুট/আউটপুট চিহ্ন কোনটি?
ক) আয়তক্ষেত্র
খ) ডায়মন্ড
গ) প্যারালালোগ্রাম ✔
ঘ) বল/অণ্ডাকৃতি -
অ্যালগোরিদমের সুবিধা কী?
ক) প্রোগ্রাম ভাষা নির্ভর
খ) সমস্যা ধাপে ধাপে বোঝা যায় ✔
গ) ডিবাগ করা কঠিন
ঘ) ফ্লোচার্ট তৈরি হয় না -
সূডোকোডের সুবিধা হলো:
ক) যেকেউ বুঝতে পারে ✔
খ) শুধুমাত্র কম্পাইলার বুঝে
গ) সমস্যা সমাধান করতে পারবে না
ঘ) প্রোগ্রাম কোডের পরিবর্তন হয় না -
ফ্লোচার্ট কত প্রকার?
ক) ২ ✔
খ) ৪
গ) ৬
ঘ) ৮ -
ফ্লোচার্টের কোন প্রতীক প্রক্রিয়াকরণের জন্য ব্যবহার হয়?
ক) আয়তক্ষেত্র ✔
খ) ডায়মন্ড
গ) প্যারালালোগ্রাম
ঘ) বল/অণ্ডাকৃতি -
অ্যালগোরিদমের কোন শর্তটি সত্য?
ক) অসীম ধাপ থাকবে
খ) সসীম ধাপে সমাধান হবে ✔
গ) লজিক্যাল ক্রম প্রয়োজন নেই
ঘ) ফ্লোচার্ট ব্যবহার করা হবে না -
সূডোকোডের উদাহরণ কোনটি?
ক) avg = (a + b)/2 ✔
খ) draw_rectangle()
গ) Diamond shape
ঘ) Arrow -
ফ্লোচার্ট তৈরির নিয়মের মধ্যে কোনটি নেই?
ক) শুরু এবং শেষ চিহ্ন থাকা ✔
খ) নিয়ন্ত্রণ প্রবাহ টপ থেকে শুরু
গ) তীর চিহ্ন দিয়ে প্রবাহ নির্দেশ করা
ঘ) প্রোগ্রামিং ভাষা ব্যবহার করা যাবে না -
“চিত্রভিত্তিক অ্যালগোরিদম” কোনটি?
ক) সূডোকোড
খ) ফ্লোচার্ট ✔
গ) কোডিং
ঘ) ইনপুট -
সরল অনুক্রমের স্ট্রাকচারে কী হয়?
ক) শর্ত অনুযায়ী লাফ
খ) ধাপগুলো ধারাবাহিকভাবে ✔
গ) লুপ
ঘ) ডায়মন্ড -
লুপ স্ট্রাকচার কোনটি বোঝায়?
ক) শর্ত অনুযায়ী ধাপ পুনরাবৃত্তি ✔
খ) সরল অনুক্রম
গ) সূডোকোড
ঘ) ডিবাগিং -
অ্যালগোরিদমের কোন অংশ প্রোগ্রামিং ভাষা ব্যবহার করে লেখা হয় না?
ক) কোডিং
খ) ধাপ নির্দেশনা ✔
গ) ফ্লোচার্টের তীর
ঘ) ইনপুট -
ফ্লোচার্টের কোন স্ট্রাকচার শর্তের উপর ভিত্তি করে কাজ করে?
ক) লুপ
খ) নির্বাচিত/সিলেকশন ✔
গ) সরল অনুক্রম
ঘ) সূডোকোড -
সূডোকোড ব্যবহার করার সুবিধা হলো:
ক) কম্পাইলার ছাড়া বোঝা যায় ✔
খ) শুধু ফ্লোচার্ট তৈরি করা যায়
গ) সমস্যা সমাধান হয় না
ঘ) প্রোগ্রাম langs নির্ভর -
দুটি সংখ্যার গড় নির্ণয়ের সূডোকোড কোনটি?
ক) Start → Input a,b → avg = (a+b)/2 → Print avg → Stop ✔
খ) avg = a + b
গ) draw_rectangle(a,b)
ঘ) Diamond shape
ict lecturer
Md Belal Hossain Neel
-