Programming language cq : এইচএসসি শিক্ষার্থীরা তোমাদের জন্য প্রোগ্রামিং ভাষার গুরুত্বপূর্ণ সৃজনশীল প্রশ্ন ও উত্তর সহ দিয়েছি।
অনুশীলন প্রশ্ন ১ (উত্তরসহ)
একটি ঝুড়িতে ২০টি আপেল আছে। এর মধ্যে আমরা ৩টি আপেলের ওজন মেপে পেলাম যথাক্রমে ১৫০ গ্রাম, ১৭৫ গ্রাম, ২১০ গ্রাম।
ক. চলক কী?
খ. ইন্টারপ্রেটারের তুলনায় কম্পাইলার সুবিধাজনক কথাটি ব্যাখ্যা কর।
গ. উদ্দীপকের আলোকে আপেল ৩টির গড় ওজন নির্ণয়ের জন্য ফ্লোচার্ট অঙ্কন কর।
ঘ. গড় ওজনের ভিত্তিতে ২০টি আপেলের মোট ওজন নির্ণয়ের জন্য C ভাষায় একটি প্রোগ্রাম লিখ।
প্রশ্নের উত্তর
ক) সি ভাষায় মেমোরিতে ডেটা সংরক্ষণ করতে যে নাম ব্যবহৃত হয় তাকে বলা হয় চলক। / যার মান পরিবর্তনশীল তাকে চলক বলে।
খ) ইন্টারপ্রেটারের তুলনায় কম্পাইলার সুবিধাজনক । কারণ—
১. কম্পাইলার প্রথমে পুরো প্রোগ্রামটি কম্পাইল করে মেশিন কোডে / object file-এ রূপান্তর করে। পক্ষান্তরে ইন্টারপ্রেটার পুরো প্রোগ্রাম পরীক্ষা না করে প্রোগ্রামের প্রতিটি স্টেটমেন্ট মেশিন কোডে / অবজেক্ট প্রোগ্রামে রূপান্তর করে। ২. কম্পাইল করার পর প্রোগ্রামগুলো অনেক দ্রুত গতিতে কাজ করে। পক্ষান্তরে ইন্টারপ্রেটার একটি একটি করে স্টেটমেন্ট না লাইন মেশিন কোডে/ মেশিন ভাষায়/ অবজেক্ট ফাইলে রূপান্তরিত হয় বলে সময় বেশি লাগে।
গ) উদ্দীপকের আলোকে মনে করি, তিনটি আপেলের ওজন যথাক্রমে a = 150, b = 175, c = 210
ফ্লোচার্ট :
ঘ) গড় ওজনের ভিত্তিতে ২০টি আপেলের মোট ওজন নির্ণয়ের জন্য
C ভাষায় প্রোগ্রাম নিচে দেওয়া হলো
#include <stdio.h>
#include <conio.h>
main() / int main() / void main()
{ int a, b, c;
float average, total_weight;
printf(“Enter weight of three apples: “);
scanf(“%d%d %d”, &a, &b, &c);
average = (a+b+c)/3;
total_weight = average *20;
printf(“total_weight = %fn”, total_weight);
return 0; / getch();
}
programming language cq
অনুশীলন প্রশ্ন ২ (উত্তরসহ)
নিচের উদ্দীপকটি লক্ষ কর এবং প্রশ্নগুলোর উত্তর দাও :
#include<stdio.h>
#include<conio.h>
main()
{
int a, s, n;
s = 0;
printf(“value of n :”);
scanf(“%d”, & n);
for ( a = 1; a<=n a++)
{ s=s+a*a; }
printf(“sum : %d”, s);
getch();
}
ক. 4 GL কী?
খ. C-একটি কেস সেনসেটিভ ভাষা- কথাটি ব্যাখ্যা কর।
গ. উদ্দীপকের ধারাটির যোগফল নির্ণয়ের জন্য অ্যালগরিদম লিখ।
ঘ. উদ্দীপকে for লুপের পরিবর্তে Dowhile লুপ ব্যবহার করলে প্রোগ্রামটিতে কি পরিবর্তন করতে হবে বিশ্লেষণ কর।
প্রশ্নের উত্তর
ক) যে প্রোগ্রামিং ভাষাগুলো মানুষের ভাষার কিছুটা কাছাকাছি, সে ভাষাগুলোই হলো চতুর্থ প্রজন্মের ভাষা বা 4GL। / চতুর্থ প্রজন্মের ভাষাকে 4GL বলে।
খ) সি ভাষায় সাধারণত সব প্রোগ্রাম ছোট হাতের অক্ষরে লেখা হয়। অর্থাৎ সি প্রোগ্রামে ছোট হাতের অক্ষর ও বড় হাতের অক্ষরের মধ্যে পার্থক্য পরিলক্ষিত হয়। এ ভাষায় প্রোগ্রাম সব সময় ছোট হাতের অক্ষরে লিখতে হয়। এজন্য C কে একটি কেস সেনসেটিভ ভাষা বলা হয়।
উদ্দীপকের ধারাটির যোগফল নির্ণয়ের অ্যালগরিদম :
ধাপ- ১ : শুরু করি।
ধাপ-২: n এর মান ইনপুট করি।
ধাপ- ৩ : যোগফলের জন্য s = 0 এবং চলক ও 1 ব্যবহার করা হয়েছে।
ধাপ- ৪ : যদি a <= n হয় তাহলে ৫নং ধাপে গমন করি; অন্যথায় ৭নং ধাপে গমন করি ।
ধাপ-৫: s= s+a*a
ধাপ- ৬ : a = a + 1 (a এর মান বৃদ্ধি করি) এবং পুনরায় ৪নং ধাপে যাই।
. ধাপ- ৭ : যোগফল প্রিন্ট করি।
ধাপ- ৮ : শেষ করি।
বিকল্পঃ
i)start
ii) input n
iii) a=1
iv) s=0
v) is(a<=n)
a)yes, repeat steps 6 & 7
b) No, go to step 8
vi) s=s+a*a
vii) a++
viii) print s
ix) End
ঘ) উদ্দীপকে for লুপের পরিবর্তে Do….while লুপ ব্যবহার করলে প্রোগ্রামটিতে যে পরিবর্তন করতে হবে তা নিচে বিশ্লেষণ করে দেখানো হলো-
#include<stdio.h>
#include<conio.h>
main()
{ int a, s, n;
s=0;
a = 1;
printf(“Value of n:”);
scanf(“%d”, &n);
do
{
s=s+a*a;
a= a+1;
}
while (a<=n);
printf(“Sum: %d”, s);
getch();
}
programming language cq
অনুশীলন প্রশ্ন ৩ (উত্তরসহ)
# include<stdio.h>
# include<conio.h>
main()
{ int a, s;
s = 0;
for ( a = 1; a <= 30; a + = 2)
{
s=s+a;
}
printf(“sum = %d”, s );
return 0; / getch ();
}
ক. সংরক্ষিত শব্দ কী?
খ. K++ ও + + K ব্যাখ্যা কর।
গ. উদ্দীপকের প্রোগ্রামটির জন্য একটি প্রবাহচিত্র অঙ্কন কর।
ঘ. উদ্দীপকের প্রোগ্রামটি while লুপ ব্যবহার করে তৈরি করা সম্ভব কি-না- বিশ্লেষণ কর।
প্রশ্নের উত্তর
ক) প্রত্যেক প্রোগ্রামিং ভাষায় কতকগুলো শব্দ আছে যা ঐ প্রোগ্রামিং এ কাজ করার সময় ব্যবহার করা হয়। এই সকল নির্ধারিত শব্দগুলোকে সংরক্ষিত শব্দ বলা হয় ।
খ) K++: K++ এর ক্ষেত্রে কম্পাইলার প্রথমে প্রোগ্রামে K এর পুরাতন মান ব্যবহার করে। অতঃপর ভেরিয়েবলের মানের সাথে যথাক্রমে এক যোগ করে। এই নতুন মান পরবর্তী স্টেটমেন্ট ধাপ থেকে কার্যকর হয়।
++K: ++ K এর ক্ষেত্রে কম্পাইলার প্রথমে K এর প্রারম্ভিক মানের সাথে যথাক্রমে এক যোগ করে। অতঃপর প্রোগ্রামের একই স্টেটমেন্ট এ বর্ধিত মান ব্যবহার করে।
গ) উদ্দীপকের প্রোগ্রামের আলোকে ফ্লোচার্ট :
ঘ) উদ্দীপকের প্রোগ্রামটি while লুপ স্টেটমেন্ট ব্যবহার করে তৈরি করা সম্ভব।
#include <stdio.h>
#include <conio.h>
main()
{ int a, s;
a=1;
s=0;
while (a <= 30 )
{
s=s+a;
a+=2;
}
printf(“Sum=%d”, s);
getch();
}
programming language cq
Read More:
অনুশীলন প্রশ্ন ৪ (উত্তরসহ)
#include<stdio.h>
void main()
{ int i;
for (i=20; i<=50; i=i+5)
printf(“%d”, i);
}
ক. সুডোকোড কী?
খ. Variable ++ এবং ++ variable এক নয় ব্যাখ্যা কর।
গ. উদ্দীপকের প্রোগ্রামটিতে যে লুপ ব্যবহৃত হয়েছে, তার গঠন দেখাও।
ঘ. উদ্দীপক প্রোগ্রামটির আউটপুট দেখাও এবং ব্যাখ্যা কর।
প্রশ্নের উত্তর
ক) প্রোগ্রামের ধরন ও কার্যপ্রণালি সম্পার্কত কিছু সংখ্যক নির্দেশ বা স্টেটমেন্টের সমন্বয়কে সুডোকোড বলে। অথবা অ্যালগরিদমের পূর্ব প্রস্তুতিকে সুডোকোড বলে।
খ) সি প্রোগ্রামে Variable ++ এবং ++Variable এক নয়। কারণ পোস্টফিক্স বা Variable++ এর ক্ষেত্রে কম্পাইলার প্রথমে প্রোগ্রামে ভেরিয়েবলের পুরাতন মান ব্যবহার করে। অতঃপর ভেরিয়েবলের মানের সাথে যথাক্রমে এক যোগ বা বিয়োগ করে। এ নতুন মান পরবর্তী ধাপে কার্যকর হয়। কিন্তু প্রিফিক্স বা ++Variable এর ক্ষেত্রে কম্পাইলার প্রথমে ভেরিয়েবলের প্রারম্ভিক মানের সাথে যথাক্রমে এক যোগ বা বিয়োগ করে। অতএব প্রোগ্রামের একই স্টেটমেন্ট এ বর্ধিত মান ব্যবহার করে।
গ) উদ্দীপকের for loop স্টেটমেন্টের গঠন :
for (Initialization; Condition; increment/ decrement)
{
statement;
}
এ স্টেটমেন্টে– (i) Initialization অংশে চলকের একটি প্রাথমিক মান দেওয়া হয়।
(ii) Condition অংশে চলকের চূড়ান্ত মান নির্ধারণের শর্ত দেওয়া থাকে। অর্থাৎ কতবার লুপে আবর্তিত হবে তার শর্ত দেওয়া থাকে।
(iii) increment/decrement অংশে চলকের মান হ্রাস-বৃদ্ধি করা হয়।
ঘ উদ্দীপকের প্রোগ্রামটি হলো
#include<stdio.h>
void main()
{ int i;
for(i= 20; i <= 50; i = i+5)
{
printf(“%d”, i);
}
}
এখানে i একটি ইন্টিজার ভেরিয়েবল। for লুপের মধ্যে i এর প্রাথমিক মান ধরা হয়েছে 20 এবং প্রতিবার 5 করে বৃদ্ধি পাবে। এভাবে বৃদ্ধি পেতে পেতে 50 পর্যন্ত এসে থেমে যাবে।
সবশেষে printf(“%d”, i);
স্টেটমেন্টটি দ্বারা উক্ত চলকের মান আউটপুট দেখাবে। অর্থাৎ, প্রোগ্রামিং এর আউটপুট হবে ২০,২৫,৩০,৩৫,৪০,৪৫,৫০
programming language cq
অনুশীলন প্রশ্ন ৫ (উত্তরসহ)
#Include (stdio.h)
void main()
{
int i, S = 0;
Printf(“Enter last number-“);
Scanf(“%d”, n) ;
i = 10;
while (i<=n)
{
S=S+i
i=i+ 10
}
Print f(“Sum = %d” s);
}
ক. হেডার ফাইল কী?
খ. C ও C++ এর মধ্যে ভিন্নতা কী? ব্যাখ্যা কর।
গ. উদ্দীপক প্রোগ্রামটি ডিবাগিং কর।
ঘ. উদ্দীপক প্রোগ্রামটি goto লুপ দিয়ে বাস্তবায়ন সম্ভব দেখাও।
প্রশ্নের উত্তর
ক) সি প্রোগ্রামে ব্যবহৃত ফাংশন যে ফাইলে থাকে তাই হলো হেডার ফাইল।
খ) C এবং C++ এর মধ্যে ভিন্নতা লক্ষ করা যায়। যেমনঃ
১. C একটি সাধারণভাবে ব্যবহারের উপযোগী প্রোগ্রামিং ভাষা । C থেকে C++ এর উৎপত্তি।
২. C ভাষাকে প্রোগ্রামিং ভাষার জনক বলা হয়। C এর উন্নত ভার্সন C++
৩. C হলো স্ট্রাকচার্ড প্রোগ্রামিং ভাষা। C++ হলো অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষা।
গ) উদ্দীপকের প্রোগ্রামটিতে যেসব বাগ রয়েছে তা নিচে দেখানো হলোঃ
#Include(stdio.h) : Include এ I বড় হাতের ব্যবহৃত হয়েছে এবং stdio.h এ () ব্যবহৃত হয়েছে।
Printf(“Enter last number = “): Printf এর বড় হাতের ব্যবহৃত হয়েছে এবং স্টেটমেন্টের শেষে সেমিকোলন (;) ব্যবহার করা। হয় নি।
Scanf(“%d”, n) : Scanf এর S বড় হাতের ব্যবহৃত হয়েছে এবং n ও f এর মধ্যে ফাকা স্পেস রয়েছে। n এর পূর্বে & অপারেটর ব্যবহৃত হয় নি। স্টেটমেন্টের শেষে সেমিকোলন (;) ব্যবহৃত হয় নি। I = 10; : ভেরিয়েবল । প্রথমে ডিক্লেয়ার করা হয়েছে কিন্তু ব্যবহৃত হয়েছে।
while (i<=n) : প্রথমে ভেরিয়েবল n ডিক্লেয়ার করা হয় নি। s=s+i: স্টেটমেন্টের শেষে সেমিকোলন (:) ব্যবহৃত হয় নি।
i = i + 10 : স্টেটমেন্টের শেষে সেমিকোলন (;) ব্যবহৃত হয় নি। Printf(“sum = %d” s) : Print f এর P বড় হাতের এবংt ও f এর মধ্যে ফাকা স্পেস রয়েছে। ” ” এর পরে কম (,) ব্যবহৃত হয় নি। স্টেটমেন্টের শেষে সেমিকোলন (;) ব্যবহৃত হয় নি।
উদ্দীপকের প্রোগ্রামটি ডিবাগিং বা ভুল ঠিক করে লেখা হলো :
.#include <stdio.h>
int main()
{
int i, n, s;
s=0;
i=10;
printf(“Enter last number–“);
scanf(“%d”, &n);
while (a<=n)
{
S = S+i ;
i = i+10;
}
printf(“Sum= %d”, s);
return 0;
}
ঘ) উদ্দীপকের প্রোগ্রামটি goto লুপ দিয়ে বাস্তবায়ন করা হলো :
#include <stdio.h>
int main()
{
int i, n, s;
s = 0;
printf(“Enter last number = “);
scanf(“%d”, &n);
i = 10;
again: s = s+i;
i = i+ 10;
if ( i <=n) goto again;
printf(“Sum = %d”, s ) ;
return 0;
}
programming language cq
অনুশীলন প্রশ্ন ৬ (উত্তরসহ)
দুটি সংখ্যার যোগফল নির্ণয়ের প্রোগ্রাম লক্ষ কর :
.#include <stdio.h>
main ()
{
int a = 10, b= 15;
int c = a +b;
printf(“%d”,c);
}
প্রোগ্রাম-০১
#include<stdio.h>
main( )
{
int a, b, c;
scanf(“%d %d”, &a, &b);
c=a+b;
printf(“%d”, c);
}
প্রোগ্রাম-২
ক. ধ্রুবক কী?
খ. scanf(“%f”, &a); স্টেটমেন্টটি ব্যাখ্যা কর।
গ. প্রোগ্রাম-১ এর প্রবাহচিত্র অঙ্কন কর।
ঘ. প্রোগ্রাম-১ ও প্রোগ্রাম-২ এর মধ্যে কোনটিকে তুমি উত্তম বলে মনে কর? বিশ্লেষণপূর্বক মতামত দাও।
প্রশ্নের উত্তর
ক) C প্রোগ্রামে এমন কিছু মান আছে যেগুলো কোনো সময়ই পরিবর্তিত হয় না। প্রোগ্রামে উল্লেখ করে দিলে সেই মান একই থাকে এবং এর কোনোরূপ পরিবর্তন হয় না। এ সমস্ত মানকে C ভাষায় ধ্রুবক বলে।
খ) scanf(“%lf”, &a); স্টেটমেন্টটি ইনপুটের যান গ্রহণের জন্য ব্যবহৃত হয়। প্রোগ্রামটি রান করালে Key board থেকে ইনপুটের মান গ্রহণ করে। এখানে, “%f” হলো float ডেটা টাইপের format specification, & a হলো Address of a যা float টাইপের ভেরিয়েবলের মেমোরি লোকেশন। যেখানে ডেটা সংরক্ষিত হবে।
গ) প্রোগ্রাম-১ এর প্রবাহচিত্র নিচে অঙ্কন করে দেখানো হলো–
ঘ) উদ্দীপকের প্রোগ্রামে-১ এ a ও b এর মান নির্দিষ্ট করে দেওয়াতে শুধুমাত্র 10 ও 15 এর যোগফল নির্ণয় করা যাচ্ছে। মান নির্দিষ্ট করার ফলে অন্য কোনো মান নেওয়া যাবে না।
অপরদিকে প্রোগ্রাম-২ এ a ও b এর মান কী-বোর্ড থেকে দেওয়ার ব্যবস্থা আছে। ফলে প্রোগ্রাম-২ এ একাধিক বার ইচ্ছেমতো ইনপুট নিয়ে যোগফল নির্ণয় করা যাবে।
অতএব প্রথম প্রোগ্রামটি স্ট্যাটিক এবং দ্বিতীয় প্রোগ্রামটি ডাইনামিক। তাই প্রোগ্রাম-১ ও প্রোগ্রাম-২ এর মধ্যে প্রোগ্রাম-২ উত্তম বলে আমি মনে করি।
programming language cq
অনুশীলন প্রশ্ন ৭(উত্তরসহ)
মি. x পহেলা ডিসেম্বর ২০১৮ তারিখে চাকুরিতে যোগদান করেন। উক্ত প্রতিষ্ঠানে এমন একটি কমিউনিকেশন মাধ্যম তৈরি করা হয়, যা আলোর গতিতে ডেটা ট্রান্সমিট করতে পারে। মি. x এর চাকুরিটি চুক্তিভিত্তিক হওয়ায় প্রতি 4 (চার) 1 পর পর অফিসে যেতে হয়।
ক. ডেটা কমিউনিকেশন কী?
খ. নিচের চলকগুলো শুদ্ধ নয় কেন ব্যাখ্যা কর :
ab-c, main, int, 2abe.
গ. উক্ত কমিউনিকেশন মাধ্যমটির গঠন বর্ণনা কর।
ঘ. প্রথম মাসে মি. x যে তারিখগুলোতে অফিস করবে তা প্রদর্শনের জন্য ‘সি’ ভাষায় প্রোগ্রাম লেখ।
প্রশ্নের উত্তর
ক) ডেটা কমিউনিকেশন বলতে দুই বা ততোধিক কম্পিউটার পয়েন্টের মধ্যে ডিজিটাল ইনফরমেশন স্থানান্তরের প্রক্রিয়াকে বোঝায়।
খ) ab – c চলকটি শুদ্ধ নয় কারণ চলকে underscore ( এ ছাড়া অন্য কোনো বিশেষ অক্ষর যেমন— @, #, – ইত্যাদি ব্যবহার করা যায় না। main একটি ইউজার ডিফাইন্ড ফাংশন এবং int একটি কী-ওয়ার্ড তাই এগুলো শুদ্ধ চলক নয়। চলক লিখতে যে কোনো বর্ণ বা অক ব্যবহার করা যায়। তবে, প্রথম অক্ষর অঙ্ক হতে পারবে না, তাই 2abe শুদ্ধ চলক নয়।
গ) উদ্দীপকে কমিউনিকেশন মাধ্যমটি আলোর গতিতে ডেটা ট্রান্সমিট করতে পারে অর্থাৎ কমিউনিকেশন মাধ্যমটি হচ্ছে ফাইবার অপটিক ক্যাবল। নিচে ফাইবার অপটিক ক্যাবলের গঠন বর্ণনা করা হলোঅপটিক্যাল ফাইবার অপটিক ক্যাবল তিনটি অংশের সমন্বয়ে গঠিত। অংশ তিনটি হলো– ক. কোর, খ. ক্লাডিং এবং গ. জ্যাকেট। কোর: ফাইবার অপটিক ক্যাবলের সবচেয়ে ভিতরের অংশটি হচ্ছে কোর যা কাচ বা প্লাস্টিকের তৈরি এক বা একাধিক আঁশের সমন্বয়ে গঠিত। কোরের প্রতিসরাঙ্ক ক্ল্যাড এর প্রতিসরাঙ্কের তুলনায় বেশি হয় ফলে কোরের মধ্য দিয়ে পূর্ণ অভ্যন্তরীণ প্রতিফলনের মাধ্যমে আলোর গতিতে ডেটা ট্রান্সফার হয়। আলোক সিগন্যাল সালনের প্রধান কাজটি কোর করে থাকে। কোরের ব্যাস ৪ থেকে 100 মাইক্রন পর্যন্ত হয়ে থাকে।
ক্ল্যাড : কোরের ঠিক বাইরের স্তরটি হচ্ছে ক্ল্যাড। ক্ল্যাড এর ব্যাস 125 মাইক্রোমিটার। ক্ল্যাড কাচ বা প্লাস্টিকের তৈরি যা কোর থেকে নির্গত আলোক রশ্মি প্রতিফলিত হয়ে পুনরায় কোরে ফেরত পাঠায়।
জ্যাকেট : বাইরের অংশটি হলো জ্যাকেট। যা ক্ল্যাড ও কোরকে আবৃত করে রাখে। জ্যাকেট এর ব্যাস 400 মাইক্রোমিটার। (উল্লেখ্য 1 মাইক্রোমিটার = 10-6 মিটার)।
ঘ ) মি. x পহেলা ডিসেম্বর ২০১৮ তারিখে চাকুরিতে যোগদান করেন। চাকুরিটি চুক্তিভিত্তিক হওয়ায় প্রতি 4 দিন পর পর অফিস যেতে হয়। অর্থাৎ প্রথম মাসে মি. X যে তারিখগুলোতে অফিস করবে সে তারিখগুলো হলো 1 5 9 13 17 21 25 29
নিচে এ তারিখগুলো প্রদর্শনের জন্য C ভাষায় প্রোগ্রাম লিখা হলো
#include <stdio.h>
int main()
{
int n, i,
printf(“Enter a number: “);
scanf(“%d”, &n);
for (i=1;i<=n; i=i+ 4)
{
printf(“%d”, i),
}
return 0;
}
programming language cq
অনুশীলন প্রশ্ন ৮ (উত্তরসহ)
(90)² + (80)² + (70)² + ………+(20)²
ক. কী ওয়ার্ড কী?
খ. সি ভাষায় ‘Inumber সঠিক চলক নয়- ব্যাখ্যা কর।
গ. উদ্দীপকের সিরিজটির জন্য অ্যালগরিদম লিখ।
ঘ. উদ্দীপকের সিরিজটির জন্য if এবং goto স্টেটমেন্ট ব্যবহার করে সি ভাষায় প্রোগ্রাম লিখ।
প্রশ্নের উত্তর
ক) কি-ওয়ার্ড হলো সি প্রোগ্রামিং ভাষায় ব্যবহৃত বেশ কিছু সংরক্ষিত শব্দ।
খ) সি ভাষায় চলকের নামে কেবল বর্ণ, অঙ্ক এবং আন্ডারস্কোর চিহ্ন ( _ ) ব্যবহার করা যায়। তবে নামের প্রথম অক্ষরটি কোনো অঙ্ক হতে পারবে না। কিন্তু ‘1number’ চলকে প্রথম অক্ষরটি অঙ্ক ব্যবহার করা হয়েছে। তাই সি ভাষায় ‘1numier সঠিক চলক নয়।
গ) (90)² + (80)² +(70)² + …………+(20)² নির্ণয়ের অ্যালগরিদম :
ধাপ ১: শুরু কর
ধাপ- ২: n= 20 এর মান ইনপুট করি।
ধাপ- ৩: যোগফলের জন্য S=0 এবং চলক i= 90 ব্যবহার করা হয়েছে।
ধাপ- ৪ : যদি i>= 20 হয় তাহলে ৫ ও ৬ নং ধাপে গমন করো।
অন্যথায় ৭নং ধাপে গমন কর।
ধাপ-৫: S= S+i*i
ধাপ- ৬ : i = i- 10 (i এর মান হ্রাস করি এবং পুনরায় ৪নং ধাপে যাও।)
ধাপ- ৭: S এর মান প্রিন্ট কর।
ধাপ- ৮ : শেষ কর।
বিকল্প
i) start
ii) input n= 20
iii) S=0
iv) i= 90
v) is( i>=20)
a) yes, repeat steps 6 and 7
b) No, go to step 8
vi) S= S+i*i
vii) i = i-10
viii) Print s
ix) End
ঘ উদ্দীপকের প্রোগ্রামটি if এবং goto স্টেটমেন্ট ব্যবহার করে প্রোগ্রাম :
#include <stdio.h>
int main()
{
inti,n,s:
s= 0;
printf(“Enter value of n: “);
scanf(“%d”, &n);
i = 90;
again:
s=s+i*i;
.printf(“%d” s);
i = i-10;
if (i>= 20) goto again:
return 0;
}
output: 28400
programming language cq
অনুশীলন প্রশ্ন ১০ (উত্তরসহ)
#include<stdio.h>
#include<conio.h>
#include math.h>
void main()
{int i, n, sum;
printf(“Enter the value of n:”);
scanf(“%d”, &n);
sum = 0;
for(i=1; i<=n; i++)
{if (i==3) continue;
sum= sum+pow(i,2);
}
printf (“\n Result=%d”, sum);
getch ( );
}
ক run time এরর কী ?
খ. চলকের নামে আন্ডারস্কোর ব্যবহার করা যাবে বুঝিয়ে লেখ।
গ. উদ্দীপকে উল্লিখিত প্রোগ্রামটির অ্যালগরিদম লেখ।
ঘ. n এর মান 5 হলে উদ্দীপকের প্রোগ্রামটির ফলাফল বিশ্লেষণ কর।
প্রশ্নের উত্তর
ক) প্রোগ্রাম নির্বাহের সময় ভুল ডেটা ইনপুট দিলে আউটপুট বা ফলাফল ভুল আসবে অথবা প্রোগ্রাম নির্বাহ হবে না। এ ধরনের ভুলকে রান টাইম এরর বলে।
খ) সি প্রোগ্রামে চলকের নাম লেখার ক্ষেত্রে কিছু নিয়ম কানুন রয়েছে। চলকের নামে বর্ণ, অঙ্ক এবং আন্তারস্কোর চিহ্ন (_) ব্যতীত অন্য কোন চিহ্ন ব্যবহার করা যায় না। তাই চলকের নামে আন্তারস্কোর ব্যবহার করা যাবে।
গ ( উদ্দীপকে উল্লিখিত প্রোগ্রামটির অ্যালগরিদম নিচে দেওয়া হলো :
ধাপ-১: শুরু করি।
ধাপ- ২: n এর মান ইনপুট করি।
ধাপ- ৩ : যোগফলের জন্য sum = 0 এবং চলক i=1 ব্যবহার করা হয়েছে।
ধাপ- ৪ : যদি i <=n হয় তাহলে ৬নং ধাপে গমন করি; অন্যথায় ৮নং ধাপে গমন করি।
ধাপ-৫ : যদি i = 3 হয় তাহলে continue স্টেটমেন্টের কারণে।
শর্তটি এরিয়ে যাবে এবং পুনরায় ৪ নং ধাপে গমন করবে।
ধাপ- ৬ : sum=sum+pow ( i, 2)
ধাপ- ৭: i++ হলে ৪নং ধাপে যাই।
ধাপ- ৮ : যোগফল প্রিন্ট করি।
ধাপ- ৯ : শেষ করি।
Alternative:
i) Start
ii) Input n
iii) s= 0
iv) i= 1
v) is (i < =n)
a) yes, repeat steps 7 and 8
b) No, go to step 8
vi) if (i==3) go to step 5
vii) sum=sum+ pow ( i, 2)
viii) i++
ix) print sum
x) End
ঘ) কোডটিতে n এর মান 5 হলে উদ্দীপকের প্রোগ্রামটির ফলাফল হবে 46।
নিচে ফলাফলটি বিশ্লেষণ করা হলো-
এখানে, sum = 0 এবং i =1 হলে,
sum = sum + pow ( i, 2)
= 0+1²
sum = 1
এখন, sum = 1 এবং i = 2 হলে, sum= sum+pow ( i, 2)
=1+2²
=1+4
sum = 5.
sum 5 এবং i == 3 হলে continue স্টেটমেন্টের জন্য এই ধাপটি যাবে।.
এখন, sum = 5 এবং i =4 হলে, sum= sum +pow ( i,2)
= 5+42 = 5 + 16 = 21
এখন sum = 21 এবং i= 5 হলে, sum = sum + pow (i, 2 )
= 21+5² = 21+25=46 অর্থাৎ n এর মান 5 হলে প্রোগ্রামটির ফলাফল হবে 46
অনুশীলন প্রশ্ন ১১ (উত্তরসহ)
#include<stdio.h>
void main()
{ int i, s = 0;
for (i= 7; i < = 70; i = i + 7)
s = s+i;
printf(“%d”, s);
}
ক. অনুবাদক প্রোগ্রাম কী?
খ. সুডোকোড প্রোগ্রামিং ভাষা নির্ভর নয়- ব্যাখ্যা কর ।
গ. উদ্দীপকের প্রোগ্রামটির ফ্লোচার্ট অঙ্কন কর।
ঘ. উদ্দীপকের প্রোগ্রামটিকে Do… while লুপ দিয়ে এমনভাবে রচনা কর যাতে i-এর সর্বোচ্চ তুলনীয় মান ব্যবহারকারী ইচ্ছামতো দিতে পারবে।
প্রশ্নের উত্তর
ক) অনুবাদক প্রোগ্রাম হলো বিভিন্ন ভাষায় লেখা প্রোগ্রামকে মেশিন কোডে রূপান্তর করার জন্য বিশেষ প্রোগ্রাম।
খ প্রোগ্রামের ধরন এবং কার্যপ্রণালি সম্বলিত কিছু নির্দেশ বা স্টেটমেন্টের সমাবেশকে সুডোকোড বলা হয়। সুডোকোডের মাধ্যমে একটি প্রোগ্রামকে এমনভাবে উপস্থাপন করা হয় যেন সকলে তা সহজে বুঝতে পারে। সুন্দর ও সহজ ইংরেজি ভাষায় সমস্যা সমাধানের প্রতিটি ধাপ বর্ণনা করা থাকে। প্রোগ্রাম রচনার সময় যাতে বার বার বাধাপ্রাপ্ত না হতে হয় বা ভুল-ত্রুটি যাতে না হয় সেজন্য প্রোগ্রাম তৈরির পূর্বেই সুডোকোড রচনা করতে হয়। তাই সুডোকোড প্রোগ্রামিং ভাষা নির্ভর নয়।
গ) উদ্দীপকের আলোকে ধারাটি হবে 7 + 14 + 21 +……. + 70 ধারার যোগফল নির্ণয়ের ফ্লোচার্ট :
ঘ) উদ্দীপকের প্রোগ্রামটি do…while লুপ দিয়ে এমনভাবে রচনা করা হলো যাতে i-এর সর্বোচ্চ তুলনীয় মান ব্যবহারকারী ইচ্ছেমতো দিতে পারবে।
#include <stdio.h>
int main()
{
inti = 7, s, N;
s=0;
printf(“Enter the largest number of N : “);
scanf(“%d”, & N);
do
{
s=s+i;
i=i+7;
}
while (i<=N);
printf(“%d”, s);
return 0;
}
অনুশীলন প্রশ্ন ১২ (উত্তরসহ)
গণিত শিক্ষক ক্লাসে গিয়ে বৃত্তের ক্ষেত্রফল নির্ণয় করার পদ্ধতি শিখালেন। পরবর্তীতে আইসিটি শিক্ষক 3+6+9+ ……. + N সিরিজটির যোগফল প্রোগ্রামিং এর মাধ্যমে শিখালেন। শিক্ষার্থীরা বিষয়গুলো ভালোভাবে বুঝে ক্লাস শেষে বাড়ি চলে গেল।
ক. অ্যালগরিদম কী?
খ. কম্পাইলার সুবিধাজনক কেন? ব্যাখ্যা কর।
গ. গণিত শিক্ষকের শিখানো বিষয়টির ক্ষেত্রফল নির্ণয়ের প্রবাহচিত্র অঙ্কন কর।
ঘ. আইসিটি শিক্ষকের শিখানো বিষয়টি ‘সি’ ভাষায় প্রোগ্রাম লিখ।
প্রশ্নের উত্তর
ক) অ্যালগরিদম হলো প্রোগ্রামিং সমস্যা সমাধানের বিভিন্ন ধাপের লিখিত ও পরিকল্পিত বিবরণ।
‘খ) অনুবাদক প্রোগ্রাম হিসেবে কম্পাইলার সুবিধাজনক কারণ কম্পাইলার পুরো প্রোগ্রাম এক সাথে পরীক্ষা করে ফলে প্রোগ্রাম নির্বাহের গতি দ্রুত হয়। কম্পাইলারের মাধ্যমে রূপান্তরিত প্রোগ্রাম সম্পূর্ণরূপে মেশিন ভাষায় রূপান্তরিত হয়। ফলে একবার প্রোগ্রাম কম্পাইল করা হলে পরবর্তিতে আর কম্পাইল করার কোনো প্রয়োজন হয় না। প্রোগ্রামে কোনো ভুল থাকলে তা মনিটরে একসাথে প্রদর্শন করে। ভুল সংশোধন করার পর প্রোগ্রাম দ্রুত গতিতে কাজ করে।
গ) গণিত শিক্ষক ক্লাসে বৃত্তের ক্ষেত্রফল নির্ণয় করার পদ্ধতি শিখালেন। পার্শ্বে বৃত্তের ক্ষেত্রফল নির্ণয়ের প্রবাহচিত্র অঙ্কন করা হলঃ
ঘ আইসিটি শিক্ষক 3+6+9+ ……. + N সিরিজটির যোগফল প্রোগ্রামিং এর মাধ্যমে শিখালেন। নিচে সিরিজটি ‘সি’ ভাষায় লিখা হলোঃ
#include <stdio.h>
int main()
{ int i, N, s;
s = 0;
printf(“Enter the number of N : “);
scanf(“%d”, &N);
for (i= 3; i <= N; i=i+3)
{
printf(“sum = %d”, s);
return 0;
}
অনুশীলন প্রশ্ন ৯ (উত্তরসহ) বাদ
নিচের উদ্দীপকটি পড় এবং প্রশ্নগুলোর উত্তর দাও :
ধাপ-১: প্রোগ্রাম শুরু।
ধাপ-২: X, Y ও Z এর মান গ্রহণ
ধাপ-৩: সিদ্ধান্ত : X> Y এবং X> Z
(i) হ্যাঁ হলে ধাপ-৪ এ গমন।
(ii) না, হলে ধাপ-৫ এ গমন।
ধাপ-৪: X বড় সংখ্যা ও ছাপ এবং ধাপ-৮ এ গমন।
ধাপ-৫: সিদ্ধান্ত : Y >Z
(i) হ্যাঁ হলে ধাপ-৬ এ গমন।
(ii) না: হলে ধাপ-৭ এ গমন।
ধাপ-৬: Y বড় সংখ্যা ও ছাপ এবং ধাপ-৮ এ গমন।
ধাপ-৭ : Z বড় সংখ্যা ও ছাপ।
ধাপ-৮ : প্রোগ্রাম শেষ ।
ক. চলক কী?
খ. math.h ফাইলটি ব্যাখ্যা কর।
গ. উদ্দীপকটির ফ্লোচার্ট আঁক।
ঘ. উদ্দীপকের সমস্যাটি 10টি সংখ্যার জন্য সি প্রোগ্রাম লিখ
ক) সি ভাষায় মেমোরিতে ডেটা সংরক্ষণ করতে যে নাম ব্যবহৃত তাকে বলা হয় চলক।
খ) math.h একটি লাইব্রেরি হেডার ফাইল;। এটি একটি নির্দিষ্ট নামে লাইব্রেরিতে জমা থাকে এবং প্রয়োজনে সেই ফাংশনের জন্য নির্ধারিত কাজগুলো করা যায়। এ ফাংশনগুলো প্রোগ্রামে একাধিক বার ইচ্ছামতো ব্যবহার করা যায়। math.h হেডার ফাইলের ফাংশনগুলো হলো sqrt(), pow(), sin (), cos(), tan ()
গ) উদ্দীপকের ফ্লোচার্টটি নিম্নরূপ:
ঘ) উদ্দীপকের আলোকে প্রোগ্রামটি নিম্নরূপ:
#include <stdio.h>
int main()
{ int a[10];
int i;
int greatest;
printf(“Enter Ten Values= “);
for (i = 0 ;i< 10; i++)
scanf(“%d”, & a[i] );
{ if (a[i]> greatest) {
greatest = a[i] ;
}
}
printf(“Greatest of ten numbers is %d”, greatest);
return 0;
নিচে অ্যারে ব্যবহারের সার্থকতা যাচাই করা হলো :
১. সমজাতীয় অনেকগুলো ডেটাকে একটিমাত্র চলক দ্বারা প্রকাশ করা যায়।
২. এটি প্রোগ্রামের জটিলতা কমায়।
৩. প্রোগ্রামকে সুন্দর করে ।
৪. অ্যারে ব্যবহার করা সহজ।
programming language cq