‘সি’ প্রোগ্রামিং
ভাষার প্রাথমিক ধারণা: ‘সি’ প্রোগ্রামিং ভাষা
একটি
স্ট্রাকচার্ড বা
প্রোসিডিউর প্রোগ্রামিং ভাষা
যা “ডেনিশ রিচি” ডেভলোপ করেন। এই
ভাষাটি
বেল
ল্যাবরেটরিতে UNIX
অপারেটিং সিস্টেম তৈরি
করার
সময়
তৈরি
করেন। মিড লেভেল ভাষা
হিসেবে
‘সি’ অত্যন্ত জনপ্রিয়। ‘সি ভাষাটি ১৯৭২
সালে DEC PDP-11 নামক কম্পিউটারে সর্বপ্রথম বাস্তবায়ন করা
হয়। ‘সি’ নামটা এসেছে মার্টিন রিচার্ডস (Martins Richards) এর উদ্ভাবিত বিসিপিএল (BCPL-Basic Combined Programming Language) ভাষা থেকে। BCPL সংক্ষেপে B নামে
পরিচিত
ছিল।
পরে
B এর
উন্নয়নের ফলে C
এর
বিকাশ
ঘটে।
‘সি’ ভাষাকে সকল
আধুনিক
প্রোগ্রামিং ভাষার
মাতৃ-ভাষা (mother language) বলা হয়। কারণ
অধিকাংশ প্রোগ্রামিং ভাষা
যেমন-
C++, Java, C#, ইত্যাদি ‘সি’
ভাষার
সিনট্যাক্স অনুসরণ
করে।
‘সি’
ভাষা
অ্যারে,
স্ট্রিং, ফাংশন,
ফাইল
ইত্যাদির ধারণা
দেয়
যা C++,
Java, C#, ইত্যাদি ভাষায়
ব্যবহৃত হয়।
‘সি’ একটি মধ্যস্তরের
প্রোগ্রামিং ভাষা
‘সি’ প্রোগ্রামিং ভাষায় নিম্নস্তরের ভাষার
সুবিধা
যেমন-
বিট
পর্যায়ের প্রোগ্রামিং বা
সিস্টেম সফটওয়্যার এর মাধ্যমে হার্ডওয়্যার নিয়ন্ত্রণ এবং উচ্চস্তরের ভাষার সুবিধা যেমন-
অ্যাপ্লিকেশন সফটওয়্যার তৈরি
করা
যায়।
অর্থাৎ উচ্চস্তরের ভাষার সুবিধা পাওয়া
যায়
আবার
নিম্নস্তরের ভাষার
সুবিধাও পাওয়া
যায়।
তাই
এই
প্রোগ্রামিং ভাষাকে মধ্যস্তরের প্রোগ্রামিং ভাষা বলা হয়।
‘সি’ প্রোগ্রামিং
ভাষা একটি general purpose
প্রোগ্রামিং ভাষা
‘সি’ প্রোগ্রামিং ভাষাটি
সব
ধরণের
কাজের
জন্য
ব্যবহৃত হয়।
একজন
প্রোগ্রামারের যেসব
সুবিধা
দরকার, যেমন-
বিভিন্ন ডেটা
ব্যবহারের ব্যাপক
স্বাধীনতা, স্বল্প
সংখ্যক
কী-ওয়ার্ড, দ্রুত ও দক্ষতার সাথে
প্রোগ্রাম চালানো
এবং
একই
সাথে
উচ্চ
ও
নিম্নস্তরের ভাষা
সমন্বয়
করা
ইত্যাদি সব
রকম
সুবিধাই ‘সি’ প্রোগ্রামিং ভাষাতে আছে। তাই
যেকোনো
ধরণের
প্রোগ্রাম লিখতে
‘সি’ প্রোগ্রামিং ভাষা ব্যবহার করা
যায়।
এই
জন্য
‘সি’
ভাষাকে
একটি
General Purpose প্রোগ্রামিং ভাষা
বলা
হয়।
‘সি’ প্রোগ্রামিং
ভাষার বৈশিষ্ট্যঃ
- ১। সকল ‘সি’ প্রোগ্রামের কাজ main() ফাংশন থেকে শুরু হয় এবং এটি প্রতিটি প্রোগ্রামের জন্য অত্যবশ্যকীয়।
- ২। ‘সি’ প্রোগ্রামিং ভাষা একটি case sensitive ভাষা; অর্থাৎ uppercase letter এবং lowercase letter ভিন্ন অর্থ বহন করে।
- ৩। ‘সি’ প্রোগ্রামের প্রতিটি স্টেটমেন্ট এর শেষে সেমিকোলন( ; ) দিতে হয়।
- ৪। ‘সি’ প্রোগ্রামিং ভাষাকে মধ্যস্তরের প্রোগ্রামিং ভাষা বলা হয়।
- ৫। ‘সি’ প্রোগ্রামিং ভাষাকে General purpose language ও বলা হয়।
- ৬। ‘সি’ প্রোগ্রামিং ভাষাকে একটি স্ট্রাকচার্ড বা প্রোসিডিউর প্রোগ্রামিং ভাষা বলা হয়।
- ৭। ‘সি’ প্রোগ্রামিং ভাষায় পর্যাপ্ত সংখ্যাক লাইব্রেরি ফাংশন এবং পর্যাপ্ত সংখ্যাক অপারেটর রয়েছে যা যেকোনো জটিল প্রোগ্রাম লিখতে ব্যবহৃত হয়।
- ৮। ‘সি’ প্রোগ্রামিং ভাষায় লেখা প্রোগ্রাম যন্ত্র নির্ভরশীল নয়।
- ৯। ‘সি’ প্রোগ্রামিং ভাষার গুরুত্তপূর্ণ বৈশিষ্ট্য হল; এটি নিজেই নিজের বৈশিষ্ট্য বর্ধিত করতে পারে।
‘সি’ প্রোগ্রামিং
ভাষায় লেখা একটি প্রোগ্রামের সাধারণ গঠনঃ
Documentation
Section: এটি
প্রোগ্রামের ঐচ্ছিক
অংশ।
এই
অংশে
প্রোগ্রামের নাম,
বিষয়বস্তু, প্রোগ্রামারের নাম,
ব্যবহারের নিয়ম
ও
প্রোগ্রামের উদ্দেশ্য কমেন্টস এর
মাধ্যমে লেখা
হয়।
‘সি’
প্রোগ্রামিং ভাষায়
কমেন্ট
লেখার
জন্য
দুইটি
পদ্ধতি
আছে।
একাদিক লাইনের
ক্ষেত্রে – /*……………..*/ এবং
সিঙ্গেল লাইনের
ক্ষেত্রে- //……………….
Link
Section: এটি প্রোগ্রামের অত্যবশ্যকীয় অংশ।
প্রোগ্রামে ব্যবহৃত লাইব্রেরী ফাংশনগুলোর হেডার
ফাইল
এই
অংশে
সংযুক্ত করা
হয়।
হেডার
ফাইল
যুক্ত
করার
নিয়ম
হল-
#include<header_file_name.h>।
Definition
Section: এই অংশে
কনস্ট্যান্ট ঘোষণা
করা
হয়। কনস্ট্যান্ট ঘোষণা করার নিয়ম
হল-
#define
constant_name constant_value
Global
Declaration Section: এই অংশে
গ্লোবাল চলক
ঘোষণা
করা
হয়।
এছাড়া ইউজার ডিফাইন্ড ফাংশনও ঘোষণা করা হয়।

