বিষয়বস্তুতে চলুন

প্রোগ্রামিংয়ের মৌলিক ধারণা/অনুশীলন: শর্তাবলী

উইকিবই থেকে

Chapter Summary

[সম্পাদনা]

Structured Programming

[সম্পাদনা]

Structured programming একটি programming প্যারাডাইম যা কম্পিউটার প্রোগ্রামের ক্লারিটি, কোয়ালিটি, এবং ডেভেলপমেন্ট টাইম উন্নত করতে সাহায্য করে। এটি নির্বাচনী (selection), পুনরাবৃত্তি (repetition), ব্লক স্ট্রাকচার এবং সাবরুটিনসের মতো স্ট্রাকচার্ড কন্ট্রোল ফ্লো কন্সট্রাক্টস ব্যাপকভাবে ব্যবহার করে।

Selection Control Structures

[সম্পাদনা]

Conditional statements ভিন্ন ভিন্ন গণনা বা অ্যাকশন সম্পাদন করে, নির্ভর করে প্রোগ্রামারের দেওয়া Boolean শর্ত সঠিক (true) বা ভুল (false) কি না তার উপর।

একটি দুই-মুখী নির্বাচনী কাঠামো যা অনেক প্রোগ্রামিং ভাষায় ব্যবহৃত হয়।

Source code এর একটি লেক্সিক্যাল স্ট্রাকচার যা একসাথে গ্রুপ করা হয়।

Relational Operators

[সম্পাদনা]

দুটি উপাদানের মধ্যে সম্পর্ক পরীক্ষা বা নির্ধারণ করে।

Assignment vs Equality

[সম্পাদনা]

- Assignment: একটি ভেরিয়েবলের মেমরি ঠিকানায় মান সেট করে। বাম অপারেন্ডকে ডান অপারেন্ডের মান দেওয়া হয় এবং এটি একটি একক সমান চিহ্ন (=) দ্বারা চিহ্নিত। - Equality: দুটি অপারেন্ড তুলনা বা পরীক্ষা করার জন্য ব্যবহৃত একটি সম্পর্কযুক্ত অপারেটর, সাধারণত দুই বা তিনটি সমান চিহ্ন (==, ===) দ্বারা চিহ্নিত। এর ফলাফল true বা false হয়।

Logical Operators

[সম্পাদনা]

একটি বা একাধিক এক্সপ্রেশনকে সংযুক্ত করে একটি যৌগিক এক্সপ্রেশন তৈরি করে, যার মান মূল এক্সপ্রেশনগুলোর মান এবং অপারেটরের অর্থের উপর নির্ভর করে।

Nested If Then Else

[সম্পাদনা]

দুই-মুখী নির্বাচনী কাঠামো অন্য দুই-মুখী নির্বাচনী কাঠামোর ভিতরে নেস্টেড হতে পারে, যা মাল্টি-ওয়ে সিলেকশন সৃষ্টি করে।

Case Control Structure

[সম্পাদনা]

Case বা switch স্টেটমেন্ট হল একটি নির্বাচনী কন্ট্রোল মেকানিজম যা ভেরিয়েবল বা এক্সপ্রেশনের মান পরিবর্তনের মাধ্যমে প্রোগ্রামের এক্সিকিউশন ফ্লো মাল্টিওয়ে শাখায় ভাগ করে।

রিভিউ প্রশ্নসমূহ

[সম্পাদনা]

সত্য / মিথ্যা

[সম্পাদনা]

কন্ট্রোল স্ট্রাকচারের মাত্র দুটি ক্যাটাগরি আছে।

ব্রাঞ্চিং কন্ট্রোল স্ট্রাকচার ভাল স্ট্রাকচার্ড প্রোগ্রামিং এ খুব কমই ব্যবহৃত হয়।

If then else একটি মাল্টিওয়ে সিলেকশন কন্ট্রোল স্ট্রাকচার।

while কন্ট্রোল স্ট্রাকচার ব্রাঞ্চিং ক্যাটাগরির অংশ।

