সি প্রোগ্রামিং/ C Programming Lecture 8 to 10

kmanik-1995.blogspot.com
KM ANIK
24 UPDATE 

Learning to C PROGRAMMING
BANGLA VERSION

Lecture 8


সি প্রোগ্রামিং আইডেন্টিফায়ার


সি আইডেন্টিফায়ার


কোনো সত্ত্বা(entity) যেমন ভ্যারিয়েবল, ফাংশন, স্ট্রাকচার ইত্যাদিকে সনাক্ত করার জন্য ব্যবহৃত নামই হলো আইডেন্টিফায়ার।
সি প্রোগ্রামিং এ আইডেন্টিফায়ারকে অবশ্যই ইউনিক(unique) হতে হবে। প্রোগ্রাম সম্পাদন(execution)-এর সময় কোনো সত্ত্বাে(entity)-কে একটি ইউনিক নামের মাধ্যমে সনাক্ত করার জন্যই মূলত এদের সৃষ্টি। উদাহরণস্বরূপঃ
int money;
double accountBalance;


এখানে money এবং accountBalance হলো আইডেন্টিফায়ার
মনে রাখবেন, আইডেন্টিফায়ার এর নাম দেওয়ার জন্য কখনোই সি কীওয়ার্ডসমূহ ব্যবহার করা যাবে না।
যেমন- আপনি ইচ্ছা করলেই double কে আইডেন্টিফায়ার হিসাবে ব্যবহার করতে পারবেন না কারণ ইহা কীওয়ার্ড।


আইডেন্টিফায়ারের নাম রাখার নিয়মাবলী

  1. একটি বৈধ আইডেন্টিফায়ারে বর্ণমালা(বড় হাতের বর্ণ বা ছোট হাতের বর্ণ) ,     ডিজিট(digits) এবং আন্ডারস্কোর(_) থাকতে পারে।
  2. আইডেন্টিফায়ার এর নাম বর্ণ অথবা আন্ডারস্কোর দিয়ে শুরু হতে হবে। তবে আন্ডারস্কোর দিয়ে আইডেন্টিফায়ারের নাম শুরু করাকে অনুৎসাহিত করা হয়।
  3. আইডেন্টিফায়ারের নাম যেকোনো দৈর্ঘের হতে পারে। তবে কম্পাইলার প্রথম ৩১ বর্ণ কে আইডেন্টিয়ায়ারের নাম হিসাবে বেছে নেয়।

উত্তম পন্থায় প্রোগ্রামিং


কীওয়ার্ড ছাড়া আইডেন্টিফায়ারের জন্য আপনি যেকোনো নাম পছন্দ করতে পারেন। যাইহোক, আপনি যদি আইডেন্টিফায়ারকে অর্থপূর্ণ নাম দেন তাহলে ইহা আপনার এবং আপনার অনুসারী প্রোগ্রামারদের জন্যও বুঝা সহজ হবে।

Lecture 9


সি প্রোগ্রামিং কনস্ট্যান্ট



কনস্ট্যান্ট(constant) এবং লিটারেল


কনস্ট্যান্ট হলো ভ্যালু বা আইডেন্টিফায়ার। প্রোগ্রাম সম্পাদনের সময় যার ভ্যালু পরিবর্তন হয় না। উদাহরনস্বরুপঃ "SATT Academy", 1, 2 ইত্যাদি।
তাহলে আমরা দেখলাম যে, আইডেন্টিফায়ারকে কনস্ট্যান্ট হিসাবেও ডিফাইন্ড করা যায়।
const double PI = 3.14
এখানে PI একটি কনস্ট্যান্ট যার অর্থ এই প্রোগ্রামে PI এবং 3.14 একই।
সি প্রোগ্রামিং এ ব্যবহৃত বিভিন্ন ধরণের কনস্ট্যান্ট এবং তাদের বর্ণনা নিম্নে তুলে ধরা হলোঃ


ক্যারেক্টার কনস্ট্যান্ট

ক্যারেক্টার কনস্ট্যান্ট(character constant) হলো সিঙ্গেল ক্যারেক্টার বিশিষ্ট্য কনস্ট্যান্ট যা সিঙ্গেল কোটেশন(' ') দিয়ে ঘেরা থাকে। উদাহরনস্বরুপঃ 'a', 'M', 'T', 's' ইত্যাদি


