নিচের উদ্দীপকের পড়ঃ #include #include void main( ) int n, i, s; scanf("%d", & n); s = 0; for (i=1;i<=n;i++); s=s+i; printf("%d", s); getch ( ); 10 সংখ্যাটি ঠিক রেখে ফলাফল 385 পেতে লুপ স্টেটমেন্টে কী ধরনের পরিবর্তন করতে হবে?
ক. s=s*i
খ. s=s+i*i
গ. s=s+i*i*i
ঘ. s=s+i*i*i*i
উত্তর: s=s+i*i
ব্যাখ্যা: প্রদত্ত কোডটি একটি লুপিং সমস্যা দেখাচ্ছে যেখানে `for` লুপের পরে সেমিকোলন (;) থাকায় লুপটি একবারও এক্সিকিউট হবে না। ফলে `s` এর মান `0` থাকবে। প্রশ্নানুসারে, `n=10` হলে ফলাফল `385` পেতে হলে, `s` এর সাথে `i*i` যোগ করতে হবে। অর্থাৎ, `s = s + i*i;` করতে হবে। এটি 1 থেকে 10 পর্যন্ত সংখ্যাগুলোর বর্গের যোগফল বের করবে। 1 থেকে [গণিত] পর্যন্ত সংখ্যাগুলোর বর্গের যোগফল নির্ণয়ের সূত্র হলো: [গণিত] যখন [গণিত] , তখন যোগফল হবে: [গণিত] সুতরাং, `s=s+i*i;` পরিবর্তনটি সঠিক। অন্যান্য বিকল্পগুলো কেন ভুল: A) `s=s*i;` করলে গুণফল বের হবে, যোগফল নয়। C) `s=s+i*i*i;` করলে 1 থেকে 10 পর্যন্ত সংখ্যাগুলোর ঘনের যোগফল বের হবে, যার মান 3025। D) `s=s+i*i*i*i;` করলে 1 থেকে 10 পর্যন্ত সংখ্যাগুলোর চতুর্থ ঘাতের যোগফল বের হবে, যার মান 25333।
HSC ICT Chapter 5 : প্রোগ্রামিং ভাষা MCQ — Prosthuti প্রশ্নব্যাংক
HSC · ICT · Chapter 5 : প্রোগ্রামিং ভাষা · MCQ
নিচের উদ্দীপকের পড়ঃ #include #include void main( ) { int n, i, s; {scanf("%d", & n); s = 0; for (i=1;i<=n;i++); s=s+i; printf("%d", s); getch ( ); } 10 সংখ্যাটি ঠিক রেখে ফলাফল 385 পেতে লুপ স্টেটমেন্টে কী ধরনের পরিবর্তন করতে হবে?
- ক.s=s*i
- খ.s=s+i*i
- গ.s=s+i*i*i
- ঘ.s=s+i*i*i*i
উত্তর