Lecture 11
সি মোডিফায়ার
মোডিফায়ার(modifiers) মৌলিক ডেটা টাইপের অর্থ পরিবর্তন করে নতুন ডেটা টাইপ উৎপন্ন করে।
সাইজ মোডিফায়ার
সাইজ মোডিফায়ার মৌলিক ডেটা টাইপের সাইজ পরিবর্তন করতে পারে। সি প্রোগ্রামিং এ দুই ধরনের সাইজ মোডিফায়ার আছেঃ
- 1 short
- 2 long
- ডাবল(double) এর সাইজ ৮ বাইট। এর সাথে long কীওয়ার্ড ব্যবহার করলে ভ্যারিয়েবলের সাইজ হয়ে যায় ১০ বাইট।আপনি যদি মনে করেন ভ্যারিয়েবলের ভ্যালু খুব বড় হওয়ার প্রয়োজন নাই তাহলে short কীওয়ার্ড ব্যবহার করতে পারেন। উদাহরণস্বরূপঃ
short int a; // সকল অপারেটিং সিস্টেমের জন্য 2 bytes মেমোরি স্পেস দখল করে।
সাইন মোডিফায়ার
ইন্টেজার এবং ফ্লোটিং পয়েন্ট ভ্যারিয়েবল উভয়েই ধনাত্মক এবং ঋণাত্মক মান গ্রহণ করতে পারে। যাইহোক, ভ্যারিয়েবলের ভ্যালু যদি শুধুমাত্র ধনাত্মক রাখতে চান তাহলে unsigned ডেটা টাইপ ব্যবহার করতে হবে।//unsigned ভ্যারিয়েবলের ঋণাত্মক মান থাকতে পারবে না unsigned int positiveInteger;
এছাড়া অন্য একটি মোডিফায়ার signed রয়েছে যার ধনাত্মক এবং ঋণাত্মক উভয় ভ্যালুই থাকতে পারে। কিন্তু ইহা ডিফাইন্ড করার কোনো প্রয়োজন নাই কারণ ভ্যারিয়েবল ডিফল্টভাবেই signed থাকে।4 বাইটের একটি ইন্টেজার ভ্যারিয়বলের -231 থেকে 231-1 পর্যন্ত ভ্যালু থাকতে পারে। কিন্তু ভ্যারিয়েবলকে যদি unsigned হিসাবে ডিফাইন্ড করা হয় তাহলে ইহার 0 থেকে 232-1 পর্যন্ত ভ্যালু থাকতে পারে।মনে রাখবেন, সাইন মোডিফায়ার শুধুমাত্র int এবং char ডেটা টাইপের ক্ষেত্রে প্রযোজ্য।কনস্ট্যান্ট মোডিফায়ার
আইডেন্টিফায়ারকে কনস্ট্যান্ট হিসাবেও ডিক্লেয়ার করা যায়। ইহার জন্য const কীওয়ার্ড ব্যবহৃত হয়।const int age = 32;
প্রোগ্রামে age ভ্যারিয়েবলের ভ্যালু পরিবর্তন হবে না।ভোলাটাইল মোডিফায়ার
প্রোগ্রামের বাহিরের কোনো এক্সটার্নাল সোর্সের মাধ্যমে ভ্যারিয়েবলের ভ্যালু পরিবর্তন করতে হলে ভ্যারিয়েবলকে volatile হিসাবে ডিক্লেয়ার করা উচিৎ। Lecture 12
সি প্রোগ্রামিং ইনপুট-আউটপুট(I/O): printf() এবং scanf()
এই অধ্যায়ে আমরা সি প্রোগ্রামিং এর দুটি বিল্ট-ইন(built-in) ফাংশন printf() এবং scanf() কে বেশী ফোকাস করবো যা ইনপুট এবং আউটপুট কার্য সম্পাদনের জন্য ব্যবহৃত হয়। এছাড়া এই অধ্যায়ে আপনি বৈধ সি প্রোগ্রাম লেখাও শিখবেন।
ইনপুট এবং আউটপুট কার্যাবলী সম্পাদনের জন্য সি প্রোগ্রামিং এ কিছু বিল্ট-ইন লাইব্রেরী ফাংশন রয়েছে।
ইনপুট-আউটপুট( I/O) এর জন্য সবচেয়ে বেশী ব্যবহৃত দুটি ফাংশন হলো printf() এবং scanf()।
স্টান্ডার্ড ইনপুট ডিভাইস(কীবোর্ড) এর মাধ্যমে ইউজার থেকে formated ইনপুট নেওয়ার জন্য
scanf()
ফাংশন ব্যবহৃত হয়। পক্ষান্তরে স্টান্ডার্ড আউটপুট ডিভাইস(স্ক্রিন) এ formated আউটপুট পাঠানোর জন্য printf()
ফাংশন ব্যবহৃত হয়।ইনপুট এর সিনট্যাক্স
scanf("%c", &var_name); // Character ইনপুট নেওয়ার জন্য
scanf("%d", &var_name); // integer ইনপুট নেওয়ার জন্য
scanf("%f", &var_name); // float ইনপুট নেওয়া হয়
scanf("%lf", &var_name); // double ইনপুট নেওয়া হয়
scanf("%s", &var_name); // string ইনপুট নেওয়া হয়
আউটপুট এর সিনট্যাক্স
printf("%c", &var_name); // Character এ আউটপুট পাওয়ার জন্য
printf("%d", &var_name); // integer এ আউটপুট পাওয়ার জন্য
printf("%f", &var_name); // float এ আউটপুট পাওয়ার জন্য
printf("%lf", &var_name); // double এ আউটপুট পাওয়ার জন্য
printf("%s", &var_name); // string এ আউটপুট পাওয়ার জন্য
উদাহরণঃ সি আউটপুট
#include <stdio.h> // printf() ফাংশন রান করানোর জন্য ইহা প্রয়োজন।
int main()
{
printf("C Programming"); //কোটেশনের ভেতরের কন্টেন্ট প্রদর্শিত হয়।
return 0;
}
আউটপুট
C Programming
প্রোগ্রাম কিভাবে কাজ করে তার ব্যাখ্যা নিচে ধাপে ধাপে দেওয়া হলোঃ
- সকল সি প্রোগ্রামে অবশ্যই
main()
ফাংশন থাকতে হবে।main()
ফাংশনের প্রথম থেকে কোড এক্সিকিউশন(execution) শুরু হয়। printf()
হলো লাইব্রেরী ফাংশন যা স্ক্রিনে ফরম্যাটেড(formated) আউটপুট পাঠায়।"stdio.h"
হেডার ফাইলেprintf()
ফাংশন ডিক্লেয়ার করা আছে।- এখানে
stdio.h
হলো স্টান্ডার্ড ইনপুট-আউটপুট হেডার(header) ফাইল এবং#include
হলো প্রিপ্রোসেসর(preprocessor) যা হেডার ফাইলকে সোর্স কোডের সংযুক্ত করে। কম্পাইলার যখনprintf()
ফাংশনকে এক্সিকিউট করে এবংstdio.h
হেডার ফাইলকে খুঁজে না পাই তাহলে কম্পাইলার error দেখায়। return 0;
স্টেটমেন্ট এর মাধ্যমে প্রোগ্রাম থেকে বের হয়ে যায়। সহজ ভাষায় প্রোগ্রামের সমাপ্তি ঘটায়।
উদাহরনঃ সি ক্যারেক্টার ইনপুট/আউটপুট
#include <stdio.h>
int main()
{
char character;
printf("Enter a character: ");
scanf("%c",&character); // ক্যারেক্টার এর জন্য %c ফরম্যাট স্ট্রিং ব্যবহৃত হয়
printf("You entered %c.",character);
return 0;
}
আউটপুট
Enter a character: t
You entered t.
ফরম্যাটেড ক্যারেক্টার ইনপুট গ্রহণ এবং আউটপুট পাঠানোর জন্য "%c" ফরম্যাট স্ট্রিং ব্যবহৃত হয়।
উদাহরনঃ সি ইন্টেজার আউটপুট
#include <stdio.h>
int main()
{
int integerNumber = 5;
// ইন্টেজার এর জন্য %d ফরম্যাট স্ট্রিং ব্যবহৃত হয়
printf("Number = %d", integerNumber);
return 0;
}
আউটপুট
Number = 5
printf()
ফাংশনের কোটেশন মার্কের মধ্যে ইন্টেজারের জন্য ফরম্যাটেড(formated) স্ট্রিং "%d"
রয়েছে। এক্ষেত্রে ফরম্যাট স্ট্রিং যদি integerNumberআর্গুমেন্টের সাথে মিলে যায় তাহলে ইহা স্ক্রিনে আউটপুট দেখায়।উদাহরনঃ সি ইন্টেজার ইনপুট/আউটপুট
#include <stdio.h>
int main()
{
int IntegerNumber;
printf("Enter an integer number: ");
scanf("%d",&IntegerNumber);
printf("Number = %d",IntegerNumber);
return 0;
}
আউটপুট
Enter an integer number: 4
Number = 4
scanf()
ফাংশন কীবোর্ড থেকে ফরম্যাটেড(formated) ইনপুট গ্রহণ করে। যখন ইউজার ইন্টেজার নাম্বার ইনপুট দেয় তখন ইহা IntegerNumberভ্যারিয়েবলের মধ্যে সংরক্ষিত হয়।
লক্ষ্য করলে দেখবেন যে, IntegerNumber এর পুর্বে
'&'
চিহ্ন আছে। &IntegerNumber দ্বারা IntegerNumber এর এড্রেসকে নির্দেশ(point) করে এবং ইনপুট ভ্যালু ঐ এড্রেসে জমা হয়।উদাহরণঃ সি ফ্লোট ইনপুট/আউটপুট
#include <stdio.h>
int main()
{
float floatNumber;
printf("Enter a number: ");
// ফ্লোটের জন্য %f ফরম্যাট স্ট্রিং ব্যবহৃত হয়
scanf("%f",&floatNumber);
printf("Value = %f", floatNumber);
return 0;
}
আউটপুট
Enter a number: 23.45
Value = 23.450000
ফ্লোটের জন্য ফরম্যাটেড ইনপুট গ্রহণ এবং আউটপুট পাঠানোর জন্য "%f" ফরম্যাট স্ট্রিং ব্যবহৃত হয়
আসকি(ASCII) কোড
উপরের প্রোগ্রামে যখন কোনো ক্যারেক্টার প্রবেশ করানো হয়, ক্যারেক্টার তার নিজের ফরম্যাটে সংরক্ষিত হয় না। বরং সংখ্যা ভ্যালু(আসকি ভ্যালু) ফরম্যাটে সংরক্ষিত হয়।
যখন আমরা
"%c"
টেক্সট ফরম্যাট ব্যবহারা করে প্রিন্ট নিই তখন ইহা স্ক্রিনে ক্যারেক্টার ফরম্যাটে দেখায়।উদাহরনঃ আসকি কোড
#include <stdio.h>
int main()
{
char character;
printf("Enter a character: ");
scanf("%c",&character);
//যখন আমরা "%c" টেক্সট ফরম্যাট ব্যবহার করে প্রিন্ট নিই তখন ইহা ক্যারেক্টার ফরম্যাটে স্ক্রিনে দেখায়।
printf("You entered %c.\n",character);
//যখন আমরা "%d" টেক্সট ফরম্যাট ব্যবহার করে প্রিন্ট নিই তখন ইহা ইন্টেজার ফরম্যাটে স্ক্রিনে দেখায়।
return 0;
}
আউটপুট
Enter a character: b
You entered b.
ASCII value of g is 96.
ক্যারেক্টার 'b' এর ASCII ভ্যালু হলো 96। যখন 'b' প্রবেশ করানো হয় তখন character ভ্যারিয়েবলে 'b' এর পরিবর্তে 96 জমা হয়।
আপনি যদি কোনো ক্যারেক্টারের আসকি কোড জানেন তাহলে ক্যারেক্টার হিসাবে আউটপুট নিতে পারবেন। নিচের উদাহরণে ইহা দেখানো হলোঃ
উদাহরনঃ সি আসকি কোড
#include <stdio.h>
int main()
{
int character = 70;
printf("Character of ASCII value 70 is %c.",character);
return 0;
}
আউটপুট
Character of ASCII value 70 is F.
Lecture 12
সি প্রোগ্রামিং অপারেটর
এরিথমেটিক(arithmetic), কন্ডিশনাল(conditional) এবং বিটওয়াজ(bitwise) অপারেশন সম্পন্ন করার জন্য সি প্রোগ্রামিং এ অনেক ধরণের অপারেটর(oparetor) রয়েছে। এই অধ্যায়ে আপনি বিভিন্ন ধরণের সি অপারেটর এবং এদের ব্যবহার সম্মন্ধে জানবেন।
অপারেটর এক ধরণের প্রতীক(symbol) যা ভ্যালু(value) অথবা ভ্যারিয়েবলকে অপারেট করতে পারে। উদাহরণস্বরূপঃ +(যোগ চিহ্ন) একটি অপারেটর যা যোগের কাজে ব্যবহৃত হয়।
বিভিন্ন ধরণের অপারেশন সম্পাদনের জন্য সি প্রোগ্রামিং এ অনেক ধরণের অপারেটর রয়েছে। ভালভাবে বুঝার জন্য অপারেটরসমূহকে নিম্নোক্ত উপায়ে বিভক্ত করা
COMING UP NEXT LECTURE
No comments:
Post a Comment