ইন্টেজার কনস্ট্যান্ট

Integer এর বাংলা অর্থ পূর্ণসংখ্যা।
ইন্টেজার কনস্ট্যান্ট(integer constant) হলো দশমিক এবং সূচক অংশ ব্যতীত গাণিতিক পূর্ণ সংখ্যা বিশিষ্ট কনস্ট্যান্ট বা ধ্রুবক। সি প্রোগ্রামিং এ তিন ধরণের ইন্টেজার কনস্ট্যান্ট রয়েছেঃ
  •  1 ডেসিমাল কনস্ট্যান্ট-decimal constant(১০ ভিত্তিক কনস্ট্যান্ট)

  • 2 অক্ট্যাল কনস্ট্যান্ট-octal constant(৮ ভিত্তিক কনস্ট্যান্ট)

  • 3 হেক্সাডেসিমাল কনস্ট্যান্ট- hexadecimal constant(১৬ ভিত্তিক কনস্ট্যান্ট)


উদাহরণস্বরূপঃ
৮ ভিত্তিক কনস্ট্যান্টঃ 070, 055, 099 ইত্যাদি
১০ ভিত্তিক কনস্ট্যান্টঃ 0, 20, 100 ইত্যাদি
১৬ ভিত্তিক কনস্ট্যান্টঃ 0x7f, 0x2a, 0x521 etc
সি প্রোগ্রামিং এ অক্ট্যাল কনস্ট্যান্ট শুরু হয় 0(zero) দিয়ে এবং হেক্সাডেসিমাল কনস্ট্যান্ট শুরু হয় 0x দিয়ে।


ফ্লোটিং পয়েন্ট কনস্ট্যান্ট

floating point এর বাংলা অর্থ দশমিক(.) সংখ্যা।
ফ্লোটিং পয়েন্ট কনস্ট্যান্ট(floating point constant) হলো দশমিক এবং সূচক অংশ যুক্ত গাণিতিক কনস্ট্যান্ট।
10.05
0.03487
-0.15E-4
নোটঃ E-4 = 10-4


স্পেইপ সিকুয়েন্স

মাঝে মাঝে এমন কিছু ক্যারেক্টার ব্যবহার করতে হয় যেগুলো টাইপ করা যাইনা অথবা সি প্রোগ্রামিং এ বিশেষ অর্থ বহন করে। যেমন- backspace, tab, backslash ইত্যাদি। এগুলো ব্যবহার করতে হলে স্কেইপ সিকুয়েন্স(escape sequence) ব্যবহার করতে হয়।
উদাহরণস্বরূপঃ নতুন লাইন(Newline) এর জন্য \n ব্যবহৃত হয়। ব্যাকস্পেস(Backspace) এর জন্য \b ব্যবহৃত হয়।

স্পেইপ সিকুয়েন্স
স্কেইপ সিকুয়েন্সনাম
\bBackspace
\fForm feed
\nNewline
\rReturn
\tHorizontal tab
\vVertical tab
\\Backslash
\'Single quotation mark
\"Double quotation mark
\?Question mark
\0Null character


স্ট্রিং কনস্ট্যান্ট

স্ট্রিং কনস্ট্যান্ট(String constant) হলো কনস্ট্যান্ট যা ডাবল কোটেশন(" ") দিয়ে ঘেরা থাকে। উদাহরনস্বরুপঃ
""                     //null স্ট্রিং কনস্ট্যান্ট
"SATT"                 //স্ট্রিং কনস্ট্যান্ট
"     "                //৫ টি ফাঁকা স্পেস বিশিষ্ট স্ট্রিং কনস্ট্যান্ট 
"t"                    //সিঙ্গেল ক্যারেক্টার বিশিষ্ট স্ট্রিং কনস্ট্যান্ট 
"Love is heaven\n"     //একটি নতুন লাইনসহ স্ট্রিং প্রিন্ট করবে

C



ইনুমিরেশন কনস্ট্যান্ট

enum কীওয়ার্ড দিয়ে ইনিউমিরেশন টাইপ ডিফাইন্ড( defined) করা হয়। উদাহরণস্বরূপঃ
enum color {teal, green, orange, white};

C

