সি ল্যাঙ্গুয়েজে নমুনা প্রোগ্রাম
সি ল্যাঙ্গুয়েজে কীভাবে প্রোগ্রাম লেখা হয় এবং প্রোগ্রামটি কীভাবে কাজ করে তা দেখানোর জন্য একটি ছোট নমুনা প্রোগ্রাম দেখা যাক। প্রোগ্রামটি চালু করলে কম্পিউটার যে কোনো তিনটি সংখ্যা চাইবে। সংখ্যা তিনটি এন্ট্রি করলে এগুলোর গড় দেখাবে। প্রথমেই চিন্তা করতে হবে প্রোগ্রামটি কী ধাপে কাজ করবে। প্রোগ্রামের ধাপসমূহ হবে:
প্রোগ্রামটি লেখার জন্য:
১. কোডব্লক কম্পাইলারটি চালু করে File > New > Empty file নির্দেশ দিতে হবে (অথবা Ctrl-Shift-N চাপতে হবে।)
২. ফাঁকা উইন্ডোতে নিচের মতো পর্যায়ক্রমে প্রোগ্রামের স্টেটমেন্টসমূহ লিখতে হবে। পর্দার উপরের বাম কোনায় কার্সর মিটমিট করবে। কী-বোর্ড থেকে টাইপ করলে কার্সরের অবস্থানে লেখা হবে।
কী-বোর্ড থেকে /* Program of summation and average */ টাইপ করে এন্টার কী চেপে নিচের
লাইনে এসে পরবর্তী লাইনে #include <stdio.h> টাইপ করি। এভাবে নিচের মতো সম্পূর্ণ প্রোগ্রামটি টাইপ করি:
ফাইল সংরক্ষণ করা: File মেনুতে ক্লিক করে Save নির্বাচন করতে হবে। Save As ডায়ালগ বক্স আসবে। Program_avg_01 লিখে OK বাটনে ক্লিক করি। ফাইলটি Program_avg_01.c নামে সেভ হবে।
কম্পাইল করা: কোডব্লক প্রোগ্রামে লেখা সি প্রোগ্রামটি কম্পাইল করার জন্য Build মেনুতে ক্লিক করে Build মেনুতে ক্লিক করে Build and run নির্বাচন করলে (অথবা, F9 কী চাপলে) প্রোগ্রামটি কম্পাইল হয়ে মেশিন কোডে রূপান্তরিত হবে। কোনো ত্রুটি থাকলে, তা সংশোধনের জন্য দেখাবে। প্রয়োজনীয় সংশোধন করে পুনরায় ফাইলটি Save করতে হবে।
ফলাফল: Build মেনুতে ক্লিক করে Build and run নির্বাচন করে অথবা Build মেনুতে ক্লিক করে Run কমান্ড অপশনে ক্লিক করলে অথবা, Ctrl+F10 কী-দ্বয় চাপলে প্রোগ্রামটি রান হবে। প্রোগ্রামটি রান করালে তিনটি সংখ্যা ইনপুট করার জন্য নির্দেশ আসবে।
Enter three integer Value : 58 টাই করে স্পেসবার চেপে 66 টাইপ করে, আবার স্পেসবার চেপে 71 টাইপ করে এন্টার কী চাপতে হবে। যেমন-
Enter three integer value : 58, 66, 71 (Enter)
ফলাফল হিসেবে গড় সংখ্যা 65 প্রদর্শিত হবে।
/* Program of summation and average */ : প্রোগ্রামে কোনো Comment করার জন্য এক বা একাধিক লাইনের আগে /* চিহ্ন এবং শেষে */ চিহ্ন এবং ুশুধুমাত্র এক লাইনের ক্ষেত্রে // চিহ্ন ব্যবহার করতে হয়। প্রোগ্রামের কমেন্ট ব্যবহার করা হয়।
#include <stdio.h> : প্রোগ্রামের ভেতর printf() ও scanf() এ দুইটি লাইব্রেরি ফাংশন ব্যবহার করা হয়েছে। এ ফাংশন দুটি stdio.h নামক হেডার ফাইলে রয়েছে। হেডার ফাইল হলো মূলত .h এক্সটেনশন যুক্ত ফাইল, যেখানে বিভিন্ন লাইব্রেরি ফাংশনের প্রটোটাইপ উল্লেখ থাকে। সি প্রোগ্রামে যেসব লাইব্রেরি ফাংশন ব্যবহার করা হবে, সেগুলো যে হেডার ফাইলে রয়েছে প্রোগ্রামের শুরুতে সে হেডার ফাইলের নাম #include এর সাথে সংযুক্ত করতে হয়।
main () : কম্পাইল ও নির্বাহের সময় প্রোগ্রাম main () ফাংশন থেকে শুরু হয়। তাই প্রোগ্রামে এ ফাংশনটি অবশ্যই লিখতে হয়।
{ – main() লেখার পর এ ফাংশনটির কার্যক্রম শুরু এবং শেষ সীমা বুঝানোর জন্য শুরুতে “{” এবং শেষে “}” সেকেন্ড ব্র্যাকেট ব্যবহার করা হয়।
int a, b, c, sum; : চারটি ইন্টিজার টাইপের ভেরিয়েবল a, b, c এবং sum ডিক্লেয়ার করা হয়েছে। একই লাইনে এভাবে ভেরিয়েবল ঘোষণা করা হলে মাঝখানে কমা এবং শেষে সেমিকোলন ব্যবহার করতে হয়।
float avg : ফ্লোট টাইপের ভেরিয়েবল avg ডিক্লেয়ার করা হয়েছে। তিনটি সংখ্যার যোগফলকে তিন দিয়ে ভাগ করে গড় নির্ণয় করা হবে বিধায় এটি ভগ্নাংশ হতে পারে। তাই ফ্লোট টাইপের ভেরিয়েবল ডিক্লেয়ার করা হয়েছে।
printf() : মনিটরের পর্দায় আউটপুট প্রকাশের জন্য এ ফাংশনটি ব্যবহৃত হয়। এর ব্র্যাকেটের ভিতরে ইনভার্টেড কমার ভেতরে যে টেক্সট টাইপ করা হবে, প্রোগ্রাম মনিটরের পর্দায় হুবহু তা দেখাবে।
scanf() : এই ফাংশনটি প্রোগ্রাম নির্বাহের সময় কী-বোর্ড থেকে মান নিয়ে (ইনপুট করে) ভেরিয়েবল-এ রাখবে।
%d : একে ফরমেট স্পেসিফায়ার বলা হয়। ঘোষণাকৃত ভেরিয়েবল টাইপ অনুযায়ী স্টেটমেন্টে ফরমেট স্পেসিফায়ার ব্যবহার করতে হয়। এখানে “%d” ফরমেট স্পেসিফায়ারটি decimal integer টাইপের ডেটা ইনপুট করার জন্য ব্যবহার করা হয়েছে। ভেরিয়েবলটি যদি ফ্লোটিং পয়েন্ট টাইপের হয়, তাহলে %d এর পরিবর্তে %f ফরমেট স্পেসিফায়ার ব্যবহার করতে হতো।
& : ইনভার্টেড কমার পর & চিহ্নের পাশে ভেরিয়েবল-এর নামটি রাখা হয়েছে। এটি দিয়ে ইনপুট করা সংখ্যাটি উক্ত ভেরিয়েবল ঠিকানায় রাখা হয়েছে বুঝাচ্ছে। যে কয়টি সংখ্যা ইনপুট করা হবে, সে কয়টি ফরমেট স্পেসিফায়ার লিখতে হবে। ইনভার্টেড কমার পর কমা দিয়ে ভেরিয়েবল, ঠিকানা টাইপ করতে হয়।
sum=a+b+c : sum হলো একটি ভেরিয়েবল যেটিতে a,b,c এ তিনটি ভেরিয়েবলের মান যোগ করে ফলাফল রাখবে।
avg = (float) sum/3; : যেহেতু গড়ফল ফ্লোয়েট (দশমিকের পর সংখ্যা অর্থাৎ ভগ্নাংশ) হওয়ার সম্ভাবনা রয়েছে, কিন্তু যোগফল হচ্ছে ইন্টিজার, তাই এক টাইপের ভেরিয়েবলের মান আরেক টাইপের ভেরিয়েবল প্রদর্শনের জন্য avg = (float) sum/3; লাইনে (float) ব্যবহার করা হয়েছে।
printf(“\n The summation of three number is=%d”, sum); : printf() ফাংশনটি প্রোগ্রামের ফলাফল মনিটরের পর্দায় প্রদর্শন করবে। print এর পাশে ইনভার্টেড কমার ভেতরে যে টেক্সট টাইপ করা হবে, প্রোগ্রাম হুবহু তা দেখাবে। এ লাইনে কমার পর যে ভেরিয়েবলের নাম লেখা হবে, প্রোগ্রাম সেটির মধ্যে যে মান দেয়া আছে তা ফরমেট স্পেসিফায়ার %d এর স্থানে দেখাবে।
printf(“\n Aberage of three number is=%.2f”, avg); : যেহেতু গড়ফল ফ্লোয়েট (দশমিকের পর সংখ্যা অর্থাৎ ভগ্নাংশ) হওয়ার সম্ভাবনা রয়েছে, তাই avg ভেরিয়েবলটির মান দুই দশমিক স্থান পর্যন্ত প্রদর্নের জন্য ফরম্যাট স্পেসিফায়ার হিসেবে %.2f ব্যবহৃত হয়েছে।