শিক্ষক মামা – ৬

* মামা, আমার মনে হয় লুপ পারব, এখন বাকি- Function, Array, আর  String। এত কিছু, মামা আমার কি হবে ??

% কি আর হবে, ফেল করলে বিয়ে দিয়ে দিব!

* মামা, তুমিও !!

% আরে এটা তো এমনি মজা করলাম। চিন্তা করিস না, আজই সব শেষ হয়ে যাবে।

* তুমিই ভরসা, এখনও হাতে ২ ঘন্টার মত সময় আছে। আম্মু ১ টার সময় খাবার জন্য ডাকাডাকি শুরু করে দিবে।

% আরো দুই ঘন্টা …!

* হ্যা, তুমি কি বিশ্রাম নিতে চাও?

% না থাক, আচ্ছা তোর বন্ধুদের কি খবর?

* মামা, তুমি ঠিকই বলেছিলে, সব বন্ধু এক না।

% কি যেন বলেছিলাম?

* অনেক রকমের বন্ধু আছে। যেমন, অসামাজিক, হিসাবী, সুবিধাভোগী, দানশীল। কে কেমন সেটাও বলেছিলে।

% ও তাই নাকি? বের কর তো। আমাদের তো মনে হয় Function পড়া শেষ!

* বল কি? কখন শেষ হল?

% বন্ধুদের মত আমাদের  Function ও চার ধরনের।

* মানে কি ?? তুমি কি সব সময়ই পড়াও নাকি? ভাবলাম বন্ধু-বান্ধবের খোঁজ নিচ্ছ, এখন দেখি পড়াচ্ছো। যাই হোক এখন একটু বুঝিয়ে বল তো আমার বন্ধুদের মধ্যে তুমি ফাংশন কোথায় পেলে?

% আসলে আমাদের প্রোগ্রামিং এর সব কিছুই এই ফাংশনের অংশ।

* এত দিন পর তুমি এই কথা বলছ? তাহলে এত দিন কি শিখলাম আমরা?

% শান্ত হ । শোন আমি কি বলি।
          কোনটা ফাংশন তা সহজে চেনার উপায় হল, নামের পর “(  )” থাকবে।

# তার মানে main  ও কি একটি ফাংশন?

% আরে মেইন ফাংশন (Main Function) ই তো সব। প্রতিটি প্রোগ্রামে অবশ্যই মেইন ফাংশন থাকতে হবে। কারন হল আমাদের কম্পাইলার প্রথম Main Function খুঁজে বের করে, তারপর এর ভেতর কি কি কাজ করতে বলা হয়েছে, সেগুলো করে।

* তার মানে, যদি আমরা ভুল করে মেইন ফাংশন না লিখি তাহলে তো কোন কাজই হবে না!

% ঠিক তাই!

# আবার printf বা sacnf এর পর কিন্তু “(  )”, তার মানে কি এরাও ফাংশন?

% হুম, তুই তো দেখি অনেক কিছু খেয়াল করেছিস।

# আরে মামা, এই ২/৩ লাইনই পারি, হি হি হি…।

* মামা, এগুলো কিভাবে কাজ করে তা তো আগে থেকে ঠিক করা। তাহলে  আমরা কি শিখব?

% আমরাও এই রকম ফাংশন লিখতে পারব, যেগুলোকে বলে “User-Defined Function” আর যেগুলো আগে থেকে লেখা আছে তাদেরকে “ Pre-Defined Function” বলে। printf, sacnf এগুলো সব Pre-Defined Function।

* আচ্ছা, এখন বলতো আমার বন্ধুদের সাথে এই ফাংশনের সম্পর্ক কি ?

% তোর বন্ধুরা যেমন উপহার দেয়া নেয়া করে, ফাংশনও তাই করে। চল আগে দেখি ফাংশন কিভাবে কাজ করে –

প্রোগ্রাম ৫.১
আমাদের প্রোগ্রামপ্রোগ্রামের আউটপুট
15

# মামা, অনেক ঝামেলা মনে হচ্ছে !!