এখানে color একটি ভ্যারিয়েবল এবং purplegreenblack ও white হলো ইনিউমিরেশন কনস্ট্যান্ট(Enumeration constants) যাদের ভ্যালু যথাক্রমে 0, 1, 2 এবং 3 । ইনিউমিরেশন সম্মন্ধে আরো জানতে আমাদের সি ইনুমিরেশন অধ্যায় ভিজিট করুন।


সি প্রোগ্রামে কনস্ট্যান্ট ডিফাইন করা

সি প্রোগ্রামে কনস্ট্যান্ট ডিফাইন করার জন্য দুটি সাধারণ পদ্ধতি রয়েছে।
  1. const কীওয়ার্ড ব্যবহার করে
  2. #define প্রিপ্রোসেসর ব্যবহার করে


const কীওয়ার্ড

একটি নির্দিষ্ট টাইপের কনস্ট্যান্ট ডিক্লেয়ার করার জন্য আপনি const কীওয়ার্ডকে প্রিফিক্স(prefix) হিসাবে ব্যবহার করতে পারেন।

সিনট্যাক্স

const type variable = value;

C



উদাহরনঃ নিচের উদাহরণে const কীওয়ার্ডের ব্যবহার দেখানো হলোঃ
#include <stdio.h>

int main() {

   const char NEWLINE = '\n';
   const int  LENGTH = 5;
   const int  WIDTH = 4;
   int area;  
   
   area = LENGTH * WIDTH;
   printf("Total area: %d", area);
   printf("%c", NEWLINE);

   return 0;
}

C

উপরের প্রোগ্রামটি যখন কম্পাইল এবং এক্সিকিউট করা হবে তখন ইহা নিচের মত আউটপুট দেখাবেঃ


আউটপুট
Total area : 20


#define প্রিপ্রোসেসর

আপনি #define প্রিপ্রোসেসর ব্যবহার করেও কনস্ট্যান্ট ডিফাইন(define) করতে পারেন।


সিনট্যাক্স

#define identifier value

C



উদাহরনঃ নিচের উদাহরণে #define প্রিপ্রোসেসর এর ব্যবহার দেখানো হলোঃ
#include <stdio.h>

#define NEWLINE '\n'
#define LENGTH 5   
#define WIDTH  4
int main() {

   int area;  
  
   area = LENGTH * WIDTH;
   printf("Total area : %d", area);
   printf("%c", NEWLINE);

   return 0;
}

C

উপরের প্রোগ্রামটি যখন কম্পাইল এবং এক্সিকিউট করা হবে তখন ইহা নিচের মত আউটপুট দেখাবেঃ


20 is Output 


Lecture 10



সি প্রোগ্রামিং ডেটা টাইপ


এই অধ্যায়ে আপনি সি প্রোগ্রামিং ডেটা টাইপ(data type) এবং ভ্যারিয়েবল ডিক্লেয়ারেশন(declaration) পদ্ধতি সম্মন্ধে জানবেন।

ডেটা টাইপ দ্বারা ভ্যারিয়েবলের মধ্যে সংরক্ষিত ডেটার টাইপ নির্ধারণ করা হয়।
সি প্রোগ্রামিং এ ভ্যারিয়েবল বা মেমোরি লোকেশন(location)-কে ব্যবহারের পূর্বে ডিক্লেয়ার করতে হয়। একইভাবে ফাংশনকেও ব্যবহারের পূর্বেই ডিক্লেয়ার(declare) করতে হয়।
ডেটা টাইপ যুক্ত ভ্যারিয়েবল এবং ফাংশন ডিক্লেয়ারেশন দ্বারা সাধারণত ডেটার সাইজ এবং টাইপ নির্ধারণ করা হয়।


 ডেটা টাইপ

  1. 01 মৌলিক(Fundamental) ডেটা টাইপ
    • ## ইন্টেজার টাইপ(Integer type)
    • ## ফ্লোটিং টাইপ(Floating type)
    • ## ক্যারক্টার টাইপ(Character type)
  2. 02 প্রাপ্ত(Derived) ডেটা টাইপ
    • ## অ্যারে(Arrays)
    • ## পয়েন্টার(Pointers)
    • ## স্ট্রাকচার(Structures)
    • ## ইনুমিরেশন(Enumeration)
