Flowchart
ফ্লোচার্ট
ফ্লোচার্ট (Flowchart)
১. ভূমিকা — ছবিতে দেখালে সহজ হয় না?
তুমি কি কখনো কোনো পণ্যের ব্যবহারবিধি দেখেছো? অথবা হাসপাতালের "রোগী কোথায় যাবে" — এই ধরনের দিকনির্দেশনার বোর্ড?
সেখানে তীর চিহ্ন দিয়ে দেখানো থাকে — কোথায় গেলে কী হবে। এটাই মূলত Flowchart!
এখন প্রশ্ন হলো: আমরা কি শুধু কথায় Algorithm লিখবো? নাকি ছবিতে দেখাবো?
ছবিতে দেখানো অনেক সহজ — তাই Flowchart (ফ্লোচার্ট) তৈরি হয়েছিল।
২. সমস্যা — শুধু কথায় বললে সবাই বোঝে না
ধরো তুমি তোমার ছোট ভাইকে বললে: "ATM থেকে টাকা তুলতে হলে কার্ড দাও, PIN দাও, পরিমাণ দাও, টাকা নাও।"
সে বুঝলো না — কোথায় শুরু, কোথায় শেষ, ভুল PIN হলে কী হয়?
যদি একটা চিত্র দেখাতে পারতে — সব স্পষ্ট হয়ে যেতো।
Flowchart হলো সেই চিত্র — Algorithm-কে চিত্রে রূপ দেওয়া।
৩. চিত্রের মাধ্যমে বোঝো
Flowchart-এর প্রতীক (Symbols):
┌──────────────┐ ┌──────────────────┐
│ Terminal │ │ Process │
│ (শুরু/শেষ) │ │ (হিসাব/কাজ) │
│ ওভাল আকার │ │ আয়তক্ষেত্র │
└──────────────┘ └──────────────────┘
┌──────────────┐ ┌──────────────────┐
│ Decision │ │ Input/Output │
│ (শর্ত) │ │ (ইনপুট/আউটপুট) │
│ হীরক আকার │ │ সামান্তরিক │
└──────────────┘ └──────────────────┘
↓ (Arrow / তীর — প্রবাহের দিক)
প্রতীক সারণি:
| প্রতীক | আকৃতি | ব্যবহার |
|---|---|---|
| Terminal | ডিম্বাকার (Oval) | শুরু (Start) এবং শেষ (End) |
| Process | আয়তক্ষেত্র (Rectangle) | হিসাব বা কাজ |
| Decision | হীরক (Diamond) | হ্যাঁ/না প্রশ্ন |
| Input/Output | সামান্তরিক (Parallelogram) | ডেটা নেওয়া বা দেখানো |
| Arrow | তীর চিহ্ন | প্রবাহের দিক |
| Connector | বৃত্ত (Circle) | একটি পয়েন্ট থেকে অন্যত্র যাওয়া |
৪. বাস্তব জীবনের সাথে মিল
ট্রেন লাইন ভাবো:
ট্রেন একটি নির্দিষ্ট পথে চলে। কোনো জায়গায় লাইন দুটি ভাগ হয় — সিগন্যাল দেখে ট্রেন ঠিক করে কোন পথে যাবে।
Flowchart ঠিক এমন:
- Arrow = ট্রেন লাইন
- Process = স্টেশন (কাজ হয়)
- Decision = লাইন বিভক্ত হওয়ার জায়গা
- Terminal = শুরুর স্টেশন এবং শেষ স্টেশন
Module 1: সংজ্ঞা ও ধারণা
Flowchart (ফ্লোচার্ট) হলো Algorithm-এর চিত্ররূপ প্রকাশ। এতে বিভিন্ন জ্যামিতিক আকৃতি এবং তীর চিহ্ন ব্যবহার করে একটি প্রক্রিয়ার প্রবাহ (Flow) দেখানো হয়।
Flowchart-এর সুবিধা:
- ✅ দেখতে সহজ, বুঝতে সহজ
- ✅ ভুল খুঁজে বের করা সহজ
- ✅ দলীয় কাজে সবাই একসাথে বুঝতে পারে
- ✅ কোড লেখার আগে পরিকল্পনা করতে সাহায্য করে
Flowchart-এর অসুবিধা:
- ❌ বড় প্রোগ্রামের জন্য জটিল হয়ে যায়
- ❌ পরিবর্তন করতে পুরো চিত্র আঁকতে হয়
Module 2: কীভাবে কাজ করে
Flowchart আঁকার নিয়ম:
১. সবসময় Terminal (Start) থেকে শুরু করো
↓
২. ক্রমানুসারে Process/Decision যোগ করো
↓
৩. Arrow দিয়ে সংযুক্ত করো (সাধারণত উপর থেকে নিচে)
↓
৪. Decision-এ দুটি বাহু: "হ্যাঁ" এবং "না"
↓
৫. Terminal (End) দিয়ে শেষ করো
↓
৬. প্রতিটি Arrow-এর দিক স্পষ্ট রাখো
Module 3: প্যাটার্ন ও উদাহরণ
প্যাটার্ন ১: Sequential Flowchart (ক্রমানুসারী)
উদাহরণ ১.১: দুটি সংখ্যার যোগফল
┌─────────┐
│ START │
└────┬────┘
↓
┌────┴────────────────┐
│ a এবং b ইনপুট নাও │
└────┬────────────────┘
↓
┌────┴──────────┐
│ sum = a + b │
└────┬──────────┘
↓
┌────┴────────────────┐
│ sum প্রিন্ট করো │
└────┬────────────────┘
↓
┌────┴────┐
│ END │
└─────────┘
উদাহরণ ১.২: আয়তক্ষেত্রের ক্ষেত্রফল
┌─────────┐
│ START │
└────┬────┘
↓
┌────┴───────────────────┐
│ দৈর্ঘ্য l ও প্রস্থ w │
│ ইনপুট নাও │
└────┬───────────────────┘
↓
┌────┴───────────┐
│ area = l × w │
└────┬───────────┘
↓
┌────┴──────────────────┐
│ area প্রিন্ট করো │
└────┬──────────────────┘
↓
┌────┴────┐
│ END │
└─────────┘
উদাহরণ ১.৩: গড় নির্ণয়
┌─────────┐
│ START │
└────┬────┘
↓
┌────┴──────────────────────┐
│ তিনটি সংখ্যা a, b, c │
│ ইনপুট নাও │
└────┬──────────────────────┘
↓
┌────┴──────────────────────┐
│ avg = (a + b + c) / 3 │
└────┬──────────────────────┘
↓
┌────┴──────────────────────┐
│ avg প্রিন্ট করো │
└────┬──────────────────────┘
↓
┌────┴────┐
│ END │
└─────────┘
প্যাটার্ন ২: Conditional Flowchart (শর্তযুক্ত)
উদাহরণ ২.১: সংখ্যা ধনাত্মক না ঋণাত্মক
┌─────────┐
│ START │
└────┬────┘
↓
┌────┴──────────┐
│ n ইনপুট নাও │
└────┬──────────┘
↓
┌────┴─────┐
│ n > 0? │
└──┬────┬──┘
হ্যাঁ↓ ↓না
┌────────┴┐ ┌┴──────────┐
│"ধনাত্মক"│ │ n < 0? │
└────────┬┘ └┬───────┬──┘
↓ হ্যাঁ↓ ↓না
│ ┌─┴──────┐ ┌┴──────────┐
│ │"ঋণাত্মক"│ │"শূন্য" │
│ └─┬──────┘ └┬──────────┘
↓ ↓ ↓
┌──┴────┴──────────┴──┐
│ END │
└─────────────────────┘
উদাহরণ ২.২: পাস/ফেল নির্ধারণ
┌─────────┐
│ START │
└────┬────┘
↓
┌────┴──────────────┐
│ marks ইনপুট নাও │
└────┬──────────────┘
↓
┌────┴──────────────┐
│ marks >= 33? │
└──┬─────────────┬──┘
হ্যাঁ↓ ↓না
┌───────┴──┐ ┌────┴──────┐
│ "পাস" │ │ "ফেল" │
└───────┬──┘ └────┬──────┘
↓ ↓
┌───┴─────────────┴───┐
│ END │
└─────────────────────┘
উদাহরণ ২.৩: বড় সংখ্যা নির্ণয়
┌─────────┐
│ START │
└────┬────┘
↓
┌────┴───────────────────┐
│ a এবং b ইনপুট নাও │
└────┬───────────────────┘
↓
┌────┴───────────┐
│ a > b? │
└──┬──────────┬──┘
হ্যাঁ↓ ↓না
┌───────┴───┐ ┌───┴────────┐
│ "a বড়" │ │ "b বড়" │
└───────┬───┘ └───┬────────┘
↓ ↓
┌───┴───────────┴───┐
│ END │
└───────────────────┘
প্যাটার্ন ৩: Loop Flowchart (পুনরাবৃত্তিমূলক)
উদাহরণ ৩.১: ১ থেকে ৫ পর্যন্ত প্রিন্ট
┌─────────┐
│ START │
└────┬────┘
↓
┌────┴──────┐
│ i = 1 │
└────┬──────┘
↓
┌────┴──────────┐
│ i <= 5? │◄──────────┐
└──┬─────────┬──┘ │
হ্যাঁ↓ ↓না │
┌───────┴───┐ ┌─┴───┐ │
│ i প্রিন্ট │ │ END │ │
└───────┬───┘ └─────┘ │
↓ │
┌───┴──────────┐ │
│ i = i + 1 │─────────────┘
└──────────────┘
উদাহরণ ৩.২: ১ থেকে n পর্যন্ত যোগফল
┌─────────┐
│ START │
└────┬────┘
↓
┌────┴──────────┐
│ n ইনপুট নাও │
└────┬──────────┘
↓
┌────┴──────────────┐
│ sum = 0, i = 1 │
└────┬──────────────┘
↓
┌────┴──────────┐
│ i <= n? │◄──────────────────┐
└──┬─────────┬──┘ │
হ্যাঁ↓ ↓না │
┌───────┴──────┐ ┌──┴────────────┐ │
│sum = sum + i │ │sum প্রিন্ট করো│ │
└───────┬──────┘ └──┬────────────┘ │
↓ ↓ │
┌───┴──────────┐ ┌┴───┐ │
│ i = i + 1 │ │END │ │
└───┴──────────┘ └────┘ │
└───────────────────────────────┘
উদাহরণ ৩.৩: Factorial গণনা
┌─────────┐
│ START │
└────┬────┘
↓
┌────┴──────────────┐
│ n ইনপুট নাও │
└────┬──────────────┘
↓
┌────┴───────────────────┐
│ result = 1, i = 1 │
└────┬───────────────────┘
↓
┌────┴──────────┐
│ i <= n? │◄──────────────────┐
└──┬─────────┬──┘ │
হ্যাঁ↓ ↓না │
┌───────┴──────────┐ ┌──┴──────────────┐│
│result = result×i │ │result প্রিন্ট ││
└───────┬──────────┘ └──┬──────────────┘│
↓ ↓ │
┌───┴──────────┐ ┌────┴──┐ │
│ i = i + 1 │ │ END │ │
└───┴──────────┘ └───────┘ │
└───────────────────────────────┘
Module 4: বাস্তব প্রয়োগ
| বাস্তব ব্যবহার | Flowchart-এর ভূমিকা |
|---|---|
| সফটওয়্যার ডিজাইন | কোড লেখার আগে পরিকল্পনা |
| ব্যবসায়িক প্রক্রিয়া | অফিসের কাজের ধাপ দেখানো |
| হাসপাতাল | রোগী দেখার প্রক্রিয়া |
| ব্যাংকিং | লোন অনুমোদনের ধাপ |
| শিক্ষা | ভর্তি প্রক্রিয়া বর্ণনা |
Module 5: সাধারণ ভুল ও সতর্কতা
ভুল ১: ভুল প্রতীক ব্যবহার
❌ ভুল: হিসাবের জন্য Diamond (হীরক) ব্যবহার
✅ সঠিক: হিসাবের জন্য Rectangle (আয়তক্ষেত্র) ব্যবহার
❌ ভুল: শর্তের জন্য Rectangle ব্যবহার
✅ সঠিক: শর্তের জন্য Diamond (হীরক) ব্যবহার
ভুল ২: Arrow-এর দিক না দেওয়া
❌ ভুল: দুটি বক্সের মধ্যে লাইন টানা কিন্তু তীর নেই
✅ সঠিক: সব সংযোগে তীর চিহ্ন থাকবে
ভুল ৩: Decision-এ দুটি পথ না রাখা
❌ ভুল: Decision বক্স থেকে শুধু একটি পথ
✅ সঠিক: "হ্যাঁ" এবং "না" দুটি পথই থাকবে
ভুল ৪: Start/End ভুলে যাওয়া
❌ ভুল: Flowchart সরাসরি Process দিয়ে শুরু
✅ সঠিক: সবসময় START Terminal দিয়ে শুরু, END দিয়ে শেষ
Module 6: সুবিধা-অসুবিধা
| পরিস্থিতি | Flowchart ব্যবহার করো | অন্য পদ্ধতি ব্যবহার করো |
|---|---|---|
| ছোট প্রোগ্রাম | ✅ উপযুক্ত | — |
| বড় প্রোগ্রাম | ❌ অনেক জটিল হয় | Pseudocode ভালো |
| দলীয় কাজ | ✅ সবাই বুঝতে পারে | — |
| দ্রুত পরিকল্পনা | ❌ সময় লাগে | Algorithm লেখা দ্রুত |
🔁 নিজে পরীক্ষা করো
MCQ:
১. Flowchart-এ হিসাব বা প্রক্রিয়া বোঝাতে কোন আকৃতি ব্যবহার হয়?
- ক) ডিম্বাকার
- খ) আয়তক্ষেত্র ✓
- গ) হীরক
- ঘ) সামান্তরিক
২. Decision বক্সে সর্বনিম্ন কয়টি পথ থাকে?
- ক) ১
- খ) ২ ✓
- গ) ৩
- ঘ) ৪
৩. Flowchart-এ ইনপুট/আউটপুট বোঝাতে কোন আকৃতি ব্যবহার হয়?
- ক) আয়তক্ষেত্র
- খ) হীরক
- গ) সামান্তরিক ✓
- ঘ) বৃত্ত
৪. কোনটি Flowchart-এর সুবিধা নয়?
- ক) দেখতে সহজ
- খ) বুঝতে সহজ
- গ) বড় প্রোগ্রামে সহজ ✓
- ঘ) পরিকল্পনায় সাহায্য করে
৫. Loop Flowchart-এ কোন বৈশিষ্ট্য থাকে?
- ক) শুধু সামনে যায়
- খ) পেছনে ফেরার Arrow থাকে ✓
- গ) কোনো Decision থাকে না
- ঘ) শুধু একটি পথ থাকে
সংক্ষিপ্ত প্রশ্ন:
৬. Flowchart-এর ৫টি প্রতীক এবং তাদের ব্যবহার লেখো।
৭. "একটি সংখ্যা জোড় না বিজোড়" নির্ধারণের Flowchart আঁকো।
📝 HSC পরীক্ষার প্রস্তুতি
১. Algorithm এবং Flowchart-এর মধ্যে পার্থক্য কী? কোনটি কখন ব্যবহার করা ভালো?
২. একটি Loop Flowchart-এ যদি "হ্যাঁ" এবং "না" পথ উল্টো হয়ে যায়, তাহলে কী সমস্যা হবে?
৩. তুমি কি Flowchart ছাড়াই সরাসরি কোড লিখতে পারো? Flowchart আঁকা কি সময়ের অপচয়?
🎯 অনুশীলন প্রশ্ন
সহজ: "তিনটি সংখ্যার মধ্যে সর্বোচ্চটি খুঁজে বের করো" — এর Flowchart আঁকো।
মাঝারি: "১ থেকে ১০০ পর্যন্ত সকল জোড় সংখ্যার যোগফল" — এর Flowchart আঁকো।
কঠিন: "একটি সংখ্যা মৌলিক (Prime) কিনা পরীক্ষা করো" — এর Flowchart আঁকো।
✅ সারাংশ
🎯 মনে রেখো:
- Flowchart = Algorithm-এর চিত্ররূপ
- ৫টি প্রধান প্রতীক:
- Oval → Start/End
- Rectangle → Process (হিসাব/কাজ)
- Diamond → Decision (শর্ত)
- Parallelogram → Input/Output
- Arrow → প্রবাহের দিক
- ৩ ধরনের Pattern:
- Sequential → সরল পথ
- Conditional → Diamond থেকে দুটি পথ
- Loop → পেছনে ফিরে আসার Arrow
- সবসময় START দিয়ে শুরু, END দিয়ে শেষ
- Decision বক্সে সবসময় "হ্যাঁ" এবং "না" দুটি পথ
💡 পরীক্ষার টিপস: HSC-তে Flowchart আঁকার সময় প্রতীকের আকৃতি সঠিক রাখবে এবং Arrow-এর দিক দিতে ভুলবে না।