#include

int main () {

int i, d; int n = 123456789;

char digits [10];

i = 0;

while (n) {

d = n % 10;

n = n / 10; digits[i] = d + '0';

i + = 1;

}

printf("%s\n", digits ) ; return 0;

}

প্রোগ্রামটি রান করলে আউটপুট হবে 987654321 অর্থাৎ digits ক্যারেক্টার অ্যারেতে n-এর

অংকগুলো বিপরীত ক্ৰমে এসেছে।

Updated: 1 year ago
উত্তরঃ স্ট্রিং

ক্যারেক্টার টাইপের অ্যারে হলো মেমরি লোকেশনের একটি ক্রম যেখানে প্রতিটি উপাদান একটি ক্যারেক্টার (বর্ণ, সংখ্যা বা প্রতীক) ধারণ করে। প্রোগ্রামিংয়ে, বিশেষ করে C/C++ এর মতো ভাষায়, ক্যারেক্টার অ্যারের মাধ্যমে স্ট্রিং (String) তৈরি করা হয়। একটি স্ট্রিং সাধারণত একটি নাল ক্যারেক্টার (\0) দ্বারা শেষ হয় যা স্ট্রিংয়ের শেষ নির্দেশ করে এবং এর দৈর্ঘ্য নির্ধারণ করে।

Satt AI
Satt AI
2 weeks ago
উত্তরঃ

সি প্রোগ্রামিং ভাষায় একটি ইন্টিজার (int) ভ্যারিয়েবলে সাধারণত সর্বোচ্চ ১০ অঙ্কের সংখ্যা রাখা যায়। এটি সিস্টেমের আর্কিটেকচার এবং কম্পাইলারের উপর নির্ভর করে, তবে আধুনিক কম্পিউটার সিস্টেমে 32-বিট int ডেটা টাইপ -2,147,483,648 থেকে +2,147,483,647 পর্যন্ত মান সংরক্ষণ করতে পারে।

একটি ইন্টিজার ভ্যারিয়েবলের ধারণক্ষমতা তার জন্য বরাদ্দকৃত মেমরি স্পেসের (যেমন: 2 বাইট বা 4 বাইট) উপর নির্ভর করে। 4 বাইট বা 32-বিট ইন্টিজারের ক্ষেত্রে, এর সর্বোচ্চ ধনাত্মক মান হয় 2,147,483,647, যা মোট ১০টি অঙ্ক ধারণ করে। যদি 16-বিট ইন্টিজার হয়, তবে এটি সর্বোচ্চ 5 অঙ্কের সংখ্যা (32,767) ধারণ করতে পারে।

Satt AI
Satt AI
2 weeks ago
উত্তরঃ

উদ্দীপকে প্রদত্ত C প্রোগ্রামটি একটি পূর্ণসংখ্যার (যেমন, n = 123456789) অঙ্কগুলোকে বিপরীত ক্ৰমে একটি ক্যারেক্টার অ্যারেতে (digits) সংরক্ষণ করে এবং সেই অ্যারেটি প্রিন্ট করে। প্রোগ্রামটির অভ্যন্তরীণ কার্যপ্রবাহকে সুস্পষ্টভাবে উপস্থাপনের জন্য একটি ফ্লোচার্ট একটি কার্যকর পদ্ধতি। এই ফ্লোচার্টটি প্রোগ্রামটির প্রতিটি ধাপের চিত্ররূপ বর্ণনা করবে, যা প্রোগ্রামটির লজিক বুঝতে সাহায্য করবে।

প্রোগ্রামটির ফ্লোচার্ট নিম্নলিখিত ধাপগুলি অনুসরণ করে: প্রথমে একটি 'শুরু' (Start) প্রতীক দ্বারা প্রোগ্রাম শুরু হয়। এরপর একটি প্রস্তুতি প্রতীকে (rectangle) int i, d; int n = 123456789; char digits[10]; চলকগুলো ঘোষণা করা হয় এবং i = 0; দ্বারা i এর প্রারম্ভিক মান সেট করা হয়। এরপর একটি সিদ্ধান্ত প্রতীক (diamond) ব্যবহার করে n != 0 শর্তটি পরীক্ষা করা হয়। যদি শর্তটি সত্য হয়, তবে একটি প্রক্রিয়া প্রতীকে (rectangle) d = n % 10; দ্বারা n এর শেষ অঙ্কটি d তে সংরক্ষণ করা হয়। পরবর্তীতে, n = n / 10; দ্বারা n থেকে শেষ অঙ্কটি সরিয়ে নেওয়া হয় এবং digits[i] = d + '0'; দ্বারা d এর মানকে ক্যারেক্টারে রূপান্তর করে digits অ্যারেতে সংরক্ষণ করা হয়। এরপর i = i + 1; দ্বারা i এর মান বৃদ্ধি করা হয় এবং নিয়ন্ত্রণ প্রবাহ আবার n != 0 শর্ত পরীক্ষার ধাপে ফিরে আসে।

যখন n != 0 শর্তটি মিথ্যা হয় (অর্থাৎ n এর মান 0 হয়ে যায়), তখন লুপের কার্যকারিতা শেষ হয়। এরপর একটি ইনপুট/আউটপুট প্রতীক (parallelogram) ব্যবহার করে printf("%s\n", digits); এর মাধ্যমে digits অ্যারের সংরক্ষিত মান (অর্থাৎ, 987654321) আউটপুট হিসেবে প্রদর্শন করা হয়। সবশেষে, একটি 'শেষ' (End) প্রতীক দ্বারা ফ্লোচার্টটি সমাপ্ত হয়। এভাবে ফ্লোচার্টটি উদ্দীপকের প্রোগ্রামটির সম্পূর্ণ লজিককে ধাপে ধাপে দৃশ্যমান করে তোলে, যা শিক্ষার্থীর কাছে প্রোগ্রামটির কার্যকারিতা সহজবোধ্য করে।

Satt AI
Satt AI
2 weeks ago
উত্তরঃ

প্রদত্ত প্রোগ্রামটি একটি সংখ্যার অংকগুলোকে উল্টো ক্ৰমে (যেমন: 123456789 এর জন্য 987654321) আউটপুট হিসেবে প্রদর্শন করে। প্রশ্ন হলো, প্রোগ্রামটি কীভাবে পরিবর্তন করলে n-এর অংকগুলো সঠিক ক্ৰমে (যেমন: 123456789 এর জন্য 123456789) আসবে, তা যুক্তিসহ প্রমাণ করতে হবে।

বর্তমান প্রোগ্রামটির কার্যকারিতা লক্ষ্য করলে দেখা যায়, while (n) লুপের মধ্যে d = n % 10; এর মাধ্যমে সংখ্যার সর্বডানের অংকটি (least significant digit) বের করা হয়। এরপর n = n / 10; এর মাধ্যমে সেই অংকটি বাদ দিয়ে সংখ্যাটিকে ছোট করা হয়। এই প্রক্রিয়াটি চলতে থাকে এবং বের হওয়া অংকগুলো digits অ্যারেতে digits[i] = d + '0'; এর মাধ্যমে ক্রমানুসারে বাম থেকে ডানে (digits[0], digits[1]...) সঞ্চিত হয়। ফলে, 123456789 সংখ্যাটির জন্য digits[0] এ '9', digits[1] এ '8' এভাবে digits[8] এ '1' সঞ্চিত হয়, যা উল্টো ক্ৰম। এছাড়াও, স্ট্রিং হিসেবে প্রিন্ট করার জন্য অ্যারের শেষে একটি নাল ক্যারেক্টার (\0) যোগ করা অপরিহার্য, যা প্রদত্ত প্রোগ্রামে অনুপস্থিত।

অংকগুলোকে সঠিক ক্ৰমে পাওয়ার জন্য, digits অ্যারেতে সঞ্চিত অংকগুলোকে শেষ থেকে শুরু পর্যন্ত প্রিন্ট করতে হবে। যেহেতু লুপ শেষ হওয়ার পর i ভেরিয়েবলটি অ্যারেতে মোট কতগুলো অংক সঞ্চিত হয়েছে তার সংখ্যা নির্দেশ করে, তাই i-1 তম ইনডেক্সে সবচেয়ে বামের অংকটি (যেমন: '1') এবং 0 তম ইনডেক্সে সবচেয়ে ডানের অংকটি (যেমন: '9') থাকে। নিচের পরিবর্তিত প্রোগ্রামটি প্রথমে অংকগুলোকে পূর্বের মতোই অ্যারেতে সঞ্চয় করে এবং একটি নাল ক্যারেক্টার যোগ করে। এরপর একটি for লুপের মাধ্যমে digits[i-1] থেকে digits[0] পর্যন্ত ক্রমানুসারে প্রিন্ট করে সঠিক আউটপুট নিশ্চিত করে।

পরিবর্তিত প্রোগ্রাম:

#include 

int main () {
    int i = 0, d;
    int n = 123456789;
    char digits [10];

    // Extract digits and store them in reverse order
    while (n) {
        d = n % 10;
        n = n / 10;
        digits[i] = d + '0';
        i++;
    }
    digits[i] = '\0'; // Add null terminator for proper string handling

    // Print digits in correct order by iterating backwards
    printf("সঠিক ক্রমে অংকগুলো: ");
    for (int j = i - 1; j >= 0; j--) {
        printf("%c", digits[j]);
    }
    printf("\n");

    return 0;
}

এই পরিবর্তিত প্রোগ্রামে, while লুপ শেষ হওয়ার পর i-এর মান হবে 9। digits[i] = '\0'; লাইনটি স্ট্রিংটিকে নাল-টার্মিনেট করে। এরপর নতুন for লুপটি j = i - 1 অর্থাৎ j = 8 থেকে শুরু করে j = 0 পর্যন্ত চলে। digits[8]-এ '1' সঞ্চিত ছিল, যা প্রথমে প্রিন্ট হবে। এরপর digits[7]-এ থাকা '2' প্রিন্ট হবে এবং এই প্রক্রিয়াটি চলতে চলতে digits[0]-এ থাকা '9' প্রিন্ট হবে। ফলস্বরূপ, আউটপুট হবে 123456789, যা n-এর অংকগুলোর সঠিক ক্ৰম।

Satt AI
Satt AI
2 weeks ago
262

কম্পিউটার নামক যন্ত্রটি কোনো না কোনোভাবে পুরো পৃথিবীর প্রায় প্রতিটি মানুষের জীবনকে প্রভাবিত করেছে। এই অসাধারণ যন্ত্রটি কোন কাজে ব্যবহার করা যাবে সেটি শুধু মানুষের সৃজনশীলতা দিয়ে সীমাবদ্ধ। তবে এককভাবে কম্পিউটার নামের এই যন্ত্রটির সাথে অন্য আরেকটি যন্ত্রের কোনো পার্থক্য নেই। কম্পিউটার আলাদাভাবে একটি বিশেষ কিছু হয়ে উঠে কারণ এটিকে নির্দিষ্ট কোনো কাজ করার জন্য প্রোগ্রাম করা সম্ভব। কম্পিউটার যেহেতু একটি ইলেকট্রনিক যন্ত্র ছাড়া আর কিছুই নয় এবং সেটি 1 এবং 0 ছাড়া আর কিছুই বুঝতে পারে না, তাই তাকে প্রোগ্রাম করার জন্য এই 1 এবং 0 দিয়েই মেশিন কোডে কিন্তু দুর্বোধ্য নির্দেশনা দিতে হয়। বিষয়টিকে সহজ করার জন্য অনেক প্রোগ্রামিং ভাষা উদ্ভাবন করা হয়েছে, এই ভাষাগুলোতে একজন প্রয়োজনীয় কোড লিখতে পারে যেটি পরবর্তীকালে মেশিন কোডে রূপাস্তুরিত করে কম্পিউটারের কাছে নির্দেশনা হিসেবে পাঠানো হয়। এরকম একটি জনপ্রিয় এবং বহুল ব্যবহৃত কম্পিউটার প্রোগ্রামিংয়ের ভাষা হচ্ছে সি (C)। এই অধ্যায়ে শিক্ষার্থীদের কাছে প্রোগ্রামিংয়ের খুঁটিনাটির সাথে সাথে C ভাষায় প্রোগ্রামিং করার প্রাথমিক বিষয়গুলো তুলে ধরা হয়েছে।

