«

»

অক্টো. 14

সি প্রোগ্রামিং – লেকচার ৪: ইনপুট, অ্যারে এবং বুলিয়ান এক্সপ্রেশন

ইনপুট

ইউজারের থেকে ইনপুট নেয়ার জন্য আমরা scanf ফাংশনটা ব্যবহার করি। scanf ফাংশনে কমপক্ষে ২ টা প‌্যারামিটার দিতে হয়। একটা স্ট্রিং এবং একটা অন্য যে কোন ভেরিয়েবলের অ্যাড্রেস। ধরা যাক আমরা একটা প‌ূর্ণসংখ্যা ইনপুট নিতে চাই-


int num;
scanf("%d",&num);

এখানে “%d” আমরা বোঝাচ্ছি একটা integer ইনপুট নিতে চাই। এবং পরে কমা দিয়ে আমরা num ভেরিয়েবলের অ্যাড্রেস &num লিখেছি। এখন প্রোগ্রাম রান হওয়ার সময়ে এই লাইনটায় আসলে প্রোগ্রাম একটা প‌ূর্ণসংখ্যার জন্য অপেক্ষা করবে।
কিবোর্ড থেকে ধরা যাক একটা সংখ্যা 123 দিয়ে এন্টার দেয়া হল। তাহলে প্রোগ্রামটা 123 সংখ্যাটা num ভেরিয়েবলের মধ্যে রেখে দিবে।

এভাবে আমরা একটা দশমিক সংখ্যাও ইনপুট নিতে পারি। সেক্ষেত্রে আমাদের %f ব্যবহার করতে হবে এবং একটা float টাইপ ভেরিয়েবল প‌্যারামিটার হিসাবে দিতে হবে।


float price;
scanf("%f", &price);

আমরা যদি একবারে দুইটা মান নিতে চাই তাহলে এভাবে লিখতে পারি-


int num;
float price;
scanf("%d%f", &num, &price);

প্রথমে আমরা %d দিয়েছি সুতরাং প্রথমে একটা int ভেরিয়েবলের অ্যাড্রেস দিতে হবে যেটা হচ্ছে &num এক্ষেত্রে। তারপর আছে %f যেটার জন্য আমাদের float ভেরিয়েবলের অ্যাড্রেস দিতে হবে এক্ষেত্রে যেটা হচ্ছে &price.

অ্যারে – প্রাথমিক আলোচনা

আমাদের যদি একই ধরণের অনেকগুলো ভেরিয়েবল দরকার হয় তাহলে আমরা array ব্যবহার করি। ধরা যাক আমাদের ১০০ টা সংখ্যার জন্য ভেরিয়েবল লাগবে।

তাহলে আমরা ১০০ টা ভেরিয়েবল declare করতে পারি-


int number0, number1, number2, ......, number99;

এভাবে ভরিয়েবল declare করা এবং পরে ব্যবহার করা খুবই অসুবিধাজনক। সুতরাং আমরা সহজ করে লিখতে চাই।


int number[100];

এভাবে লিখলে আমরা ১০০ টা সংখ্যা রাখার যায়গা পাব। এবং সেগুলোর নাম হবে number[0], number[1], number[2], …. ,number[99] এভাবে। [] এর মধ্যে যে সংখ্যা লিখেছি সেটা হচ্ছে ইনডেক্স- এক্ষেত্রে কততম সংখ্যা সেটা বুঝাচ্ছে। ইনডেক্সিং শুরু হবে শূণ্য থেকে।

সুতরাং যদি ৩য় সংখ্যাটার মধ্যে 500 রাখতে চাই সেটার জন্য আমাদের লিখতে হবে,


number[2]=500;

১০০তম সংধ্যে যদি 170 লিখতে চাই তাহলৈ সেটা লিখতে হবে এভাবে-


number[99]=170;

আমরা ইনপুটও নিতে পারি যেকোন সংখ্যা। ধরা যাক ৫ম সংখ্যাটা ইনপুট নিতে চাই। সেটার অ্যাড্রেস হবে একইভাবে &number[4].


scanf("%d", &number[4]);

অ্যারে নিয়ে আপাতত এটুকুই আমরা আলোচনা করব।

বুলিয়ান এক্সপ্রেশন

আমরা জানি যে এক্সপ্রেশনের একটা মান থাকে। যেসব এক্সপ্রেশনের মান কোন সংখ্যা বা অন্য কিছু না হয়ে শুধু সত্য (true) বা মিথ্যা (false) এই দুইটা মান হতে পারে সেগুলোকে বলে বুলিয়ান এক্সপ্রেশন।

ধরা যাক আমরা একটা int ভেরিয়েবলে 35 অ্যাসাইন করেছি-


int score;
score=35;

এখন আমরা যদি লিখি

score>30

তাহলে আমরা একটা বুলিয়ার এক্সপ্রেশন পেলাম যেটার মান হবে true. আবার যদি আমরা লিখি

score>40

তাহলৈ এটার মান হবে false.

বুলিয়ান এক্সপ্রেশন আবার একাধিক ছোট ছোট এক্সপ্রেশনের সমন্বয়ে ঘঠন করা যায়, যেগুলকে OR বা AND দিয়ে সংযুক্ত করা যায়। সি ল্যাংগুয়েজে OR লেখা হয়

||

দিয়ে আর AND লেখা হয়

&&

দিয়ে।

যদি আমরা লিখি-


(score > 20) && (score < 33)

যেহেতু আমরা

&&

ব্যবহার করেছি এই এক্সপ্রেশন true হওয়ার জন্য দুইটা এক্সপ্রশন সত্য হতে হবে। তাহলে এক্ষেত্রে প্রোগ্রাম দুইটা এক্সপ্রেশনের মান আলাদাভাবে বের করে তারপর দেখবে দুইটাই true কিনা।
যেহেতু একটা এক্সপ্রশন

(score < 33)

এর মান false আমাদের পুরো এক্সপ্রশনের মানও false হবে।

আবার যদি আমরা

||

ব্যবহার করি-


(score > 20) || (score < 33)

তাহলে

(score > 20)

এর মান true এবং

(score < 33)

এর মান false হওয়ার কারণে প্ররো এক্সপ্রেশনের মান true হবে।

সুতরাং

&&

দিয়ে একাধিক সংযুক্ত এক্সপ্রেশনের মান true হওয়ার জন্য সবগুলো এক্সপ্রেশনের মান true হতে হবে।

||

দিয়ে একাধিক সংযুক্ত এক্সপ্রেশনের মান true হওয়ার জন্য যে কোন একটি এক্সপ্রেশনের মান true হলেই হবে।

Comments

comments

About the author

মারুফ মনিরুজ্জামান

মারুফ মনিরুজ্জামান শাহজালাল বিজ্ঞান ও প্রযুক্তি বিশ্ববিদ্যালয়ে কম্পিউটার বিজ্ঞান বিষয়ে পড়াশোনা করেন। তারপর ঢাকায় প্রথমে সাইক্রাফট, টিটিবিসি এবং কাজ সফটওয়ারে কিছুদিন কাজ করেন। বর্তমানে তিনি মাইক্রোসফটে কর্মরত আছেন।

Leave a Reply