* এখানে তো কোথাও বন্ধুদের কিছু দেখতে পাচ্ছি না!

% খেয়াল করে দেখ, ৯ নাম্বার লাইনে “sum” এর পরে “( )”। এর মানে হল “sum”  একটি ফাংশন। আর এই ফাংশনটি হিসাবি, তার মানে এটা দেয় এবং নেয়। ৯ থেকে ১৩ নাম্বার লাইন পর্যন্ত লেখা আছে এই ফাংশনটি কি এবং কিভাবে কাজ করবে। আর আমরা এই ফাংশনটি ব্যবহার করেছি ৬ নাম্বার লাইনে।

* মামা, কেমন যেন লাগছে! একবারে প্রথম থেকে বল।

% শোন,
     আমরা তো জানি কম্পাইলার main  থেকে শুরু করে। আর কোন কিছু জানার হলে লাইব্রেরি থেকে জেনে আসে। এখন আমাদের প্রয়োজনে আমরা একটি ফাংশন লিখলাম, সেটা হল “sum”।

# মামা, এগুলো জানি।

* আরে চুপ থাক, মামাকে বলতে দে।

% যা বলছিলাম, main ফাংশনের ভিতরে যদি নতুন কোন ফাংশন পায় তাহলে কম্পাইলার মাথা ঘোরানো শুরু হবে, তাই main শুরু হবার আগেই আমরা এর ভিতরে কি কি “User-Defined Function” ফাংশন থাকতে পারে তা বলে দিতে পারি, একে ফাংশনের prototype বলে। যদিও এখন prototype বলে না দিলেও কোন সমস্যা হয় না। আর আমাদের ফাংশনগুলো main  এর বাইরে লিখতে হবে। এখানে ৯ থেকে ১৩ পর্যন্ত sum ফাংশনের  বিস্তারিত বলা হয়েছে। অর্থাৎ কিভাবে কি কাজ করবে, কি নিবে, কি দিবে সব এখানে লেখা আছে । এখানে ‘z’ নামের যে ভেরিয়েবল আছে সেটা কিন্তু এই ফাংশনের বাইরের কেউ চিনে না, তার মানে আমারা যদি main  ফাংশন থেকে z  এর মান প্রিন্ট করতে চাই তাহলে Error  দেখাবে। এরকম ফাংশনের ভিতরে যেসব ভেরিয়েবল তৈরি করা হয় তাদেরকে লোকাল ভেরিয়েবল বলে

এখন কিভাবে কাজ করে তা দেখে নেই-

ধাপ ১ থেকে ফাংশনের কাজ শুরু, মেইনে প্রবেশ করার আগে কম্পাইলার sum  ফাংশন সম্পর্কে একটা ধারনা পেয়েছে। (ধাপ ২)

এরপর মেইন ফাংশন থেকে কাজ শুরু করল, ৬ নাম্বার লাইনে (ধাপ ৩) এসে দেখছে এখানে একটি ফাংশন call  করা হয়েছে এবং এটা তার পরিচিত, কারন ধাপ ২ তে সে এটার সম্পর্কে জেনে এসেছে।

এখানে এই sum  ফাংশনটি ২ টি সংখ্যা নেয়।

এখন কম্পাইলার জানে যে এই ফাংশনটি কিভাবে কাজ করে তা লেখা আছে ৯ নাম্বার লাইনে। সে তখন এক লাফে সেখানে চলে যায়, ভিতরে ঢুকে কাজ শুরু করে দেয়। ফাংশনের  শেষের লাইনে দেখা যাচ্ছে সে কিছু  return  করছে বা দিচ্ছে (ধাপ ৪)। আর কি দিবে সেটা নির্ভর করে ফাংশনের ভিতরে কি কাজ হচ্ছে তার উপর। যা দিচ্ছে তা যে জায়গা থেকে  call  করা হয়েছে সেখানে চলে যাবে (ধাপ ৫)।