পসুডোকোড ফ্লোচার্টিং এর থেকে ভাল।

সিকোয়েন্স কন্ট্রোল স্ট্রাকচারে, প্রোগ্রামের এক্সিকিউটেড পথ প্রশ্ন দ্বারা প্রম্পট করা অপশন দ্বারা নির্ধারিত হয়।

একটি ইটারেশন কন্ট্রোল স্ট্রাকচার কিছু কোড লাইন বহুবার এক্সিকিউট হতে দেয়।

একটি রিলেশনাল অপারেটর জটিল বুলিয়ান এক্সপ্রেশন তৈরির জন্য ব্যবহৃত হয়।

if-then-else স্টেটমেন্টের সেরা কাঠামো হলো কোনো স্টেটমেন্ট সত্য কিনা তা চেক করা।

"True and False" স্টেটমেন্টের মান হলো 'True'।

কোনো ভেরিয়েবল ইনিশিয়ালাইজ বা সেট করার জন্য আপনি ইক্যুয়ালিটি অপারেটর (==) ব্যবহার করবেন।

উত্তরসমূহ

[সম্পাদনা]

মিথ্যা - মোট তিনটি ক্যাটাগরি আছে।

সত্য

মিথ্যা - এটি সিলেকশন স্ট্রাকচারের অংশ।

মিথ্যা - এটি রিপিটিশন ক্যাটাগরির অংশ।

মিথ্যা - পসুডোকোড খুবই উপকারী হলেও, এর ফ্লোচার্টের মতো স্পষ্টতা নেই।

মিথ্যা - সিকোয়েন্স স্ট্রাকচারে প্রোগ্রাম আইটেম গুলো তালিকার ক্রম অনুসারে এক্সিকিউট হয়।

সত্য

মিথ্যা - তারা মানের মধ্যে সম্পর্ক পরীক্ষা করার জন্য ব্যবহৃত হয়।

মিথ্যা - সাধারণত True বা not True চেক করার চেয়ে False বা not False চেক করা ভালো।

মিথ্যা - স্টেটমেন্টের মান হলো 'False'।

মিথ্যা - অ্যাসাইনমেন্ট অপারেটর (=) ব্যবহার করুন।

নিচের বুলিয়ান এক্সপ্রেশনগুলো মূল্যায়ন করুন

[সম্পাদনা]

২৫ < ৭

৩ < ৭

১৪ > ৭

১৭ <= ৭

২৫ >= ৭

১৩ == ৭

৯ != ৭

৫ !> ৭

২৫ > ৩৯ || ১৫ > ৩৬

১৯ > ২৬ || ১৩ < ১৭

১৪ < ৭ && ৬ <= ৬

৪ > ৩ && ১৭ >= ৭

! true

! (১৩ == ৭)

৯ != ৭ && ! ১

৬ < && ৮

উত্তরসমূহ

[সম্পাদনা]

ত্রুটি, “not greater than” কোন বৈধ অপারেটর নয়।

ত্রুটি, < এবং && অপারেটরের মধ্যে একটি অপার্যান্ড থাকা উচিত।

সংক্ষিপ্ত উত্তর

[সম্পাদনা]

- চারটি control structure এর ক্যাটাগরি তালিকাভুক্ত করুন এবং প্রতিটির সংক্ষিপ্ত বর্ণনা দিন। - ছয়টি relational operator এবং তাদের অর্থ সহ একটি টেবিল তৈরি করুন। - কখন "if", কখন "if-else", এবং কখন "if-else if-else" ব্যবহার উপযুক্ত তার উদাহরণ দিন। - Assignment এবং Equality এর মধ্যে পার্থক্য বর্ণনা করুন এবং প্রতিটির সঠিক ব্যবহার উদাহরণসহ দেখান।

