কচিকাচাদের সি প্রোগ্রামিং শিক্ষা! [পর্ব-০১] :: অ আ ক খ

বিসমিল্লাহির রহমানির রহিম

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

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

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

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

যেকোন একটা IDE ইউজ করলেই হ্যামরা এখানে কোডব্লক্স ব্যাবহার করবো...

আশা করি আপনি সফলভাবে   Codeblocks সেটাপ করতে পেরেছেন... না পারলে এখান থেকে দেখে নিন  8-)

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

#include <stdio.h>

Int Main

return 0
{
printf(Digital Bangladesh!)
}

এখন কিছু বোঝার দরকার নাই,জাস্ট বিল্ড করেন এন্ড রান করেন... কি আসলো?? ডিস্প্লে তে কিছু দেখতে পেলেন?

পাওয়া গেলো না । কারণ,আমরা উপরের কোডে ৫টি ব্যাসিক জিনিস নিয়ে ছিনিমিনি খেলেছি   😛

১) আমরা শুরুতে "int main" এর পরেই "return 0" দিয়েছি...ফলে প্রোগ্রামটি শুরুতেই তার কাজ শেষ করেছে

২) "int main"  এর সাথে প্রথম বন্ধনী  () দেই নাই

৩) ৫ নাম্বার লাইনে Digital Bangladesh এর সাথে " " চিহ্ন দেই নি ।

৪) Return 0 ও  printf("Digital Bangladesh!\n") এই দুইটা স্টেটমেন্টের পর সেমিকোলন দেই নাই...উল্লেখ্য,প্রতিটা স্টেটমেন্টের পর সেমিকোলন দিতে হয়

৫) আর, "int main" কে লিখেছি "Int Main" ... যা কোডিং এর ব্যাকরণ  মানবে না...কোন বাক্যের শুরুতে ক্যাপিটাল লেটার দিবেন...তা হবেনা,তা হবেনা :-P যেটা যেভাবে লেখা হয়,সেভাবেই লিখতে হবে...

মানুষ ভূল করতে করতেই শেখে,তাই প্রথমেই সবচেয়ে কমন  ৫ টা ভূল করায়া দিলাম যাতে পরে প্রোগ্রাম এরর দেখাইলে সহজেই ভূল খুজে পান :-)

যাইহোক,এবার নিচের মতো করে লিখেন,কম্পাইল করেন ও রান করেন...

#include <stdio.h>//হেডার ট্যাগ

int main()//শুরু
{
printf("Digital Bangladesh!\n");//প্রিন্ট করতে বললাম

return 0;//ছাইড়া দে মা কাইন্দা বাঁচি
}

নাও,ইউ আর দ্যা বস  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 ফাংশনের গঠনঃ

 printf("           ");//ব্রাকেটের ভেতর যাই লিখবো তাইই প্রিন্ট করবে

printf("%d\n",total);//মান শো করবে...

মান শো করানোর সময় Character হলে "%c" ,...Integer হলে "%d"...float হলে "%f...double হলে "%lf" দিয়ে অলটারনেট করবো...এগুলোর ব্যাবহার পরবর্তীতে অংক করার সময় কাজে লাগবে...

scanf ফাংশনের গঠনঃ(prinf এর মতই গঠন,খালি " " চিহ্নের বাইরে একটা কমা দিয়ে যে মানটা নিবো সেটা ইনক্লুড করে দিতে হবে)

int variable;
scanf("%c/%d/%f/%lf", &variable);

যেমনঃ

#include<stdio.h>
int main()
{
    int c;
    printf("Enter a number\n");
    scanf("%d",&c);  
    printf("Number=%d",c);
    return 0;
}

যা যা বুঝি নাইঃ 😛

>>  \n \t এগুলা ক্যানো দিলাম? ফায়দা কি?

উত্তরঃ আসলে ত্যামন কিছু না,printf ফাংশনে তোর আর enter রাখা যায়না,তাই enter বাটনের বিকল্প হিসেবে এই \n কাজ করে...ফলে enter এর কাজের মতো নিচের এক লাইন ফাকা থাকে...\t এর কাজ হইলো tab এর মতো,মানে চারটা স্পেসের কাজ করবে...এগুলা যে ইউজ করতেই হবে এমন না,তবে ইউজ করলে দেখতে সুন্দর লাগে আর কি 😛
>>  প্রোগ্রামের পাশে " // " চিহ্ন দিয়ে এসব কি লিখছি? প্রোগ্রামে কি তাহলে বাংলা লেখা যায়?

