Showing posts with label C প্রোগ্রামিং - ছয় অধ্যায় - Loop. Show all posts
Showing posts with label C প্রোগ্রামিং - ছয় অধ্যায় - Loop. Show all posts

Tuesday, November 18, 2014

power using LOOP

 

power using LOOP
#include <stdio.h>
int main()
{
    int base, exp,i,po=1.00;
    printf("Enter base number: ");
    scanf("%d",&base);
    printf("Enter power number: ");
    scanf("%d",&exp);
    for(i=1;i<=exp;i++)
    {
        po=po*base;
    }
 
    printf("%d^%d = %d", base, exp,po);
    return 0;
}

Sunday, January 5, 2014

C প্রোগ্রামিং - ছয় অধ্যায় - Continue StatemenT

Continue statement: continue statement ব্যবহৃত হয় বিভিন্ন লুপিং প্রোগ্রাম এর ক্ষেত্রে। continue statement যদি কোন while or do-while loop এর ক্ষেত্রে execute হয় তবে ঐ continue statement এর পর , সরাসরি লুপিং এর condition এর অংশে চলে যায়
নিচের উদাহরনগুলো ব্যাপারটাকে পরিস্কার করে তুলবে।



এখানে  i++  এর কারনে এর i মান যখন ৫ এবং ৬ তখন continue statement এর কারনে ৫ এবং ৬ এর মান প্রিন্ট না করে সরাসরি condition অংশে চলে যাবে ।


এখানে ও একই বেপার হয়েছে ।


আর যদি for loop হয় সেক্ষেত্রে for loop এর increment/decrement অংশে চলে যায়।

তাহলে ত বুজতে পেরেছ কোনো জায়গায় continue ব্যবহার করলে লুপের ভেতরে continue-এর পরের অংশের কাজ আর হয় না। নিচের প্রোগ্রামটি কোড করে কম্পাইল ও রান করো: 




#include <stdio.h>  
 int main()  
 {  
     int n = 0;  
     while (n < 10) {  
         n = n + 1;  
         if (n % 2 == 0) {  
             continue;  
         }  
         printf("%d\n", n);  
     }  
     return 0;  
 }


এই প্রোগ্রামটি 1 থেকে 10-এর মধ্যে কেবল বেজোড় সংখ্যাগুলো প্রিন্ট করবে। জোড় সংখ্যার বেলায় continue ব্যবহার করার কারণে প্রোগ্রামটি printf("%d\n", n); স্টেটমেন্ট এক্সিকিউট না করে লুপের পরবর্তী ধাপের কাজ শুরু করবে।

C প্রোগ্রামিং - ছয় অধ্যায় - Break StatemenT

আজ একটি দরকারি জিনিস নিয়ে আলোচনা  করব , যেটি দিয়ে তোমরা জোর করে লুপ থেকে বের হয়ে যেতে পারবে। সেটি হচ্ছে  break স্টেটমেন্ট। break statement ব্যবহৃত হয় প্রধানত লুপ terminate  ( শেষ ) করা বা  বের হয়ে যাওয়ার জন্য। লুপিং এর ক্ষেত্রে যখন break statement  টি  execute হয়, তখন যে loop এর ভিতরে break statement টি লিখা হয়েছে, সেই লুপ এর মধ্যে আর কোন কাজ না করে সরাসরি বাইরে চলে আসে।


For loop, while loopdo-while loop এর ক্ষেত্রেও break statement ব্যবহৃত হয়। নিচে for loop এর মধ্যে break statement ব্যবহার করা হল। প্রোগ্রাম লিখলেই ব্যাপারটি পরিষ্কার হয়ে যাবে।

#include<stdio.h>
int main()
{
    int i;
    for (i=0; i<10; i++)
    {
        if(i==5)
        {
            break ;
        }
        printf("i=%d\n",i);
    }
    printf("outside for loop : i=%d\n",i);
    return 0;
}