- নিম্নলিখিত কার্যক্রমগুলি pseudocode, flowchart tool, অথবা আপনার নির্বাচিত প্রোগ্রামিং ভাষা ব্যবহার করে সম্পন্ন করুন। ইনপুট, প্রক্রিয়াকরণ, এবং আউটপুটের জন্য আলাদা ফাংশন ব্যবহার করুন। গ্লোবাল ভেরিয়েবল এড়িয়ে প্যারামিটার পাস করুন এবং ফলাফল রিটার্ন করুন। প্রতিটি প্রোগ্রামের সঠিকতা যাচাই করতে টেস্ট ডেটা তৈরি করুন। প্রোগ্রামের উপরে মন্তব্য এবং ব্যবহৃত রিসোর্সের রেফারেন্স যোগ করুন।

 1. ইউজারের কাছ থেকে ঘণ্টা এবং ঘণ্টা প্রতি রেট ইনপুট নিয়ে গ্রস পে (ঘণ্টা * রেট) হিসাব করুন। ৪০ ঘণ্টার বেশি কাজের জন্য ১.৫ গুণ ওভারটাইম রেট প্রয়োগ করুন। উদাহরণ: ৫০ ঘণ্টা কাজ করলে $১০/ঘণ্টা হলে পে হবে $৫৫০।
 2. ইউজারের বয়স বছর হিসেবে জিজ্ঞেস করুন। তারপর (M)onths, (D)ays, (H)ours, অথবা (S)econds এ বয়স জানতে চান কিনা জিজ্ঞেস করুন। if/else স্টেটমেন্ট ব্যবহার করে নির্বাচিত টাইমফ্রেমে বয়স হিসাব করুন।
 3. ইউএস স্ট্যান্ডার্ড দৈর্ঘ্যের জন্য ইউজারের কাছ থেকে মাইল ইনপুট নিন এবং ইউএস মেজারমেন্ট (yards, feet, inches) অথবা মেট্রিক মেজারমেন্ট (kilometers, meters, centimeters) নির্বাচন করুন। if/else স্টেটমেন্ট দিয়ে ফলাফল দেখান।
 4. প্লেন শেপস এর এরিয়া হিসাব করার জন্য ইউজারের পছন্দ জিজ্ঞেস করুন। if/else স্টেটমেন্ট ব্যবহার করে ইনপুট নিয়ে এরিয়া হিসাব এবং দেখান।
 5. কুকুরের বয়স মানব বছরের হিসেবে ইনপুট নিন এবং ডগ ইয়ার হিসেবে হিসাব করুন: প্রথম দুই বছর = ১০.৫ বছর, পরের বছরগুলো = ৪ বছর প্রতি বছর। কুকুরের নাম সহ আউটপুট দেখান।
 6. ইউজারের শু সাইজ অনুযায়ী মোজা সাইজ নির্ধারণ করুন:
    - < 4 = এক্সট্রা স্মল
    - 4 থেকে 6 = স্মল
    - 7 থেকে 9 = মিডিয়াম
    - 10 থেকে 12 = লার্জ
    - 13+ = এক্সট্রা লার্জ  
   if/else স্টেটমেন্ট দিয়ে ফলাফল দেখান। হাফ সাইজ হলে পরের পূর্ণ আকার নিন।

- যদি প্রোগ্রামিং ভাষা সাপোর্ট করে, উপরের প্রোগ্রামগুলোর কিছুতে if/else স্টেটমেন্টের পরিবর্তে case/select স্টেটমেন্ট ব্যবহার করুন। - যদি প্রোগ্রামিং ভাষা সাপোর্ট করে, numeric ইনপুটের জন্য ইনপুট ভ্যালিডেশন যোগ করুন। - যদি প্রোগ্রামিং ভাষা সাপোর্ট করে, রUNTIME error হ্যান্ডলিং (try-catch, try-except) যোগ করুন।

- cnx.org: Programming Fundamentals – A Modular Structured Approach using C++ - Wikiversity: Computer Programming - https://press.rebus.community/programmingfundamentals/chapter/assignment-vs-equality/ - https://www.codecademy.com/articles/fwd-js-comparison-logical - PythonLearn: Variables, expressions, and statements

Programming Fundamentals

[সম্পাদনা]

বিষয়শ্রেণী: Book:Programming Fundamentals