এই অধ্যায়ে আমরা মৌলিক ডেটা টাইপের প্রতি বেশী নজর দিয়েছি। আপনি ডিরাইভ ডেটা টাইপ সম্মন্ধে জানতে আমাদের ডিরাইভ(Derived) ডেটা টাইপ সম্পর্কিত অধ্যায় ভিজিট করুন।

char - ক্যারেক্টার ডেটা টাইপ


ক্যারেক্টার টাইপের ভ্যারিয়েবল ডিক্লেয়ার করার জন্য char কীওয়ার্ড ব্যবহৃত হয়। উদাহরণস্বরূপঃ
                   char alphabet ='a'

এখানে alphabet হলো ক্যারেক্টার ভ্যারিয়েবল এবং alphabet এর ভ্যালু 'a'।
ক্যারেক্টার ভ্যারিয়েবলের সাইজ 1 বাইট।

int - ইন্টেজার ডেটা টাইপ


দশমিক(.) সংখ্যা ব্যতীত সকল ধনাত্মক এবং ঋণাত্মক পূর্ণ সংখ্যা এই টাইপের মধ্যে পড়ে। যেমন- 0, -10, 10 ইত্যাদি
সি প্রোগ্রামিং এ ইন্টেজার টাইপের ভ্যারিয়েবল ডিক্লেয়ার করার জন্য int কীওয়ার্ড ব্যবহৃত হয়। উদাহরণস্বরূপঃ
                        int roll_roll;

float - ফ্লোটিং টাইপ

ফ্লোটিং টাইপ ভ্যারিয়েবলে যেকোনো বাস্তব সংখ্যা থাকতে পারে। যেমন- 3.1416, -5.382, 10.0 ইত্যাদি। ফ্লোট টাইপের ভ্যারিয়েবল ডিক্লেয়ার(declare) করার জন্য আপনি হয় float অথবা double কীওয়ার্ড ব্যবহার করতে পারেন। উদাহরনস্বরুপঃ
float accountBalance;
double bookPrice;
C
এখানে accountBalance এবং bookPrice উভয়েই ফ্লোটিং টাইপ ভ্যারিয়েবল।
সি প্রোগ্রামিং এ ফ্লোটিং ভ্যালুকে এক্সপনেনশিয়াল(exponential) ফর্মেও উপস্থাপন করা যায়। উদাহরনস্বরুপঃ
float normalizationFactor = 22.442e2;
C

ফ্লোট এবং ডাবলের মধ্যে পার্থক্য

float টাইপdouble টাইপ
ফ্লোট(float) ভ্যারিয়েবলের সাইজ ৪ বাইটডাবল(double) ভ্যারিয়েবলের এর সাইজ ৮ বাইট
সিঙ্গেল প্রিসিশন(single precision) এর ক্ষেত্রে ফ্লোট ডেটা টাইপ ব্যবহৃত হয়ডাবল প্রিসিশন(double precision) এর ক্ষেত্রে double ডেটা টাইপ ব্যবহৃত হয়।
ফ্লোটিং পয়েন্ট ভ্যারিয়েবলের প্রিসিশন ৬ ডিজিটডাবলের প্রিসিশান ১৪ ডিজিট।

চলুন এক নজরে ডেটা টাইপসমূহ দেখে নিই। এখানে ৩২ বিট আর্কিটেকচারের উপর ভিত্তিকরে ডেটার সাইজ দেওয়া হোল।
ডেটা টাইপমেমোরি সাইজরেঞ্জ
char1 বাইট−128 থেকে 127
signed char1 বাইট−128 থেকে 127
unsigned char1 বাইট0 থেকে 255
short2 বাইট−32,768 থেকে 32,767
signed short2 বাইট−32,768 থেকে 32,767
unsigned short2 বাইট0 থেকে 65,535
int2 বাইট−32,768 থেকে 32,767
signed int2 বাইট−32,768 থেকে 32,767
unsigned int2 বাইট0 থেকে 65,535
short int2 বাইট−32,768 থেকে 32,767
signed short int2 বাইট−32,768 থেকে 32,767
unsigned short int2 বাইট0 থেকে 65,535
long int4 বাইট-2,147,483,648 থেকে 2,147,483,647
signed long int4 বাইট-2,147,483,648 থেকে 2,147,483,647
unsigned long int4 বাইট0 থেকে 4,294,967,295
float4 বাইট
double8 বাইট
long double10 বাইট

No comments:

Post a Comment