এই প্রোগ্রামটি কী করবে ? 1 থেকে 10 পর্যন্ত প্রিন্ট করবে। যদিও while-এর ভেতর আমরা বলেছি যে শর্ত হচ্ছে n <= 100, কিন্তু লুপের ভেতরে আবার বলে দিয়েছি যে যদি n > 10 হয়, তবে break; , মানে বের হয়ে যাও, বা লুপটি ভেঙে দাও। break সব সময় যেই লুপের ভেতর থাকে সেটির বাইরে , প্রোগ্রামটিকে নিয়ে আসে। সুতরাং n-এর মান 10 প্রিন্ট হওয়ার পরে এর মান এক বাড়বে (n++;) অর্থাৎ n-এর মান হবে 11। আর তখন n > 10 সত্য হবে, ফলে প্রোগ্রামটি if কন্ডিশনের ভেতরে ঢুকে যাবে। সেখানে গিয়ে সে দেখবে তাকে break করতে বলা হয়েছে তাই সে লুপের বাইরে চলে যাবে।

নিচের প্রোগ্রামটিতে FOR LOOP দিয়ে  Break Statement  এর আর একটি উদাহরণ দেওয়া হল :




                    




#include <stdio.h>  
 int main()   
 {  
     int n = 1;  
     while(n <= 100) {  
         printf("%d\n", n);      
         n++;  
         if(n > 10) {  
             break;  
         }  
     }  
     return 0;  
 }  




আশা করি বুজতে পারবে ...............।

Saturday, January 4, 2014

C প্রোগ্রামিং - ছয় অধ্যায় - Do While Loop - PART -4

লুপিং হচ্ছে প্রোগামিং এর প্রাণ । ছোট বড় প্রায় সব প্রোগ্রামেই লুপ এর ব্যবহার করতে হয়। লুপিং এর জন্য অনেক গুলো statement রয়েছে। যেমনঃ
1. While
2. Do-while
3. For ইত্যাদি।
আজ  do-while loop লুপ নিয়ে আলোচনা করব।



do-while loop: General form

do
    {
statement;
statement;
statement;
……;
   }
while(condition);


চিত্রটি দেখুন।

নিচের উদাহরনটি দেখুন।

while(0)  //zero
{
         printf(“This line will not printed\n”);
}


do{
         printf(“this line will printed\n”);
    }    while(0);



While এবং do-while এর একটি গুরুত্বপূর্ন পার্থক্য হল, যেখানে while একবার ও execute করে না, সেখানেও do-while একবার execute করে।
কারন হল do-while এ condition check হয় লুপ এর শেষে। কিছু example দিয়ে বোঝা যাক ।



প্রথম এর টা WHILE  দিয়ে করলাম । আসা করি  বুজবেন ।

শর্ত মেলেনি তাই কোনো কিছু print  হয় নি 

#include<stdio.h>
int main()
{
    int i=1;
    while (i<1)
    {
        i++;
        printf ("%d\n",i);
    }
return 0;
}



এবার DO-While ব্যবহার করে একটা প্রোগ্রাম করি ।




#include<stdio.h>
int main()
{
    int i=1;
    do
    {
        i++;
        printf ("%d\n",i);
    }
    while (i<=10);
    return 0;
}



কিছু বুঝতে পারছ ? আমাদের শর্ত   (i<=10);  কিন্তু প্রিন্ট করল ১১ পর্যন্ত কেনো কারন হল do-while এ condition check হয় লুপ এর শেষে তাই পূর্বেরশর্ত পুরন হবার পর i++ এর কারনে ১১ হয়েছে ।







#include<stdio.h>
int main()
{
    int i=0;
    do
    {
        printf ("%d\n",i);
        i++ ;
    }
    while (i<1);
    return 0;
}

 এখানে প্রথম এ 0 প্রিন্ট করল তারপর যখন দেখল i++ তখন সে ০+১ যোগ করে ১ হল কিন্তু WHILE  এর শর্ত পুরন না করতে পারায় আর কিছু করল না । 



C প্রোগ্রামিং ছয় অধ্যায় - While loop এর মধ্যে যোগ করা - PART 3