Subprogram
Section: এই
অংশে
এক
বা
একাধিক
ইউজার-ডিফাইন্ড ফাংশন থাকে যা
main() ফাংশন
থেকে
Call করা
হয়।
‘সি’ প্রোগ্রামিং
ভাষায় লেখা একটি প্রোগ্রামের বিভিন্ন অংশের বিশ্লেষণঃ
দুটি
সংখ্যা ইনপুট
নিয়ে যোগফল
নির্ণয় করে যোগফল প্রিন্ট করার
জন্য একটি
‘সি’ প্রোগ্রাম
1
2
3
4
5
6
7
8
9
10
|
#include<stdio.h>
#include<conio.h>
main()
{
int x, y, sum;
scanf("%d
%d",&x,&y);
sum = x + y;
printf("Sum =
%d", sum);
getch();
}
|
প্রোগ্রাম বিশ্লেষণ:
১। ‘সি’
প্রোগ্রামে যেসব
লাইব্রেরি ফাংশন
ব্যবহার করা
হয়
তাদের
ডেফিনেশন যে
হেডার
ফাইলে
থাকে
প্রোগ্রামের শুরুতে
সেই
হেডার
ফাইলের
নাম
লিংক
সেকশনে
সংযুক্ত করতে
হয়।
প্রোগ্রামের ভিতরে
printf() এবং
scanf() নামে
দুটি
লাইব্রেরি ফাংশন
ব্যবহার করা
হয়েছে।
ফাংশন
দুটির
ডেফিনেশন stdio.h নামক হেডার
ফাইলে
রয়েছে।
তাই
প্রোগ্রামের শুরুতে
#include<stdio.h> ব্যবহার করা
হয়েছে।
২। প্রোগ্রামের ভিতরে
getch( ) লাইব্রেরি ফাংশন
ব্যবহার করা
হয়েছে।
এই
ফাংশনটির ডেফিনেশন conio.h নামক হেডার
ফাইলে
রয়েছে।
তাই #include<conio.h>
হেডার
ফাইলটি
সংযুক্ত করা
হয়েছে।
৩। main ( ) ফাংশন প্রোগ্রামের মূল
ফাংশন।
main( ) ফাংশন
থেকেই
প্রোগ্রামের কার্যকারিতা শুরু
হয়।
প্রতিটি প্রোগ্রামে একটি main ( ) ফাংশন অবশ্যই
থাকতে
হবে।
৪। ‘{‘ দ্বিতীয় ব্রাকেটটি main ( ) ফাংশনটির কার্যক্রম শুরু
বুঝানোর জন্য
ব্যবহার করা
হয়েছে।
৫। integer (পূর্ণসংখ্যা) টাইপের x,
y ও
sum নামে
তিনটি
ভেরিয়েবল ঘোষণা
করা
হয়েছে।
৬। scanf() ফাংশনটির মাধ্যমে ব্যবহারকারীর কাছ
থেকে x
ও
y চলকের
মান
ইনপুট
নেওয়া
হয়েছে।
৭। x ও
y চলকের
মান
যোগ
করে sum
চলকে
রাখা
হয়েছে।
৮। printf( ) ফাংশনটি ব্যবহার করে sum
চলকের
মান
প্রদর্শন করা
হয়েছে।
৯। getch( ) লাইব্রেরি ফাংশনটির কাজ
হলো
আউটপুট
ব্যবহারকারী না
সরানো
পর্যন্ত ধরে
রাখা।
১০। ‘ }’ ব্রাকেটটি main( ) ফাংশনের কার্যক্রম শেষ
বুঝানোর জন্য
ব্যবহার করা
হয়েছে।
‘সি’ প্রোগ্রামিং ভাষায় ইনপুট এবং আউটপুট ফাংশনসমূহঃ
কোন
প্রোগ্রামে ডেটা প্রক্রিয়া করার
জন্য প্রথমে ডেটা ইনপুট
নিতে হয়। প্রোগ্রামে ডেটা
ইনপুট নেওয়ার জন্য ব্যবহৃত
ফাংশনকে ইনপুট ফাংশন বলে।
আবার প্রক্রিয়া পরবর্তী তথ্য আউটপুটে প্রদর্শনের
জন্য ব্যবহৃত ফাংশনকে আউটপুট ফাংশন বলে।
‘সি’ প্রোগ্রামিং ভাষায় ইনপুট নেওয়া
এবং আউটপুট দেখানোর জন্য
বিভিন্ন লাইব্রেরী ফাংশন রয়েছে। ফাংশনসমূহঃ
ফরমেট
স্পেসিফায়ারঃ
‘সি’ প্রোগ্রামের কোন চলকে ফরমেটেড
আকারে ডেটা গ্রহণ বা
ফরমেটেড আকারে কোন চলকের
মান প্রদর্শনের জন্য যথাক্রমে ইনপুট
ও আউটপুট ফাংশনে যে
সকল ক্যারেক্টার সেট ব্যবহৃত হয়
তাদেরে ফরমেট স্পেসিফায়ার বলা
হয়। প্রতিটি ফরমেট স্পেসিফায়ার পার্সেন্টেজ
ক্যারেক্টার(%) দিয়ে শুরু হয়।
বিভিন্ন ডেটা টাইপের জন্য ফরমেটেড ইনপুট ও আউটপুট ফাংশনে ব্যবহৃত ফরমেট স্পেসিফায়ারসমূহঃ
ফরমেট স্পেসিফায়ার
|
ব্যবহার
|
উদাহরণ
|
%c
|
char টাইপের ডেটা
ইনপুট/আউটপুটের
জন্য
|
scanf(“%c”,&a); printf(“%c”,a);
|
%d
|
int টাইপের ডেটা
ইনপুট/আউটপুটের
জন্য
|
scanf(“%d”,&a); printf(“%d”,a);
|
%f
|
float টাইপের ডেটা
ইনপুট/আউটপুটের
জন্য
|
scanf(“%f”,&a); printf(“%f”,a);
|
%lf
|
double টাইপের ডেটা
ইনপুট/আউটপুটের
জন্য
|
scanf(“%lf”,&a); printf(“%lf”,a);
|
%ld
|
long int টাইপের ডেটা
ইনপুট/আউটপুটের
জন্য
|
scanf(“%ld”,&a); printf(“%ld”,a);
|
%u
|
unsigned int টাইপের ডেটা
ইনপুট/আউটপুটের
জন্য
|
scanf(“%u”,&a); printf(“%u”,a);
|
%o
|
Octal ডেটা ইনপুট/আউটপুটের জন্য
|
scanf(“%o”,&a); printf(“%o”,a);
|
%x
|
Hexadecimal ডেটা ইনপুট/আউটপুটের জন্য
|
scanf(“%x”,&a); printf(“%x”,a);
|
scanf( ) ফাংশনের ব্যবহারঃ
পূর্বে ঘোষণাকৃত একটি চলকে ডেটা ইনপুট নেওয়ার জন্য scanf() ফাংশন ব্যবহারের ফরমেটঃscanf(“format_specifier “, &variable_name);
উদাহরণঃ
- a চলকে char টাইপের ডেটা ইনপুট নেওয়ার জন্য scanf() ফাংশনঃ scanf(“%c”, &a);
- a চলকে int টাইপের ডেটা ইনপুট নেওয়ার জন্য scanf() ফাংশনঃ scanf(“%d”, &a);
- a চলকে float টাইপের ডেটা ইনপুট নেওয়ার জন্য scanf() ফাংশনঃ scanf(“%f”, &a);
- a চলকে double টাইপের ডেটা ইনপুট নেওয়ার জন্য scanf() ফাংশনঃ scanf(“%lf”, &a);
scanf(” format_specifier1 format_specifier2….”, &variable_name1, &variable_name2…….);
উদাহরণঃ
একসাথে একাধিক চলকে একই ধরণের ডেটা ইনপুট নেওয়ার জন্য scanf() ফাংশনের ব্যবহারঃ
- a,b ও c চলকে int টাইপের ডেটা ইনপুট নেওয়ার জন্য scanf() ফাংশনঃ
- scanf(“%d %d %d”, &a, &b, &c);
- a,b ও c চলকে যথাক্রমে int, float ও double টাইপের ডেটা ইনপুট নেওয়ার জন্য scanf() ফাংশনঃ
- scanf(“%d %f %lf”, &a, &b, &c);
printf() ফাংশনের ব্যবহারঃ
printf() ফাংশন দুইভাবে ব্যবহার করা যায়। প্রথমত, কোন কিছু হুবহু আউটপুটে দেখানো। দ্বিতীয়ত, কোন এক বা একাধিক চলকের মান আউটপুটে দেখানো।কোন কিছু হুবহু আউটপুটে দেখানোর জন্য printf() ফাংশনের ফরমেটঃ
আউটপুটে দেখানোর প্রয়োজনীয় টেক্সটি printf(” “); ফাংশনের ডাবল কোটেশনের মধ্যে লিখতে হয়। যেমন-
printf(” Output text should be here “);
কোন একটি চলকের মান আউটপুটে দেখানোর জন্য printf() ফাংশনের ফরমেটঃ
printf(“format_specifier”, variable_name);
উদাহরণঃ
- a চলকের char টাইপের ডেটা আউটপুটে দেখানোর printf() ফাংশনঃ printf(“%c”, a);
- a চলকের int টাইপের ডেটা আউটপুটে দেখানোর printf() ফাংশনঃ printf(“%d”, a);
- a চলকের float টাইপের ডেটা আউটপুটে দেখানোর printf() ফাংশনঃ printf(“%f”, a);
- a চলকের double টাইপের ডেটা আউটপুটে দেখানোর printf() ফাংশনঃ printf(“%lf”, a);
একাধিক চলকের মান একসাথে আউটপুটে দেখানোর জন্য printf() ফাংশনের ফরমেটঃ
printf(“format_specifier1, format_specifier2….”, variable_name1, variable_name2…);
একসাথে একাধিক চলকের একই ধরণের ডেটা আউটপুটে দেখানোর printf() ফাংশনের ব্যবহারঃ
- a, b ও c চলকের ডেটা আউটপুটে int টাইপের দেখানোর জন্য printf() ফাংশনঃ
- printf(“%d %d %d”, a, b, c);
- a,b ও c চলকের ডেটা আউটপুটে যথাক্রমে int, float ও double টাইপের দেখানোর printf() ফাংশনের ব্যবহারঃ
- printf(“%d %f %lf”, a, b, c);
ব্যাকস্ল্যাশ ক্যারেক্টারের ব্যবহারঃ
ব্যাকস্ল্যাশ ক্যারেক্টার
|
ব্যবহার
|
উদাহরণ
|
আউটপুট
|
\n
|
আউটপুট নতুন
লাইনে প্রদর্শনের
জন্য
|
printf(“Learning\n ICT”);
|
Learning
ICT
|
\t
|
আউটপুটে horizontal tab প্রদর্শনের জন্য
|
printf(“Learning\t ICT”);
|
Learning ICT
|
\v
|
আউটপুটে vertical tab প্রদর্শনের জন্য
|
printf(“Learning\v ICT”);
|
Learning
ICT
|
\a
|
সতর্ক সংকেত
প্রদানের জন্য
|
printf(“\aLearning ICT”);
|
Alerm!
|
\”
|
আউটপুটে ডাবল
কোটেশন( ” ) প্রদর্শনের জন্য
|
printf(“Learning \”ICT\” “);
|
Learning “ICT”
|
\’
|
আউটপুটে সিঙ্গেল কোটেশন( ‘ ) প্রদর্শনের জন্য
|
printf(“Learning \’ICT\’ “);
|
Learning ‘ICT’
|
\\
|
আউটপুটে ব্যাকস্ল্যাশ
ক্যারেক্টার ( \ ) প্রদর্শনের জন্য
|
printf(“Learning \\ICT\\ “);
|
Learning \ICT\
|
\?
|
আউটপুটে প্রশ্নবোধক চিহ্ন ( ? ) প্রদর্শনের
জন্য
|
printf(” Are you learning ICT\? “);
|
Are you learning ICT?
|






কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন