Saturday, 16 September 2017

Nested Loop (parrt-2)

গতপর্বে আমরা একটা প্রোগ্রাম দেখেছিলাম যেটা,

 1111222233334444  এরকম একটা আউটপুট দিয়েছিল।


প্রোগ্রামটা আমি আবার লিখছি বোঝার সুবিধার্তে,


#include<stdio.h>
int main()
{
    int i,j;

    for(i=1; i<=4; i++)
    {
        for(j=1; j<=4; j++)
        {
            printf("%d",i);
        }
    }
    return 0;
}
 


এখন আমরা চাই আউটপুট, 
1111222233334444 এরকম না এসে,

1111
2222
3333
4444

এভাবে আসুক। তাহলে উপরের প্রোগ্রামটা সামান্য পরিবর্তন করে আবার লিখি,


#include<stdio.h>
int main()
{
    int i,j;

    for(i=1; i<=4; i++)
    {
        for(j=1; j<=4; j++)
        {
            printf("%d",i);
        }
        printf("\n");
    }
    return 0;
}

আমরা শুধু নতুন একটা লাইন লিখেছি, বাকীটা হুবহু একই রকম । প্রোগ্রামটা রান করে দেখো। তারপর বোঝতে চেস্টা করো কেনো দুইটা প্রোগ্রামের আউটপুট দুই রকম আসছে।

যদি পার্থক্যটা ধরতে পারো তাহলে তোমাকে অভিনন্দন, না পারলেও সমস্যা নেই তুমি শিখে নিবে।

আমি আশা করছি তোমরা প্রথম আউটপুট টা মানে 1111222233334444 আসার কারণ বোঝতে পারছো।
যখনই for(j=1; j<=4; j++)   এই অংশটা মিথ্যা হয়। তখন কম্পাইলার ভিতরের লুপ থেকে বেড়িয়ে আসে এবং বাইরের লুপের মানে for(i=1; i<=4; i++) এর i++ এ আসে। 

আর আমাদের দ্বিতীয় প্রোগ্রামে i++ এ আসার পুর্বে কম্পাইলার দেখতে পায় printf("\n");   তখন একটি নতুন লাইন প্রিন্ট হয়, তার পর i++ হয়ে i এর মান এক বাড়ে।  এভাবে প্রতিবার i এর মান চার বার প্রিন্ট করার পর একটি নতুন লাইন প্রিন্ট হয়। 


এবার নিচের প্রোগ্রামটা রান করে দেখোঃ



#include<stdio.h>
int main()
{
    int i,j;

    for(i=1; i<=4; i++)
    {
        for(j=1; j<=4; j++)
        {
            printf("%d",i);
        }
    }
    printf("\n");

    return 0;
}

 আউটপুট টা প্রথম প্রোগ্রামের মতো আসছে , তাই না! এর কারণটা নিজেই খোঁজার চেস্টা করো।


আমরা printf("\n"); টা দিয়েছি  for(i=1; i<=4; i++)   এর পর। তাই যখন এই লুপটা থেকে বেড়িয়ে আসবে তখন নতুন লাইন প্রিন্ট হবে।
 আর ততক্ষণে 1111222233334444 প্রিন্ট হয়ে যাবে। তারপর একটি নতুল লাইন প্রিন্ট হবে।


এবার নিচের প্রোগ্রামটা দেখোঃ


#include<stdio.h>
int main()
{
    int i,j;

    for(i=1; i<=4; i++)
    {
        for(j=1; j<=4; j++)
        {
            printf("%d",i);
            printf("\n");
        }
    }

    return 0;
}

 এই প্রোগামটা  রান করো। এবং আউটপুট কি আসে তা নিজে বোঝার চেস্টা করো।

0 comments:

Post a Comment