আজ আমরা দেখব while  Looping এর মাধ্যমে কিভাবে ১০ টি সংখ্যার মধ্যে যোগ করা যায় ।ধরুন আপনার দশটা সংখ্যা ইনপুট নিয়ে যোগফল দেখা দরকার। আপনি কি দশবার scanf() function দিয়ে ডাটা ইনপুট নিবেন। কখনোই না। কারন সংখ্যাটা দশ না হয়ে আরও বড় হতে পারে। এ ধরনের সমস্যার সমাধানই হচ্ছে লুপিং।
এবার প্রথমে উল্লেখ করা প্রবলেমটা দেখি।
আমার দশবার loop চালানো প্রয়োজন। এবার নিচের উদাহরনটা দেখুন।




















  1: #include<stdio.h>
  2: int main()
  3: {
  4:     int sum,i,val;
  5:     i=0;
  6:     sum=0;
  7:     while(i<10)
  8:     {
  9:         scanf("%d",&val);
 10:         sum = sum+val;
 11:         i++;
 12:     }
 13:     printf("sum=%d\n",sum);
 14:     return 0;
 15: }
 16: 

OUTPUT:

.
.
.
উল্লেখ্য, প্রতিটি নাম্বার এর আলাদাকারী হিসেবে  স্পেস কাজ করেছে। শেষে 10 লিখার পর এন্টার চাপুন আর আউটপুট দেখুন।
লুপিং এর ক্ষেত্রে condition টা অতি গুরুত্তপূর্ণ। কেননা condition যদি সঠিকভাবে কাজ না করে, মানে condition যদি কখনো false না হয় তবে তা infinity loop এ পড়বে।
যেমনঃ

int i=1;
while(i==1)
{
printf(“a”);
}
printf(“program ended successfully\n”);


উপরের উদাহরনটি করে দেখুন। এই প্রোগ্রামটি কখনই শেষ হবে না। যা প্রোগ্রামটিকে ক্রাশ করাবে।


Wednesday, January 1, 2014

C প্রোগ্রামিং ছয় অধ্যায় - For Loop - PART 2

লুপিং হচ্ছে প্রোগামিং এর প্রান। ছোট বড় প্রায় সব প্রোগ্রামেই লুপ এর ব্যবহার করতে হয়। লুপিং এর জন্য অনেক গুলো statement রয়েছে। যেমনঃ

1. While
2. Do-while
3. For ইত্যাদি।

আজ  For লুপ নিয়ে আলোচনা করব। লুপিং এর কাজে সবচেয় বেশি ব্যবহৃত হয় for loop । এ for loop এর তিনটি অংশ রয়েছে। তার আগে আমরা দেখেনেই  for loop সাধারন ব্যবহার নিয়ম। 

for(exprission1;Exprission2;Expression3)Statement 

বিদ্রঃ এখানে প্রত্যেকটি Expression ; (সেমিকোলন) দিয়ে আলাদা করে দিতে হবে।


এখানে প্রথম exprission1  হচ্ছে for loop এর প্রথম অংশ। এটি দ্বারা একটি নির্দিষ্ট বিষয়ের প্রাথমিক মান দেওয়া হয় । যাকে বলা হয় initial অংশ। এই বিষয়টিকে বলা হয় Index. এটি পুরো লুপিং প্রক্রিয়াকে নিয়ন্ত্রন করে। প্রাথমিক মানটি কোন কিছু যাছাই না করেই আউটপুট দেয়। মানে হচ্ছে প্রথমিক মান টা কোন কিছু যাচাই না করেই আউটপুট দিবে (যেমন প্রিন্ট বা অন্য কোন কাজে)।



দ্বিতীয় অংশটি অর্থাৎ Exprission2 দ্বারা  একটি শর্ত দেওয়া হয়। লুপটি কতক্ষন পর্যন্ত চলবে তা এটি নির্নয় করে। Exprission2 তে সাধারনত একটি logical expression থাকে যা শুধু সত্য মিথ্যে বুঝতে পারে। যদি সত্য হয় তাহলে 1 রিটার্ন করে আর যদি মিথ্যে হয় তাহলে 0 রিটার্ন করে।  এটি যদি 0 ছাড়া অন্য কোন মান রিটার্ন করে তাহলে লুপটি চলবে, আর যদি 0 রিটার্ন করে তাহলে লুপটি আর চলবে না।

Expression3 কাজ হচ্ছে আমারা প্রথমে যে প্রাথমিক মান নিলাম তাকে আমাদের ইচ্ছে মত মডিফাই করা। এটি প্রত্যেক লুপের শেষ ধাপে কাজ করে।
আর আগেই বলছি লুপটি ততক্ষনই চলবে যতক্ষন পর্যন্ত Exprission2 মিথ্যে বা  0 রিটার্ন না করে।


For loop সম্পর্কে আমরা এতক্ষন অনেক কিছু জানলাম, এবার প্রোগ্রামে এটাকে কিভাবে ব্যবহার করব তা দেখি। তার জন্য একটি প্রোগ্রাম লিখি যা 1 থেকে 10 পর্যন্ত সংখা গুলো প্রিন্ট করবে।
আপনাদের জন্য নিচের প্রোগ্রামটি। এটার আউটপুট কি হবে কিভাবে হবে তা বের করুন।


#include<stdio.h>
int main()
{
int i;
for(i=0;i<=10;i++)
printf("%d\n",i);
return 0;
}


এর আউট পুট হচ্ছেঃ


1
2
3
4
5
6
7
8
9
10

এখানে আমরা একটি integer variable নিয়েছি। for loop এর প্রথম Expression এ আমরা এর প্রাথমিক মান নিলাম ০. প্রাথমিক মানটি for loop এর দ্বিতীয় অংশ অর্থাৎ logical অংশ দ্বারা যাচাই না হয়েই প্রিন্ট করবে। এবং প্রথম Expression কাজ শেষ হয়ে যাবে। এর আর কোন কাজ নেই।

Print করার পর এবার তৃতীয় অংশ অর্থাৎ Exprission3 এখানে i++ অংশ দ্বারা মডিফাই হবে। আমরা জানি i++=i+1 সুতরাং এখানে i এর মান এক বাড়বে এবং ০ থেকে 1 হবে। এবং এবার দ্বিতীয় অংশ Expression2 এখানে i<=10 অংশ দ্বারা লজিক্যাল যাচাই হবে। এখানে যাচাই করবে যে i এর মান 10 বা 10 থেকে ছোট কিনা। যেহেতু এখন i (১)এর মান ১০ থেকে ছোট তাই লুপটা আবার চলবে।
এবং দ্বিতীয় বার এসে 1 প্রিন্ট করবে।

আবার Exprission3 তে এসে মডিপাই হবে। আগের লুপ থেকে i এর মান পেয়েছি 1 এখন আবার 1 এর সাথে এক বেড়ে 2 হবে ( এ অংশ i++ দ্বারা) ।
আবার দ্বিতীয় অংশ i<=10  অংশ দ্বারা লজিক্যাল যাচাই হবে। যেহেতু 2,  10 থেকে ছোট তাই আবার 2 প্রিন্ট করবে। এভাবে প্রত্যেক ধাপ শেষ করবে। যখন i এর মান বেড়ে 11 হয়ে যাবে তখন আর লুপ চলবে না। এবং আমাদের প্রোগ্রামটি শেষ হবে।


Monday, December 30, 2013

C প্রোগ্রামিং ছয় অধ্যায় - While loop - PART 1


লুপিং হচ্ছে প্রোগামিং এর প্রান। ছোট বড় প্রায় সব প্রোগ্রামেই লুপ এর ব্যবহার করতে হয়। লুপিং এর জন্য অনেক গুলো statement রয়েছে। যেমনঃ
1. While
2. Do-while
3. For ইত্যাদি।
আজ প্রথমে while লুপ নিয়ে আলোচনা করব। লুপ মানে কি তাতো মনে হয় সবাই যানেন। একই
জিনিস বার বার ব্যবহার করাই হচ্ছে লুপ। আর এ প্রক্রিয়াকে বলে লুপইং। প্রোগ্রামিং এ লুপিং এর কাজ কি তাই তো?? অনেক সময় প্রোগ্রামিং এ একই জিনিস বার বার ব্যবহার করা লাগে, যেমন একটি নাম ১৫ বার ব্যবহার করা লাগবে। যদি প্র্যত্যেক বারের জন্য একবার করে কোড লিখতে হয় তাহলে একটি সিম্পল প্রোগামের অবস্থা কত বিশাল হবে একটু চিন্তা করুন। আর এ থেকে মুক্তি দিতে আছে লুপ। এবার আসুন দেখে নি while লুপ কিভাবে লিখা হয়

