Powered by Blogger.

সি প্রোগ্রামিং শেখা [পর্বঃ০১-A B C D]




সূচনা লিখে একটা পর্ব নষ্ট করলাম না,,,কারণ আপনারা সেটা পড়বেনওনা,বরং সময় নষ্ট করার জন্য ১০১টা গালি দিবেন :-P কাজেই প্রথম পর্বেই আমরা মোটামুটিভাবে রণক্ষেত্রে নামতে যাচ্ছি  :lol: যদি আপনি একেবারেই নতুন হন তবে জীবনের প্রথম প্রোগ্রামটা মনে হয় আজকেই লিখতে যাচ্ছেন ;-)

আচ্ছা…কিছু ব্যাসিক কথাবার্তা বলে ফেলা ভালো । প্রোগ্রামিং করতে কি কি লাগে?

উত্তর হলো, শুধু একটা কম্পাইলার,যেটিতে আপনি প্রোগ্রাম লিখে রান করে দেখবেন । প্রোগ্রাম যেহেতু একটা ভাষা,তাই কম্পাইলারে শুধু আপনি লেখালেখিই করে থাকবেন । প্রত্যেক ভাষার যেমন ব্যাকরণ আছে,তেমনি সি প্রোগ্রামিং ভাষার ও ‘ব্যাকরণ’ আছে । সেই ব্যাকরন বুঝেই আমরা কম্পাইলারে কোড লিখবো,কম্পাইল করবো,তারপর রান করবো :-)

সি প্রোগ্রাম করার জন্য যে সব IDE ব্যবহৃত হয় সেগুলো হল,ডাউনলোড করতে নামের উপর ক্লিক করুনঃ

যেকোন একটা IDE ইউজ করলেই হয়…আমরা এখানে কোডব্লক্স ব্যাবহার করবো…
আশা করি আপনি সফলভাবে   Codeblocks সেটাপ করতে পেরেছেন… না পারলে এখান থেকে দেখে নিন  8-)

এবার ওপেন করুন…কিবোর্ডে একসাথে Control+Shift+N চেপে  Empty file তৈরি করুন…এরপর সেটিকে আপনার কম্পিউটারের যেকোন ড্রাইভে সেভ করে রাখুন…সেভ করার সময় ফাইলনেমের শেষে .c এক্সটেনশন যোগ করে দিবেন…তাহলে কম্পাইলার বুঝে নিবে আপনি সি লিখতে চাচ্ছেন…তখন লেখার সময় অনেক সাজেশন দিবে…কপাইলারের মাঝখানে নোটপ্যাডের মতো জায়গাটাতে কোড লিখবেন…ঘাবড়ে যাবার কিছুই নাই…জাস্ট লিখতে থাকেন…এখানে কোড যেমন করে লেখা আছে সেইভাবেই লিখুন…আচ্ছা,নিচের কোডটা লিখি আমরাঃ

এখন কিছু বোঝার দরকার নাই,জাস্ট বিল্ড করেন এন্ড রান করেন… কি আসলো?? ডিস্প্লে তে কিছু দেখতে পেলেন?
পাওয়া গেলো না । কারণ,আমরা উপরের কোডে ৫টি ব্যাসিক জিনিস নিয়ে ছিনিমিনি খেলেছি :p
১) আমরা শুরুতে “int main” এর পরেই “return 0″ দিয়েছি…ফলে প্রোগ্রামটি শুরুতেই তার কাজ শেষ করেছে
২) “int main”  এর সাথে প্রথম বন্ধনী  () দেই নাই
৩) ৫ নাম্বার লাইনে Digital Bangladesh এর সাথে ” ” চিহ্ন দেই নি ।
৪) Return 0 ও  printf(“Digital Bangladesh!\n”) এই দুইটা স্টেটমেন্টের পর সেমিকোলন দেই নাই…উল্লেখ্য,প্রতিটা স্টেটমেন্টের পর সেমিকোলন দিতে হয়
৫) আর, “int main” কে লিখেছি “Int Main” … যা কোডিং এর ব্যাকরণ  মানবে না…কোন বাক্যের শুরুতে ক্যাপিটাল লেটার দিবেন…তা হবেনা,তা হবেনা :-P যেটা যেভাবে লেখা হয়,সেভাবেই লিখতে হবে…
মানুষ ভূল করতে করতেই শেখে,তাই প্রথমেই সবচেয়ে কমন  ৫ টা ভূল করায়া দিলাম যাতে পরে প্রোগ্রাম এরর দেখাইলে সহজেই ভূল খুজে পান :-)
যাইহোক,এবার নিচের মতো করে লিখেন,কম্পাইল করেন ও রান করেন…
নাও,ইউ আর দ্যা বস  8-)
আচ্ছা…অনেক তো লিখলাম…এইবার  কোডের গঠন ও বিভিন্ন অংশের কাজ বুঝাঁ যাক  8|
১. আপনি একটি টেইলার্স এ গেলেন কলেজ ইউনিফর্ম তৈরি করতে । আপনি ওইখান থেকে কোয়ালিটি অনুযায়ী কাপড় পছন্দ করলেন,এরপর আপনার জামাকাপড়ের মাপ নিলেন টেইলার্সের ডেস্কে থাকা এক লোক ।
২. ওয়েটার মেনু নিয়ে চলে গেল দর্জির কাছে । এই ইউনিফর্ম তৈরিতে যেসব কাপড় লাগবে সব দর্জিকে দেওয়া হল ।
৩. দর্জি মাপ অনুযায়ী ইউনিফর্ম তৈরি করল ।
৪. নির্ধারিত সময়ে আপনি আপনার ইউনিফর্ম পেলেন ।
এইবার উপরের লাইনগুলার সাথে আমাদের প্রোগ্রামটার লাইনগুলা মিলিয়ে পড়ুনঃ

১. #include<stdio.h> : এই লাইনটি দর্জিকে দেওয়া কাপড়ের সাথে তুলনা করা যায় । সি প্রোগ্রামের কিছু কমান্ড কম্পাইলারে দেওয়া থাকে। সেই কমান্ডগুলা আপনার প্রোগ্রামে সংযুক্ত করতে #include<stdio.h> লিখা হয়েছে। দর্জিকে যেমন জামা তৈরি করতে কাপড় দিতে হয়েছে, একইভাবে printf(“Digital Bangladesh!”); লাইনটি কাজ করার জন্য যেই কমান্ডগুলা দরকার সেগুলো #include<stdio.h> লাইনটার মাধ্যমে সংযুক্ত করে দেওয়া হয়েছে।
stdio মানে হলঃ Standard Input Output. এটাকে হেডার ফাইল বলে .h দিয়ে header file বুঝানো হচ্ছে।

২. int main() : এই লাইনটাকে আপনি ডেস্কে থাকা ওই লোকটার সাথে তুলনা করতে পারেন। ইউনিফর্ম বানানো থেকে শুরু করে আপনার কাছে ইউনিফর্ম আসা পর্যন্ত সম্পূর্ন প্রক্রিয়াটা শুরু করে দিয়েছে ওই ব্যাক্তি,এরপর বাকিকাজ দর্জির । একইভাবে int main() ‘{ }’ এর ভেতরে যে লাইনগুলো আছে সেগুলকে কম্পাইলারের কাছে দেয়,যা প্রোগ্রামটির এক্সিকিউশন শুরু করে দিয়েছে।
উল্লেখ্য যে, ‘{‘ কে বলা হয় ওপেনিং কার্লি ব্রেস এবং ‘}’ কে বলা হয় ক্লোসিং কার্লি ব্রেস। int main() এর পর যে ওপেনিং কার্লি ব্রেস আছে সেখান থেকে এক্সিকিউশন শুরু হয় এবং ক্লোসিং কার্লি ব্রেস এ এক্সিকিউশন টার্মিনেট হয়।

৩.
{
printf(“Digital Bangladesh!\n”);
return 0;
}
এই লাইনগুলোকে আপনার পছন্দ করা কাপড়ের সাথে তুলনা করতে পারেন। আপনি যেমন আপনার পছন্দ অনুযায়ী সেই কোয়ালিটির কাপড় দিয়ে বানানো ইউনিফর্ম পেতে পারেন, একই ভাবে একজন প্রোগ্রামার তার পছন্দের কোন কাজ করতে ‘{}’ এর ভেতরে সি এর কোড লিখতে পারে। সেটি হতে পারে ২ লাইনের সহজ কোন প্রোগ্রাম আবার ১০০০ লাইনের জটিল কোন প্রোগ্রাম।
উল্লেখ্য যে, printf(); কে বলা হয় লাইব্রেরী ফাংশন যেটি কম্পাইলারের সাথে stdio.h ফাইলে থাকে। এই printf(); ফাংশনটি কাজ করার জন্যই শুরুতে #include লাইনটি লিখে দিতে হয়েছে। printf(); ফাংশনের ভেতরে ডাবল ইনভার্টেট কমার ভেতরে যা লিখে দেওয়া হয় তাই আউটপুটে দেখায়। আমি Digital Bangladesh! দেখতে চেয়েছি তাই
printf(“Digital Bangladesh!”); লিখেছি…