এ অধ্যায় পাঠ শেষে শিক্ষার্থীরা-

  • প্রোগ্রামের ধারণা ব্যাখ্যা করতে পারবে;
  • বিভিন্ন স্তরের প্রোগ্রামিং ভাষা বর্ণনা করতে পারবে।
  • প্রোগ্রামের সংগঠন প্রদর্শন করতে পারবে;
  • প্রোগ্রাম অ্যালগরিদম ও ফ্লো চার্ট প্রস্তুত করতে পারবে;
  • 'সি' প্রোগ্রামিং ভাষা ব্যবহার করে প্রোগ্রাম প্রস্তুত করতে পারবে।

Related Question

View All
উত্তরঃ সংরক্ষিত শব্দ (Reserved Word) হলো এমন শব্দ যা কোনো প্রোগ্রামিং ভাষায় সুনির্দিষ্ট অর্থ বহন করে এবং বিশেষ কোনো কাজ সম্পাদনের জন্য ব্যবহৃত হয়। এই শব্দগুলো ভেরিয়েবল, ফাংশন বা অন্য কোনো ব্যবহারকারীর সংজ্ঞায়িত নাম হিসেবে ব্যবহার করা যায় না।
Satt AI
Satt AI
2 weeks ago
1.5k
উত্তরঃ

K++ (পোস্ট-ইনক্রিমেন্ট) এবং ++K (প্রি-ইনক্রিমেন্ট) উভয়ই C প্রোগ্রামিং ভাষায় ব্যবহৃত ইনক্রিমেন্ট অপারেটর, যা একটি ভেরিয়েবলের (variable) মান ১ বৃদ্ধি করে। K++ অপারেটরের ক্ষেত্রে, প্রথমে ভেরিয়েবলের বর্তমান মান ব্যবহার করা হয় এবং তারপর তার মান ১ বৃদ্ধি করা হয়। অন্যদিকে, ++K অপারেটরের ক্ষেত্রে, প্রথমে ভেরিয়েবলের মান ১ বৃদ্ধি করা হয় এবং তারপর সেই বর্ধিত মান ব্যবহার করা হয়।

এই দুটি অপারেটরের মূল পার্থক্য তাদের কার্যকারিতার ক্রমের মধ্যে। যখন একটি এক্সপ্রেশনের (expression) মধ্যে এই অপারেটরগুলো ব্যবহার করা হয়, তখন K++ এর ক্ষেত্রে ভেরিয়েবলের মান প্রথমে ব্যবহার করা হয় এবং তারপর সেটি ইনক্রিমেন্ট করা হয়। পক্ষান্তরে, ++K এর ক্ষেত্রে ভেরিয়েবলের মান এক্সপ্রেশনের মধ্যে ব্যবহারের পূর্বেই ইনক্রিমেন্ট করা হয়। যেমন, যদি K=5 হয়, তাহলে `y = K++` স্টেটমেন্টে `y` এর মান হবে 5 এবং K এর মান হবে 6। কিন্তু `y = ++K` স্টেটমেন্টে `y` এর মান হবে 6 এবং K এর মানও হবে 6।

Satt AI
Satt AI
2 weeks ago
1.1k
উত্তরঃ স্ট্রিং