while(expression)statement

while লুপে বা যেকোন লুপে একটি নির্দিষ্ট শর্ত পূরন না হওয়া পর্যন্ত এক বা একাদিক মান সম্পাদন হয়ে থাকে, যা ঐ লুপ এর সাথে সম্পর্ক যুক্ত। এখানে statement টি সম্পাদিত হবে যদি expression একটি true value দেয়। অর্থাৎ expression টি সত্য হয়। মিথ্যে হলে কিন্তু statement ব্যবহার হবে না। এখন মনে করি একটি প্রোগ্রামে আমরা প্রত্যেক লাইনে ০,১,২,৩,৪,৫,৬,৭,৮,৯,১০ইত্যাদি প্রিন্ট করব। এখন যদি নিচের মত করে একটি প্রোগ্রাম লিখি দেখুন কত বড় কোডিং করতে হয়।

#include<stdio.h>
int main()
{
printf("0\n");
printf("1\n");
printf("2\n");
printf("3\n");
printf("4\n");
printf("5\n");
printf("6\n");
printf("7\n");
printf("8\n");
printf("9\n");
printf("10\n");
}

আউট পুটঃ
0
1
2
3
4
5
6
7
8
9
10

কিন্তু আমারা while লুপ ব্যবহার করে কিভাবে এত বড় কোড টা কে ছোট করে ফেলি তা দেখুনঃ




#include<stdio.h>
int main()
{
int number=0;
while(number<=10){
printf("%d\n",number);
number++;
}
return 0;
}

কত ছোট হয়ে গেছে দেখছেন?? আউট পুটে কোন পরিবর্তন হবে না। আগের প্রোগ্রামে যে আউট-পুট দিয়েছে এ প্রোগ্রামে একই আউট-পুট দিবে। এবার একটু ব্যাখ্যা করি,। কি ভাবে কি হল,

এখানে int number=0; লাইন দিয়ে number নামে একটি ইন্টিজার variable নিয়েছি । আগের লাইন গুলোর কি কাজ তা মনে হয় জেনে গেছে ইতিমধ্যে। যাই হো এবার
while(number<=10)
{
printf("%d\n",number);
number++;
}

এই পুরোটাই হচ্ছে while লুপে অংশ। আমরা যদি while লুপের ব্যবহার ফরম এর সাথে তুলনা করি তাহলে  number<=10 এ অংশ টি হচ্ছে expression অংশ। এটি যদি সত্য হয়ে তাহলে পরের অংশ কাজ করবে মানে


{
printf("%d\n",number);
number++;
}


অংশ টি কাজ করবে। আর যদি মিত্যে হয় তাহলে
{
printf("%d\n",number);
number++;
}

অংশটি কাজ করবে না। এবার আসি while loop কিভাবে কাজ করে, আমরা শর্ত দিয়েছি যে  number<=10  অর্থাৎ number এর মান ১০ এর বেশি হতে পারবে না। তার আগে int number=0; এ statement এ আমরা number এর মান ০ দিয়ে দিয়েছি। তাই প্রথমে ০ প্রিন্ট করবে। তার পর number++; statement দিয়ে number এর মান ১ বাড়বে। তার পর আবার  number<=10 তে গিয়ে চেক করবে number এর মান ১০ থেকে ছোট কিনা। যদি ছোট হয় তাহলে প্রিন্ট করবে , না হলে লুপ থেকে বের হয়ে আসবে।
এখন আগের প্রোগ্রাম টি আরো ছোট করে নিছের মত করে লিখতে পারিঃ






#include<stdio.h>
int main()
{
int number=0;
while(number<=10)
printf("%d\n",number++);
return 0;
}

এখানে সব কিছুই আগের মত execute হবে। শুধু মাত্র number এর মান বাড়বে প্রিন্ট ফাংশান এর ভিতরেই। আসা করি আপনাদের while লুপ সম্পর্কে ধারনা দিতে পেরেছি।