উত্তরঃ যায় না...তবে প্রোগ্রাম ব্যাখ্যা করতে কমেন্ট লিখতে পারবেন...অনেকসময় বড় প্রোগ্রামে ছোট ছোট অংশে কি কাজ করছি তা যাতে অন্য একজন সহজে বুঝতে পারে এজন্য কমেন্ট ব্যাবহার করা হয়...কমেন্টের গঠন এইরকমঃ

/* this is a comment */     বা       // this is comment line1

তবেঁ... /* এবং */ এর মাঝে যতগুলো লাইনই লিখেন সবগুলোই কমেন্ট হিসাবে গন্য হবে,কিন্তু // চিহ্ন ব্যবহার করলে প্রতিটি ভিন্ন  লাইনে // চিহ্ন দিতে হবে...দুই লাইনে লিখতে চাইলে কমেন্ট এরকম লিখতে হবেঃ

// this is comment line1

// this is comment line2

অনুশীলনীঃ

১.১ঃ একটি প্রোগ্রাম তৈরি করুন যেটি "Code is poetry" প্রিন্ট করবে?

১.২ঃ একটি প্রোগ্রাম তৈরি করুন যেটি আপনার টাইপ করা অক্ষর প্রিন্ট করবে?

১.৩ঃ একটি প্রোগ্রাম তৈরি করুন যেটি আপনার টাইপ করা ইন্টিজার নাম্বার প্রিন্ট করবে?

 

কচিকাচাদের সি প্রোগ্রামিং শিক্ষা! [পর্ব-০২] :: “দাগ” থেকে দারুণ কিছু

Level New

আমি মোঃ আসেফ হাবীব তিসাদ। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 1 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 16 টি টিউন ও 325 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

ভালো লাগলো , চালিয়ে গেলে খুশি হব ।

আপনাকে অনেক গুল ধন্যবাদ, আশা করি এর পরের পর্ব গুলোও আপনার কাছ থেকে পাব।

নাহ আপনি দেখছি কোডিং শিখিয়েই ছাড়বেন। তবে আরো সহজ করেন। কারণ আমাদের মধ্যে কোডিং ভীতি আছে। সেটা আগে দুর কেরেন। আর একদম বেসিক থেকে সেখান। কিচ্ছু বাদ দিয়েন না। পোষ্ট টা বুকমার্ক করে রাখলাম।

    @Al Shahriat Karim: আচ্ছা…প্রথম পোস্ট তো…বেশি লেকচার দিলে কেউ পড়বে না…মেইন জিনিসগুলা লিখছি…পরেরগুলা গভীর থেকে শুরু করা হবে আশা করি 😛

অনেকেই মাঝপথে থেমে যায় ! আশা করি আপনি তা করবেন না !! আর টিউনে প্রাকটিস, এলগোরিদম এর দিকটা বেশি গুরুত্ব দিবেন আশা করি ! শুভ কামনা ! ,

ধন্যবাদ। পরের গুলো একটু তাড়াতাড়ি দেওয়ার চেষ্টা করবেন ।

Level 3

খুবই ভাল হয়েছে।খুব সরল ভাষায় লিখেছেন।এর আগে এত ভালভাবে বুঝিনি।আপনার টিউন পড়ে ভালই বুঝতে পেরেছি।অশেষ ধন্যবাদ। আশা করি সামনে আরো ভাল পোস্ট পাব।

Level 0

tanx.go ahead

plz continue, u can also make vedio tutorial

    @লিমন: সি এর অনেক ভিডিও টিউটোরিয়াল আছে…আমি আন্ড্রয়েড অ্যাপস ডেলেলপমেন্ট নিয়ে ভিডিও টিউটোরিয়াল বানাইতেছি

এক কথায় অসাধারণ!

thanks . দারুন লিখেছেন । চালিয়ে যান ।

Level 0

brother bolar kichu nai..karon eto sundor kore likhcen ja sotti osadaron..ekta request please please maj pote cherer jaben na…karon amra jara notun tara onek asha kore apnader sathe shuru kori, but oneki maj pothe lekha bondo kore den..tokhon mone onek kosto lage and mone ar buji skhika hobena..so please keep it continue……