নোটঃ যে কোন সি প্রোগ্রাম লিখার জন্য int main() এই ফাংশন টা লিখতে হয়।এরপর যেখান থেকে “{” শুরু হয় তার পর থেকে প্রোগ্রাম টা এক্সিকিউট করা(কোন লাইন এক্সিকিউট করা মানে হলো সেই লাইন এর যে কাজ সেই কাজটি করা) শুরু করে এবং একটি একটি করে লাইন এক্সিকিউট করার পর যেখানে “}”আছে সেখানে টার্মিনেট করবে । লক্ষ্য রাখতে হবে যে int এবং main এর মাঝে যেন কমপক্ষে একটা space থাকে ।



আচ্ছা…এইটা শেষ …এবার একটু বকবকানি স্টার্ট করা যাক…বকবকানি হবে প্রোগ্রামের ডাটা টাইপ…কোনটা ক্যামন মেমরী খাইয়ার গঠন ম্যামন হয়…
ডাটা টাইপ বলে সাধারনত কম্পিউটারকে যে ইন্সট্রাকসন দেয়া হবে সেটা কোন ধরনের তাই বুঝায়। ডাটা টাইপ মুলত চার ধরনের হয়।
  • integer(পুর্নসংখা)                                     || গঠনঃ int x;
  • character(অক্ষর)                                    || গঠনঃ char (variable);
  • float(দশমিক বা ভগ্নাংশ)  গঠনঃ                 || গঠনঃ  float x;
  • double(দশমিক বা ভগ্নাংশ কিন্তু এর মেমোরি float টাইপের ডাটার চেয়ে বেশি)      || গঠনঃ double x;
prinf ফাংশনের গঠনঃ
মান শো করানোর সময় Character হলে “%c” ,…Integer হলে “%d”…float হলে “%f…double হলে “%lf” দিয়ে অলটারনেট করবো…এগুলোর ব্যাবহার পরবর্তীতে অংক করার সময় কাজে লাগবে…
scanf ফাংশনের গঠনঃ(prinf এর মতই গঠন,খালি ” ” চিহ্নের বাইরে একটা কমা দিয়ে যে মানটা নিবো সেটা ইনক্লুড করে দিতে হবে)
যেমনঃ
যা যা বুঝি নাইঃ :p
>>  \n \t এগুলা ক্যানো দিলাম? ফায়দা কি?
উত্তরঃ আসলে ত্যামন কিছু না,printf ফাংশনে তোর আর enter রাখা যায়না,তাই enter বাটনের বিকল্প হিসেবে এই \n কাজ করে…ফলে enter এর কাজের মতো নিচের এক লাইন ফাকা থাকে…\t এর কাজ হইলো tab এর মতো,মানে চারটা স্পেসের কাজ করবে…এগুলা যে ইউজ করতেই হবে এমন না,তবে ইউজ করলে দেখতে সুন্দর লাগে আর কি :p

>>  প্রোগ্রামের পাশে ” // ” চিহ্ন দিয়ে এসব কি লিখছি? প্রোগ্রামে কি তাহলে বাংলা লেখা যায়?
উত্তরঃ যায় না…তবে প্রোগ্রাম ব্যাখ্যা করতে কমেন্ট লিখতে পারবেন…অনেকসময় বড় প্রোগ্রামে ছোট ছোট অংশে কি কাজ করছি তা যাতে অন্য একজন সহজে বুঝতে পারে এজন্য কমেন্ট ব্যাবহার করা হয়…কমেন্টের গঠন এইরকমঃ
/* this is a comment */     বা       // this is comment line1
তবেঁ… /* এবং */ এর মাঝে যতগুলো লাইনই লিখেন সবগুলোই কমেন্ট হিসাবে গন্য হবে,কিন্তু // চিহ্ন ব্যবহার করলে প্রতিটি ভিন্ন  লাইনে // চিহ্ন দিতে হবে…দুই লাইনে লিখতে চাইলে কমেন্ট এরকম লিখতে হবেঃ
// this is comment line1
// this is comment line2

অনুশীলনীঃ

১.১ঃ একটি প্রোগ্রাম তৈরি করুন যেটি “Code is poetry” প্রিন্ট করবে?
১.২ঃ একটি প্রোগ্রাম তৈরি করুন যেটি আপনার টাইপ করা অক্ষর প্রিন্ট করবে?
১.৩ঃ একটি প্রোগ্রাম তৈরি করুন যেটি আপনার টাইপ করা ইন্টিজার নাম্বার প্রিন্ট করবে?

0 comments:

Post a Comment