ক্যারেক্টার টাইপের অ্যারে হলো মেমরি লোকেশনের একটি ক্রম যেখানে প্রতিটি উপাদান একটি ক্যারেক্টার (বর্ণ, সংখ্যা বা প্রতীক) ধারণ করে। প্রোগ্রামিংয়ে, বিশেষ করে C/C++ এর মতো ভাষায়, ক্যারেক্টার অ্যারের মাধ্যমে স্ট্রিং (String) তৈরি করা হয়। একটি স্ট্রিং সাধারণত একটি নাল ক্যারেক্টার (\0) দ্বারা শেষ হয় যা স্ট্রিংয়ের শেষ নির্দেশ করে এবং এর দৈর্ঘ্য নির্ধারণ করে।

Satt AI
Satt AI
2 weeks ago
1.2k
উত্তরঃ

সি প্রোগ্রামিং ভাষায় একটি ইন্টিজার (int) ভ্যারিয়েবলে সাধারণত সর্বোচ্চ ১০ অঙ্কের সংখ্যা রাখা যায়। এটি সিস্টেমের আর্কিটেকচার এবং কম্পাইলারের উপর নির্ভর করে, তবে আধুনিক কম্পিউটার সিস্টেমে 32-বিট int ডেটা টাইপ -2,147,483,648 থেকে +2,147,483,647 পর্যন্ত মান সংরক্ষণ করতে পারে।

একটি ইন্টিজার ভ্যারিয়েবলের ধারণক্ষমতা তার জন্য বরাদ্দকৃত মেমরি স্পেসের (যেমন: 2 বাইট বা 4 বাইট) উপর নির্ভর করে। 4 বাইট বা 32-বিট ইন্টিজারের ক্ষেত্রে, এর সর্বোচ্চ ধনাত্মক মান হয় 2,147,483,647, যা মোট ১০টি অঙ্ক ধারণ করে। যদি 16-বিট ইন্টিজার হয়, তবে এটি সর্বোচ্চ 5 অঙ্কের সংখ্যা (32,767) ধারণ করতে পারে।

Satt AI
Satt AI
2 weeks ago
838
শিক্ষকদের জন্য বিশেষভাবে তৈরি

১ ক্লিকে প্রশ্ন, শীট, সাজেশন
অনলাইন পরীক্ষা তৈরির সফটওয়্যার!

শুধু প্রশ্ন সিলেক্ট করুন — প্রশ্নপত্র অটোমেটিক তৈরি!

প্রশ্ন এডিট করা যাবে
জলছাপ দেয়া যাবে
ঠিকানা যুক্ত করা যাবে
Logo, Motto যুক্ত হবে
অটো প্রতিষ্ঠানের নাম
অটো সময়, পূর্ণমান
প্রশ্ন এডিট করা যাবে
জলছাপ দেয়া যাবে
ঠিকানা যুক্ত করা যাবে
Logo, Motto যুক্ত হবে
অটো প্রতিষ্ঠানের নাম
অটো সময়, পূর্ণমান
অটো নির্দেশনা (এডিটযোগ্য)
অটো বিষয় ও অধ্যায়
OMR সংযুক্ত করা যাবে
ফন্ট, কলাম, ডিভাইডার
প্রশ্ন/অপশন স্টাইল পরিবর্তন
সেট কোড, বিষয় কোড
অটো নির্দেশনা (এডিটযোগ্য)
অটো বিষয় ও অধ্যায়
OMR সংযুক্ত করা যাবে
ফন্ট, কলাম, ডিভাইডার
প্রশ্ন/অপশন স্টাইল পরিবর্তন
সেট কোড, বিষয় কোড
এখনই শুরু করুন ডেমো দেখুন
৫০,০০০+
শিক্ষক
৩০ লক্ষ+
প্রশ্নপত্র
মাত্র ১৫ পয়সায় প্রশ্নপত্র
১ ক্লিকে প্রশ্ন, শীট, সাজেশন তৈরি করুন আজই

Complete Exam
Preparation

Learn, practice, analyse and improve

1M+ downloads
4.6 · 8k+ Reviews