এরপর আমাদের আবার যোগ করার দরকার হলে এই ফাংশনটি আবার ব্যবহার করতে পারব। যেসব কাজ বারবার করতে হয় তার জন্য আমরা যদি এমন ফাংশন লিখে রাখি তাহলে আমাদের অনেক সময় এবং কষ্ট কমে যাবে।

* আচ্ছা,

% কি আচ্ছা, এখনও অনেক কিছু বাকি ! এই যে দেখ,

প্রোগ্রাম ৫.২
আমাদের প্রোগ্রামপ্রোগ্রামের আউটপুট
  15.7

# এটা আবার কি ?

% এখানেও ফাংশন ব্যবহার করা হয়েছে। তবে একটু অন্যরকম ভাবে। এখানে main এর আগেই আমাদের ফাংশন লেখা হয়েছে তাই আর prototype  এর দরকার নাই।  এখানে  main  এ প্রবেশ করার পর, sum  ফাংশনটা পাবে (ধাপ ১), এরপর যেখানে এই ফাংশনটা আছে সেখানে চলে যাবে, এরপর যেভাবে ফাংশনটা লেখা আছে সে কাজগুলো করবে (ধাপ ২), এখানে একটি বিষয় খেয়াল রাখতে হবে মান নেয়ার সময় ভেরিয়েবল অনুযায়ী ডাটা টাইপ দিতে হবে (ধাপ ৩)। সব শেষে যে জায়গা থেকে ফাংশ্ন call  করা হয়েছিল সেখানে ফাংশনের ফলাফল পাঠাবে/  return করবে (ধাপ ৪)। 

# মামা, কেমন যেন, বুঝেছি, কিন্তু আবার বুঝি নাই!

* তুই চুপ থাক, আচ্ছা মামা, তুমি তো বলেছিলে আমার যেমন চার রকেমের বন্ধু আছে তেমনি ফাংশনও চার রকমের । এখানে তো শুধু হিসাবি ফাংশন দেখালে-

% ও এই কথা ! সবই দেখাব, ধৈর্য ধর…। আর মনে রাখবি ফাংশন নিয়ে কাজ করার তিনটি ধাপ আছে
     – Function Prototyp: আমাদের কি কি ফাংশন আছে তা বলা
     – Function Declaration: আমাদের ফাংশনগুলো কিভাবে কাজ করবে তা বলা
     – Function call – যেখানে দরকার সেখানে আমাদের ফাংশন ব্যবহার করা 

# বুঝলাম, কিন্তু মামা তুমি কিন্তু বাকি ফাংশনগুলোর কথা এখনও  বল নাই।

% বলতে আর দিলি কই ?

প্রোগ্রাম ৫.৩ |  অসামাজিক ফাংশন, নেয় না দেয় ও না
 প্রোগ্রামপ্রোগ্রামের আউটপুট








#include <stdio.h>
void myname(){
  printf(“My name is Rahul”);

int main ()
{
  myname();
  return 0;
}
        My name is Rahul

এখানে myname কারো কাছ থেকে কিছু নেয় নাও আবার কাউকে কিছু দেয় ও না

 প্রোগ্রাম ৫.৪ | সুবিধাভোগী , শুধু নেয়
প্রোগ্রামপ্রোগ্রামের আউটপুট









#include <stdio.h>
void myage(int age){
  printf(“My age is %d”, age);

int main ( )
{
  myage(15);
  return 0;
}
        My age is 15

# মামা, এটা কি বললে, তোমার বয়স তো ১৫ না।

% আরে এটা তো এমনি বলছে। আসল বয়স বললে ভয় পাবি , হা হা হা…

প্রোগ্রাম ৫.৫  | দানশীল, শুধু দেয়
 প্রোগ্রামপ্রোগ্রামের আউটপুট








#include <stdio.h>
int  mypassword( ){
 return 5468;

int main ()
{
  printf(“Password= %d”, mypassword);
  return 0;
}
    Password= 5468        

* মামা, আমার মনে হয় ফাংশন বুঝেছি। আর যদি কোন সমস্যা হয় তাহলে তো তুমি আছোই।

% এখন তাহলে বিরতি।

# তাহলে মামা কখন দেখা হচ্ছে ??

% এই সন্ধ্যায়, ৬ টার দিকে চলে আসবি।

* ঠিক আছে মামা, তুমি বিশ্রাম নাও।

এরপর দুপুরের খাবার খেয়ে আমরাও একটু বিশ্রাম নিলাম। আর অন্যদিকে আপু তার পড়ালেখা নিয়ে ব্যস্ত। ৬ টার সময় আমি আর আপু চলে গেলাম মামার ঘরে।

# মামা, আমাদের কালকের পরিকল্পনা কি ?

* আরে রাখ তোর পরিকল্পনা, আমার জীবন যায় যায়, সে আছে তার পরিকল্পনা নিয়ে

% আরে রাগ করিস কেন ??? তোর প্রোগ্রামিং শিখা তো প্রায় শেষ। আর কি বাকি আছে??

* আরে মামা, আসল জিনিস ই তো বাকি?

% কি বাকি ??

* মামা,  Array  আর String .

% ও তাই নাকি, আজই সব শেষ হয়ে যাব, আর ৩০ মিনিট!

* কি বল মামা, তাই নাকি??? আমি আরো চিন্তায় আছি আগামী কালকের মধ্যে সবশেষ করতে পারব কিনা, আর তুমি বলছ আজই শেষ হয়ে যাবে, বাঁচালে মামা।

% আরে এখনও শেষ হয়নি তো, মন দিয়ে শোন- দেখ আজ শেষ হয় কিনা !

* মামা, এটা আবার কি বললে!

# আপু আমার কি মনে হয় জানো, আজ আর পড়াশোনা করা ঠিক হবে না , এরপর আমার মত তোমারও মাথা ঘুরানো শুরু হবে।

* চুপ কর তুই। মামা তুমি তাহলে Array  দিয়েই শুরু কর।

% মন দিয়ে শোন বেশি সময় লাগবে না। Array হল অনেকটা আলমারির মত, তবে পার্থক্য হল আমাদের এই আলমারি বা Array তে শুধু এক ধরনের জিনিস রাখা যায়। মানে যদি int  রাখি তাহলে সব int  রাখতে হবে আর যদি char  রাখি তাহলে সব char রাখতে হবে। আর বাকি সব ভেরিয়েবলের মত।

* ভেরিয়েবলের মত মানে বুঝলাম না।

# মানে পাত্রের মত, ঠিক না মামা।

% হুম একদম ঠিক, মন কর অনেকগুলো পাত্র পরপর রেখে আমরা একটি আলমারি বানালাম, এখন এর নাম (Identifier) দিতে হবে, এখানে কি ধরনের(Data Type) জিনিস থাকবে  তা বলে দিতে হবে। আবার এই আলমারিতে কতগুলো (Size) পাত্র  থাকবে তাও বলে দিতে হবে।

* অনেক কিছু! এত কিছু কি এক সাথে বলতে হয়?

% হ্যা, আর তা খুব সহজ।
    int abc [10];
    Data_type   Identifier [Size]

# আচ্ছা মামা, এই array  দেখতে কি রকম ?

% মামা, array  তো দেখা যায় না , এটা কম্পিউটারের মেমরিতে থাকে। তবে আমরা কল্পনা করতে পারি। আমাদের abc array  দেখতে এরকম

এরপর মামা। স্কেচবুকে একে দেখাল-

abc

        

# মামা, আলমারি তো দাঁড়ানো থাকে, কিন্তু তোমার এই আলমারি তো শুয়ে আছে।

% আরে আমি চাইলে এইটা দাঁড়া করিয়েও আঁকতে পারি। একই কথা

abc

 
 
 
 
 
 
 
 
 
 

* শূন্য থেকে শুরু না করে ১ থেকে শুরু করা যায় না ??

% না, এটা নিয়ম, array সব সময় শূন্য থেকে শুরু হয়। আর ০ থেকে ৯ পর্যন্ত ১০ টি ঘর আছে এখানে।

# আচ্ছা মামা, আমাদের কি প্রথম ঘর থেকে তথ্য রাখতে হবে? মানে একদম শুন্য নাম্বার ঘর থেকে শুরু করতে হবে?

% আরে না, আমরা যেখানে খুশি আমাদের তথ্য রাখতে পারি। প্রতিটা ঘর স্বাধীন।

* মামা একটা উদাহরণ দিলে ভালো হত।

% ঠিক আছে। মনে কর আমরা এই  array ব্যবহার করে যোগ করতে চাই।

প্রোগ্রাম ৬.১ Array
 প্রোগ্রামপ্রোগ্রামের আউটপুট









১০
১১
#include <stdio.h>
 int main ()
{
  int abc [10]; /* array initialization */
  abc[2]=5;
  abc[5]=10;
  abc[8]=abc[2]+abc[5]
  printf(“Result= %d”, abc[8]);
  return 0;
}
              Result=15

আর এই হল আমাদের abc array  বর্তমান অবস্থা –

    ১০  ১৫ 

* মামা, আমার মনে হয় Array  আমি বুঝে গেছি।  কিন্তু এত কষ্ট করে এই array  ব্যবহার করার দরকার কি ?

# ঠিক তাই, আমার মাথার মধ্যেও একই প্রশ্ন ঘুরছে-

% আরে Array বুঝে গেছিস কিন্তু এই Array  কেন দরকার তাই জানিস না, সেটা আগে বলবি না?

* মামা, কি যে বুঝি না সেটাই তো জানি না ।

% হা হা হা…  শোন, মনে কর আমাদের ২০ জন ছাত্রের ফাইনাল পরীক্ষার গড় নাম্বার বের করতে হবে । তাহলে আমরা কি করব??

# মামা, খুব সহজ, আমরা ২০ জন ছাত্রের জন্য আলাদা আলাদা ভেরিয়েবল নিব, এরপর সবার নাম্বর এই  ভেরিয়েবল গুলোর মধ্যে রাখব, তারপর সবগুলো যোগ করব, তারপর ২০ দিয়ে ভাগ করব।

ইমুর প্রোগ্রাম ৬.২

 প্রোগ্রামপ্রোগ্রামের আউটপুট










১০
১১
১২
১৩
১৪
১৫
১৬
#include <stdio.h>
 int main ()
{
  int std1, std2,………………….std20;
  printf(“Enter the value of std1\n”);
  scanf(“%d”, &std1);
  printf(“Enter the value of std1\n”);
  scanf(“%d”, &std20);
…………………………………..
……………………………………
printf(“Enter the value of std20\n”);
  scanf(“%d”, &std20);
  int sum= std1+std2+………….+std20;
  printf(“Avg= %d”, sum/20);
  return 0;
}
 Enter the value of std1 –
Enter the value of std2 _
…………………………………..
……………………………………
Enter the value of std20 _
  Avg = 56

% সাবাস!! ইমি, ইমু যা বলছে ঠিক আছে ?

* মামা ঠিকই আছে, তবে এত সহজ হলে তুমি জিজ্ঞাসা করতে না ।

% হা হা হা… ইমুর প্রোগ্রামটা ঠিকই আছে কিন্তু আরো ভালো ভাবে করা যায়। এখন তো ২০ জন ছাত্রের জন্য করছি, কিন্তু ১০০ জনের জন্য করলে তো এই গড় বের করার জন্য ২ পৃষ্ঠা কোড লিখতে হবে !

* ও তাই তো ! এভাবে তো ভেবে দেখি নাই ! এখানে তো অনেক কোড লিখতে হয়। মামা আমি জানি তুমি নিশ্চয়ই আমাদের নতুন কিছু শিখাবে।

% আরে না, নতুন কিছু না । এই কাজটা আমরা খুব সহজে array দিয়ে করতে পারি।

* কিভাবে ?

# হুম বুঝেছি, এখন আমাদের ২০ ঘরের আলমারি নিতে হবে।

* কিন্তু তাতে তো খুব একটা লাভ হবে না। আলমারি / array নিলাম কিন্তু এরপর ? সবগুলো তে আলাদা আলাদা করে তথ্য রাখতে হবে। যোগ করতে হবে, ভাগ করতে হবে অনেক কাজ।

% হুম অনেক কাজ, কিন্তু একটু বুদ্ধি করে কাজ করলে ৪/৫ লাইন লিখে এইসব কাজই করা যাবে।

* মামা কি বল, তাই নাকি ? কিন্তু কিভাবে ?

% আরে ধৈর্য ধর, দেখাব। এই দেখ কিভাবে আমরা ২০ টি আলাদা ভেরিয়েবল না নিয়ে সহজে array  দিয়ে কাজ করতে পারি-

এরপর মামা স্কেচবুকে দুই ধরনের প্রোগ্রাম করে দেখাল। 

প্রোগ্রাম ৬.৩ Array
 প্রোগ্রামপ্রোগ্রামের আউটপুট





#include <stdio.h>
 int main ()
{
  int std [20];
  return 0;
}
   

* মামা, এখানে তো আমরা শুধু ভেরিয়েবলের কাজটা করলাম, এখন এই এক লাইন লিখে যত খুশি ভেরিয়েবল নেয়া যাবে, কিন্তু আরো অনেক কাজ বাকি।

# জ্বী মামা, এখন এতগুলো তো আগের মতই যোগ করতে হবে, কোন লাভ হয় নি!

% আরে আমি কি বলেছি নাকি আমার প্রোগ্রাম শেষ? আমরা শুধু array কি তা দেখেছি, কিন্তু array এর সুবিধা গুলো দেখা হয় নি। আমরা লুপ কেন ব্যবহার করি মনে আছে?

* হুম, যখন এক কাজ বারবার করার দরকার হয় তখন আমরা লুপ ব্যবহার করি।

% চমৎকার !! এখন আমাদের কি করতে হবে ?

* সবগুলোর ভিতরে কে কত পেয়েছে তা রাখতে হবে।

% ঠিক আছে , দেখ –

প্রোগ্রাম ৬.৩.১

 প্রোগ্রামপ্রোগ্রামের আউটপুট









১০
১১
১২
#include <stdio.h>
 int main ()
{
  int std [20];
  int i;
  for (i=0;i<20;i++)
 {
 printf(“Enter the value of std %d”, i);
 scanf(“%d”, &std[i]);
 }
  return 0;
}
Enter the value of std1

Enter the value of std2
_
…………………………………..
……………………………………
Enter the value of std20
_

* ওয়াও, তার মানে মামা, তুমি ২০ লাইনের কাজ ৫ লাইনে করে ফেলেছ??

% শুধু তাই না। এখন ১০০ জনের জন্য হলেও এই ৫ লাইনেই হয়ে যাবে। শুধু লুপের শর্ত একটু পরিবর্তন করতে হবে। এখানে খেয়াল কর, ৯ নাম্বার লাইনে &std[i] আছে, এখন লুপ ঘুরে i এর মান যত হবে ঠিক তত নাম্বার ঘরে আমরা যে মান দিব সেটা রাখবে।

# আচ্ছা মামা, আমরা যদি মান নিতেই থাকি, তাহলে কি হবে ?

% যদি যতগুলো ঘর আছে তার থেকে বেশি রাখতে চাই তখন সেটা কম্পাইলার আমাদের জানাবে যে, সমস্যা হচ্ছে – আর রাখার জায়গা নাই। 

# মামা, এখন মনে হচ্ছে প্রোগ্রামিং শিখে লাভ আছে!

% তাই নাকি! এত দিন কি মনে হত??

# কি আর, পড়ার জন্য পড়তে হবে, এই আর কি! এখন মনে হচ্ছে প্রোগ্রামিং শিখলে অনেক কাজ সহজে করতে পারব।

% ঠিক তাই, মাত্র তো শুরু, আরো কত কিছু মনে হবে!

* মামা, এখানে আমারা শুধু মান নিলাম, এখনও তো যোগ করা বাকি।

% ও তাই তো। তার আগে তোদের সহজ একটা যোগ দেই।

      ৫
৭   
+  ৮    
———- 

# মামা, এটা কিছু হল!

% কেন কি হয়েছে?

# অনেক সহজ, ৫ আর ৭ এ ১২, এরপর ১২ এর সাথে ৮ যোগ করলে হয় ২০। তার মানে উত্তর হল ২০।

* ইমু, আমার মনে হয় মামা এমনি এমনি এত সহজ যোগ করতে দেয়নি, নিশ্চয়ই কোন ঝামেলা আছে।

% কোন ঝামেলা নাই, তবে তুই যে ১২ এর সাথে ৮ যোগ করলি সেই ১২ কোথা থেকে আসল?

# কি বল মামা, আমি তো তোমার সামনেই যোগ করলাম প্রথমে ৫ আর ৭ এ ১২ এরপর ১২ এর সাথে ৮ যোগ করে ২০।

% কিন্তু এই ১২ তো আমাদের কোন কাজে আসছে না!

* মানে কি? ১২ বের না করে যোগ করব কিভাবে?

% আচ্ছা, তার মানে আমরা যখন অনেকগুলো সংখ্যা যোগ করব তখন এমন কিছু অস্থায়ী যোগফল পাব।

* তাই তো মনে হচ্ছে। কিন্তু এসব দিয়ে আমাদের প্রোগ্রামিং এর কি হবে?

% হবে, আমাদের যে, সবার নাম্বার যোগ করতে হবে মনে আছে??

* ও তাই তো!

% এখন দেখ আমি কিভাবে করি …

এরপর মামা আগের প্রোগ্রামটার সাথে আরো কিছু কোড লিখল-

প্রোগ্রাম ৬.৩.২

 প্রোগ্রামপ্রোগ্রামের আউটপুট









১০
১১
১২
১৩
১৪
১৫
১৬
১৭
#include <stdio.h>
 int main ()
{
  int std [20];
  int i, temp=0;
  for (i=0;i<20;i++)
     {
        printf(“Enter the value %d”, i);
        scanf(“%d”, &std[i]);
      }
for (i=o;i<20;i++)
   {
     temp=temp+std[i];
    }
printf(“Avg= %d”, sum/20);
return 0;
}
  Enter the value_   Avg= 56

% এখানে, ১১ থেকে ১৪ নাম্বার লাইন আমাদের array এর ভিতরে যত সংখ্যা আছে সবগুলো যোগ করতে সাহায্য করছে। আর temp  হল আমাদের সেই অস্থয়ী মেমরী, প্রথমে এর মান শূন্য করে দিতে হয়, তা না হলে পরে ঝামেলা করে। লুপের ভিতরে প্রতিবার যোগ করে এই temp এর মধ্যে রাখে এরপর এই temp  এর মানের সাথে পরের ঘরে যা আছে তা যোগ করে আবার এই temp ই রাখে, ঠিক যেভাবে আমরা যোগ করি। আর এভাবে লুপ শেষ না হওয়া পর্যন্ত চলতে থাকে।

* মামা তাহলে তো আমাদের কাজ শেষ! এখন যত ছাত্র-ছাত্রী থাকুক না কেন, আমাদের এই প্রোগ্রামই কাজ করবে, তাই না মামা?

% ঠিক তাই, শুধু লুপ ঠিক মত কাজ করছে কিনা তা খেয়াল রাখতে হবে।

# মামা, তুমি কত বড় প্রোগ্রামকে কত ছোট করে লিখে ফেললে, তোমার কাছ থেকে এমন অনেক প্রোগ্রাম শিখে রাখতে হবে ।

% আরে আমার কাছ থেকে শিখতে হবে না, তোর আপুই এখন এরকম কত প্রোগ্রাম করবে, তুই তোর আপুর কাছ থেকেই শিখতে পারবি, আর আমি তো আছিই।

* মামা, Array  কি আর কিভাবে কাজ করে তা তো বুঝালাম, আর বাকি রইল  String. কালকের দিনে কি  String শেষ হবে ?

আরো গল্প

Leave a Reply

Your email address will not be published.