Professional Documents
Culture Documents
CP-Computer Programming (Tamim Shariar Subeen)
CP-Computer Programming (Tamim Shariar Subeen)
কম্পিউটাররর জন্ম রেম্পি কম্পিউট বা ম্পাব করার জনয। এখন কম্পিউটারর মানু গান শলারন ,
ম্পরনমা শেরখ, ম্পিম্পি শরখ, শফবুক করর, ইন্টাররনট ঘাাঁটাঘাাঁম্পট করর এমনম্পক িুম্পরিামাম্পর পযযন্ত করর
ম্পকন্তু ম্পাব করর না! অথি কম্পিউটারর কম্পিউট করার মরো আনন্দ আর ম্পকিুরে নে , শম্পট করার
জনয শযম্পট জানা েরকার, শম্পট রে একটুখাম্পন শরাগ্রাম্পমিং।
ম্পিক এরকম মে আমার িাত্র ুম্পবরনর এই পাণ্ডুম্পম্পপম্পট আমার শিারখ পরড়রি। আম্পম অবাক রে
ক্ষ করাম , আম্পম শয ম্পজম্পনম্পট কররে শিরেম্পিাম ুম্পবন ম্পিক শম্পটই করর শররখরি ! স্কু-
কররজর শিররমরেরের জনয একম্পট শরাগ্রাম্পমিংরের বই ম্পরখরি , খুব জ ভাাে, খুব ুন্দর করর
গুম্পিরে।
আম্পম োর এই িমৎকার বইম্পটর াফয কামনা কম্পর। শিররমরেরা গান শলানা , ম্পরনমা শেখা, ম্পিম্পি
শখা, শফবুক করা, ইন্টাররনট ঘাাঁটাঘাাঁম্পট করার পালাপাম্পল আবার কম্পিউটাররর মূ জােগাে ম্পফরর
আুক – শই রেযালাে থাকাম।
এই বইগ আমরো প্রোগ্রোমমিংগয়র প্মৌমক মকছু মজমন্ প্লিোর প্চষ্টো করব এবিং প্রোগ্রোমগুগো আমরো
মিব ম যোঙ্গুগয়জ বযবোর কগর। আমম ধ্গর মন্মে, প্ োমরো কমিউটোর বযবোর কগর অভযস্ত এবিং
প্রোগ্রোমমিং মজমন্টোর গঙ্গ িূণয অপমরমচ । আর ম যোঙ্গুগয়জ বযবোর করোর প্পছগন্ কোরণ গে,
এমট প্বল পুগরোগন্ো গও অ যন্ত লমিলোী ও জন্মরয় যোঙ্গুগয়জ। প্রোগ্রোমমিংগয়র প্মৌমক
মজমন্গুগো প্বোঝোর জন্য ম ভোো অ যন্ত োয়ক। আর জন্মরয় ব প্রোগ্রোমমিং রম গযোমে োয় প্য
অল্প কগয়কমট যোঙ্গুগয়জ বযবোর করো যোয়, োর মগধ্য ম অন্য ম। আমরো অবলয ম যোঙ্গুগয়গজর
পুগরোটো এিোগন্ মলিব ন্ো, প্কব প্মৌমক মবয়গুগো মন্গয় কোজ করগ যো িরকোর প্মট প্িিব।
এই বইমট পড়োর পগর প্ োমরো প্কব ম-এর জন্য প্কোন্ বই পড়গ পোগরো অর্বো অন্য প্কোগন্ো ভোো
(প্যমন্– ম প্লো প্লো, জোভো মকিংবো পোইর্ন্) প্লিো শুরু কগর মিগ পোগরো। বইগয়র পমরমলষ্ট অিংগল
আমম মকছু বইগয়র ন্োম মিগয়মছ, যো প্ োমোগির কোগজ োেগব।
বইমট পড়গ প্ োমোগির ম ন্মট মজমন্ োেগব, কমিউটোর (ইন্টোরগন্ট িংগযোে র্োকগ ভোগো য়),
ম যোঙ্গুগয়গজর কিোইোর এবিং যগর্ষ্ট ময়। োড়োহুগড়ো ন্ো কগর দুই প্র্গক ম ন্ মো ময় মন্গয়
বইমট পড়গ ভোগো য়। প্রোগ্রোমমিং প্লিোর জন্য প্কব পড়োই যগর্ষ্ট ন্য়, পোলোপোমল প্কোমিিং করগ
গব। বইগয়র রম মট উিোরণ মন্গজ মন্গজ প্কোি কগর কমিউটোগর চোমগয় প্িিগ গব। যিন্ই
আমম প্কোগন্ো রশ্ন করব, প্মট মন্গয় মচন্তো করগ গব। োর জন্য যমি দু-ম ন্ ঘণ্টো বো দু-ম ন্ মিন্
ময় োগে োগুক, প্কোগন্ো ক্ষম প্ন্ই, বরিং িীঘয ময় প্কোগন্ো মযোর মোধ্োন্ মন্গয় মচন্তো করোর
অভযোমট িুব জরুমর। প্কোগন্ো অধ্যোয় পুগরোপুমর প্বোঝোর আগে পগরর অধ্যোয় পড়ো শুরু করো যোগব ন্ো।
আবোর প্কোগন্ো অিংল যমি প্ োমোর কোগছ িুব জ মগন্ য়, প্ই অিংল মিকভোগব ন্ো পগড় এবিং
প্রোগ্রোমগুগো ন্ো কগর পগরর অিংগল চগ প্যগয়ো ন্ো মকন্তু। োধ্োরণ পড়োমিোর গঙ্গ প্রোগ্রোমমিং প্লিোর
অগন্ক পোর্যকয। এিোগন্ পড়োর গঙ্গ গঙ্গ কোজ করোও জরুমর। আর এই বই পগড়ই মকন্তু ুমম
প্রোগ্রোমোর গয় যোগব ন্ো, বইমট পগড় ুমম প্রোগ্রোমোর ওয়ো শুরু করগব।
এবোর আো যোক, কিোইোর পোগব প্কোর্োয়? ম-এর জন্য প্বল মকছু কিোইোর আগছ। ুমম যমি
মন্োক্স মকিংবো মযোক বযবোরকোরী ও, গব বগচগয় ভোগো গে gcc। অমধ্কোিংল মন্োগক্সই এমট
আগে প্র্গক ইন্স্ট করো র্োগক। প্ োমোর কমিউটোগর ন্ো র্োকগ এমট ইন্স্ট কগর মন্গ গব। আর
উইগডোজ বযবোর করগ ুমম Codeblocks (http://www.codeblocks.org/) বযবোর
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
করগ পোগরো। এমট একমট মি ও ওগপন্ প্োয IDE (Integrated Development
Environment) এবিং মযোক আর মন্োগক্সও চগ। এমমন্গ োধ্োরণ প্কোগন্ো প্টক্সট এমিটর
(প্যমন্: প্ন্োটপযোি, মজএমিট, প্করোইট) বযবোর কগর প্কোি মগি প্মট কিোইোর মিগয় কিোই
কগর রোন্ করো যোয়। গব অমধ্কোিংল আইমিই ( IDE) গুগোগ ই মন্জস্ব প্টক্সট এমিটর ও
কিোইোর র্োগক। প্রোগ্রোম রোন্ করোর বযবস্থোও র্োগক। এ ছোড়োও ন্োন্ো ধ্রগন্র টুস্ র্োগক।
প্রোগ্রোমমিং চচযোর মবয়। ইন্টোরগন্গট প্বল মকছু ওগয়বোইট আগছ, প্যিোগন্ রচুর মযো প্িওয়ো আগছ
প্যগুগো প্রোগ্রোগমর োোগযয মোধ্োন্ করগ য়। ব জোয়েোগ ই ুমম ম যোঙ্গুগয়গজ প্রোগ্রোমমিং
করগ পোরগব। এর মগধ্য মকছু মকছু ওগয়বোইট আবোর মন্য়মম প্রোগ্রোমমিং রম গযোমে োরও
আগয়োজন্ কগর। এব রম গযোমে োয় অিংলগ্রণ মন্ঃগেগ প্ োমোর প্রোগ্রোমমিং-িক্ষ ো বৃমি করগব
আর প্ই গঙ্গ মবগের ন্োন্ো প্িগলর প্রোগ্রোমোরগির গঙ্গ প্মলোরও ুগযোে কগর প্িগব। অবলয
প্রোগ্রোমমিং রম গযোমে োয় ভোগো করগ গ প্কব প্রোগ্রোমমিং জোন্গই চগব ন্ো, েোমণম ক িক্ষ োও
যগর্ষ্ট গুরুত্বপূণয। পমরমলষ্ট অিংগল প্রোগ্রোমমিং রম গযোমে ো মন্গয় আোপ করব।
বইগয়র রম মট প্রোগ্রোগমর মন্গচ আমম একমট ন্ম্বর মিগয়মছ। প্রোগ্রোগমর ন্ম্বর যমি ২.৫ য়, োর মোগন্
গে এমট মি ীয় অধ্যোগয়র পোাঁচ ন্ম্বর প্রোগ্রোম।
এমট মকন্তু প্কোগন্ো েগল্পর বই ন্য়। োই মবছোন্োয় শুগয়-বগ পড়ো যোগব ন্ো। বইমট পড়োর ময়
কমিউটোর চোু রোিগ গব এবিং রম মট উিোরণ গঙ্গ গঙ্গ প্রোগ্রোম মগি প্িিগ গব, প্কোগন্ো
মযো মোধ্োন্ করগ মিগ িন্ই প্মট মোধ্োগন্র প্চষ্টো করগ গব। মগন্ রোিগব, য প্বমল
প্রোগ্রোমমিং প্বমল আন্ে।
আলো করমছ, ুমম তধ্যয মন্গয় বোমক অধ্যোয়গুগো পড়গব এবিং বগুগো প্রোগ্রোম কমিউটোগর চোমগয়
প্িিগব। প্ োমোর জন্য শুভ কোমন্ো।
আমরা এখন একমি প্রাগ্রাম ময়খ প্ফব, প্যমি প্োমার কমিউিায়রর মিয়ন Hello World
প্েখায়ব বা মরন্ট করয়ব। এমি য়ে প্রাগ্রামমিংয়য়র একমি ঐমেয। পৃমথবীর অমধ্কািংল প্রাগ্রামারই
জীবয়নর রথম প্রাগ্রাম ময়য়ব এমি প্য়খ। আমম এই বইয়য়র প্রাগ্রামগুয়া চাায়নার জনয
Codeblocks বযবার করব। েয়ব প্োমরা অনয মকছু বযবার করয় প্কায়না মযা প্নই,
বগুয়ায়ে কায়জর ধ্ারা প্মািামুমি একই রকম। কমিউিায়র প্কাডব্লক ইনস্ট কয়র প্ফয়া।
মনয়জ মনয়জ ইনস্ট করয়ে না পারয় মনয়চর মভমড প্েয়খা।
মভমড মিংক
ইনস্ট য়য় প্গ। এখন উইয়ডায়জর Start প্মনুয়ে Programs-এ মগয়য় Codeblocks চাু
কয়রা। উবুন্টুয়ে এমি থাকয়ব Applications > Programming-এর প্ভের।
এখায়ন আমরা আমায়ের প্কাড বা প্রাগ্রাম মখব। মনয়চর প্কাডমি িাইপ কয়র প্ফয়া এবিং ফাইমি
প্ভ কয়রা।
#include <stdio.h>
int main ()
{
printf("Hello World");
return 0;
}
প্রাগ্রাম: ১.১
েুমম যমে প্রাগ্রামমি মিকভায়ব িাইপ কয়র থায়কা েয়ব কিাইার প্োমায়ক বয়ব প্য 0 errors, 0
warnings, মায়ন- প্রাগ্রায়ম syntax মিক আয়ছ।
এখায়ন প্েয়খা, প্োমার প্রাগ্রামমি মিয়ন Hello World মরন্ট কয়রয়ছ। পয়রর াইয়ন বা
আয়ছ Process returned 0 (0x0) (এমির অথড মনয়য় আমায়ের এখন মাথা না ঘামায়
চয়ব) আর execution time : 0.031 s মায়ন প্রাগ্রামমি চয়ে 0.031 প্য়কড ময়
প্য়গয়ছ। োরপয়রর াইন য়ে, Press any key to continue. মক-প্বায়ডডAny key খুুঁয়জ
না প্পয় অনয প্যয়কায়না মক চাপয়ই চয়ব।
েুমম যমে প্রাগ্রামমি মিকিাকভায়ব রান করায়ে পায়রা এবিং Hello World প্খািা প্েয়খ থায়কা
োয় প্োমায়ক অমভনন্দন। েুমম প্বল গুরুত্বপূর্ড একমি কাজ কয়র প্ফয়ছ।
আর মিকিাকভায়ব রান করায়ে না পারয় আবার শুরু প্থয়ক প্চষ্টা কয়রা। রয়য়াজয়ন অমভজ্ঞ কার
াাযয না। কারর্ এই প্রাগ্রাম না চাায়ে পারয় বইয়য়র পয়রর অিংল পয়ে প্েমন একমি াভ
য়ব না। মনয়চর মভমড মি প্েখয়ে পায়রা...
মভমড মিংক
int main()
{
এখায়ন প্কাড থাকয়ব।
return 0;
}
প্রাগ্রায়মর পয়রর াইন প্খয়া কয়রা: printf("Hello World"); এমি একমি প্স্টিয়মন্ট।
এখায়ন printf() য়ে একমি ফািংলন যার কাজ য়ে মিয়ন মকছু মরন্ট করা। ডব প্কায়িলন
মচয়ের প্ভেয়র যা মখয়ব ো-ই মিয়ন প্ মরন্ট করয়ব। এই ফািংলনমি মিয়ন মরন্ট কয়র কীভায়ব
প্মি আয় বা আয়ছ stdio.h নায়ম একমি ফাইয়। এই ফাইগুয়ায়ক বয়
প্ডার (header) ফাই (.h য়ে প্ডার ফাইয়র এক্সয়িনলন)। stdio.h ফাইয় স্টযাডাডড
ইনপুি আর আউিপুি-িংক্রান্ত যাবেীয় ফািংলন প্খা আয়ছ, আমরা প্কব প্গুয়া বযবার
করব, ফািংলনগুয়া কীভায়ব কাজ কয়র প্মি এখন আমায়ের জানার েরকার প্নই। আর
প্যয়েু printf() ফািংলন বযবার কয়রমছ, োই প্রাগ্রায়মর শুরুয়ে #include
<stdio.h> মখয়ে য়য়য়ছ। এই রকম আর অয়নক রয়য়াজনীয় প্ডার ফাই আয়ছ,যার মকছু
আমরা পরবেডী ময়য় কায়জর রয়য়াজয়ন প্েখব।
এখন একমি বযাপার প্খয়া কয়রা। printf("Hello World");-এর প্লয় একমি প্মময়কান
রয়য়য়ছ। ম যাঙ্গুয়য়য়জ রমেমি প্স্টিয়ময়ন্টর পয়রই একমি প্মময়কান থায়ক। একমি প্স্টিয়ময়ন্টর
কাজ প্ল য় পয়রর প্স্টিয়ময়ন্টর কাজ শুরু য়। return 0; একমি প্স্টিয়মন্ট, োই এমি
প্মময়কান মেয়য় প্ল করয়ে য়য়য়ছ। শুরুর মেয়ক অয়নয়কই প্মময়কান মেয়ে ভুয় যায়, েখন
কিাই এরর (compile error) য়। প্োমরা একমি প্মময়কান মুয়ছ মেয়য় কিাই করার
প্চষ্টা কয়র প্েখয়ে পায়রা।
এবায়র একমি খুব গুরুত্বপূর্ড কথা বয় রামখ। প্োমরা প্কাডমি প্খয়া করয় প্েখয়ব প্য
আমম #include <stdio.h>, int main(), { } প্যই াইয়ন আয়ছ প্মি এমডিয়রর
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
এয়কবায়র বাুঁ মেক প্থয়ক শুরু কয়রমছ। আর printf এবিংreturn 0-এর আয়গ চারমি প্ে (ফাুঁকা
জায়গা) মেয়য় মনয়য়মছ। এমিয়ক বয় ইনয়ডয়ন্টলন (Indentation)। এরকম না করয় প্রাগ্রামমি
চে এবিং োই অয়নয়কই ইয়ডয়ন্টলয়নর বযাপারমি গুরুত্ব প্েয় না এবিং মিকময়ো ইনয়ডয়ন্টলন কয়র
না। প্যয়কায়না ভায়া অভযায়র ময়ো ইয়ডয়ন্টলয়নর অভযা তেমর করািা একিু কমিন, েয়ব মবয়িা
মকন্তু োুঁে মাজার ময়োই গুরুত্বপূর্ড। ইনয়ডয়ন্টলন করার অভযা মিকময়ো তেমর না য়
প্রাগ্রামারয়ের কমডী বা বয়র বকা শুনয়ে য়, অয়নক জায়গায় প্ো ইন্টারমভউয়েই বাে পয়ে
প্যয়ে য়। আলা করমছ প্োমরা বযাপারমি প্বল গুরুত্ব কায়র প্নয়ব। আমম বইয়য়র মে
উোরয়র্ই যথাযথভায়ব ইনয়ডয়ন্টলন করার প্চষ্টা করব েয়ব ছাপার ময় একিু এমেক-মেক য়ে
পায়র, প্মি প্োমরা বুয়ঝ প্নয়ব। ইয়ডন্টলয়নর জনয াধ্ারর্ে চারমি প্ে প্েয়ািাই এখন
স্টযাডাডড। প্োমরা এমডিয়র অপলন প্ি করয়ে পায়রা যায়ে িযাব (Tab) চাপয় প্মি চারমি
প্েয়র মান য়।Codeblocks-এ Settings প্মনুয়ে Editor-এ মিক কয়র TAB
Options-এ TAB indents প্চক কয়রা এবিং TAB size in spaces 4 ো।
এবায়র প্োমায়ের জনয একমি কাজ। একমি প্রাগ্রাম প্য়খা প্যমি মিয়ন মরন্ট করয়ব: I love my
country, Bangladesh।
প্রাগ্রামমি িাইপ করার পয়র অবলযই কিাই রান করয়ব। কিাই করার আয়গ প্ভ করয়ে
ভুয়ব না।
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
প্রোগ্রোমভিং ফইঃ অধযোয় দুই
ডোটো টোই, ইনুট ও আউটুট
এ অধযোয়য় আভযো মিছু প্ছোট প্ছোট প্রোগ্রোভ মরখফ। ফগুয়রো প্রোগ্রোভ অফযই িমিউটোয়য চোমরয়য়
প্দখয়ফ এফিং এিটু মযফততন িয়য িিোইর ও যোন িযোয প্চষ্টো িযয়ফ।
আভোয়দয রথভ প্রোগ্রোভমট য়ফ দুমট িংখযো প্মোগ িযোয প্রোগ্রোভ। এখন িথো য়ে, িংখযোগুয়রো প্তো
িমিউটোয়যয প্ভয়ভোমযয়ত যোখয়ত য়ফ, প্ই জমটর িোজমট িীবোয়ফ িযফ? মচন্তো প্নই! ফ প্রোগ্রোমভিং
রযোঙ্গুয়য়য়জ প্বমযয়য়ফর ফয়র এিমট মজমন আয়ছ প্মমট প্িোন মনমদতষ্ট ভোন ধোযণ িযোয জনয ফযফোয
িযো য়। প্বমযয়য়ফয়রয এিমট নোভ মদয়ত য়, তোযয প্বমযয়য়ফর = প্িোয়নো ভোন মরয়খ মদয়র
প্বমযয়য়ফয়রয প্বতয প্মট ঢুয়ি মোয়। এমটয য়ঙ্গ গোমণমতি ভীিযয়ণয মিন্তু প্িোয়নো িিত প্নই।
চয়রো, প্রোগ্রোভমট মরয়খ যোন িযোই, তোযয ফযোখযো িযো মোয়ফ।
#include <stdio.h>
int main()
{
int a;
int b;
int sum;
a = 50;
b = 60;
sum = a + b;
printf("Sum is %d", sum);
return 0;
}
প্রোগ্রোভ: ২.১
প্রোগ্রোভমট যোন িযোও, তুমভ মিয়ন প্দখয়ফ: Sum is 110।
এখোয়ন a, b, sum মতনমট প্বমযয়য়ফর (variable) আরোদো িংখযো ধোযণ িয়য। রথয়ভ আভোয়দয
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
ফয়র মদয়ত য়ফ প্ম a, b, sum নোয়ভ মতনমট প্বমযয়য়ফর আয়ছ। এফিং এগুয়রোয়ত িী ধযয়নয ডোটো
থোিয়ফ প্মটও ফয়র মদয়ত য়ফ। int a; মদয়য় আভযো িিোইরোযয়ি ফরমছ a নোয়ভ এিমট
প্বমযয়য়ফর এই প্রোগ্রোয়ভ আয়ছ প্মমট এিমট ূণতিংখযো (integer)-এয ভোন ধোযণ িযোয জনয
ফযফোয িযো য়ফ। এই িোজমটয়ি ফয়র প্বমযয়য়ফর মডক্লোয়যন। আয int য়ে ডোটো টোই, প্মমট
প্দয়খ ম-এয িিোইরোয ফুঝয়ফ প্ম এয়ত ইমিজোয টোই ডোটো থোিয়ফ। আযও প্ফ মিছু ডোটো টোই
আয়ছ, প্গুয়রো আভযো আয়ে আয়ে প্দখফ। আভযো চোইয়র এিই টোইয়য প্বমযয়য়ফরগুয়রো
মডয়ক্লয়োয িযোয ভয় আরোদো রোইয়ন নো মরয়খ এিয়ঙ্গ িভো মদয়য়ও মরখয়ত োযতোভ, প্মভন: int
a, b, sum;। আয রক্ষ িয়যো প্ম প্বমযয়য়ফর মডক্লোয়যয়নয প্য়ল প্মভয়িোরন ফযফোয িযয়ত য়।
য়যয প্েটয়ভি য়ে: sum = a + b;। এয়ত প্ফোঝোয়, sum-এয ভোন য়ফ a + b-এয ভোন,
অথতোৎ a ও b-এয প্মোগপর প্ম িংখযোমট য়ফ প্মট আভযো sum নোয়ভয প্বমযয়য়ফয়র প্যয়খ মদরোভ
(ফো assign িযরোভ)।
এফোয়য প্মোগপরমট ভমনটয়য প্দখোয়ত য়ফ, তোই আভযো printf পোিংন ফযফোয িযফ।
printf("Sum is %d", sum);
এখোয়ন প্দয়খো printf পোিংয়নয প্বতয়য দুমট অিং। রথভ অিংয় "Sum is %d" মদয়য় প্ফোঝোয়নো
য়য়য়ছ মিয়ন মরি িযয়ত য়ফ Sum is এফিং তোয য়য এিমট ইমিজোয প্বমযয়য়ফয়রয ভোন প্মমট
%d-এয জোয়গোয় ফয়ফ। তোযয িভো মদয়য় আভযো sum মরয়খ ফুমঝয়য় মদয়য়মছ প্ম %d-প্ত
sum-এয ভোন মরি িযয়ত য়ফ। ইমিজোয়যয জনয প্মভন %d ফযফোয িযরোভ, অনয ধযয়নয
প্বমযয়য়ফয়রয জনয অনয মিছু মরখয়ত য়ফ, প্মমট আভযো ফযফোয িযয়ত িযয়ত মখফ। খুফ বোয়রো
য়তো মমদ আমভ এখন এিমট চোটত মরয়খ মদতোভ প্ম ম রযোঙ্গুয়য়য়জ িী িী ডোটো টোই আয়ছ, প্গুয়রো
িী মদয়য় প্রয়খ এফিং মরি িযোয জনয িী িযয়ত য়ফ আয প্তোভযো প্ই চোটত ভুখস্থ িয়য প্পরয়ত।
মিন্তু শুধু শুধু ভুখস্থ িযোয প্িোয়নো দযিোয প্নই, ভুখস্থ িযোয রফণতো মচন্তোমি িভোয় আয
প্রোগ্রোভোযয়দয জনয মচন্তো িযোয ক্ষভতো খুফই গুরুত্বূণত।
প্রখোড়ো িযোয ভয় আভোয়দয ভয়ন নোনো মফলয়য় নোনো রশ্ন আয়, মোয উত্তয আভযো ফইয়ত খুুঁমজ,
মক্ষিয়ি মজজ্ঞোো িময, ইিোযয়নয়ট খুুঁমজ ফো মচন্তো িয়য মুমি দোুঁড় িমযয়য় উত্তযমট প্ফয িময।
আভোয়দয দুবতোগয প্ম প্ফমযবোগ প্ছয়রয়ভয়য়ই প্ল িোজমট িয়য নো, িোযণ মনয়জ মনয়জ মচন্তো িযয়ত
এিটু ভয় রোয়গ ও মযশ্রভ য়, প্ই ভয় আয শ্রভ তোযো মদয়ত চোয় নো। আয আভোয়দয
অমববোফি, মক্ষি ও মক্ষোফযফস্থো মচন্তো িযোয জনয প্িোয়নো ুযস্কোয প্দয় নো, ফযিং ভুখস্থ িযোয
জনযই ুযস্কৃত িয়য।
মো-প্োি, প্রোগ্রোমভিংয়য়য ফযোোয়য মখনই ভয়ন প্িোয়নো রশ্ন আয়ফ, য়ঙ্গ য়ঙ্গ এিমট প্রোগ্রোভ মরয়খ
প্পরয়ফ। প্দয়খো প্তোভোয িিোইরোয িী ফয়র। ধযো মোি, আভযো মমদ int টোইয়য প্বমযয়য়ফয়র
দমভি মুি িংখযো (ফোেফ িংখযো ফো real number) ফযফোয িযতোভ, তোয়র িী য়তো?
ম িিোইরোয a-এয ভোন 50 ধয়যয়ছ, মমদও আভযো 50.45 অযোোইন িয়যমছ। এই ফযোোযমটয়ি
ফয়র টোই িোে (type cast)। ফোেফ িংখযো যোখোয জনয ম বোলোয় double নোয়ভয ডোটো টোই
যয়য়য়ছ। টোই িোে িয়য double িংখযোমটয়ি int-এ প্নওয়ো য়য়য়ছ, এমট অয়টোয়ভমটি য়।
আফোয িিোইরোযয়ি ফয়রও প্দওয়ো মোয়: int a = (int) 50.45।
int a = 50.99; এখোয়ন a-এয ভোন য়ফ 50। int a = -50.9; মরখয়র a-এয ভোন য় -50।
এি িথোয় ফরয়র double প্থয়ি int-এ টোই িোে িযয়র দমভয়িয য়যয অিংমট ফোদ য়ড়
মোয়ফ।
আয়যিমট িথো। প্মই প্বমযয়য়ফরয়ি টোই িোে িযো য়ে, তোয ভোন মিন্তু মযফততন য় নো। টোই
িোে িযো ভোনমট এিমট প্বমযয়য়ফয়র যোখো মোয়। মনয়চয প্রোগ্রোভমট িমিউটোয়য চোরোয়রই ফুঝয়ত
োযয়ফ।
#include <stdio.h>
int main()
{
int n;
double x;
x = 10.5;
n = (int)x;
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
printf("Value of n is %d\n", n);
printf("Value of x is %lf\n", x);
return 0;
}
প্রোগ্রোভ: ২.৭
প্রোগ্রোয়ভয আউটুট প্দয়খো। x-এয ভোন মিন্তু মযফততন য়মন। আয ফুঝয়তই োযছ প্ম ফোেফ িংখযো
যোখোয জনয ম-প্ত প্ম double টোইয়য প্বমযয়য়ফর ফযফোয িযো য়, তো মরি িযোয ভয় %lf
(l এখোয়ন ইিংয়যমজ প্ছোট োয়তয L) ফযফোয িযয়ত য়।
int ডোটো টোইয় প্তো প্িফর ূণত িংখযো যোখো মোয়। মিন্তু প্মট িী প্ময়িোয়নো ূণতিংখযো? উত্তয়যয
জনয এিমট প্রোগ্রোভ মরমখ:
#include <stdio.h>
int main()
{
int a;
a = 1000;
printf("Value of a is %d", a);
a = -21000;
printf("Value of a is %d", a);
a = 10000000;
printf("Value of a is %d", a);
a = -10000000;
printf("Value of a is %d", a);
a = 100020004000503;
printf("Value of a is %d", a);
a = -4325987632;
printf("Value of a is %d", a);
return 0;
}
প্রোগ্রোভ: ২.৮
এখোয়ন আভযো a-প্ত মফমবন্ন িংখযো অযোোইন িযরোভ। ফ ভোন মি মিিিোি আয়ছ? আয়মন। প্িন
আয়মন প্মট ফযোখযো িযোয আয়গ এিমট িথো ফয়র মনই। যয এতগুয়রো printf-এয িোযয়ণ
প্তোভোয িমিউটোয়যয মিয়ন মনশ্চয়ই প্দখয়ত এিটু অস্বমেিয রোগয়ছ। রমতমট printf প্তোভযো
a-এয ফগুয়রো ভোন মিন্তু মিিবোয়ফ প্দখো মোয়মন, প্মফ ভোন -2146473648 প্থয়ি
2147483647 মতন্ত প্িফর প্গুয়রোই মিিিোি মরি য়ফ, িোযণ এই প্যয়েয ফোইয়যয িংখযো int
টোইয়য প্বমযয়য়ফয়র যোখো মোয় নো। এমট য়রো int টোইয়য িংখযোয ীভো। ম-প্ত int টোইয়য
ডোটোয জনয প্ভয়ভোমযয়ত চোয ফোইট (byte) জোয়গো ফযফহৃত য়। চোয ফোইট ভোয়ন ফমি মফট (1
byte = 8 bit)। রমত মফয়ট দুমট মজমন যোখো মোয়, 0 আয 1। দুই মফয়ট যোখো মোয় চোযমট িংখযো
(00, 01, 10, 11)। তোয়র 32 মফয়ট যোখো মোয়ফ: 2^32 টো িংখযো অথতোৎ 4294967296মট
িংখযো। এখন অয়ধতি ধনোত্মি আয অয়ধতি ঋণোত্মি মমদ যোমখ, তোয়র -2146473648 প্থয়ি -1
মতন্ত প্ভোট 2146473648মট িংখযো আফোয 0 প্থয়ি 2146473647 মতন্ত প্ভোট
2146473648মট িংখযো, ফতয়ভোট 4294967296মট িংখযো। আো িময, মোফটো ফুঝয়ত
প্য়যছ।
এখন আভযো প্মোগ িযোয প্রোগ্রোভমট মরখফ প্মমট ফ ফোেফ িংখযো (real number) প্মোগ িযয়ত
োযয়ফ। প্তোভোয়দয ভয়ন িমযয়য় মদই, ূণতিংখযো য়ে, ... -3, -2, -1, 0, 1, 2, 3 ... ইতযোমদ।
আয ফোেফ িংখযো য়ে -5, -3, -2.43, 0, 0.49, 2.92 ইতযোমদ (িংখযোয়যখোয ওয ফ
িংখযোই মিন্তু ফোেফ িংখযো)।
#include <stdio.h>
int main()
{
double a, b, sum;
a = 9.5;
b = 8.743;
sum = a + b;
printf("Sum is: %lf\n", sum);
printf("Sum is: %0.2lf\n", sum);
return 0;
}
প্রোগ্রোভ: ২.৯
প্রোগ্রোভমট িিোইর এফিং যোন িয়যো। আউটুট য়ফ মনয়চয দুই রোইন:
এখন আভযো আভোয়দয প্রোগ্রোয়ভ এভন ফযফস্থো যোখয়ত চোই, মোয়ত প্িোন দুমট িংখযো প্মোগ িযয়ত য়ফ
প্মট আভযো প্িোয়ডয প্বতয মরখফ নো, ফযফোযিোযীয িোছ প্থয়ি ইনুট আিোয়য প্জয়ন প্নফ।
ফযফোযিোযীয (ভোয়ন প্ম প্রোগ্রোভমট ফযফোয িযয়ছ) িোছ প্থয়ি ইনুট প্নওয়োয জনয আভযো scanf
পোিংন ফযফোয িযফ (ম-প্ত আযও পোিংন আয়ছ এই িোয়জয জনয)। তোয়র প্দময নো িয়য
প্রোগ্রোভ মরয়খ প্পমর:
#include <stdio.h>
int main()
{
int a, b, sum;
scanf("%d", &a);
scanf("%d", &b);
sum = a + b;
printf("Sum is: %d\n", sum);
return 0;
}
প্রোগ্রোভ: ২.১০
প্রোগ্রোভমট যোন িযয়র প্দখয়ফ পোুঁিো মিন (blank screen) আয়। তখন তুমভ এিমট িংখযো
মরখয়ফ, তোযয প্ে (space) ফো এিোয (enter) মদয়য় আয়যিমট িংখযো মরখয়ফ। তোযয
আফোয এিোয চোয়র প্মোগপর প্দখয়ত োয়ফ।
প্তোভযো মনশ্চয়ই scanf পোিংয়নয ফযফোয ময়খ প্পয়রছ। scanf("%d", &a); এখোয়ন ডফর
প্িোয়টয়নয প্বতয়য %d মদয়য় scanf-প্ি ফয়র প্দওয়ো য়ে প্ম এিমট ইমিজোয ফো int টোইয়য
প্বমযয়য়ফয়রয ভোন ড়য়ত য়ফ (ফযফোযিোযী মিয়ফোডত প্থয়ি ইনুট প্দয়ফ)। আয প্দয়খো a-এয আয়গ
এভোযয়ন্ড (&) মচহ্ন ফযফোয িযো য়য়য়ছ, &a মদয়য় প্ফোঝোয়নো য়য়য়ছ প্ম িংখযোমট ইনুট
প্দওয়ো য়ফ প্মট a প্বমযয়য়ফয়রয ভোয়ঝ অযোোইন য়ফ। প্তোভযো মখন ম আয়যিটু বোয়রোবোয়ফ
মখয়ফ, তখন &a-এয রিৃত অথত ফুঝয়ত োযয়ফ, আোতত আভযো ফযফোয়যয মদয়িই ভয়নোয়মোগ
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
মদই। a এফিং b-এয ভোন এিমট scanf পোিংন মদয়য়ও প্নওয়ো প্মত এবোয়ফ: scanf("%d %d",
&a, &b);। প্বমযয়য়ফয়রয আয়গ & মচহ্ন নো মদয়র িী ভযো? মনয়চয প্রোগ্রোভমট যোন িযোয প্চষ্টো
িয়যো, মিছু এিমট এযয োয়ফ। এই ভুূয়তত এযযটো ফযোখযো িযমছ নো, িোযণ ফযোখযোটো এিটু জমটর
আয এখন প্ফোঝোয়ত প্গয়র প্তোভযো বুর ফুঝয়ত োয়যো এফিং য়য আভোয়ি গোরভন্দ িযয়ফ।
#include <stdio.h>
int main()
{
int a, b, sum;
scanf("%d", &a);
scanf("%d", b);
sum = a + b;
printf("Sum is: %d\n", sum);
return 0;
}
প্রোগ্রোভ: ২.১১
এখন আভযো মমদ ইনুট ময়য়ফ ইমিজোয নো মনয়য় ডফর টোইয়য ডোটো মনয়ত চোইতোভ তোয়র িী
িযয়ত য়তো? scanf-এ %d-এয ফদয়র %lf ফযফোয িযয়রই চরত। প্তোভযো প্রোগ্রোভমট মরয়খ
প্পয়রো এফিং প্দয়খো মিিিোি যোন য় মি নো। তোযয়য ফোমি অিং ড়ো শুরু িয়যো।
আয়র মিিিোি যোন য়ফ নো, িোযণ ডোটো টোইও মযফততন িযয়ত য়ফ। ভোয়ন int নো মরয়খ
double মরখয়ত য়ফ। প্রোগ্রোভমট মিি িয়য আফোয চোরোও।
ফইয়ত মখনই আমভ প্িোয়নো প্রোগ্রোভ প্রখয়ত ফরফ প্মট মত জ মিিংফো িমিনই ভয়ন প্োি নো
প্িন, প্মট িমিউটোয়য মরয়খ িিোইর ও যোন িযয়ত য়ফ। এ িোজ নো িয়য োভয়ন আগোয়নো মোয়ফ
নো। ভয়ন যোখয়ফ, গোমড় চোরোয়নো প্খোয জনয প্মভন গোমড় চোরোয়নোয প্িোয়নো মফিল্প প্নই, োুঁতোয
প্খোয জনয প্মভন োুঁতোয িোটোয মফিল্প প্নই, প্তভনই প্রোগ্রোমভিং প্খোয জনয প্রোগ্রোমভিং িযোয
প্িোয়নো মফিল্প প্নই, শুধু ফই য়ড় প্রোগ্রোভোয ওয়ো মোয় নো।
এফোয়য আভযো আয়যি ধযয়নয ডোটো টোই প্দখফ, প্মট য়ে char (character) টোই। প্তো এই
character টোইয়য চমযি য়ে এয়ি প্ভয়ভোমযয়ত যোখোয জনয ভোি এি ফোইট জোয়গোয দযিোয
য়। োধোযণত প্ময়িোয়নো অক্ষয ফো মচহ্ন যোখোয জনয এই টোইয়য ডোটো ফযফোয িযো য়। তয়ফ প্ই
অক্ষযটো ইিংয়যমজ ফণতভোরোয অক্ষয য়ত য়ফ, অনয বোলোয অক্ষয char টোইয়য প্বমযয়য়ফয়র যোখো
মোয়ফ নো। মনয়চয প্রোগ্রোভমট িমিউটোয়য মরয়খ যোন িযোও:
ম রযোঙ্গুয়য়য়জ আযও প্ফ মিছু ডোটো টোই যয়য়য়ছ। ইনুট ও আউটুয়টয জনযও যয়য়য়ছ নোনো
িমত, মো প্তোভযো আয়ে আয়ে মখয়ফ (ফ য়য়তো এ ফইয়য় থোিয়ফ নো, ম-এয অনয ফই ড়য়র
জোনয়ত োযয়ফ)। আোতত মো ময়খছ, তো মদয়য়ই প্তোভযো অয়নি প্রোগ্রোভ মরয়খ প্পরয়ত োযয়ফ।
এখন এিমট ভজোয এফিং দযিোময মজমন ফয়র যোমখ। প্রোগ্রোয়ভয প্িোয়ডয প্বতয়য তুমভ মনয়জয
বোলোও ফযফোয িযয়ত োয়যো। এমটয়ি ফয়র িয়ভি (comment) িযো। িিোইরোয
িয়ভিগুয়রোয়ি প্রোগ্রোয়ভয অিং ধযয়ফ নো। এি রোইয়নয িয়ভি য়র // মচহ্ন মদয়য় িয়ভি শুরু
িযয়ত োয়যো। আয এিোমধি রোইন থোিয়র /* মদয়য় শুরু এফিং */ মদয়য় প্ল িযয়ত য়ফ। মনয়চয
প্রোগ্রোভমট মিন্তু মিিিোি িিোইর ও যোন য়ফ।
#include <stdio.h>
int main()
{
// test program - comment 1
printf("Hello ");
/* We have printed Hello,
now we shall print World.
Note that this is a multi-line comment */
printf("World"); // printed world
return 0;
}
প্রোগ্রোভ: ২.১৬
এফোয়য এিমট রশ্ন, (প্মমট ম-এয প্টক্সট ফইয়য় এই চযোপ্টোয়যয শুরুয়তই ফয়র মদত),
প্বমযয়য়ফরগুয়রোয নোভিযয়ণয মনয়ভিোনুন িী? প্বমযয়য়ফয়রয নোভ এি ফো এিোমধি অক্ষয়যয য়ত
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
োয়য, অক্ষযগুয়রো য়ত োয়য a প্থয়ি z, A প্থয়ি Z, 0 প্থয়ি 9 এফিং _ (আন্ডোযয়স্কোয ফো
আন্ডোযফোয)। তয়ফ এিোমধি অক্ষয়যয প্ক্ষয়ি রথভ অক্ষযটো অঙ্ক (মডমজট) য়ত োযয়ফ নো। তুমভ
এিমট প্রোগ্রোয়ভ int 7d; মরয়খ প্দয়খো িিোইরোয িী ফয়র। আয প্বমযয়য়ফয়রয নোভগুয়রো অথতণূ ত
য়র বোয়রো য়। প্মভন, প্মোগপর যোখোয জনয প্বমযয়য়ফয়রয নোভ sum য়রই বোয়রো, মমদও y নোভ
মদয়রও প্রোগ্রোভ চয়র। অথতণূ ত নোভ মদয়র ফুঝয়ত ুমফধো য়, প্বমযয়য়ফরটো িী উয়েয়য ফযফোয িযো
য়য়য়ছ।
প্িামরা অনননকই য়নিা িাননা প্য 'চাচা প্চৌধ্ুরীর বুমি কমিউটানরর প্চনয়ও রখর'! এমট শুনন
রথম রথম চাচা প্চৌধ্ুরীর ওপর ভমি-শ্রিা অননক প্বনে প্গনও একটু মচন্তা করনই প্িামরা
বুঝনি পারনব প্য আন প্িামানের বার বুমি কমিউটানরর প্চনয় রখর। আন কমিউটানরর
প্িা প্কাননা বুমিই প্নই। প্রাগ্রামাররা প্যভানব প্রাগ্রাম মনখ প্েয় কমিউটার প্ভানব কাি কনর।
এখন আমরা প্রাগ্রামমিংনয়র ি অথচ খুব গুরুত্বপূর্ণ একমট মবয় মলখব। প্মট নে কমিলনা
মিক। প্কান লনিণ কী করনি নব প্মট প্রাগ্রাম মনখ কমিউটারনক প্বাঝানি নব। কথা না
বামেনয় আমরা প্রাগ্রাম প্খা শুরু কনর মেই। প্িামরা মকন্তু অবলযই রমিমট প্রাগ্রাম কমিউটানর
চামনয় প্েখনব।
#include <stdio.h>
int main()
{
int n;
n = 10;
if(n >= 0) {
printf("The number is positive\n");
}
else {
printf("The number is negative\n");
}
return 0;
}
প্রাগ্রাম: ৩.১
ওপনরর প্রাগ্রামমটর কাি কী? n-এর মবমভন্ন মান (প্যমন: 0, -10, -2, 5, 988 ইিযামে) বমনয়
প্িামরা প্রাগ্রামমট চাাও। প্েখা যানে প্য এর কাি নে n ধ্নাত্মক (positive) না ঋর্াত্মক
(negative) প্মট মনর্ণয় করা। প্কান িংখযা ধ্নাত্মক নি প্গন একমট লিণ পূরর্ করনি য়। প্মট
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
নে িানক লূননযর মান বা িার প্চনয় বে নি য়। িান আমানের মিকমট োাঁোনে এ রকম
প্য, 'n যমে লূননযর মান বা বে য়, িনব nধ্নাত্মক, না ন n ঋর্াত্মক'। এই বযাপারমট ম
যাঙ্গুনয়নি রকাল করনি য় if এবিং িার নঙ্গ else বযবার কনর। if-এর প্ভির একমট লিণ
(কমিলন) মনখ মেনি য় যা মিয নই প্কব িার প্ভিনরর অিংনলর কাি য় (মানন if-এর পর
প্য মিিীয় বন্ধনী { } বযবার করা নয়নে িার প্ভিনরর ব কাি)। আর কমিলনটা মখনি য়
রথম বন্ধনীর প্ভিনর। if-এর প্ভিনর প্যই কমিলনটা আনে প্মট যমে মমথযা য়, িনব else-এর
প্ভিনরর (মিিীয় বন্ধনীর প্ভিনর) অিংনলর কাি য়। ব প্রাগ্রামমিং যাঙ্গুনয়নিই এমট আনে, িনব
মখার ধ্রন য়নিা আাো।
এখন আমানের প্েখনি নব, কমিলনগুনা কীভানব মখনি নব? প্িামরা এিক্ষনর্ প্িনন প্গে প্য
'বে মকিংবা মান' এই িুনা করার িনয >= মচহ্ণ বযবার করা য়। 'প্োট মকিংবা মান'-এর িনয
বযবার কনর <= মচহ্ন। দুমট িংখযা একমট আনরকমটর মান মক না প্মট পরীক্ষার িনয বযবার
কনর == মচহ্ন (ক্ষ কনরা এখানন দুমট মান মচহ্ন আনে। শুরুর মেনক অনননকই মান মক না
পরীক্ষার িনয ভু কনর = (একমট মান মচহ্ন যা মেনয় আন প্কাননা প্ভমরনয়বন প্কাননামকেু
অযাাইন করা য়) বযবার কনর মবপনে পনে যায়)। দুমট িংখযা পরস্পর অমান মক না, এমট
পরীক্ষার িনয != মচহ্ন বযবার কনর। আর প্োট মকিংবা বে পরীক্ষার িনয < আর > মচহ্ন বযবার
করনি য়। আরও বযাপার-যাপার আনে। একবানর ব না মলনখ চনা আনে আনে প্রাগ্রাম মনখ
প্লখা যাক। এখানন ইনিনেলননর বযাপারমটও মকন্তু প্খয়া প্কানরা। if মকিংবা else-এর প্ভিনরর
ব্লনকর ব াইন মকন্তু if বা else প্যখানন শুরু, িার চার ঘর (চারমট প্স্প) ডান প্থনক শুরু
নয়নে।
আমরা ওপনরর প্রাগ্রামমট এভানবও মখনি পারিাম:
#include <stdio.h>
int main()
{
int n;
n = 10;
if(n < 0) {
printf("The number is negative\n");
}
else {
printf("The number is positive\n");
}
return 0;
}
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
প্রাগ্রাম: ৩.২
এখানন আমরা রথনম পরীক্ষা কনরমে প্য n লূননযর প্চনয় প্োট মক না। যমে প্োট য়, িনব n
প্ননগমটভ; আর প্মট না ন (প্মট না ওয়া মানন n অবলযই লূননযর মান বা বে) n পমিমটভ।
প্িামানের মনধ্য যারা একটু খুাঁিখুাঁনি স্বভানবর, িারা মনশ্চয়ই ভাবে প্য লূনয প্িা আন পমিমটভ
বা প্ননগমটভ প্কাননাটাই না। লূননযর প্চনয় বে ব িংখযা নে পমিমটভ আর প্োট ব িংখযা নে
প্ননগমটভ। কমিউটারনক প্মট প্বাঝানি প্গন আমরা মননচর প্রাগ্রামমট মখনি পামর:
#include <stdio.h>
int main()
{
int n = 10;
if(n < 0) {
printf("The number is negative\n");
}
else if (n > 0) {
printf("The number is positive\n");
}
else if (n == 0) {
printf("The number is zero!\n");
}
return 0;
}
প্রাগ্রাম: ৩.৩
প্রাগ্রামমট একটু বযাখযা করা যাক:
if(n < 0): এখানন আমরা রথনম পরীক্ষা কনরমে n লূননযর প্চনয় প্োট মক না । প্োট ন প্িা
কথাই প্নই। আমরা বন মেমে প্য িংখযামট প্ননগমটভ। else if(n > 0): আর যমে প্োট না য়,
িনব n লূননযর প্চনয় বে মক না প্মট পরীক্ষা কনরমে if(n > 0)। এই লিণ মিয ন িংখযামট
পমিমটভ।
else if(n == 0): আর n > 0ও যমে মিয না য় িনব প্কান লিণমট বাে রই? দুমট মান মক
না প্মট পরীক্ষা করা। িান আমরা পরীক্ষা করমে প্য n লূননযর মান মক না এবিং মান ন
বন মেমে প্য এমট লূনয।
#include <stdio.h>
int main()
{
int n = 10;
if(n < 0) {
printf("The number is negative\n");
}
else if (n > 0) {
printf("The number is positive\n");
}
else {
printf("The number is zero!\n");
}
return 0;
}
প্রাগ্রাম: ৩.৪
আবার ব ময় প্য if বযবার করনই নঙ্গ else মকিংবা else if বযবার করনি নব, এমন
প্কাননা কথা প্নই। মননচর প্রাগ্রামমট প্েনখা:
#include <stdio.h>
int main()
{
int number = 12;
if(number > 10) {
printf("The number is greater than ten\n");
}
return 0;
}
প্রাগ্রাম: ৩.৫
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
এখানন প্কব প্েখা নে প্য িংখযামটর মান মক েনলর প্চনয় বে মক না।
int main()
int n = 10;
if (n < 30) {
return 0;
প্রাগ্রাম: ৩.৭
এখন আমরা আনরকমট প্রাগ্রাম মখব। প্কাননা িংখযা প্িাে না প্বনিাে প্মট মনর্ণয় করার প্রাগ্রাম।
প্কাননা িংখযা প্িাে মক না প্মট প্বাঝার উপায় নে িংখযামটনক 2মেনয় ভাগ করা। যমে ভাগনল
লূনয য়, িনব িংখযামট প্িাে; আর ভাগনল লূনয না নয় এক ন প্মট প্বনিাে। ম যাঙ্গুনয়নি
ভাগনল প্বর করার িনয মডুা অপানরটর (modulus operator) আনে, প্যটানক '%' মচহ্ন
মেনয় রকাল করা য়। িান আর মচন্তা প্নই।
#include <stdio.h>
int main()
{
int number = 9;
if(number % 2 == 0) {
printf("The number is even\n");
}
else {
printf("The number is odd\n");
}
return 0;
}
প্রাগ্রাম: ৩.৯
আো, আমানের যমে প্কব প্িাে িংখযা মনর্ণয় করনি নিা, িান আমরা কী করিাম? else
ব্লকটা বাে মেনয় মেিাম।
প্িামানের িনয এখন একমট প্োট্ট পরীক্ষা। মডুা অপানরটর বযবার না কনর ভাগনল প্বর
করনি পারনব? একবার কনর গুর্, ভাগ ও মবনয়াগ (*, /, -) বযবার কনর মকন্তু কািমট করা যায়।
প্িামরা প্মট করার প্চষ্টা করনি পানরা।
এবার আনরকমট প্রাগ্রাম প্েখা যাক। প্কাননা একমট অক্ষর প্োট ানির (small letter বা lower
case letter) নামক বে ানির (capital letter বা upper case letter), প্মট প্বর করনি
নব। এর িনয বনচনয় ি মাধ্ানটা নি পানর এই রকম প্য আমরা একমট character
টাইনপর প্ভমরনয়বনর প্ভিনর অক্ষরটা রাখনি পামর। িারপর এনক এনক প্মটনক 26মট lower
case letter এবিং 26মট upper case letter-এর নঙ্গ িুনা কনর প্েখনি পামর। যখনই মমন
যানব, িখনই বন প্েওয়া যায়, অক্ষরটা প্কান ধ্রননর।
char ch = 'p';
if (ch == 'a')
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
{
printf("%c is lower case\n", ch);
}
else if (ch == 'A')
{
printf("%c is upper case\n", ch);
}
else if (ch == 'b')
{
printf("%c is lower case\n", ch);
}
else if (ch == 'B')
{
printf("%c is upper case\n", ch);
}
else if (ch == 'c')
{
printf("%c is lower case\n", ch);
}
else if (ch == 'C')
{
printf("%c is upper case\n", ch);
}
… এভানব চনব।
মকন্তু এই মযার মাধ্ান করার িনয এি প্কাড মখার প্কাননা েরকার প্নই। এমট নি করার
িনয আমানের িাননি নব এি অপানরটনরর (AND operator) বযবার। ম যাঙ্গুনয়নি এনক
'&&' মচহ্ন মেনয় রকাল করা য়। মননচর প্কাডমট প্েখনই প্িামরা এর কাি বুনঝ যানব।
#include <stdio.h>
int main()
{
char ch = 'W';
if(ch >= 'a' && ch <= 'z') {
printf("%c is lower case\n", ch);
int main()
{
char ch = 'k';
if(ch >= 'a' && ch <= 'z') {
printf("%c is lower case\n", ch);
}
else if(ch >= 'A' && ch <= 'Z') {
printf("%c is upper case\n", ch);
}
return 0;
}
প্রাগ্রাম: ৩.১১
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
আলা কমর, প্িামরা '&&'-এর বযবার বুনঝ প্গে।
এখন আনরকমট অপানরটনরর বযবার প্েখব। প্মট নে অর (OR)। এনক রকাল করা য় '||' মচহ্ন
মেনয় (পরপর দুমট |)। '&&'-এর প্ক্ষনে প্যমন দুই পানলর লিণ িয নই িূর্ণ লিণ িয য়,
'||'-এর প্ক্ষনে প্যনকাননা এক পানলর লিণ িয নই িূর্ণ লিণ িয য়।
মননচর প্রাগ্রামমটর আউটপুট কী নব? প্কাড প্েনখ বনি না পারন প্রাগ্রামমট চাাও।
#include <stdio.h>
int main()
{
int num = 5;
if(num >= 1 || num <= 10) {
printf("yes\n");
}
else {
printf("no\n");
}
return 0;
}
প্রাগ্রাম: ৩.১২
এমটর আউটপুট নব yes। এখন num-এর মান 50 কনর োও। আউটপুট কী নব?
এবানরও আউটপুট yesই নব। কারর্ num-এর মান 50 ন, রথম লিণমট িয নব (num
>= 1) আর মিিীয় লিণমট (n <= 10) মমথযা নব। িনব আমরা প্যনিু দুমট লনিণর মানঝ '||'
বযবার কনরমে, িাই প্যনকাননা একমট লিণ িয নই িূর্ণ লিণমট িয নব। এখন আরও একমট
মযা। প্কাননা অক্ষর vowel নামক consonant, প্মট মনর্ণয় করনি নব। আমরা িামন,
vowelগুনা নে a, e, i, o, u। এখন প্কাননা কযানরক্টার এই পাাঁচমটর মনধ্য পনে মক না প্মট
মনর্ণয় করার িনয যমে আমরা এমন লিণ মেই: ch >= 'a' && ch <= 'u' িান মকন্তু নব না।
কারর্ িান a প্থনক u পযণন্ত ব অক্ষনরর িনযই লিণমট মিয নব মকন্তু আমানের েরকার মনমেণষ্ট
মকেু অক্ষর। িাই লিণমট আমরা এভানব মখনি পামর:
if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
printf("%c is vowel\n", ch);
}
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
else {
printf("%c is consonant\n", ch);
}
আফায প্রাগ্রাভমি এবাধ্ফও প্রো প্মত। n একমি ইমন্টজায প্বমযধ্য়ফর, মায ভান আভযা রথধ্ভ 1
ফাফ। তাযয n-এয ভান মরন্ট কযফ। তাযয n-এয ভান এক ফাড়াফ (n = n + 1 অথফা
িংধ্েধ্, n++ মরধ্ে)।
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
int n = 1;
printf("%d\n", n);
n = n + 1;
printf("%d\n", n);
n = n + 1;
printf("%d\n", n);
n = n + 1;
/* এবাধ্ফ প্ভাি দ ফায */
আফায nএয ভান 1 ফাড়াধ্নায কাজমি মকন্তু এক রাইধ্নই প্ধ্য প্পরা মায়।
printf("%d\n", n);
n = n + 1;
এয মযফধ্তত আভযা মরেধ্ত াময:
printf("%d\n", n++);
মা-ই প্াক, এ প্তা প্ের 1 প্থধ্ক 10 মতন্ত মরন্ট কযা। মকন্তু আভাধ্দয মমদ 1 প্থধ্ক 100, ফা
1000, ফা 10000 মতন্ত মরন্ট কযধ্ত ফরা ধ্তা তাধ্র আভযা কী কযতাভ? ওধ্য প্ম দ্ধমত
অফরম্বন কযা ধ্য়ধ্ছ প্মি প্তা অফযই কযা প্মত। মকন্তু আমভ জামন, প্তাভযা প্কউই এত কষ্ট
কযধ্ত যামজ না।
এ ভযা ভাধাধ্নয জনয ফ প্রাগ্রামভিং রযাঙ্গুধ্য়ধ্জই রু (loop) ফধ্র একমি দ্ধমত যধ্য়ধ্ছ।
এমি মদধ্য় একই কাজ ফাযফায কযা মায়। রুধ্য ভধ্ধয একমি তত ফমধ্য় মদধ্ত য়, প্মমি ূযণ না
ওয়া মতন্ত প্রাগ্রাভমি রুধ্য প্বতধ্যয কাজ ফাযফায কযধ্ত থাকধ্ফ। ম রযাঙ্গুধ্য়ধ্জ দুমি জনমরয়
রু ধ্ে while এফিং for। আভযা এেন while ফযফায কধ্য ওই প্রাগ্রাভমি মরেফ।
#include <stdio.h>
int main()
{
int n = 1;
while(n <= 10) {
printf("%d\n", n);
n++;
}
return 0;
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
}
প্রাগ্রাভ: ৪.২
কী চভৎকায! এেন আভযা চাইধ্র 10-এয ফদধ্র মত েুম ফাধ্ত াময, মত ফাফ 1 প্থধ্ক তত
মতন্ত মরন্ট ধ্ফ। while রুধ্ রথভ ফন্ধনীয প্বতয তত মরধ্ে মদধ্ত য়। প্রাগ্রাভ প্ই তত যীো
কধ্য। মতেণ মতন্ত ততমি তয য় ততেণ মতন্ত রুধ্য প্বতধ্যয কাজগুধ্রা চরধ্ত থাধ্ক। রুধ্য
প্বতধ্যয কাজগুধ্রা থাকধ্ফ মিতীয় ফন্ধনীয প্বতয। প্মভন এোধ্ন রুধ্য প্বতধ্য আভযা দুমি কাজ
কধ্যমছ। n-এয ভান মরন্ট কধ্যমছ আয তাযয n-এয ভান 1 ফামড়ধ্য়মছ। n-এয ভান 1 কধ্য ফাড়ধ্ত
থাকধ্র একভয় এমি 11 ধ্ফ আয তেন n <= 10 এই ততমি মভথযা ধ্য় মাধ্ফ (কাযণ 11 >
10)। আয প্রাগ্রাভমিও রু প্থধ্ক প্ফয ধ্য় আধ্ফ। অথতাৎ, ততমি মেনই মভথযা ধ্ফ তেনই রু
প্থধ্ক প্ফয ধ্য় মাধ্ফ।
ইধ্েধ্ন্টধ্নয ফযাাযমিও প্েয়ার কধ্যা। রুধ্য প্বতধ্যয অিংধ্য প্কাড চায ঘয ডানমদক প্থধ্ক শুরু
ধ্য়ধ্ছ।
এফাধ্য প্তাভাধ্দয জনয একমি রশ্ন। ফধ্রা প্তা মনধ্চয প্রাগ্রাভমিয আউিুি কী ধ্ফ?
#include <stdio.h>
int main()
{
int n = 1;
while(n <= 10) {
printf("%d\n", n);
}
n++;
return 0;
}
প্রাগ্রাভ: ৪.৩
এিাও মক 1 প্থধ্ক 10 মতন্ত ফ িংেযা মরন্ট কযধ্ফ? প্দো মাক। প্রাগ্রাভমি যান কযাও। আউিুি
কী?
ভমনিধ্য রমত রাইধ্ন 1 মরন্ট ধ্ে এফিং প্রাগ্রাভমি ফন্ধ ধ্ে না। েুফই দুঃধ্েয মফলয়। প্দো মাক
দুঃধ্েয প্ছধ্ন কাযণিা কী।
#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); প্েিধ্ভন্ট এমিমকউি
না কধ্য রুধ্য যফততী ধাধ্য কাজ শুরু কযধ্ফ।
এফাধ্য আভযা আধ্যকমি প্রাগ্রাভ মরেফ। প্ছািধ্ফরায় প্ম নাভতাগুধ্রা প্তাভযা মধ্েছ প্গুধ্রা এেন
আভযা প্রাগ্রাভ মরধ্ে কমিউিাধ্যয ভমনিধ্য প্দেফ। চধ্রা 5-এয নাভতা মদধ্য় শুরু কযা মাক।
আভাধ্দয প্রাগ্রাধ্ভয আউিুি ধ্ফ এযকভ:
5X1=5
5 X 2 = 10
5 X 3 = 15
5 X 4 = 20
5 X 5 = 25
5 X 6 = 30
5 X 7 = 35
5 X 8 = 40
5 X 9 = 45
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
5 X 10 = 50
প্তাভযা মনশ্চয়ই এেন অধ্নকগুধ্রা printf পািংন প্রো শুরু কযধ্ফ না। রুধ্য াাধ্ময প্রাগ্রাভমি
মরধ্ে প্পরধ্ফ:
#include <stdio.h>
int main()
{
int n = 5;
int i = 1;
while (i <= 10) {
printf("%d X %d = %d\n", n, i, n*i);
i = i + 1;
}
return 0;
}
প্রাগ্রাভ: ৪.৬
এতেণ আভযা while রু ফযফায কযরাভ। এফায চধ্রা for রু ফযফায কযধ্ত মমে। 5-এয
নাভতায প্রাগ্রাভমি মমদ আভযা for রু ফযফায কধ্য মরমে তাধ্র প্মিয প্চাযা দাুঁড়াধ্ফ:
#include <stdio.h>
int main()
{
int n = 5;
int i;
for(i = 1; i <= 10; i = i + 1) {
printf("%d X %d = %d\n", n, i, n*i);
}
return 0;
}
প্রাগ্রাভ: ৪.৭
for রুধ্য রথভ ফন্ধনীয প্বতয মতনমি অিং রে কধ্যা। রমতমি অিং প্মভধ্কারন (;) মদধ্য়
আরাদা কযা ধ্য়ধ্ছ। প্রাগ্রাভমি মেন রুধ্য প্বতয ঢুধ্ক তেন রথভ প্মভধ্কারধ্নয আধ্ে আভযা
প্ম কাজগুধ্রা কযধ্ত ফরফ, প্গুধ্রা একফায কযধ্ফ। প্মভন এোধ্ন i-এয ভান 1 ফাধ্ফ। তাযয
মিতীয় অিংধ্য কাজ কযধ্ফ। মিতীয় অিংধ্ াধাযণত তত ফযফায কযা য় (while রুধ্ রথভ
ফন্ধনীয প্বতয আভযা প্ম কাজমি কময আযমক)। ওধ্যয প্রাগ্রাধ্ভ আভযা মিতীয় অিংধ্ i <= 10
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
ততমি ফযফায কধ্যমছ। এই তত মমদ মভথযা য় তধ্ফ প্রাগ্রাভমি রু প্থধ্ক প্ফমযধ্য় আধ্ফ। আয মমদ
তয য় তধ্ফ রুধ্য প্বতধ্যয কাজগুধ্রা কযধ্ফ এফিং তায য for রুধ্য প্ই রথভ ফন্ধনীয
প্বতয তৃতীয় অিংধ্ প্ম কাজগুধ্রা কযধ্ত ফরা ধ্য়ধ্ছ প্গুধ্রা কযধ্ফ। তাযয আফায মিতীয় অিংধ্
এধ্ তত যীো কযধ্ফ। রথভ অিংধ্য কাজ মকন্তু আয ধ্ফ না। প্তা আভাধ্দয প্রাগ্রাভমি আফায
রে কধ্যা। i <= 10 তয, কাযণ i-এয ভান 1। তাযয printf() পািংধ্নয কাজ ধ্ফ। তাযয
i = i + 1 প্েিধ্ভন্ট এমিমকউি ধ্ফ (i-এয ভান এক প্ফধ্ড় মাধ্ফ)। তাযয আফায i <= 10 তয
না মভথযা প্মি যীো কযা ধ্ফ (i-এয ভান এেন 2)। তাযয আফায রুধ্য প্বতধ্যয কাজ ধ্ফ
(printf())। এবাধ্ফ মতেণ না i <= 10 ততমি মভথযা ধ্ে ততেণ রুধ্য প্বতধ্যয কাজ চরধ্ত
থাকধ্ফ। i-এয ভান এক এক কধ্য প্ফধ্ড় প্ফধ্ড় মেন 11 ধ্ফ তেন ততমি মভথযা ধ্ফ আয
প্রাগ্রাভমি রু প্থধ্ক প্ফয ধ্য় আধ্ফ। for রুধ্য রথভ ফন্ধনীয প্বতধ্যয মতনমি অিংই প্ম
ফযফায কযধ্ত ধ্ফ এভন প্কান কথা প্নই। প্কান অিং ফযফায কযধ্ত না চাইধ্র আভযা প্মি পাুঁকা
প্যধ্ে মদধ্ত াময, তধ্ফ প্মভধ্কারন মকন্তু অফযই মদধ্ত ধ্ফ। প্মভন আভযা মমদ i-এয ভান আধ্েই
মনধতাযণ কধ্য প্দই তধ্ফ প্মি রুধ্য প্বতয না কযধ্রও চধ্র।
int i = 1;
প্তা আভযা for রু মধ্ে প্পররাভ। এেন আভযা প্চষ্টা কযফ শুধু মনমদতষ্ট একমি িংেযায নাভতা না
মরধ্ে 1 প্থধ্ক 20 মতন্ত ফগুধ্রা িংেযায নাভতা একফাধ্য মরধ্ে প্পরধ্ত। অথতাৎ n-এয ভান 5
মনমদতষ্ট না কধ্য 1 প্থধ্ক 20 মতন্ত ধ্ফ। এমি কযায একমি প্ফাকা দ্ধমত (নামক প্চাযা দ্ধমত?) ধ্ে
নাভতা মরোয অিংমি ফাযফায কম-প্ে কযা। মকন্তু আভযা এমি কযফ রুধ্য প্বতয রু ফযফায
কধ্য। একমি রুধ্য াাধ্ময n-এয ভান 1 প্থধ্ক 20 মতন্ত এক কধ্য ফাড়াফ। আয তায প্বতয n-
এয একমি মনমদতষ্ট ভাধ্নয জনয নাভতািা মরেফ।
#include <stdio.h>
int main()
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
{
int n, i;
for(n = 1; n <= 20; n = n + 1) {
for(i = 1; i <= 10; i = i + 1) {
printf("%d X %d = %d\n", n, i, n*i);
}
}
return 0;
}
প্রাগ্রাভ: ৪.১০
এেন প্তাভযা প্রাগ্রাভমি চারাও। তাযয প্তাভাধ্দয কাজ ধ্ফ গুণ না কধ্য প্কফর প্মাে ফযফায
কধ্য প্রাগ্রাভমি প্রো।
আভযা এোধ্ন একমি for রুধ্য প্বতয আধ্যকমি for রু, মাধ্ক প্নধ্েড রুও (nested loop)
ফধ্র, প্মি ফযফায কযরাভ। প্তা আভযা চাইধ্র for রুধ্য প্বতয for ফা while অথফা while
রুধ্য প্বতয for ফা while রু একামধকফায ফযফায কযধ্ত াময। অফয প্মি কেধ্নাই চায ফা
াুঁচফাধ্যয প্ফম দযকায ওয়ায কথা না। প্নধ্েড রু মদধ্য় আভযা এেন আধ্যকমি প্রাগ্রাভ মরেফ।
1, 2, 3 – এই মতনমি িংেযায ফ মফনযা (permutation) প্ফয কযায প্রাগ্রাভ। মফনযাগুধ্রা
প্ছাি প্থধ্ক ফড় ক্রধ্ভ প্দোধ্ত ধ্ফ অথতাৎ প্রাগ্রাভমিয আউিুি ধ্ফ এই যকভ:
1, 2, 3
1, 3, 2
2, 1, 3
2, 3, 1
3, 1, 2
3, 2, 1
এই প্রাগ্রাভমি অধ্নকবাধ্ফ প্রো প্মধ্ত াধ্য, মকন্তু আভযা এেন মতন্ত মতিুকু প্রাগ্রামভিং মধ্েমছ,
তাধ্ত প্নধ্েড রুধ্য ফযফাযই ফধ্চধ্য় বাধ্রা ভাধান।
এোধ্ন আভযা রথভ িংেযামিয জনয একমি রু, মিতীয় িংেযামিয জনয রথভ রুধ্য প্বতধ্য একমি
রু এফিং তৃতীয় িংেযামিয জনয মিতীয় রুধ্য প্বতয আধ্যকমি রু ফযফায কযফ।
#include <stdio.h>
int main()
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
{
int a, b, c;
for (a = 1; a <= 3; a++) {
for (b = 1; b <= 3; b++) {
for (c = 1; c <= 3; c++) {
printf ("%d, %d, %d\n", a, b, c);
}
}
}
return 0;
}
প্রাগ্রাভ: ৪.১১
এেন প্রাগ্রাভমি যান কযধ্র আভযা এই যকভ আউিুি াফ:
1, 1, 1
1, 1, 2
1, 1, 3
1, 2, 1
1, 2, 2
1, 2, 3
1, 3, 1
1, 3, 2
1, 3, 3
2, 1, 1
2, 1, 2
2, 1, 3
2, 2, 1
2, 2, 2
2, 2, 3
2, 3, 1
2, 3, 2
2, 3, 3
3, 1, 1
3, 1, 2
3, 1, 3
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
3, 2, 1
3, 2, 2
3, 2, 3
3, 3, 1
3, 3, 2
3, 3, 3
মকন্তু আভযা প্তা আধ্র এই যকভ মজমন চামে না। a-এয ভান মেন 1 তেন b ও c-এয ভান 1
ধ্ফ না, আফায b এফিং c-এয ভানও ভান ধ্ফ না। ভাধ্ন a, b ও c আরাদা ধ্ফ। তাধ্র আভযা
রুধ্য প্বতয ততগুধ্রা একিু মযফততন কযফ। মিতীয় রুধ্য তত b <= 3-এয ধ্ঙ্গ আধ্যকমি তত
জুধ্ড় প্দফ, b != a। b <= 3 && b != a ভাধ্ন b-এয ভান 3-এয প্চধ্য় প্ছাি ফা ভান ধ্ফ
এফিং b-এয ভান a-এয ভাধ্নয ভান ধ্ফ না। তৃতীয় রুধ্ আভযা এেন তত প্দফ, c <= 3 &&
c != a && c != b, ভাধ্ন c-এয ভান 3-এয প্ছাি ফা ভান ধ্ত ধ্ফ এফিং c-এয ভান a-এয
ভাধ্নয ভান ওয়া চরধ্ফ না এফিং c-এয ভান b-এয ভাধ্নয ভান ধ্রও চরধ্ফ না। তাধ্র
আভাধ্দয প্রাগ্রাভমিয প্চাযা দাুঁড়াধ্ফ এই যকভ:
#include <stdio.h>
int main()
{
int a, b, c;
for (a = 1; a <= 3; a++) {
for (b = 1; b <= 3 && b != a; b++) {
for (c = 1; c <= 3 && c != a && c != b; c++) {
printf ("%d, %d, %d\n", a, b, c);
}
}
}
return 0;
}
প্রাগ্রাভ: ৪.১২
যান কযধ্র আভযা আউিুি কী প্দেফ?
3, 2, 1
ভাত্র একমি রাইন! আভযা প্রাগ্রাভমি মিক কযধ্ত মেধ্য় ঝাধ্ভরা ামকধ্য় প্পধ্রমছ ভধ্ন ধ্ে।
প্তাভযা মক একিু মচন্তা কধ্য ঝাধ্ভরায কাযণ প্ফয কযধ্ত াযধ্ফ?
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
রথধ্ভ a-এয ভান 1তাই a <= 3 তয। প্রাগ্রাভমি রথভ রুধ্য প্বতয ঢুধ্ক প্ের। তাযয মিতীয়
রুধ্য শুরুধ্ত b-এয ভান 1। b <= 3 তয। মকন্তু b != a মভথযা। কাযণ aও b-এয ভান প্তা
ভান, দুধ্িায ভানই 1। তাই প্রাগ্রাভমি আয মিতীয় রুধ্য প্বতয ঢুকধ্ফ না। এযয a-এয ভান 1
ফাড়র (a++)। a <= 3 তয (a-এয ভান 2)। এেন মিতীয় রু শুরু ধ্ফ। b-এয ভান 1। এফাধ্য
b <= 3 এফিং b != a দুমি ততই তয। প্রাগ্রাভমি মিতীয় রুধ্য প্বতয ঢুধ্ক মাধ্ফ। তৃতীয় রুধ্য
শুরুধ্ত c-এয ভান 1। c <=3 তয, c !=a তয মকন্তু c !=b মভথযা (দুধ্িায ভানই 1)। তাই
প্রাগ্রাভমি তৃতীয় রু প্থধ্ক প্ফয ধ্য় মাধ্ফ– প্কফর মতনমি তত তয ধ্রই প্রাগ্রাভমি তৃতীয় রুধ্য
প্বতয ঢুকধ্ফ এফিং a, b ও c-এয ভান মরন্ট কযধ্ফ। এবাধ্ফ মকছুেণ েধ্ফলণা কযধ্র প্তাভযা
প্দেধ্ফ প্ম মেন a-এয ভান 3, b-এয ভান 2 এফিং c-এয ভান 1, তেনই প্কফর ফ তত তয য়
আয আভযা আউিুি াই: 3, 2, 1। আধ্র মিতীয় রুধ্ আভযা b-এয ভান a-এয ভাধ্নয ভান
ধ্র রু প্থধ্ক প্ফয ধ্য় মামে। প্ই কাজমি কযা মিক ধ্ে না। আভাধ্দয উমচত দুধ্িা ভান ভান
ধ্র যফততী ভাধ্নয জনয প্চষ্টা কযা। আয ভান দুধ্িা ভান না ধ্রই প্কফর যফততী কাজ কযা।
তাধ্র আভযা মরেধ্ত াময: for (b = 1; b <= 3; b++) { if (b != a) { /* b-এয ভান a-
এয ভাধ্নয ভান না ধ্রই প্বতধ্যয অিংধ্ প্রাগ্রাভমি ঢুকধ্ফ। */ for (c = 1; c <= 3; c++)
{ if (c != a && c != b) { /*c-এয ভান a-এয ভাধ্নয ভান না ধ্র এফিং c-এয ভান b-
এয ভাধ্নয ভান না ধ্রই প্কফর প্বতধ্যয অিংধ্ প্রাগ্রাভমি ঢুকধ্ফ। */ printf ("%d, %d,
%d\n", a, b, c); } } } } তাধ্র আভাধ্দয ুধ্যা প্রাগ্রাভমি দাুঁড়াধ্ে এই যকভ:
#include <stdio.h>
int main()
{
int a, b, c;
for (a = 1; a <= 3; a++) {
for (b = 1; b <= 3; b++) {
if (b != a) {
for (c = 1; c <= 3; c++) {
if (c != b && c != a){
printf ("%d, %d, %d\n", a, b, c);
}
}
}
}
}
return 0;
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
}
প্রাগ্রাভ: ৪.১৩
প্রাগ্রাভমি চারাধ্র আভযা মনধ্চয আউিুি প্দেফ, প্মমি আভযা চামেরাভ।
1, 2, 3
1, 3, 2
2, 1, 3
2, 3, 1
3, 1, 2
3, 2, 1
মাক, অফধ্ধ্ল আভাধ্দয ভযায ভাধান ধ্রা। তধ্ফ আভযা মকন্তু আযও ধ্জই ভাধান কযধ্ত
াযতাভ এবাধ্ফ–
#include <stdio.h>
int main()
{
int a, b, c;
for (a = 1; a <= 3; a++) {
for (b = 1; b <= 3; b++) {
for (c = 1; c <= 3; c++) {
if(b != a && c != a && c != b) {
printf ("%d, %d, %d\n", a, b, c);
}
}
}
}
return 0;
}
প্রাগ্রাভ: ৪.১৪
এোধ্ন আভাধ্দয প্ফম মচন্তা কযধ্ত ধ্রা না। প্কফর মরন্ট কযায ভয় a, b, c মতনমিয ভান
যস্পধ্যয ভান নয়, প্মি মনমশ্চত কধ্য মনধ্রই ধ্রা! ফুমদ্ধিা বাধ্রাই, তধ্ফ এমিয প্চধ্য় আভাধ্দয
আধ্েয প্রাগ্রাভমি কমিউিাযধ্ক মদধ্য় কভ কাজ কযায়, তাই চরধ্তও কভ ভয় রাধ্ে, ফা
কমিউিাধ্যয বালায় ফরধ্র যান িাইভ (run time) কভ। আধ্র একমি প্রাগ্রাভ চরধ্ত প্কভন
ভয় রােধ্ফ প্মি মনবতয কধ্য ভূরত প্রাগ্রাভমি প্ভাি কয়মি অযাাইনধ্ভন্ট অাধ্যন
(assignment operation) আয কয়মি কিামযজন অাধ্যন (comparison operation)
কযর তায ওয।
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
প্তাভাযধ্দয মক ভাথা মঝভ মঝভ কযধ্ছ? মকিংফা ভধ্ন ধ্ে প্ম "ায় প্োদা, কীধ্য ভধ্ধয এধ্
ড়রাভ!"? আধ্র বধ্য়য মকছুই প্নই। প্তাভযা এক কাজ কযধ্ত াধ্যা। আভায ফইধ্য়য ধ্যয
অধযায়িা ড়া শুরু কযায আধ্ে যামেফ াান বাইধ্য়য দুমি মিউধ্িামযয়ার ধ্ড় প্পধ্রা, প্দেধ্ফ
জীফন আনন্দভয়!
১) http://jontrogonok.com/?p=6
২) http://jontrogonok.com/?p=9
এই অধযায়য় আভযা প্রাগ্রামভিংয়য়য নতুন মকছু মখফ না। এখন মযন্ত আভযা মতটুকু প্রাগ্রামভিং
ময়খমছ, তা মদয়য়ই মকছু জ-যর গামিমতক ভযায ভাধান কযফ।
ভীকযিদুমট প্মাগ কযয়র াই 2x = 20, ফা x = 10। আফায মফয়য়াগ কযয়র াই, 2y = 10,
ফা y = 5। এখন একমট প্রাগ্রাভ মরখয়ত য়ফ প্মখায়ন x + y ও x – y-এয ভান প্দওয়া থাকয়ফ, x
ও y-এয ভান প্ফয কযয়ত য়ফ। আমভ প্রাগ্রাভমট একটু য়য মরয়খ প্দফ। এয ভয়ধয তুমভ মনয়জ
মরখায প্চষ্টা কয়যা। জ প্রাগ্রাভ।
এই ধযয়নয ভীকযি ভাধায়নয জনযও আভযা একমট প্রাগ্রাভ মরখফ, মায ইনুট য়ফ a1, a2,
b1, b2, c1, c2 এফিং আউটুট য়ফ x ও y-এয ভান। এমটও জ প্রাগ্রাভ। মনয়জ প্চষ্টা কয়যা।
আা কময, প্তাভযা দুমট ভযাযই ভাধান মনয়জ কয়য প্পরয়ত াযয়ফ। এখন আমভ রথভ ভযায
প্কাড মদমে:
ভাধান খুফই জ। তয়ফ রক্ষ কয়যা প্ম আমভ প্বমযয়য়ফয়রয ডাটা টাই int ফযফায না কয়য
double ফযফায কয়যমছ।
#include <stdio.h>
int main()
{
double a1, a2, b1, b2, c1, c2, x, y;
printf("a1 = ");
scanf("%lf", &a1);
printf("a2 = ");
scanf("%lf", &a2);
printf("b1 = ");
scanf("%lf", &b1);
printf("b2 = ");
scanf("%lf", &b2);
printf("c1 = ");
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
scanf("%lf", &c1);
printf("c2 = ");
scanf("%lf", &c2);
x = (b2 * c1 - b1 * c2) / (a1 * b2 - a2 * b1);
y = (a1 * c2 - a2 * c1) / (a1 * b2 - a2 * b1);
printf("x = %0.2lf, y = %0.2lf\n", x, y);
return 0;
}
প্রাগ্রাভ: ৫.২
এমটও জ প্রাগ্রাভ! তয়ফ প্তাভযা প্দয়খা (a1 * b2 - a2 * b1)-এয ভান আমভ দুফায প্ফয
কয়যমছ (x-এয ভান প্ফয কযায ভয়, আফায y-এয ভান প্ফয কযায ভয়)। কাজমট একফায়যই
কযা প্মত এফিং একফায়য কযয়রই বায়রা, তায়র আভায়দয প্রাগ্রাভ দুমট গুি ও একমট মফয়য়ায়গয
কাজ কভ কযয়ফ। আফায (a1 * b2 - a2 * b1)-এয ভান মমদ ূনয য়, তায়র একমট ঝায়ভরা
য়য় মায়ে, কাযি প্কায়না মকছুয়ক প্তা ূনয মদয়য় বাগ কযা মায় না। তাই ওই ভানমট ূনয য়র
আয়র ভীকযয়িয প্কায়না ভাধান প্নই। এফায প্রাগ্রাভমট আযও বায়রাবায়ফ মরয়খ প্পমর।
#include <stdio.h>
int main()
{
double a1, a2, b1, b2, c1, c2, d, x, y;
printf("a1 = ");
scanf("%lf", &a1);
printf("a2 = ");
scanf("%lf", &a2);
printf("b1 = ");
scanf("%lf", &b1);
printf("b2 = ");
scanf("%lf", &b2);
printf("c1 = ");
scanf("%lf", &c1);
printf("c2 = ");
scanf("%lf", &c2);
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
d = a1 * b2 - a2 * b1;
if ((int) d == 0) {
printf("Value of x and y can not be determined.\n");
}
else {
x = (b2 * c1 - b1 * c2) / d;
y = (a1 * c2 - a2 * c1) / d;
printf("x = %0.2lf, y = %0.2lf\n", x, y);
}
return 0;
}
প্রাগ্রাভ: ৫.৩
এখায়ন একমট ফযাায প্খয়ার কয়যা। আমভ if-এয প্বতয মরয়খমছ (int) d == 0। এখায়ন আমভ
রথয়ভ d (মা একমট double টাইয়য প্বমযয়য়ফর)-প্ক ইমিজায়য টাই কাস্ট কয়য তাযয তায
ভানমট 0-এয ভান মক না তা যীক্ষা কয়যমছ। যীক্ষাটা এবায়ফও কযা প্মত: if (d == 0.0) তয়ফ
এয়ত ভায়ঝ ভায়ঝ ঝায়ভরা য়, প্লামটিং য়য়ি-িংক্রান্ত মাফ-মনকায়য জনয। প্তাভযা কমিউটায
আমকযয়টকচায মনয়য় প্রখাড়া কযয়র মফলয়টা ফুঝয়ত াযয়ফ।
প্তাভায়দয ভয়ন একমট রশ্ন আয়ত ায়য প্ম এই জ ভযাগুয়রা প্রাগ্রামভিং কয়য ভাধান কয়য
কী রাব? আয়র একফায প্রাগ্রাভ মরয়খ প্পরায য়য মকন্তু আয ভাধান কযয়ত য় না। তাযয
শুধু ইনুট প্দয়ফ, প্রাগ্রাভমট মনয়জই ভযায ভাধান কয়য প্তাভায়ক আউটুট প্দয়ফ।
৩) আমভ মমদ প্তাভায়ক দ াজায টাকা ঋি মদই 35% ুয়দ এফিং টাকাটা াাঁচ ফছয ভয়য়য ভয়ধয
প্তাভায়ক ুয়দ-আয়র মযয়াধ কযয়ত ফমর, তায়র াাঁচ ফছয়য প্ভাট কত টাকা প্তাভায মদয়ত য়ফ
এফিং রমত ভায় কত টাকা মদয়ত য়ফ? ঋিটা মমদ জমটর মকছু না য়, তায়র প্তাভায প্ভাট
মযয়াধ কযয়ত য়ফ 10000 + 10000 * 35 / 100 টাকা। এই জ-যর ঋয়িয জনয একমট
প্রাগ্রাভ মরয়খ প্পরা মাক:
#include <stdio.h>
int main()
{
আভায়দয পভুযরায়ত একটু ভযা আয়ছ। আয়র 35% ুদ মদয়ত য়র প্টা ফাৎমযক ুদ য়ফ।
অথযাৎ রমত ফছয প্ভাট ঋয়িয উয 35% ুদ প্দওয়া রাগয়ফ। তায়র প্দখা মায়ে াাঁচ ফছয়য
প্তাভায প্ভাট মযয়াধ কযয়ত য়ফ 10000 + 10000 * 35 * 5 / 100 টাকা। এখন এই
পভুযরা অনুমায়ী প্রাগ্রাভ মরয়খ প্পয়রা।
তয়ফ ফাস্তয়ফ ঋয়িয মাফ-মনকা মকন্তু এত যর নয়। তুমভ ফযািংক প্থয়ক ঋি মনয়ত প্গয়রই প্মট
প্টয ায়ফ।
প্কায়না ফস্তু u আমদয়ফয়গ (initial velocity) এফিং a ত্বযয়ি (acceleration) মাত্রা শুরু কযর
(ত্বযয়িয ভান ফ ভয় a থাকয়ফ, ফাড়য়ফ ফা কভয়ফ না)। t ভয় য়য এয প্ফগ মমদ v য় তায়র
2t ভয়য় ফস্তুমট কত দূযত্ব অমতক্রভ কযয়ফ? (ভযামট মদয়য়য়ছন ামযয়ায ভঞ্জুয, এমট
বযারাডমরড অনরাইন জায়জয 10071 নম্বয ভযা)।
2t ভয়য় অমতক্রান্ত দূযত্ব য়ফ v x 2t। এমট রভাি কয়য প্পয়রা। তাযয আফায ড়া শুরু কয়যা।
নফভ-দভ প্েিীয দাথযমফজ্ঞান ফইয়ত প্তাভযা দুমট ূত্র ায়ফ:
v = u + at
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
s = ut + 0.5 at^2 (এখায়ন s য়ে t ভয়য় অমতক্রান্ত দূযত্ব)।
তায়র 2t ভয় য়য অমতক্রান্ত দূযত্ব য়ফ
u x 2t + 0.5 x a x (2t)^2 = u x 2t + 0.5 x a x 4t^2 = u x 2t + a x 2t^2 = 2t
(u + at) = 2tv
এখন, প্তাভায়দযয়ক একমট প্রাগ্রাভ মরখয়ত য়ফ, প্মখায়ন v ও t-এয ভান ইনুট ময়য়ফ প্দওয়া
য়ফ, 2t ভয়য় অমতক্রান্ত দূযত্ব মনিযয় কযয়ত য়ফ। প্রাগ্রাভমট মনয়জ মনয়জ মরয়খ প্পয়রা।
প্তাভযা মাযা ধাযায প্মাগপয়রয ূত্র জায়না, তাযা চট কয়য ফয়র মদয়ত াযয়ফ, এই ধাযামটয
প্মাগপর য়ে 1000 x 1001 / 2। তায়র এয জনয একমট প্রাগ্রাভ মরয়খ প্পরা মাক, প্মখায়ন
প্ল য়দয ভান য়ফ ইনুট আয আউটুট য়ফ প্মাগপর।
#include <stdio.h>
int main()
{
int n, sum;
scanf("%d", &n);
sum = (n * (n + 1)) / 2;
printf("Summation is %d\n", sum);
return 0;
}
প্রাগ্রাভ: ৫.৫
ধাযায প্মাগপর মনিযয়য়য ূত্র জানা না থাকয়র আভযা রু ফযফায কয়য প্রাগ্রাভমট মরখয়ত াময।
#include <stdio.h>
int main()
{
int i, n, sum;
scanf("%d", &n);
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
for(i = 1, sum = 0; i <= n; i++) {
sum = sum + i;
}
printf("Summation is %d\n", sum);
return 0;
}
প্রাগ্রাভ: ৫.৬
ুতযািং ধাযায ভযা মনয়য় আয মচন্তা প্নই। তুমভ মমদ একমট য়দয ভান তায আয়গয য়দয প্চয়য়
কত কয়য ফাড়য়ছ, প্মট প্ফয কযয়ত ায়যা, তায়রই রু ফযফায কয়য প্মাগপর প্ফয কয়য প্পরয়ত
াযয়ফ। তয়ফ ূত্র প্ফয কযয়ত াযয়র রু ফযফায না কযাই বায়রা। কাযি রথভ প্রাগ্রাভমট প্দয়খা
(প্মখায়ন ূত্র ফযফায কয়যমছ)। প্খায়ন একমট প্মাগ, একমট গুি আয একমট বাগ কযয়ত য়য়য়ছ,
n-এয ভান মত ফড়ই প্াক না প্কন। আয মিতীয় প্রাগ্রায়ভ (প্মখায়ন রু ফযফায কয়যমছ) n-এয
ভান মত, ততফায প্মাগ কযয়ত য়য়য়ছ, আফায প্ই প্মাগপরমট sum প্বমযয়য়ফয়র যাখয়ত য়য়য়ছ
(প্বমযয়য়ফয়র প্কায়না ভান যাখয়তও মকন্তু একটু ভয় রায়গ)।
এখন প্তাভায়দয একমট জ প্রাগ্রাভ মরখয়ত য়ফ। রথভ n িংখযক ধনাত্মক প্ফয়জাড় িংখযায
প্মাগপর মনিযয়য়য প্রাগ্রাভ। n-এয ভান য়ফ ইনুট, আয প্মাগপর য়ফ আউটুট।
#include <stdio.h>
int main()
{
double celsius, farenheit;
printf("Enter the temperature in celsius: ");
scanf("%lf", &celsius);
farenheit = 1.8 * celsius + 32;
printf("Temperature in farenheit is: %lf\n", farenheit);
return 0;
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
}
প্রাগ্রাভ: ৫.৭
এখন প্তাভায়দয কাজ য়ে পায়যনাইট প্থয়ক প্রময়ায় রূান্তয়যয প্রাগ্রাভ প্রখা।
৭) এখন আভযা দুমট িংখযায গাগু (GCD → Greatest Common Divisor ফা HCF
→ Highest Common Factor) ও রাগু (LCM → Least Common Multiple)
মনিযয় কযায জনয প্রাগ্রাভ মরখফ।
দুমট িংখযায গাগু য়ে প্মফ িংখযা মদয়য় ওই দুমট িংখযা মনঃয়য়ল মফবাজয য়, তায়দয ভয়ধয
ফয়চয়য় ফড় িংখযা। তায়র আভযা প্মমট কযফ, দুমট িংখযা a ও b প্নফ। তাযয এয়দয ভয়ধয প্মমট
প্ছাট, প্ই ভানমট আফায x প্বমযয়য়ফয়র যাখফ। গাগু এয ভান x-এয প্চয়য় ফড় ওয়া ম্ভফ নয়
(5 ও 10-এয গাগু-এয ভান মনশ্চয়ই 5-এয প্চয়য় ফড় য়ফ না)। এখন a ও b, x মদয়য় মনঃয়য়ল
মফবাজয য় মক না (a % x == 0 এফিং b % x == 0) প্মট যীক্ষা কযফ। মমদ য় তয়ফ আভযা
গাগু প্য়য় প্গমছ। মমদ a ও b উবয়য়ই মনঃয়য়ল মফবাজয না য়, তখন x-এয ভান এক কমভয়য়
যীক্ষা কযফ। মতক্ষি না আভযা গাগু ামে x-এয ভান কভায়তই থাকফ। একভয় আভযা গাগু
াফই, কাযি x-এয ভান মখন 1 য়ফ, তখন প্তা x মদয়য় a ও b দুমট িংখযাই মনঃয়য়ল মফবাজয।
প্তাভযা মক প্রাগ্রাভমট মনয়জ মরখায প্চষ্টা কযয়ফ? না াযয়র আভায প্কাড প্দয়খা:
#include <stdio.h>
int main()
{
int a, b, x, gcd;
scanf("%d %d", &a, &b);
if (a < b) {
x = a;
}
else {
x = b;
}
for(; x >= 1; x--) {
if (a % x == 0 && b % x == 0) {
gcd = x;
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
break;
}
}
printf("GCD is %d\n", gcd);
return 0;
}
প্রাগ্রাভ: ৫.৮
প্রাগ্রায়ভ প্দয়খা gcd াওয়ায য়ে য়ে রু প্থয়ক প্ফয য়য় প্ময়ত য়ফ (আমভ break ফযফায
কয়যমছ এই জনয)। break ফযফায না কযয়র কী য়ফ প্মট যীক্ষা কয়য প্দয়খা।
তয়ফ গাগু প্ফয কযায জনয আমভ প্মই দ্ধমত ফযফায কয়যমছ প্মট খুফ জ দ্ধমত য়রও
ইমপময়য়ি (efficient) নয়। প্মভন, িংখযা দুমট খুফ ফড় য়র এফিং য়ভৌমরক (co-prime)
য়র রুমট মকন্তু অয়নকফায ঘুযয়ফ। কাযি য়ভৌমরক য়র গাগু য়ফ 1। প্তাভযা মনশ্চয়ই জায়না
প্ম, দুমট িংখযায ভয়ধয 1 ছাড়া আয প্কায়না াধাযি উৎাদক না থাকয়র িংখযা দুমট য়ভৌমরক।
গাগু প্ফয কযায জনয ইউমক্লয়ডয একমট চভৎকায দ্ধমত আয়ছ। ইউমক্লড বাগয়ল উায়দযয
(division algorithm) াায়ময গাগু প্ফয কযায উায় প্দমখয়য়য়ছন। এই দ্ধমতয়ত খুফ
য়জ গাগু প্ফয কযা মায় এফিং প্রাগ্রাভমটও প্ফ ইমপময়য়ি য়। এয জনয দুমট মজমন জানা
রাগয়ফ:
a ও 0-এয গাগু-এয ভান a।
a ও b-এয গাগু = b ও a % b-এয গাগু।
তায়র প্রাগ্রায়ভ প্মমট কযয়ত য়ফ, একমট রুয়য াায়ময a-এয ভান b আয b-এয ভান a%b
ফময়য় প্ময়ত য়ফ, মতক্ষি না b-এয ভান ূনয য়। b-এয ভান ূনয য়রই ফুয়ঝ মাফ প্ম গাগু
য়ে a (এটা মকন্তু প্রাগ্রাভ শুরুয ভয় a-এয ভান না, b-এয ভান মখন ূনয য়ফ প্ই ভয় a-
এয ভান)।
#include <stdio.h>
int main()
{
int a, b, t, x, gcd;
scanf("%d %d", &a, &b);
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
if (a == 0) gcd = a;
else if (b == 0) gcd = b;
else {
while (b != 0) {
t = b;
b = a % b;
a = t;
}
gcd = a;
}
printf("GCD is %d\n", gcd);
return 0;
}
প্রাগ্রাভ: ৫.৯
এফায রাগু প্ফয কযায প্রাগ্রাভ। প্তাভযা মনশ্চয়ই স্কুয়র ময়খছ, কীবায়ফ রাগু প্ফয কযয়ত য়।
প্ই দ্ধমত অফরম্বন কয়য প্রাগ্রাভ মরয়খ প্পয়রা। আয মাযা প্ই দ্ধমত জায়না না, তায়দয জনয
একমট ূত্র ফয়র মদমে। আা কময, রাগু প্ফয কযায প্রাগ্রাভ মরখয়ত আয ভযা য়ফ না।
#include <stdio.h>
int main()
{
int ft_marks, st_marks, final_marks;
double total_marks;
ft_marks = 80;
st_marks = 74;
final_marks = 97;
total_marks = ft_marks / 4.0 + st_marks / 4.0 + final_marks / 2.0;
printf("%0.0lf\n", total_marks);
return 0;
}
প্রাগ্রাভ: ৬.১
প্রাগ্রাভমটয আউটুট 87। (মকন্তু আমভ মমদ total_marks = ft_marks / 4.0 + st_marks
/ 4.0 + final_marks / 2.0; না মররে এবারফ মরেতাভ total_marks = ft_marks / 4
+ st_marks / 4 + final_marks / 2; তারর আউটুট আর 86। কাযে কী?
কমিউটারযয ভাথা োযা নামক আভায?)
আভযা মকন্তু আভারদয মরয় মক্ষরকয প্তভন প্কারনা উকায কযরত াযরাভ না। কাযে তাাঁয ক্লার
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
প্ভাট ছাত্রছাত্রীয িংেযা চমি। তারর যাযরক চমিফায প্রাগ্রাভমট চারারত রফ! মকন্তু এমট প্তা
প্কারনা কারজয কথা ররা না। আভারদয উমচত, ফায চূোন্ত পরাপর একমট প্রাগ্রারভয ভাধযরভ
মনেময় কযা। প্তভন প্কারনা কমিন কাজ নয় এমট। আভযা এভন একমট প্রাগ্রাভ প্রো শুরু করয মদরত
াময:
#include
int main()
{
int ft_marks_1, st_marks_1, final_marks_1, ft_marks_2, st_marks_2,
final_marks_2, ft_marks_3, st_marks_3, final_marks_3,
প্তাভযা মনশ্চয়ই ফুঝরত াযছ, আমভ কী কযরত মামে? ফররা প্তা এবারফ প্রাগ্রাভমট মরেরত প্গরর
প্ভাট কয়মট প্বমযরয়ফররয দযকায? 160মট। যারযয কষ্ট কভারত মগরয় আভারদয কষ্ট এত
ফাোরনায প্কারনা ভারন য় না। মকন্তু এধযরনয প্রাগ্রাভ প্তা আভারদয রায়ই মরেরত রফ। মচন্তা
প্নই! রায় ফ প্রাগ্রামভিং রযািংগুরয়রজই অযারয (Array) নারভ একমট চভৎকায মজমন আরছ। এরত
একই ধযরনয অরনকগুররা প্বমযরয়ফর একরে যাো মায়। প্বমযরয়ফররয প্মভন নাভ যামে, অযারযয
প্ফরারতও প্তভন একমট নাভ মদরত য়। Cপ্তও অযারয আরছ।
প্বমযরয়ফররয প্মভন একমট ডাটা টাই থারক, অযারযযও থারক। অযারযমট প্ম ডাটা টাইরয রফ
তারত প্কফর প্ই যকভ ডাটাই যাো মারফ। প্মভন char টাইরয অযারযরত প্কফর char টাইরয
মজমন থাকরফ।
এফারয চররা অযারয মনরয় একটু প্েরাধুরা কযা মাক। রমতমট প্রাগ্রাভ মকন্তু অফযই কমিউটারয
চামররয় প্দেরফ।
আরযকমট প্রাগ্রাভ:
#include <stdio.h>
int main()
{
int ara[5] = {6, 7, 4, 6, 9};
printf("%d\n", ara[-1]);
printf("%d\n", ara[5]);
printf("%d\n", ara[100]);
return 0;
}
প্রাগ্রাভ: ৬.৩
এমটয জনয কী আউটুট আা উমচত? আমভ জামন না এফিং এমট জানা ম্ভফ নয়। প্মরকারনা ধযরনয
িংেযা আরত ারয। এগুররারক গাযরফজ (garbage) ফরর। কাযে আরর প্তা ওই অযারযরত -1,
5, 100 এই ইনরডক্স ফররত মকছু প্নই। অযারযমটয দদর্ঘমযই রে 5 ুতযািং ইনরডক্স রফ 0 প্থরক
4।
এেন প্কারনা অযারযয ফ উাদান মমদ একরে প্দোরত চাই, তারর উায় কী? উায় রে
রথভ উাদান (ara[0]), মিতীয় উাদান (ara[1]), তৃতীয় উাদান (ara[2]) … এবারফ এরক
এরক ফগুররা মরি কযা। আয তায জনয অফযই আভযা রুরয াাময প্নফ।
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
#include <stdio.h>
int main()
{
int ara[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
int i;
for(i = 0; i < 10; i++) {
printf("%d th element is: %d\n", i+1, ara[i]);
}
return 0;
}
প্রাগ্রাভ: ৬.৪
আয মমদ প্ল উাদান প্থরক রথভ উাদান মমন্ত প্দোরত রতা? প্কারনা ভযা প্নই, শুধু রুর
এ indexমট 9 প্থরক 0 মমন্ত আনররই চররফ। এেন প্তাভযা প্রাগ্রাভমট মররে প্পররা।
এফারয একমট প্ছাট ভযা। প্কারনা একমট অযারযরত দমট উাদান আরছ, প্গুররা মফযীত ক্ররভ
যােরত রফ। অথমাৎ দভ উাদানমট রফ রথভ উাদান, রথভমট রফ দভ, মিতীয়মট রফ নফভ,
নফভমট রফ মিতীয়.. এই যকভ। তায জনয আভযা প্মমট কযরত াময, আরযকমট অযারযয াাময
মনরত াময। মিতীয় অযারযমটরত রথভ অযারযয উাদানগুররা মফযীত ক্ররভ যােরফা। তাযয মিতীয়
অযারযমট রথভ অযারযরত কম করয প্পরফ।
#include <stdio.h>
int main()
{
int ara[] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
int ara2[10];
int i, j;
for(i = 0, j = 9; i < 10; i++, j--) {
ara2[j] = ara[i];
}
for(i = 0; i < 10; i++) {
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
ara[i] = ara2[i];
}
for(i = 0; i < 10; i++) {
printf("%d\n", ara[i]);
}
return 0;
}
প্রাগ্রাভ: ৬.৫
এোরন রক্ষ করযা প্ম রথভ অযারযমটয প্ক্ষরত্র আমভ তৃতীয় ফন্ধনীয প্বতয অযারযয উাদান িংেযা
ফরর মদইমন, কাযে ম-এয কিাইরায মিতীয় ফন্ধনীয প্বতয িংেযাগুররা প্দরেই ফুরঝ মনরত ারয
প্ম araপ্ত দমট উাদান আরছ। মিতীয় অযারয অথমাৎ ara2প্ত এেন প্কারনা মকছু প্নই। তাই
শুরুরতই ফরর মদরত রফ প্ম তারত কয়মট উাদান থাকরফ। তারর কিাইরায প্ই অনুারয
কমিউটারযয প্ভরভামযয ভরধয অযারযয জনয জায়গা করয প্নরফ।
প্রাগ্রাভমট বাররাবারফই কাজ কযরছ। মকন্তু প্তাভযা একটু মচন্তাবাফনা কযররই ফুঝরত াযরফ প্ম
মিতীয় অযারযমট ফযফায কযায প্কারনা দযকায মছর না। আভযা একমট ফহুর রচমরত িমতরতই
কাজমট কযরত াযতাভ।
int temp;
temp = ara[9];
ara[9] = ara[0];
ara[0] = temp;
রথভ ও দভ উাদান অদরফদর রয় প্গর। তাযয
temp = ara[8];
ara[8] = ara[1];
ara[1] = temp;
মিতীয় ও নফভ উাদান অদরফদর রয় প্গর। তারর চররা প্রাগ্রাভমট মররে প্পমর:
#include <stdio.h>
int main()
{
int ara[] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
int i, j, temp;
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
for(i = 0, j = 9; i < 10; i++, j--) {
temp = ara[j];
ara[j] = ara[i];
ara[i] = temp;
}
for(i = 0; i < 10; i++) {
printf("%d\n", ara[i]);
}
return 0;
}
প্রাগ্রাভ: ৬.৬
তাযভারন কাজ য়মন! আরর আমভ একমট প্ছাট্ট বুর করযমছ, প্মট প্তাভযা েুাঁরজ প্ফয করযা। এ
ধযরনয বুররক ফরর ফাগ (bug), তেন প্রাগ্রাভ মিকভরতা যান করয মকন্তু মিক আউটুট প্দয় না।
আভায প্কারড ফাগ আরছ, প্তাভযা মডফাগ (debug) করযা (ভারন ফাগমট প্ফয করয মিক করযা)।
এেন চররা আভারদয আরগয ভযায় মপরয মাই। আভযা এেন রথভ াভময়ক যীক্ষায় ফায
গমেরতয নম্বয একমট অযারযরত যােফ, মিতীয় াভময়ক যীক্ষায নম্বয আরযকমট অযারযরত, ফামলমক
যীক্ষায নম্বরযয জনয আযও একমট এফিং প্যজারেয জনযও একমট অযারয ফযফায কযফ।
#include <stdio.h>
int main()
{
int ft_marks[40] = {83, 86, 97, 95, 93, 95, 86, 52, 49, 41, 42, 47, 90,
59, 63, 86, 40, 46, 92, 56, 51, 48, 67, 49, 42, 90, 42, 83, 47, 95, 69, 82,
82, 58, 69, 67, 53, 56, 71, 62},
st_marks[40] = {86, 97, 95, 93, 95, 86, 52, 49, 41, 42, 47, 90, 59, 63,
86, 40, 46, 92, 56, 51, 48, 67, 49, 42, 90, 42, 83, 47, 95, 69, 82, 82, 58,
69, 67, 53, 56, 71, 62, 49},
final_marks[40] = {87, 64, 91, 43, 89, 66, 58, 73, 99, 81, 100, 64, 55,
69, 85, 81, 80, 67, 88, 71, 62, 78, 58, 66, 98, 75, 86, 90, 80, 85, 100, 64,
55, 69, 85, 81, 80, 67, 88, 71};
int i;
double total_marks[40];
for(i = 0; i < 40; i++) {
total_marks[i] = ft_marks[i] / 4.0 + st_marks[i] / 4.0 +
final_marks[i] / 2.0;
}
for(i = 1; i <= 40; i++) {
printf("Roll NO: %d\tTotal Marks: %0.0lf\n", i, total_marks[i-1]);
}
return 0;
}
প্রাগ্রাভ: ৬.৭
যান করয প্দরো, কী ুন্দয আউটুট! printf পািংরনয প্বতরয প্দরো এক জায়গায় আমভ \t
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
মররেমছ, এরত টযাফ (Tab) মরি রফ (মকরফারডময ফাাঁ মদরক প্দরো)। প্যার নিং মরি কযায রয
একমট টযাফ মদরয় প্টাটার ভাকম মরি কযরর প্দেরত একটু বাররা রারগ এই জনয \t ফযফায
করযমছ, এভমনরত প্কারনা দযকায প্নই।
মকন্তু এত ুন্দয প্রাগ্রাভ প্দরে প্তাভায মক্ষক প্কাথায় প্তাভারক একটু চটমট োওয়ারফন না উো
আরযকমট আফদায করয ফররন। প্কান নম্বয কতজন প্রয়রছ প্মট উমন প্দেরত চান। ভারন 50
কতজন প্র, 51 কতজন প্র … এই যকভ আয মক। ফামক অিং োয আরগ প্রাগ্রাভমট প্তাভযা
মনরজ মনরজ মরোয প্চষ্টা করযা। এেন ইো না কযরর ফইমট ো ফন্ধ করয দাও এফিং রয প্কারনা
একভয় প্চষ্টা কযরফ।
আা কময, প্তাভারদয ভরধয প্কউ প্কউ প্রাগ্রাভমট মররে প্পররছ। মমদ কভরক্ষ এক র্ঘণ্টা প্চষ্টায
রযও মরেরত না ারযা তারর এেন আভযা ভাধারনয প্চষ্টা কযরত াময। শুরুরতই একমট ফযাায
প্েয়ার করযা প্ম প্কউ মকন্তু 50-এয মনরচ নম্বয ায়মন। তাই 50 প্থরক 100 মমন্ত প্কান নম্বয
কতজন প্র প্মট প্ফয কযররই চররফ। আভায ভাথায় রথরভই প্ম ভাধান আরছ প্মট ররা
total_marks অযারযরত রথরভ প্দেফ, কয়মট 50 আরছ, তাযয আফায প্দেফ কয়মট 51 আরছ
… এবারফ 100 মমন্ত প্দেফ। ভারন 50 প্থরক 100 মমন্ত ফ িংেযায জনয total_marks
অযারযরত িংেযাগুররা প্চক কযফ।
for(marks = 50; marks <= 100; marks++) { রুরয াারময রথরভ marks-এয
ভান 50, তাযরয 51, এবারফ এক এক করয ফাোফ 100 মমন্ত।
count = 0; ধরয মনমে ূনয জন 'marks' নম্বয প্রয়রছ। marks-এয ফ কমট ভারনয জনযই
রথরভ আভযা এই কাজমট কযফ। এফারয total_marks অযারযরত প্দেফ প্ম প্কারনা নম্বয মমদ
marks-এয ভান য়, তরফ count-এয ভান এক ফামেরয় প্দফ। তারর প্কারনা একমট নম্বয
(marks) মতফায অযারযরত আরছ, count-এয ভান তত রফ।
for(i = 0; i < 40; i++) {
if(total_marks[i] == marks) {
count++;
}
}
printf("Marks: %d Count: %d\n", marks, count); এোরন আভযা রমতমট marks
এফিং প্মট কতফায আরছ (count) তা মরি করয মদমে।
}
তারর ুরযা প্রাগ্রাভ মররে প্পমর:
প্তভন কমিন মকছু নয়। প্নরেড পয রু ফযফায করয জ-যর ভাধান করয প্পররাভ। আো
ফররা প্তা if-এয প্বতয প্ম তমমট আভযা যীক্ষা কযমছ (total_marks[i] == marks) এই
কাজমট প্রাগ্রারভ কতফায য়? ফাইরযয রুমট র্ঘুযরফ 51 ফায এফিং রমতফারযয জনয প্বতরযয রুমট
র্ঘুযরফ 40 ফায। তারর প্ভাট 51 x 40 = 2040 ফায।
ওরযয প্রাগ্রাভমট আভযা এেন একটু অনযবারফ মরোয প্চষ্টা কযফ। মনরচয প্রাগ্রাভমট চটট টাই
করয প্পররা এফিং যান করযা:
#include <stdio.h>
int main()
{
int i;
এোরন আমভ প্মমট করযমছ, একমট অমতমযক্ত অযারয ফযফায করযমছ। marks_count একমট
ইমিজায টাইরয অযারয এফিং marks_count[n] মদরয় আভযা ফুঝফ n িংেযামট কতফায
total_marks-এয ভরধয আরছ। নম্বয প্মরতু 0 প্থরক 100-এয ভরধয রত ারয তাই আভযা
ওই অযারযরত প্ভাট 101মট িংেযা যাোয ফযফস্থা কযরাভ। int marks_count[101];
শুরুরত প্মরতু মকছুই জামন না, তাই ধরয মনই, ফ িংেযা ূনয ফায আরছ। তাই marks_count
অযারযয ফ র্ঘরয 0 ফমরয় মদই:
for(i = 0; i < 101; i++) { marks_count[i] = 0; } এেন total_marks অযারযয
রমতমট িংেযায জনয marks_count অযারযয ওই র্ঘরযয ভান এক ফামেরয় মদই। for(i = 0; i <
40; i++) { marks_count[total_marks[i]]++; } ফুঝরত ভযা রে নামক? একটু
মচন্তা করযা। মেন i-এয ভান 0, তেন total_marks[i] রে total_marks[0], অথমাৎ 86।
এেন আভারদয দযকায রে marks_count অযারযয ওই র্ঘযটায (ভারন
marks_count[86]) ভান এক ফামেরয় প্দওয়া। শুরুরত মছর ূনয, এেন রফ এক। আভযা মকন্তু
প্ কাজমটই করযমছ marks_count[total_marks[i]]-এয ভান এক ফামেরয় মদরয়মছ
marks_count[total_marks[i]]++; আরর ফযাাযমট এইবারফও প্রো প্মত: t_m =
total_marks[i]; marks_count[t_m]++; এেরনা মাযা ভাথা চুরকাে তাযা মনরচয
প্রাগ্রাভমট কমিউটারয যান কযাও। এোরন রমতফায marks_count[total_marks[i]]++;
কযায রয marks_count অযারযমট আভযা এক রাইরন মরি করযমছ।
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
#include <stdio.h>
int main()
{
int i, j;
int total_marks[] = {6, 7, 4, 6, 9, 7, 6, 2, 4, 3, 4, 1};
int marks_count[11];
for(i = 0; i < 11; i++) {
marks_count[i] = 0;
}
for(i = 0; i < 12; i++) {
marks_count[total_marks[i]]++;
for(j = 0; j <= 10; j++) {
printf("%d ", marks_count[j]);
}
printf("\n");
}
return 0;
}
প্রাগ্রাভ: ৬.১০
প্তামরা মি এিমি মজার বযাপার জাননা? এিজন প্খি ারা জীবনন যতিা ময় প্নখন তার
প্েনয় প্বমল ময় মতমন অননযর প্খা পনেন? বযাপারমি প্রাগ্রামারনের প্বানতও তয। এিজন
প্রাগ্রামার তার প্রাগ্রামমিং জীবনন যতিা ময় মননজ প্িাড প্নখ তার প্েনয় প্বমল ময় অননযর প্খা
প্িাড পনে! তাই প্িাড মখার ময় প্খয়া রাখনত নব, প্যন প্মি পোও ুমবধ্াজনি য়।
যারা বইমি শুরু প্েনি পনে এনছ তারা ইমতমনধ্য অননিবার ফািংলন লব্দমি প্েনখছ। যারা আরও
প্বমল মননানযাগ মেনয় পনেছ তারা এমিও প্খয়া িনরছ প্য printf, scanf ইতযামে, প্যগুনা
প্তামরা বযবার িরছ প্গুনা এনিিমি ফািংলন। আবার mainও এিমি ফািংলন। আমরা এবার
প্েখব ফািংলন বযাপারমি আন িী, এর েরিারিাই বা িী। আর তারপর আমরা মননজনের ফািংলন
ততমর িরা মলখব।
ফািংলন বযবার িরা য় প্িাননা এিমি মনমেিষ্ট িাজ িরার জনয। প্যমন printf ফািংলনমি মেনয়
আমরা মমনিনর আউিপুি মেই। আবার scanf, getchar এব ফািংলন মেনয় আমরা মিনবাডি
প্েনি ইনপুি মনই। এখন printf ফািংলনমি প্য আমরা মখাম, িমিউিানরর প্তা আর এমি
প্বাঝার িো নয়। printf ফািংলনমি িী িাজ িরনব, িীভানব িরনব প্মি আন বন প্েওয়া
আনছ stdio.h নানমর এিমি প্ডার (header) ফাইনর মনধ্য। এজনযই আমরা আমানের
প্রাগ্রামগুনানত (প্যখানন printf, scanf ইতযামে বযবার িনরমছ) ওই প্ডার ফাইমির িো
বন মেই (#include )। আবার মরিং-িংক্রান্ত ফািংলনগুনা বযবার িরন string.h – এই
প্ডার ফাইমির িোও বন মেই। এখন মেন্তা িনরা, printf ফািংলননর এই প্িাডমি যমে আমানের
মননজনের মখনত নতা, তান বযাপারমি িী মবরমিিরই না নতা! এরিম অননি ফািংলন আনছ
প্যগুনার বযবার প্তামরা আনে আনে প্জনন যানব।
আচ্ছা, main প্ি ও প্তা আমম এিমি ফািংলন বনমছ, মিন্তু এমি মেনয় আমরা আবার িী িমর? ম
যাঙ্গুনয়নজ এই ফািংলনমি মেনয়ই আন আমরা এিমি প্রাগ্রাম োাই। িিাইার জানন প্য
main ফািংলন প্যখানন আনছ, প্খান প্েনিই িাজ শুরু িরনত নব। তাই এিমি প্রাগ্রানম প্িব
এিমিই main ফািংলন োনি।
return_type: এখানন বন মেনত নব ফািংলনমি িাজ প্ল িনর প্বর বার ময় িী ধ্রননর
ডািা মরিানি িরনব। প্মি, int, double এব নত পানর। আবার মিছু মরিানি িরনত না োইন
প্মি void নত পানর। অেিাৎ প্ মিছুই মরিানি িরনব না। এর মানন োাঁোনচ্ছ, তুমম আন
ফািংলননি মেনয় প্িাননা এিমি িাজ িরানব, প্জনয িাজ প্লন প্ প্তামানি িী ধ্রননর ডািা
প্ফরত প্েনব প্মি বন মেনত নব। ফািংলননর প্িাননা জায়গানত তুমম যখনই return বযবার
িরনব, ফািংলনমি প্ই জায়গা প্েনিই মরিানি িরনব বা প্বর নয় যানব। অননি ফািংলননর প্ভতর
প্েখনব এিামধ্ি মরিানি আনছ এবিং নঙ্গ মবমভন্ন লতি প্েওয়া আনছ। লনতির উপর মনভির িনর যখনই
প্রাগ্রামমি প্িাননা মরিানি পানব তখনই ফািংলন প্েনি প্বর নয় যানব।
function_name: এখানন আমানের ফািংলননর নাম মখনত নব। ফািংলননর নাম নত নব
অেিপর্ূ ি যানত নাম প্েনখই ধ্ারনা িরা যায় প্য ফািংলনমি িী িাজ িরনব। প্যমন প্িান িংখযার
বগিমূ মনর্িনয়র জনয যমে আমরা এিমি ফািংলন মমখ তনব প্মির নাম আমরা মেনত পামর
square_root বা sqrt। আমরা মনশ্চয়ই প্মির নাম beautiful মেব না, যমেও িিাইার
তানত প্িান আপমি িরনব না।
parameters: এখানন ফািংলনমি িাজ িরার জনয রনয়াজনীয় ডািা আমরা প্েব। প্যমন মরিং-এর
তেঘিয মনর্িনয়র জনয আমরা যখন strlen ফািংলনমি বযবার িমর প্খানন প্িান মরিং-এর তেঘিয মনর্িয়
িরনত নব প্মি বন মেনত য় (নইন প্মি িার তেঘিয মনর্িয় িরনব?)। আবার বগিমূ মনর্িনয়র
জনয ফািংলন মখন প্িান িংখযার বগিমূ প্বর িরনত নব প্মি বন মেনত নব। পযারামমিানরর
মাধ্যনম আমরা প্ব ডািা ওই ফািংলননর িাছ পাঠানত পামর। আবার প্িাননা মিছু পাঠানত না
োইন প্মি খামও রাখনত পামর। প্যমন, getchar() বা main() ফািংলন। এিামধ্ি পযারামমিার
পাঠাননার ময় রমতমি পযারামমিার িমা (,) মেনয় আাো িরনত নব।
function_body: ফািংলনমি িীভানব িী িাজ িরনব প্মি বমডনত বন মেনত নব। মানন প্িাড
মখনত নব আর মি।
এখানন sqrt ফািংলন 25-এর বগিমূ মনর্িয় িরার পর বগিমূমি প্ফরত পাঠানব এবিং প্মি root
নানমর এিমি ইমন্টজার প্ভমরনয়বন জমা নব।
এিমি উোরর্ মেই। প্তামরা যারা মিনিার্মমমত পনেছ তারা মনশ্চয়ই sin, cos, tan ইতযামের
নঙ্গ পমরমেত। sin 300-এর মান নচ্ছ 0.5। এখানন sin মিন্তু আন এিমি ফািংলন, যার
পযারামমিার মননব আমরা প্িানর্র মান মেমচ্ছ। আর ফািংলনমি ওই প্িানর্র sine (িংনেনপ sin)-
এর মান মরিানি িরনছ।
এবানর েনা, আর বিবি না িনর প্রাগ্রামমিং শুরু িনর মেই। তারপর প্েমখ িী িরন িী য়।
#include <stdio.h>
int main()
{
double a, b, c;
a = 2.5;
b = 2.5;
c = a + b;
printf("%lf\n" c);
return 0;
}
প্রাগ্রাম: ৭.১
এবার আমরা দুমি িংখযা প্যাগ িরার জনয এিমি ফািংলন মনখ প্ফম। প্যানগর িাজমি আর main
#include <stdio.h>
int add(int num1, int num2)
{
double sum = num1 + num2;
return sum;
}
int main()
{
double a, b, c;
a = b = 2.5;
c = add(a, b);
printf("%lf\n", c);
return 0;
}
প্রাগ্রাম: ৭.২
প্রাগ্রামমি োাও। আউিপুি িী? 4.000000! ও্আমরা প্তা গাধ্ার মনতা এিমি ভু িনরমছ।
num1 ও num2 প্তা আন int িাইনপর নব না, double িাইনপর নব। ওই দুমি প্ভমরনয়ব
ইমন্টজার মননব মডনেয়ার িরার িারনর্ 2.5 নয় মগনয়নছ 2 (িাইপ িামেিংনয়র িো মনন আনছ
প্তা?)। আমরা ভু মঠি িনর প্ফম:
এবানর প্রাগ্রামমি রান িরন আউিপুি িী? 5.000000। যাি, মযার মাধ্ান নয় প্গ!
আচ্ছা, এবানর আমরা a, b-এর মান এিিু বোই। a = 2.8; b = 2.7; িনর মেই। আউিপুি
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
িত নব? 5.500000? এমিই ওয়া উমেত (2.8 + 2.7 = 5.5) মিন্তু প্রাগ্রামমি রান িনর
প্েনখা প্তা িত য়? তুমম আউিপুি পানব 5.000000। িারর্ িী?
িারর্, আমানের ফািংলননর মরিানি িাইপ int, যা মিনা এিমি ইমন্টজার মরিানি িরনত েম।
num1 ও num2 প্যাগ িরার পর sum-এর মনধ্য 5.5 মঠিই োিনব মিন্তু মরিানি িরার ময়
প্মি ইমন্টজানর বেন যানব। ুতরািং মরিানি িাইপ আমরা double িনর প্েব। এবার আমানের
প্রাগ্রাম মঠিঠাি িাজ িরনব:
#include <stdio.h>
double add(double n1, double n2)
{
double sum = n1 + n2;
return sum;
}
int main()
{
double a, b, c;
a = 2.8;
b = 2.7;
c = add(a, b);
printf("%lf\n", c);
return 0;
}
প্রাগ্রাম: ৭.৩
এখন আমরা এিমি এক্সনপমরনমন্ট িরব। add ফািংলনমি main ফািংলননর পনর মখব:
#include <stdio.h>
int main()
{
double a = 2.8, b = 2.7, c;
c = add(a, b);
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
printf("%lf\n", c);
return 0;
}
double add(double n1, double n2)
{
double sum = n1 + n2;
return sum;
}
প্রাগ্রাম: ৭.৪
এবানর প্রাগ্রামমি রান িরনত প্গন প্েখনব, িিাইার এরর মেনচ্ছ: "error: ‘add’ was not
declared in this scope", অেিাৎ প্ আর add ফািংলনমিনি মেননত পারনছ না। তনব মেন্তা
প্নই, এমিনি মেমননয় প্েওয়ার বযবস্থাও আনছ। প্মি নচ্ছ main ফািংলননর আনগ add ফািংলননর
প্রানিািাইপ (prototype) বন প্েওয়া:
প্মমনিান মেনত ভু িরনব না মিন্তু। আর প্রানিািাইনপর পযারামমিানর প্য প্ভমরনয়ব বযবার
িরনব তার নঙ্গ মূ ফািংলননর প্ভমরনয়বনর নাম এিরিম না ন প্িাননা অুমবধ্া প্নই, তনব
ডািা িাইপ এিই নত নব। এখন মননের প্রাগ্রামমি মঠিঠাি িাজ িরনব:
#include <stdio.h>
double add(double x, double y);
int main()
{
double a = 2.8, b = 2.7, c;
c = add(a, b);
printf("%lf\n", c);
return 0;
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
}
double add(double n1, double n2)
{
double sum = n1 + n2;
return sum;
}
প্রাগ্রাম: ৭.৫
#include <stdio.h>
int test_function(int x)
{
int y = x;
x = 2 * y;
return (x * y);
}
int main()
{
int x = 10, y = 20, z = 30;
z = test_function(x);
printf("%d %d %d\n", x, y, z);
return 0;
}
প্রাগ্রাম: ৭.৬
প্রাগ্রামমি না োমনয় শুধ্ু প্িাড প্েনখ বনা প্তা আউিপুি িী নব? আমানের প্িাননা তাো প্নই,
তাই ধ্ীনরুনস্থ মেন্তা িনর বনা।
িারর্ x, y-এর মান প্তা test_function-এর প্ভতনর আমরা বেন মেনয়মছ। রেনম x-এর মান
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
10 যানচ্ছ পযারামমিার মননব, তারপনর প্ই মানমি আমরা y-প্ত বামচ্ছ। মানন y-এর মান এখন
10। তারপর x-এর মান বামচ্ছ 2 * y মানন 20। তারপর মরিানি িরমছ x * y (যার মান, 20 *
10 বা 200)। ুতরািং z-এর মান নব 200।
আমরা যমে োই, প্িাননা প্ভমরনয়বনর অমেত্ব আমানের প্রাগ্রানমর ব ফািংলননর প্ভতনর োিনত
নব, তনব আমরা প্মি িরনত পামর প্লাবা (global) প্ভমরনয়ব মডনেয়ার িরার মাধ্যনম।
আমরা প্রাগ্রানমর শুরুনত প্িাননা ফািংলন বা ফািংলননর প্রানিািাইপ মখার আনগ প্গুনা মডনেয়ার
িনর প্েব। প্যমন:
#include <stdio.h>
double pi = 3.14;
void my_fnc() {
pi = 3.1416; /* এখানন আমরা pi-এর মান এিিু পমরবতিন িনর মোম */
return; /* ফািংলননর মরিানি িাইপ void ন এই return; না মেনও মিন্তু েন */
}
int main() {
printf("%lf\n", pi); /* এখানন pi-এর মান নব 3.14 */
my_fnc();
printf("%lf\n", pi); /* এখানন pi-এর মান নব 3.1416 িারর্ আমরা প্মি my_fnc
ফািংলনন মগনয় বেন মেনয়মছ। */
return 0;
}
এতের্ আমরা ফািংলননর পযারামমিার মননব প্িব প্ভমরনয়ব বযবার িনরমছ। এবানর আনা
আমরা ফািংলননর পযারামমিার মননব অযানর পাঠাই। আমরা এিমি প্রাগ্রাম মখব প্যমি প্িাননা
এিমি ইমন্টজার অযানর প্েনি বনেনয় বে িংখযামি খুাঁনজ প্বর িরনব। অযানর প্েনি নবিাচ্চ িংখযা
খুাঁনজ প্বর িরার িাজমি িরার জনয এিমি ফািংলন মনখ প্ফম, িী বনা?
int find_max(int ara[], int n) { /* এখানন আমরা দুমি পযারামমিার মেমচ্ছ। রেমিা নচ্ছ
এিমি অযানর, আর তারপর এিমি িংখযা প্যমি মননেিল িরনব অযানরনত িয়মি িংখযা আনছ। ে
িনরা, পযারামমিানর যখন অযানরর িোমি বন মেমচ্ছ তখন প্খানন িয়মি উপাোন আনছ প্মি না
মেনও েন, প্যমন আমরা int ara[11] ও মখনত পারতাম। */
int max = ara[0]; /* এখানন এিমি প্ভমরনয়বন ধ্নর মনমচ্ছ প্য বনেনয় বে িংখযামি নচ্ছ
অযানরর রেম িংখযা। তারপনর আমরা অযানরর বামি উপাোনগুনার নঙ্গ maxপ্ি তুনা িরব
আর যমে অযানরর প্িাননা উপাোননর মান max-এর প্েনয় বে য় তখন প্ই মানমি max-এ
প্রনখ প্েব। অেিাৎ তখন আবার max নয় যানব ওই অযানরর নবিাচ্চ িংখযা। */
int i;
for(i = 1; i < n; i++) { if (ara[i] > max) {
max = ara[i]; /* ara[i] যমে max-এর প্েনয় বে য় তনব max-এ ara[i]-এর মানমি
অযাাইন িনর মেমচ্ছ। */
}
}
return max; /* ফািংলন প্েনি নবিাচ্চ মানমি প্ফরত পাঠামচ্ছ */
}
এখন িো নচ্ছ এই ফািংলননি আমরা ি িরব িীভানব? প্ভমরনয়বনর জায়গায় প্তা এর নাম
মেনয় ি িরনত য়, মিন্তু অযানরর প্বায় িী প্েব? অযানরর প্বানতও শুধ্ু নাম মেনই েনব।
পুনরা প্রাগ্রামমি এবানর রান িনর প্েনখা:
#include <stdio.h>
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
int find_max(int ara[], int n);
int main()
{
int ara[] = {-100, 0, 53, 22, 83, 23, 89, -132, 201, 3, 85};
int n = 11;
int max = find_max(ara, n);
printf("%d\n", max);
return 0;
}
int find_max(int ara[], int n)
{
int max = ara[0];
int i;
for(i = 1; i < n; i++) {
if (ara[i] > max) {
max = ara[i];
}
}
return max;
}
প্রাগ্রাম: ৭.৭
এখন প্তামরা find_min নানম আনরিমি ফািংলন প্নখা যার িাজ নব বনেনয় প্ছাি িংখযামি
খুাঁনজ প্বর িরা। find_sum, find_average এব ফািংলনও মনখ প্ফনত পানরা। আর
প্তামানের মনশ্চয়ই বন মেনত নব না এইব ফািংলন িী িাজ িরনব।
ফািংলনন প্ভমরনয়ব পা িরা (pass, পাঠাননা অনেি) আর অযানর পা িরার মনধ্য এিমি
গুরুত্বপূর্ি পােিিয রনয়নছ। আমরা ইমতমনধ্য প্েনখমছ প্য ফািংলননর প্ভতর প্ভমরনয়ব পা িরন
ওই ফািংলননর প্ভতনর প্মির আনরিমি িমপ ততমর য়, ুতরািং প্খানন ওই প্ভমরনয়বনর মান
পমরবতিন িরন মূ ফািংলন (প্যখান প্েনি ফািংলন ি িরা নয়নছ) প্ভমরনয়বনর মাননর প্িাননা
পমরবতিন য় না। তনব অযানরর প্বায় বযাপারমি আাো। আনগ আমরা এিমি প্রাগ্রাম মনখ প্েমখ:
#include <stdio.h>
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
void test_function(int ara[])
{
ara[0] = 100;
return;
}
int main()
{
int ara [] = {1, 2, 3, 4, 5};
printf("%d\n", ara[0]);
test_function(ara);
printf("%d\n", ara[0]);
return 0;
}
প্রাগ্রাম: ৭.৮
এই প্রাগ্রানমর আউিপুি িী নব? রেম printf ফািংলনমি 1 মরন্ট িরনব প্মি মননয় প্তা প্িাননা
নে প্নই, মিন্তু মিতীয় printf িী মরন্ট িরনব? test_function-এর প্ভতর আমরা অযানরর
রেম উপাোননর মান 100 অযাাইন িনরমছ। এখন যমে প্মি মূ অযানরনি পমরবতিন িনর, তনব
ara[0]-এর মান নব 100, আর পমরবতিন না ন মান নব আনগ যা মছ তা-ই, মানন 1।
আমরা আউিপুি প্েখব 100, িারর্ অযানরমির রেম উপাোননর মান পমরবমতিত নয়নছ। অেিাৎ
আমরা বুঝনত পারাম ফািংলননর প্ভতনর অযানর পা িরন ওই অযানরর আাো প্িাননা িমপ
ততমর য় না। িারর্ নচ্ছ আমরা ফািংলননর প্ভতর অযানরর নামমি প্িব পাঠাই, প্যমি মিনা ওই
অযানরমি প্মনমামরর প্িান জায়গায় আনছ তার অযানে। এখন প্তামরা বৃনির প্েিফ মনর্িনয়র জনয
এিমি ফািংলন মনখ প্ফনা। প্েিফ প্বর িরার ূিমি মনন আনছ প্তা? মনন না োিন জযামমমত
বই প্েনি প্েনখ নাও।
আর সিংেযামট মকন্তু একমট মনমিচষ্ট সীমার ময়ধ্য হয়ে হয়ব (প্যমন 1 প্েয়ক 100, 10 প্েয়ক 1000, -
1000 প্েয়ক 100000)।
এেন ধ্রা যাক, রেমজন প্য সিংেযামট ধ্য়রয়ছ প্সমট 1 প্েয়ক 1000-এর প্ভের একমট সিংেযা।
োহয় মকন্তু সয়বচাচ্চ এক হাজার বার 'সিংেযামট মক N-এর সমান?' রশ্নমট কয়র প্সমট প্বর কয়র
প্ফা যায়। ( সিংেযামট মক 1? সিংেযামট মক 2? ... সিংেযামট মক 999?, সিংেযামট মক 1000?)।
এভায়ব রশ্ন করয়ে োকয় সিংেযামট অবলযই প্বর হয়ব। েয়ব ভাগ্য োরাপ হয় এক হাজার বার ওই
রশ্নমট করয়ে হয়ব।
মকন্তু আমায়ির প্ো এে সময় প্নই। ধ্রা যাক, 1 প্েয়ক 1000-এর প্ভের ওই সিংেযামট হয়ে 50।
োহয় আমায়ির রেম রশ্ন হয়ব:
১) সিংেযামট মক 500-এর প্র্য়য় বড়, প্ছাট নামক সমান? প্ছাট।
২) সিংেযামট মক 250-এর প্র্য়য় বড়, প্ছাট নামক সমান? প্ছাট।
৩) সিংেযামট মক 125-এর প্র্য়য় বড়, প্ছাট নামক সমান? প্ছাট।
৪) সিংেযামট মক 62-এর প্র্য়য় বড়, প্ছাট নামক সমান? প্ছাট।
৫) সিংেযামট মক 31-এর প্র্য়য় বড়, প্ছাট নামক সমান? বড়।
৬) সিংেযামট মক 46-এর প্র্য়য় বড়, প্ছাট নামক সমান? বড়।
৭) সিংেযামট মক 54-এর প্র্য়য় বড়, প্ছাট নামক সমান? প্ছাট।
৮) সিংেযামট মক 50-এর প্র্য়য় বড়, প্ছাট নামক সমান? সমান।
আমরা মাত্র আটমট রশ্ন কয়রই সিংেযামট প্পয়য় প্গ্মছ!
প্োমরা মনশ্চয়ই পদ্ধমেমট বুয়ঝ প্ফয়ছ? রমেবার রশ্ন কয়র সিংেযামট প্য সীমার ময়ধ্য আয়ছ োয়ক
অয়ধ্চক কয়র প্ফা হয়য়য়ছ। প্ো শুরুর সময় সীমামট মছ 1 প্েয়ক 1000। োরপর প্সমট হয়য়য়ছ 1
সিংেযা েুুঁয়জ প্বর করার এই পদ্ধমেয়ক বয় বাইনামর সার্চ। র্য়া আমরা োহয় অযাগ্মরিমমট
মোর প্র্ষ্টা কমর:
বাইনামর সার্চ (low, high, N): (শুরুয়ে আমায়ির মেনমট সিংেযা জানয়ে হয়ব, সিংেযামটর মনম্নসীমা
(low), উচ্চসীমা (high) এবিং প্সই সিংেযা (N))
ধ্াপ 1: mid = (low + high) / 2
ধ্াপ 2: যমি mid এবিং N-এর মান সমান হয় েয়ব ধ্াপ 5-এ যাও।
ধ্াপ 3: যমি N, mid-এর প্র্য়য় বড় হয়, োহয় low = mid + 1. ধ্াপ 1-এ যাও।
ধ্াপ 4: যমি N, mid-এর প্র্য়য় প্ছাট হয়, োহয় high = mid - 1. ধ্াপ 1-এ যাও।
ধ্াপ 5: সিংেযামট প্পয়য় প্গ্মছ (mid)।
এেন আমরা প্িেব একমট অযায়র প্েয়ক কীভায়ব বাইনামর সার্চ কয়র প্কায়না সিংেযা েুুঁয়জ প্বর করয়ে
হয়। অযায়রয়ে মকন্তু সিংেযাগুয়া প্ছাট প্েয়ক বড় মকিংবা বড় প্েয়ক প্ছাট ক্রমানুসায়র োকয়ে হয়ব।
নইয় বাইনামর সার্চ বযবহার করা যায়ব না। কারণমট মক প্কউ বয়ে পায়রা?
রেয়ম আমরা একমট ইমিজার অযায়র মনই প্যোয়ন সিংেযাগুয়া প্ছাট প্েয়ক বড় ক্রমানুসায়র সাজায়না
আয়ছ।
int ara[] = {1, 4, 6, 8, 9, 11, 14, 15, 20, 25, 33 83, 87, 97, 99, 100};
এেন বয়া প্ো low আর high-এর মান কে হয়ব? low = 1 এবিং high = 100 ? মিকই
ধ্য়রছ মকন্তু এোয়ন একটু সমসযা আয়ছ। আমরা এোয়ন সব সিংেযার ময়ধ্য েুুঁজব না, বরিং অযায়রর
ইনয়েয়ের ময়ধ্য েুুঁজব। আর অযায়রর ইনয়েেগুয়া ক্রমানুসায়র োয়ক বয়ই অযায়রয়ে বাইনামর
সার্চ করা যায়। এোয়ন ara-এর সবচমনম্ন ইনয়েে হয়ে 0 এবিং সয়বচাচ্চ ইনয়েে হয়ে 15। োহয়
আমরা দুমট প্ভমরয়য়বয়র মান মনমিচষ্ট কয়র মিই -
low_indx = 0;
high_indx = 15;
প্য সিংেযামট েুুঁজব ধ্রা যাক প্সমট হয়ে 97।
num = 97;
প্োমায়ির অয়নয়কই হয়য়ো ভাবছ, num সিংেযামট যমি ara-প্ে না োয়ক েেন কী হয়ব? প্সমটও
আমরা প্িেব। সিংেযামট যমি েুুঁয়জ পাওয়া না যায় েয়ব প্সমট জামনয়য় প্িওয়ার বযবস্থা রােয়ে হয়ব
আমায়ির প্রাগ্রায়ম।
আর বাইনামর সার্চ কীভায়ব কাজ কয়র, প্সমট এোয়ন সুন্দর কয়র অযামনয়মলয়নর মাধ্যয়ম প্বাঝায়না
হয়য়য়ছ:
http://video.franklin.edu/Franklin/Math/170/common/mod01/binarySearchAlg.html
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
প্রাগ্রামমিং বইঃ অধ্যায় নয়
মরিং (string)
প্ ামরা যারা string লব্দমির বািংা অর্থ জাননা, ানের আ মি ওয়ার প্ াননা ারণ প্নই,
প্রাগ্রামমিংনয় মরিং প্মানিও েমি িানািামনর মন া ষ্ট র বযাপার নয়। আবার প্ ামানের মনধ্য যারা
এ িু জ্ঞানী িাইনপর ানের মার্ায় য়ন া মরিং মর্ওরী লব্দমি চন এননে। যা-ই প্া , উনেনের
প্ াননা ারণ প্নই।
এ বা এ ামধ্ character মমন string ত মর য়। প্াজা র্ায় মরিং নে যানরক্টার িাইনপর
অযানর। নব প্রাগ্রামমিংনয় এমির বযবার এ ই প্বমল প্য প্ াননা প্ াননা যাঙ্গুনয়নজ মরিংন আাো
এ মি ডািা িাইপ মননব ধ্রা য়। নব ম-প্ আমরা char িাইনপর অযানর মেনয়ই মরিংনয়র াজ
রব।
char country[11] = {'B', 'a', 'n', 'g', 'l', 'a', 'd', 'e', 's', 'h', '\0'};
char country[] = {'B', 'a', 'n', 'g', 'l', 'a', 'd', 'e', 's', 'h', '\0'};
char country[] = "Bangladesh";
char *country = "Bangladesh";
এভানব আমরা মরিং মডনেয়ার রন পামর। চারমি মডোনরলন আন এ ই মজমন। বার প্লন
এ মি Null character ('\0') মেন ম্পাইার বুঝন পানর এখাননই মরিংনয়র প্ল। আবার
ৃ ীয় উোরনণ অযানরর উপাোনগুনা আাো নর প্খা য়মন, এ নঙ্গ প্খা নয়নে। এ প্ক্ষনে
ম্পাইার মননজই Null character বমনয় প্ননব। চ ুর্থ উোরণমি এ িু অদ্ভু । এখানন প্য
মজমনিা বযবার রা নয়নে ার নাম পনয়ন্টার ( pointer)। এ বইন এর ম মজমন আমরা
মানঝ মানঝ বযবার রনও মবস্তামর আনাচনায় যাব না।
এখানন ক্ষ নরা প্য printf-এর প্ভ নর %s বযবার রা নয়নে মরিং মরন্ট রার জনয। আর
অযানরন প্লনর '\0'িা বযবার না রনও চন আন। ব থমাননর ম্পাইারগুনা এমি বুনঝ
মনন পানর।
#include <stdio.h>
int main()
{
char country[] = {'B', 'a', 'n', 'g', 'l', 'a', 'd', 'e', 's', 'h', ' ', 'i', 's', ' ', 'm', 'y',
' ', 'c', 'o', 'u', 'n', 't', 'r', 'y'};
printf("%s\n", country);
return 0;
}
প্রাগ্রাম: ৯.২
প্রাগ্রামমি চাাও। ারপর মননচর প্রাগ্রামমি চাাও। আউিপুনি ম পার্থ য প্েখন পাে? পার্থন যর
ারণিা ী?
#include <stdio.h>
int main()
{
char country[] = {'B', 'a', 'n', 'g', 'l', 'a', 'd', 'e', 's', 'h', '\0', 'i', 's', ' ', 'm',
'y', ' ', 'c', 'o', 'u', 'n', 't', 'r', 'y'};
printf("%s\n", country);
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
return 0;
}
প্রাগ্রাম: ৯.৩
পার্থ যিা ী প্মি প্ ামরা প্রাগ্রাম দুমি মম্পউিানর চাানই বুঝনব। পার্থন যর ারণ নে মে ীয়
প্রাগ্রানম মরিংনয়র প্ভ নর এ জায়োয় '\0' র্া ায় ম্পাইার ধ্নর মননে ওখানন মরিংিা প্ল নয়
প্েনে।
এবানর আমরা এ মি প্রাগ্রাম মখব। এ মি মরিংনয়র প্ভ নরর ব অক্ষরন বি ান র অক্ষনর
(অর্থাৎ capital letter বা uppercase character) রূপান্তর রা। নব এর জনয আমানের
এ মি মজমন জানন নব। রম মি অক্ষনরর মবপরীন মম্পউিার এ মি িংখযার প্ াড বযবার
নর। প্ই প্ াড অনুযায়ী, 'A'-এর মান নে 65, 'B'-এর মান নে 66, 'C'-এর মান নে
67... এভানব 'Z'-এর মান নে 90। প্ মনই 'a' নে 97, 'b' নে 98 ... এভানব 'z' নে
122। ু রািং প্ াননা যানরক্টার বি ান র ম না প্মি আমরা মনণথয় রন পামর এভানব: if(ch
>= 'A' && ch <= 'Z') অর্বা if(ch >= 65 && ch <= 90)। প্ মনই প্োি ান র
অক্ষনরর জনয: if(ch >= 'a' && ch <= 'z') অর্বা if(ch >= 97 && ch <= 122)।
এখন প্ াননা যানরক্টার যমে প্োি ান র য়, নব ান বি ান র অক্ষনর রূপান্তর রার উপায়
ী? উপায় খুব জ। এ মি উোরণ প্েনখা: char ch = 'c'; ch = 'A' + (ch – 'a'); এখানন
প্যমি নে, রর্নম ch প্র্ন 'a' মবনয়াে রা নে মানন 'c' প্র্ন 'a' মবনয়াে (আন 99 প্র্ন
97 মবনয়াে নে)। মবনয়ােফ 2। এবানর 'A'-এর নঙ্গ যমে ওই 2 প্যাে নর মেই নব প্মি 'C'
নয় যানব! এখন প্রাগ্রামমি মনখ প্ফা যা :
#include <stdio.h>
int main()
{
char country[] = {'B', 'a', 'n', 'g', 'l', 'a', 'd', 'e', 's', 'h'};
int i, length;
printf("%s\n", country);
length = 10;
for(i = 0; i < length; i++) {
if(country[i] >= 97 && country[i] <= 122) {
country[i] = 'A' + (country[i] - 'a');
}
}
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
printf("%s\n", country);
return 0;
}
প্রাগ্রাম: ৯.৪
এখন প্ ামরা uppercase প্র্ন lowercase-এ রূপান্তনরর প্রাগ্রামমি মনখ প্ফনা। ারপনর
আবার বইমি পিা শুরু নরা।
এখানন ক্ষ নরা প্য মরিংনয় ( যানরক্টানরর অযানরন ) প্মাি য়মি উপাোন আনে প্মি আমম প্েনখই
মনখ প্ফনমে এবিং রামর বমনয় মেনয়মে length = 10।
এবার আমরা প্ াননা মরিংনয়র তের্ঘথয মাপার জনয এ মি ফািংলন মখব! এমি প্ মন মিন ম েু নয়।
এ মি ুনপর াানযয মরিংনয়র রম মি উপাোন পরীক্ষা রন নব এবিং Null character ('\0')
প্পন ুপ প্র্ন প্বর নয় যানব অর্থাৎ, '\0' না পাওয়া পযথন্ত ুপ চন র্া নব। আর ুপ য বার
চনব মরিংনয়র তের্ঘথযও নব।
#include <stdio.h>
int string_length(char str[])
{
int i, length = 0;
for(i = 0; str[i] != '\0'; i++) {
length++;
}
return length;
}
int main()
{
char country[100];
int length;
while(1 == scanf("%s", country)) {
length = string_length(country);
printf("length: %d\n", length);
}
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
return 0;
}
প্রাগ্রাম: ৯.৫
ওপনরর প্রাগ্রামিায় প্ ামরা প্েখন পাে প্য ইনপুি প্নওয়ার জনয scanf ফািংলন বযবার রা
নয়নে এবিং মরিং ইনপুি প্নওয়ার জনয % s বযবহৃ নয়নে। scanf ফািংলনমি য মি উপাোন
ইনপুি মননব প্নয়, প্ই িংখযামি মরিানথ নর। াধ্ারণ মরিানথ ভযাুমি আমানের ের ার য় না,
াই scanf বযবার রনও আমরা ওই ভযাুমি রামখ না। প্যমন দুমি ইমন্টজার ইনপুি মনন প্েন
আমরা মমখ: scanf("%d %d", &n1, &n2);। আমরা এমি চাইন এভানবও মখন
পার াম: value = scanf("%d %d", &n1, &n2);। প্ ামরা মরন্ট রন প্েখনব value-
এর মান 2। while(1 == scanf("%s", country)) াইনন প্যমি র্ঘিনে া না, য ক্ষণ
এ মি country-এর নাম scanf মেনয় ইনপুি প্নওয়া নে, ফািংলনমি 1 মরিানথ রনে, আর
ুনপর প্ভ নরর মিলন য নে (1 == 1), াই ুনপর াজ চন র্া নব।
আনর মি মজমন প্খয়া নরা প্য country-এর আনে প্ ান & মচহ্ন বযবার রা য়মন। প্ ামরা
&country মনখ প্েনখা প্রাগ্রামমি ী আচরণ নর। নব % s বযবানরর এ মি মযা নে
মরিংনয় প্ াননা প্ায়াইিনে যানরক্টার (প্যমন: প্ে, িযাব ই যামে) র্া া যানব না, এমন ম েু
প্পন scanf ওই যানরক্টার পযথন্ত এ মি মরিং ধ্নর প্নয়। প্যমন, ইনপুি যমে য় this is নব
scanf রর্নম thisপ্ ই মরিং মননব প্ননব, ারপনর যমে আবার scanf ফািংলন রা য়,
নব isপ্ প্ মরিং মননব ইনপুি মননয় প্ননব। এই মযা এিাননার জনয আমরা gets ফািংলন
বযবার রন পামর। মননচর উোরণমি প্েনখা:
#include <stdio.h>
int main()
{
char ara[100];
while(NULL != gets(ara)) {
printf("%s\n", ara);
}
return 0;
}
প্রাগ্রাম: ৯.৬
এখন প্ ামানের াজ নব string_length ফািংলনমি for ুপ বযবার না নর while ুপ
বযবার নর প্খা।
আমানের পরব থী প্রাগ্রানমর ক্ষয নব দুমি মরিং প্জািা প্েওয়া বা concatenate রা। প্যমন
এ মি মরিং যমে য় " bangla" এবিং আনর মি মরিং যমে য় " desh" নব দুমি প্জািা মেনয়
"bangladesh" বানান নব।
আমানের ক্ষ নে str3প্ " bangladesh" রাখা। খুব ুমবধ্া ন া যমে আমরা এমন ম েু
মখন পার াম:
str3 = str1 + str2;
ম ন্তু 'ম'-প্ এভানব দুমি অযানর বা মরিং প্যাে রা যায় না। াই এ মি এ মি নর str1-এর
উপাোনগুনা str3প্ মপ রন নব, ারপর str2-এর উপাোনগুনা str3প্ মপ রন
নব।
প্রাগ্রামমি চাাও। আউিপুি ী আা উমচ ? bangladesh। ম ন্তু আউিপুি এননে desh।
আন আমরা ম েু এ িা ভু নরমে। প্ ামানের এখন প্ই ভুমি মি রার প্চষ্টা রা উমচ ।
অন্ত ম মরল মমমনি প্চষ্টার পরও যমে ভু প্বর রন না পানরা নব আবার বইমি পিা শুরু নরা।
এখানন আমরা শুরুন ই i-এর মান 0 নরমে ারণ iপ্ আমরা str1-এর ইননডে মননব বযবার
রব। jপ্ বযবার রব str3-এর ইননডে মননব াই j-এর মানও 0 রা নয়নে। ারপর
এন এন str1-এর উপাোনগুনা str3প্ মপ রমে এবিং i ও j-এর মান 1 নর বািামে
(i++, j++)। ুপ প্ল ওয়ার পনর i ও j রন যন র মান নব 6।
আনর মি বযাপার ক্ষ নরা। মে ীয় ুপ প্র্ন প্বর বার পনর str3-এর প্ল র্ঘনর '\0' অযাাইন
নরমে (str3[j] = '\0';) যান মরিংিা প্য ওখাননই প্ল, এমি ম্পাইার বুঝন পানর।
আমানের পরব থী প্রাগ্রাম নব দুমি মরিংনয়র মনধ্য ুনা রা। অর্থাৎ দুমি মরিংনয়র মনধ্য প্োি, বি,
মান মনণথয় রা। িংখযার প্ক্ষনে প্যমন >, <, >=, <=, == মচহ্ন বযবার নর ুনা রা যায়,
মরিংনয়র প্ক্ষনে প্ই বযবস্থা নাই। ম ন্তু মরিংনয়র প্ক্ষনে রায়ই আমানের এই ুনা রার ের ার
পিনব। প্যমন ধ্নরা, মিথিংনয়র প্ক্ষনে প্যখানন প্োি প্র্ন বি বা বি প্র্ন প্োি ক্রমানুানর
াজান নব (alphabetical ordering)। মরিংনয় প্োি-বি আবার ী? প্বমল র্া বন বযাখযা
না নর ম েু উোরণ মেই, ানই বুঝন পারনব। 'aaa'-এর প্চনয় 'aab' বি। আবার 'ba' ও
'ca'-এর মনধ্য 'ca' বি। এই প্রাগ্রানম আমরা এ মি ফািংলন মখব string_compare() প্যমির
াজ নব দুমি মরিংনয়র মনধ্য ুনা নর রর্মমি মে ীয়মির প্চনয় বি ন 1 মরিানথ রনব, প্োি
ন - 1 আর দুমি মান ন 0 মরিানথ রনব। ফািংলননর মরিানথ িাইপ নব ইমন্টজার এবিং
পযারামমিার নব দুমি char িাইনপর অযানর।
আমানের মূ াজ নব a-এর রর্ম উপাোননর নঙ্গ b-এর রর্ম উপাোন, a-এর মে ীয়
উপাোননর নঙ্গ b-এর মে ীয় উপাোন এভানব ুনা রন র্া া। যখনই a-এর প্ াননা উপাোন
b-এর প্ াননা উপাোননর প্চনয় প্োি নব, আমরা নঙ্গ নঙ্গ বন মেন পামর প্য a, b-এর প্চনয়
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
প্োি। ু রািং - 1 মরিানথ নর ফািংলন প্র্ন প্বর নয় আব। এ ইভানব যখনই a-এর প্ াননা
উপাোন b-এর প্ াননা উপাোননর প্চনয় বি নব, নঙ্গ নঙ্গ 1 মরিানথ নর ফািংলন প্র্ন প্বর নয়
আব ারণ a, b-এর প্চনয় বি। ম ন্তু যমে বগুনাই মান য়? খন আমরা 0 মরিানথ রব।
ান বুঝব প্য মরিং দুমি মান।
মরিংনয়র প্বম মজমনগুনা মননয় আনাচনা রাম। নব মজার বযাপার নে ম যাঙ্গুনয়নজ
এ মি প্ডার ফাই আনে, যার নাম string.h এবিং ওইখানন প্বমলরভাে মরিং-িংক্রান্ত ানজর
জনয ফািংলন ত মর নর প্েওয়া আনে (প্যমন: strcmp, strlen, strcpy ই যামে)। প্ ামানের
মেনয় াজগুনা আমম আবার রাাম বন দুঃখ পাওয়ার প্ াননা ারণ প্নই, আমার ওপর রাে
রারও ম েু প্নই। প্মৌম মজমনগুনা মলনখ রাখা ব ময়ই গুরুত্বপূণথ, যা প্ ামার প্রাগ্রামমিং
মচন্তান মব মল রনব।
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
এখন আমরা আনর মি প্রাগ্রাম মখব প্যমি ইনপুি মননব এ মি মরিং প্ননব (প্যখানন অনন গুনা
লব্দ র্া নব)। এই মরিংনয়র নবথাচ্চ তের্ঘথয নব 1000। লব্দগুনার মাঝখানন এ বা এ ামধ্ প্ে
র্া নব। আউিপুি মননব রম মি লব্দ আাো াইনন মরন্ট রন নব। মবরামমচহ্নগুনা
(punctuation) মরন্ট রা যানব না এবিং লনব্দর রর্ম অক্ষর নব বি ান র।
অনন ল থ মেনয় প্ফাম। নব প্রাগ্রামমি খুব মিন ম েু নয়। মননজ মননজ প্চষ্টা রন পানরা।
আর না পারন এখন চনা প্েমখ ীভানব মাধ্ান রা যায়।
রর্ম র্া নে, ইনপুি প্নব ীভানব? বুঝন ই পারে প্য ইনপুনি প্যন ু প্ে র্া নব,
scanf("%s") বযবার রা যানব না। াই আমরা gets() বযবার রব। ার পনরর র্া নে
এ মি লনব্দ প্ ান প্ ান যানরক্টার র্া ন পানর? প্যন ু বা প্নই, আমরা ধ্নর মনই 'a' প্র্ন 'z',
'A' প্র্ন 'Z' আর '0' প্র্ন '9' র্া নব।
ার পনরর রশ্ন নে, আমরা খন বুঝব বা আমানের প্রাগ্রামন ীভানব প্বাঝানবা প্য এ মি লব্দ
শুরু নয়নে?-এর জনয আমরা এ মি প্ভমরনয়ব রাখন পামর। প্ভমরনয়বনর নাম যমে মেই
is_word_started ান এর মান 0 ন বুঝব লব্দ শুরু য়মন, লব্দ শুরু ন এর মান আমরা
1 নর প্েব। আবার লব্দ প্ল ন 0 নর প্েব। যখন প্েখব লব্দ শুরু নয় প্েনে
(is_word_started-এর মান 1) ম ন্তু প্ াননা যানরক্টানরর মান 'a' – 'z' বা 'A' – 'Z', বা '0'
– '9' এই প্রনের মনধ্য প্নই, খনই বুঝব লব্দমি প্ল। প্ ামরা যমে এর আনে প্রাগ্রামমি প্চষ্টা
রার পরও মখন না পানরা, এখন প্চষ্টা রন পারনব আলা মর। আমম এখন প্ াডমি মনখ প্েব
নব প্মি প্েখার আনে অবলযই মননজ রার প্চষ্টা রন নব।
#include <stdio.h>
#include <string.h>
int main()
{
char s[1002], word[100];
int i, j, length, is_word_started;
gets(s);
length = strlen(s);
is_word_started = 0;
for (i = 0, j = 0; i < length; i++) {
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
if (s[i] >= 'a' && s[i] <= 'z') {
if (is_word_started == 0) {
is_word_started = 1;
word[j] = 'A' + s[i] - 'a'; // first character is capital
j++;
}
else {
word[j] = s[i];
j++;
}
}
else if (s[i] >= 'A' && s[i] <= 'Z') {
if (is_word_started == 0) {
is_word_started = 1;
}
word[j] = s[i];
j++;
}
else if (s[i] >= '0' && s[i] <= '9') {
if (is_word_started == 0) {
is_word_started = 1;
}
word[j] = s[i];
j++;
}
else {
if (is_word_started == 1) {
is_word_started = 0;
word[j] = '\0';
printf("%s\n", word);
j = 0;
}
}
}
return 0;
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
}
প্রাগ্রাম: ৯.৮
প্রাগ্রামমি বুঝন ম এ িু মযা নে? প্ পনর প্েখা যানব, আনে প্রাগ্রামমি চিপি মম্পউিানর
িাইপ নর প্ফনা, ম্পাই ও রান নরা। যারা মনাে বযবার রে ারা gets() বযবানরর
ারনণ ম্পাইার প্র্ন এ মি থ িংন (warning) প্পন পানরা, পাত্তা মেনয়া না।
ইনপুি মননব প্যন াননা ম েু মখন পানরা। প্যমন: This is a test.। আউিপুি ী?
আউিপুি নে এই র ম:
This
Is
A
ী মুলম ! test প্ে প্ ার্ায়?
এখন প্ ামার াজ নব test-এর মননখাোঁজ ওয়ার রযিা েন্ত রা। ারপর আমম প্রাগ্রামমি
বযাখযা রব।
প্ ামরা প্েনখা প্রাগ্রানম আমম মরিংনয়র তের্ঘথয মনণথনয়র জনয strlen ফািংলন বযবার নরমে। আর-
এর জনয আমান string.h প্ডার ফাইমি include রন নয়নে। ইনপুি মননব মরিংিা
মনাম s-এ। আর word রাখার জনয এ মি অযানর মডনেয়ার নর প্রনখমে। ারপর আমম i = 0
প্র্ন length পযথন্ত এ মি ুপ চামনয়মে s-এর প্ভ নরর রম মি যানরক্টার পরীক্ষা রার জনয।
if (s[i] >= 'a' && s[i] <= 'z') মেনয় পরীক্ষা রাম এমি প্োি ান র অক্ষর নাম । যমে
প্োি ান র অক্ষর য় নব এ মি লনব্দর রর্ম অক্ষর ম না প্মি জানন নব। ারণ রর্ম অক্ষর
ন ওিান আবার বি ান র অক্ষনর রূপান্তর রন নব। প্ই পরীক্ষািা আমরা নরমে: if
(is_word_started == 0) মেনয়। এমি য ওয়া মানন লব্দ শুরু য়মন, এমিই রর্ম অক্ষর।
াই আমরা is_word_started-এর মান 1 নর প্েব। আর word[j]প্ s[i]-এর বি ান র
অক্ষরিা প্নব। ারপর j-এর মান এ বািান নব। else if (s[i] >= 'A' && s[i] <= 'Z')
এবিং else if (s[i] >= '0' && s[i] <= '9') এই দুমি লন থর প্ভ নরই আমরা এ ই াজ
মর। s[i]প্ word[j]প্ মপ মর। াই চাইন দুমি ল থন এ নঙ্গ এভানবও মখন
পার াম: else if ((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= '0' && s[i] <= '9'))
ার পনরর else-এর প্ভ নর প্ া ার মানন নে আনের if এবিং else if-এর ল থগুনা মমর্যা
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
নয়নে। াই s[i]-এর প্ভ নর প্যই যানরক্টার আনে প্মি word-এ রাখা যানব না। এবিং যমে
word ইম মনধ্য শুরু নয় মেনয় র্ান , প্মি প্ল রন নব এবিং wordমি মরন্ট রন নব।
আর যমে word শুরু না নয় র্ান ান ম েু রার ের ার প্নই।
else {
if (is_word_started == 1) {
is_word_started = 0;
word[j] = '\0';
printf("%s\n", word);
j = 0;
}
}
এখন আমম প্যমি রব, প্রাগ্রামমি এমনভানব মখব যান word অযানরমিই বযবার রন না য়!
এ িু মচন্তা নর প্েনখা। আন প্ া এই অযানরমি মননয় আমরা ম েু রমে না মরন্ট রা োিা। াই
এর আন প্ াননা ের ার প্নই।
#include <stdio.h>
#include <string.h>
int main()
{
char s[1002], ch;
int i, length, is_word_started;
gets(s);
length = strlen(s);
is_word_started = 0;
for (i = 0; i < length; i++) {
if (s[i] >= 'a' && s[i] <= 'z') {
if (is_word_started == 0) {
is_word_started = 1;
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
ch = 'A' + s[i] - 'a';
printf("%c", ch);
}
else {
printf("%c", s[i]);
}
}
else if ((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= '0' && s[i] <= '9')) {
if (is_word_started == 0) {
is_word_started = 1;
}
printf("%c", s[i]);
}
else {
if (is_word_started == 1) {
is_word_started = 0;
printf("\n");
}
}
}
printf("\n");
return 0;
}
প্রাগ্রাম: ৯.৯
এখন প্রাগ্রামমি বুঝন প্চষ্টা নরা এবিং মবমভন্ন ইনপুি মেনয় পরীক্ষা নর প্েনখা। প্যমন:
This is test number 9.9
মরিং-িংক্রান্ত মযাগুনা প্েখন জমি মনন নও আন জ। আর এ ধ্রননর মযা
মাধ্াননর য চচথা রনব েক্ষ া বািনব।
int main()
{
int n;
while(1) {
printf("Please enter a number (enter 0 to exit): ");
scanf("%d", &n);
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
if(n == 0) {
break;
}
if(1 == is_prime(n)) {
printf("%d is a prime number.\n", n);
}
else {
printf("%d is not a prime number.\n", n);
}
}
return 0;
}
প্রাগ্রাভ: ১০.১
প্ভৌমরক িংখ্যা মনিণদয়য িনয আভযা একমি পািংন মরদখ্মে প্মমিয যাযামভিায দে একমি
ইমিিায নম্বয n। পািংদন আভযা nপ্ক 2 প্থদক n-1 মণন্ত িংখ্যাগুদরা মদদয় বাগ কযায প্েষ্টা
কদযমে একমি রুদয াাদময। মমদ এয ভদধয প্কাদনা িংখ্যা মদদয় n মনঃদদল মফবািয য়, তদফ
আভযা দে দেই ফদর মদদত াময প্ম প্মি প্ভৌমরক িংখ্যা নয় এফিং পািংনমি 0 মযিানণ কদয।
আয মমদ ফ িংখ্যা মদদয় বাগ কযায য প্দখ্া মায় প্ম প্কান িংখ্যাই nপ্ক মনঃদদল বাগ কযদত
াদযমন, তখ্ন আভযা এই মদ্ধাদন্ত আদত াময প্ম n একমি প্ভৌমরক িংখ্যা। আয তখ্ন পািংন
প্থদক 1 মযিানণ কময। আভযা প্ভৌমরক িংখ্যা মনিণয় কযা মদখ্ প্গরাভ! আমভ প্রাগ্রাভমি মরখ্ায ভয়
প্ম থ অফরম্বন কদযমে প্মি দে খ্ুফ ি-যর থ। প্রাগ্রাভমিদক প্ভাদি ইমপমদয়ি
(efficient) ফানাদনায প্েষ্টা কমযমন। প্তাভযা খ্ুফ দিই ফযাাযমি ফুঝদত াযদফ। প্রাগ্রাদভ
ইনুি মদদফ 2147483647 দা। এমি প্ম প্ভৌমরক িংখ্যা প্মি প্ফয কযদত প্ফ ভয় রাদগ।
কাযি তখ্ন 2147483647প্ক 2 প্থদক 2147483646 মণন্ত ফ িংখ্যা মদদয় বাগ কযায ফযথণ
প্েষ্টা কযা য়। প্রাগ্রাভমিদক আয ইমপমদয়ি কযদত দফ।
একমি ফুমদ্ধ প্তাভাদদয ভাথায় এয ভদধযই মনশ্চয়ই এদ প্গদে। প্মি দে 2 প্থদক n-1 মণন্ত ফ
িংখ্যা মদদয় বাগ কযায প্েষ্টা না কদয 2 প্থদক n/2 মণন্ত িংখ্যাগুদরা মদদয় বাগ কযায প্েষ্টা
কযদরই য়। তাদর প্রাগ্রাদভয গমত মদ্বগুি দয় মাদফ। এখ্ন প্তাভযা আদযকমি মফলয় রক্ষ কদযা।
প্কান িংখ্যা মমদ 2 মদদয় মনঃদদল মফবািয না য়, তদফ প্মি অনয প্কান প্িাড় িংখ্যা মদদয়
মনঃদদল মফবািয য়ায রশ্নই আদ না। তাই 2 ফাদদ অনয প্িাড় িংখ্যাগুদরা (4, 6, 8, …)
মদদয় বাগ কযায প্েষ্টা কযািা আদর প্ফাকামভ। প্িাড় িংখ্যা মদদয় মফবািযতায যীক্ষািা আভযা
পািংদনয শুরুদতই কদয মনদত াময। এখ্ন আভাদদয পািংনমিয প্োযা দাাঁড়াদফ এই যকভ:
int is_prime(int n)
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
{
int i;
if (n < 2) {
return 0;
}
if(n == 2) {
return 1;
}
if(n % 2 == 0) {
return 0;
}
for(i = 3; i <= n / 2; i = i + 2) {
if(n % i == 0) {
return 0;
}
}
return 1;
}
রথদভ আভযা যীক্ষা কদযমে n-এয ভান 2 মক না। মমদ 2 য় তদফ ফদর মদদয়মে প্ম n প্ভৌমরক
িংখ্যা। তাযদয আভযা যীক্ষা কদযমে n প্িাড় িংখ্যা মক না। মমদ প্িাড় য়, তদফ n প্ভৌমরক
িংখ্যা না, প্কফর 2ই একভাত্র প্িাড় প্ভৌমরক িংখ্যা প্মমিয যীক্ষা আভযা এদকফাদয শুরুদতই কদয
প্পদরমে। তাযয আভযা 3 প্থদক n / 2 মণন্ত ফ প্ফদিাড় িংখ্যা মদদয় nপ্ক বাগ কযায প্েষ্টা
কদযমে। এখ্ন প্তাভযা মফমবন্ন ইনুি মদদয় প্রাগ্রাভমি যীক্ষা কদয প্দদখ্া। 2147483647 মদদয়
যীক্ষা কযদর ফুঝদত াযদফ প্ম প্রাগ্রাদভয গমত আদগয প্েদয় প্ফদড়দে মকন্তু তায য একিু ভয়
রাগদে। আভায কমিউিাদয োয প্দকদেয ভদতা ভয় রাগদে। মকন্তু এত ভয় প্তা প্দয়া মাদফ
না। প্তাভাদদয মাদদয গামিমতক ফুমদ্ধশুমদ্ধ প্ফম, তাযা একিু মেন্তা কযদরই প্রাগ্রাভমিয গমত
ফাড়াদনায একমি উায় প্ফয কদয প্পরদত াযদফ। প্মি দে n-এয উৎাদক প্ফয কযায িনয
আদর n / 2 মণন্ত ফ িংখ্যা মদদয় যীক্ষা কযায দযকায প্নই। n-এয ফগণভূর মণন্ত যীক্ষা
কযদরই য়। n = p x q দর, p ফা q প্মদকাদনা একমি িংখ্যা অফযই n-এয ফগণভূদরয ভান ফা
তায প্োি দফ। ফগণভূর মনিণদয়য িনয আভযা math.h প্ডায পাইদরয sqrt() পািংনমি ফযফায
কযফ। আভাদদয প্রাগ্রাভমি দাাঁড়াদে এই যকভ:
#include <stdio.h>
#include <math.h>
int is_prime(int n)
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
{
int i, root;
if(n == 2) {
return 1;
}
if(n % 2 == 0) {
return 0;
}
root = sqrt(n);
for(i = 3; i <= root; i = i + 2) {
if(n % i == 0) {
return 0;
}
}
return 1;
}
int main()
{
int n, m;
while(1) {
printf("Please enter a number (enter 0 to exit): ");
scanf("%d", &n);
if(n == 0) {
break;
}
if(1 == is_prime(n)) {
printf("%d is a prime number.\n", n);
}
else {
printf("%d is not a prime number.\n", n);
}
}
return 0;
}
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
প্রাগ্রাভ: ১০.২
এখ্ন প্তাভযা প্রাগ্রাভমি োমরদয় মফমবন্ন ইনুি মদদয় যীক্ষা কদয প্দদখ্া। একমি কথা ফদর মদই।
প্রাগ্রাভিায় একমি ফাগ আদে ( ভাদন বুর আদে)। প্মি খ্ুাঁদি প্ফয কদয মিক কদয প্পদরা।
রাইভ নম্বয প্ফয কযদত প্দয প্তাভযা মনশ্চয়ই প্ফ খ্ুম? মকন্তু আভাদদয প্েষ্টা এখ্াদনই প্থদভ
থাকদফ না। আভযা এখ্ন প্দখ্ফ আদযকমি েভৎকায দ্ধমত, মগ্রক গমিতমফদ ইযাদতাদথদন
(Eratosthenes) আি প্থদক দুই ািায ফেদযয আদগ এই দ্ধমত আমফষ্কায কদযমেদরন।
এিনয-এয নাভ দে মব অফ ইযাদতাদথদন ( Sieve of Eratosthenes)।
দ্ধমতমি ফযাখ্যা কযা মাক। ধদযা, আভযা 2 প্থদক 40 মণন্ত ফ প্ভৌমরক িংখ্যা প্ফয কযফ। শুরুদত
ফ িংখ্যা মরদখ্ প্পমর: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19 , 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39, 40. এখ্ন প্দদখ্া, তামরকায রথভ িংখ্যা দে 2। এফাদয 2-এয ফ গুমিতক (2 ফাদদ,
ভাদন 2-এয প্েদয় ফড়গুদরা আযকী) ফাদ মদদয় দা। তাদর থাকদফ: 2, 3, 5, 7, 9, 11, 13,
15, 17, 19 , 21, 23, 25, 27, 29, 31, 33, 35, 37, 39. এখ্ন তামরকায মদ্বতীয় িংখ্যা
3-এয ফ গুমিতক (3-এয প্েদয় ফড়গুদরা) ফাদ দা। 2, 3, 5, 7, 11, 13, 17, 19, 23, 25,
29, 31, 35, 37. এখ্ন তামরকায তৃতীয় িংখ্যা 5-এয ফ গুমিতক (5 ফাদদ) ফাদ দা। 2, 3,
5, 7, 11, 13, 17, 19, 23, 29, 31, 37. যফতণী িংখ্যা দে 7 মকন্তু প্মিয গুমিতক প্খ্াাঁিায
প্েষ্টা কযা ফৃথা। কাযি তামরকায দফণাচ্চ িংখ্যা 37-এয ফগণভূর 7-এয প্েদয় প্োি। ুতযািং 7-এয
প্ম গুমিতকগুদরা তামরকায় মের প্গুদরা ইমতভদধয তামরকা প্থদক ফাদ দড়দে। কাযিমি ফুঝদত
ভযা দে? প্দদখ্া 7-এয গুমিতকগুদরা মের 14, 21, 28, 35। 7-এয দে প্মফ িংখ্যা গুি
কদয ই গুমিতকগুদরা ায়া মায় প্গুদরা ফই 7-এয প্েদয় প্োি িংখ্যা এফিং তাদদয
গুমিতকগুদরা আভযা ইমতভদধযই ফাদ মদদয় মদদয়মে।
এখ্ন প্তাভযা প্কাডমি মরখ্ায প্েষ্টা কদযা। কভদক্ষ মতন ঘণ্টা মনদি প্েষ্টা কযায য এফাদয আভায
প্কাড প্দদখ্া।
#include <stdio.h>
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
#include <math.h>
const int size = 40;
int ara[size];
void print_ara()
{
int i;
for(i = 2; i < size; i++) {
printf("%4d", ara[i]);
}
printf("\n");
for(i = 2; i < size; i++) {
printf("----");
}
printf("\n");
for(i = 2; i < size; i++) {
printf("%4d", i);
}
printf("\n\n\n");
}
void sieve()
{
int i, j, root;
for(i = 2; i < size; i++) {
ara[i] = 1;
}
root = sqrt(size);
print_ara();
for(i = 2; i <= root; i++) {
if(ara[i] == 1) {
for(j = 2; i * j <= size; j++) {
ara[i * j] = 0;
}
print_ara();
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
}
}
}
int is_prime(int n)
{
int i;
if(n < 2) {
return 0;
}
return ara[n];
}
int main()
{
int n, m;
sieve();
while(1) {
printf("Please enter a number (enter 0 to exit): ");
scanf("%d", &n);
if(n == 0) {
break;
}
if(n >= size) {
printf("The number should be less than %d\n", size);
continue;
}
if(1 == is_prime(n)) {
printf("%d is a prime number.\n", n);
}
else {
printf("%d is not a prime number.\n", n);
}
}
return 0;
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
}
প্রাগ্রাভ: ১০.২
রমতফায অযাদযয অফস্থা প্ফাঝাদনায িনয আমভ একমি পািংন ফযফায কদযমে, print_ara()।
প্তাভযা প্দদখ্া এফাদয ইনুি প্নয়ায আদগই আভযা sieve() পািংন কর কদয অযাদযমি ততময
কদয প্পদরমে। তাযয মতফাযই ইনুি না, প্কাদনা মেন্তা প্নই, ইনুি মমদ n য় তদফ ara[n]-
এয ভান যীক্ষা কযদরই েদর, ভান মমদ 1 য় তদফ n প্ভৌমরক িংখ্যা, মমদ 0 য় তদফ n প্ভৌমরক
িংখ্যা নয়। কত মণন্ত িংখ্যা মাফ কযদত ো প্মি size-এ ফমদয় মদদরই দফ। এখ্ন এই
প্রাগ্রাদভ গমত মনদয় প্কাদনা ভযা প্নই। খ্ুফই পাস্ট (fast)। মকন্তু আয প্কাদনা ভযা প্তাভাদদয
প্োদখ্ ড়দে? প্তাভযা মক ফুঝদত াযে প্ম প্রাগ্রাভমি অদনক প্ফম প্ভদভাময খ্যে কদয? ধদযা,
আভযা মমদ 100 প্কামি মণন্ত িংখ্যা প্ভৌমরক মক না প্মি প্ফয কযদত োই, তাদর প্তা আভাদদয
100 প্কামিয একমি অযাদয দযকায দফ। 'ভয় ফাাঁোফ না প্ভদভাময' ভযায় প্রাগ্রাভাযদদয রায়ই
ড়দত য়। আভাদদয ভযায প্ক্ষদত্র আভযা একমি ভাঝাভামঝ ভাধাদন প্ৌাঁেদত াময। n-এয
দফণাচ্চ ভান মত দফ তায ফগণভূরমিদক size-এয ভান মদদফ মনদত াময। প্তাভাদক মমদ ফরা য়,
n-এয ভান দফণাচ্চ 100000000 (দ প্কামি) মণন্ত দত াদয তাদর তুমভ এয ফগণভূর অথণাৎ
10000 মণন্ত িংখ্যাগুদরায িনয sieve পািংন ফযফায কদয প্ভৌমরক িংখ্যাগুদরা প্ফয কযদফ।
তাযয কী কযদফ? নাহ্, আয মকেু ফরা মাদফ না, প্তাভযাই মেন্তা কদয মিক কদযা কী কযদফ।
আদযকমি কথা ফদর প্দয়া দযকায। একমি ইমিিায মকন্তু োয ফাইি িায়গা দখ্র কদয, প্মখ্াদন
একমি কযাদযক্টায কদয এক ফাইি। ুতযািং ইমিিাদযয মযফদতণ প্তাভযা কযাদযক্টাদযয অযাদয ফযফায
কদয প্ভদভাময খ্যে োয বাদগয এক বাদগ নামভদয় আনদত াদযা। আভাদদয প্তা আদর ইমিিায
অযাদযয দযকায প্নই, কাযি অযাদযদত প্কফর দুই ধযদনয ভান থাকদফ 0 ফা 1। এমি োড়া আভায
প্রখ্া sieve পািংদন আয প্ফ মকেু উায় আদে ইমপমদয়মি ফাড়াদনায। এয ভদধয একমি দে
গুদিয ফদদর প্মাগ কযা। প্তাভযা প্মি কযায প্েষ্টা কদযা।
আভযা রথভ াভময়ে যীক্ষায নম্বয প্যরখমেরাভ এেমি অযারযরত, মিতীয় াভময়ে যীক্ষায নম্বয
আরযেমি অযারযরত, পাইনার যীক্ষায নম্বয আরযেমি অযারযরত আয প্ভাি নম্বয আযও এেমি
অযারযরত – প্ভাি চাযমি অযারয ফযফায েরযমে। প্তা এখন মমদ ুরযা স্কুররয পরাপর মনিণরয়য জনয
প্রাগ্রাভ প্রখরত য়, তরফ ফ ক্লারয ফ োত্র-োত্রীয ফ মফলরয়য ফ যীক্ষায জনয এেমি েরয
অযারয ফযফায েযা খুফই ঝারভরায োজ রয় মারফ। তাই প্ভািাভুমি ফ প্রাগ্রামভিং রযাঙ্গুরয়রজই
ভামি-ডাইরভননার অযারযয ফযফস্থা আরে। এতক্ষি আভযা প্মফ অযারয ফযফায েরযমে, তায
ফগুররাই মের এে ডাইরভনরনয অযারয।
এখন ওই প্রাগ্রাভমি আভযা এেিু অনযবারফ মরখফ, এেমি ভাত্র অযারয ফযফায েরয। আাতত েষ্ট
েভারনায জনয ধময ক্লার প্ভাি দজন োত্র-োত্রী আরে। মনরচয েরে তারদয নম্বযগুররা মরখরাভ:
Roll: Roll: Roll: Roll: Roll: Roll: Roll: Roll: Roll: Roll:
1 2 3 4 5 6 7 8 9 10
First 80 70 92 78 58 83 85 66 99 81
terminal
exam
Second 75 67 55 100 91 84 79 61 90 97
terminal
exam
Final 98 67 75 89 81 83 80 90 88 77
exam
Total
Total Marks ামযয ঘযগুররা পাাঁো, োযি এগুররা এখরনা মাফ েমযমন। রথভ াভময়ে
যীক্ষায 25%, মিতীয় াভময়ে যীক্ষায 25% এফিং পাইনার যীক্ষায 50% নম্বয প্মাগ েরয
প্ভাি নম্বয প্ফয েযরত রফ। এখন প্দরখা, আভারদয েরে তারদয নম্বযগুররা যাখরত রয়রে 4 িা
াময (row) এফিং 10 িা েরারভ। আভযা আরগ প্মই প্রাগ্রাভ মররখমেরাভ, তারত রথভ প্যা-এয
জনয এেমি অযারয, মিতীয় প্যা-এয জনয এেমি, তৃতীয় প্যা-এয জনয এেমি এফিং চতুথণ প্যা-এয
জনয এেমি অযারয ফযফায েরযমেরাভ। এখন ফযফায েযফ এেমি 2-D অযারয (িু ডাইরভননার
অযারয)।
এখন, অযারযয রথভ প্যা রে marks[0], মিতীয় প্যা রে marks[1], তৃতীয় প্যা রে
marks[2] এফিং চতুথণ প্যা রে marks[3]। আফায marks[0][0] রে রথভ প্যা-এয রথভ
েরাভ, marks[0][1] রে রথভ প্যা-এয মিতীয় েরাভ, marks[0][5] রে রথভ প্যা-এয
লষ্ঠ েরাভ, marks[1][0] রে মিতীয় প্যা-এয রথভ েরাভ, marks[2][3] রে তৃতীয় প্যা-
এয চতুথণ েরাভ। আা েময, ফুঝরত প্রযে।
এখন ফররা প্তা, মায প্যার নম্বয 10 তায মিতীয় াভময়ে যীক্ষায নম্বয প্োন ঘরয আরে? আয
marks[0][0] ঘরয োয এফিং প্োন যীক্ষায নম্বয আরে?
int marks[4][10] = {{80, 70, 92, 78, 58, 83, 85, 66, 99, 81}, {75, 67, 55,
100, 91, 84, 79, 61, 90, 97}, {98, 67, 75, 89, 81, 83, 80, 90, 88, 77}, {0,
0, 0, 0, 0, 0, 0, 0, 0, 0}};
এখারন প্খয়ার েরযে প্ম আভযা আরর এেমি অযারযয প্বতয চাযমি এে ডাইরভনরনয অযারয
প্যরখমে। marks[0]প্ত আরে রথভ াভময়ে যীক্ষায় ফায নম্বয, marks[1]-এ মিতীয়
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
াভময়ে যীক্ষায নম্বয, marks[2]-এ পাইনার যীক্ষায নম্বয এফিং marks[3]প্ত প্ভাি নম্বয
(প্মরতু এখরনা এমি মাফ েমযমন, তাই ফ 0 মররখ মদরাভ)।
এখন ম্পূিণ প্রাগ্রাভমি প্তাভায েমম্পউিারয িাই েরয েম্পাইর ও যান েরযা।
#include <stdio.h>
int main()
{
int marks[4][10] = {{80, 70, 92, 78, 58, 83, 85, 66, 99, 81}, {75, 67,
55, 100, 91, 84, 79, 61, 90, 97}, {98, 67, 75, 89, 81, 83, 80, 90, 88, 77},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
int col;
for(col = 0; col < 10; col++) {
marks[3][col] = marks[0][col] / 4.0 + marks[1][col] / 4.0 +
marks[2][col] / 2.0;
printf("Roll NO: %d Total Marks: %d\n", col + 1, marks[3][col]);
}
return 0;
}
প্রাগ্রাভ: ১১.১
নম্বযগুররা আরগ না মররখ মমদ আভযা ফযফাযোযীয োে প্থরে ইনুি মররফ মনরত চাইতাভ
তারর েী েযরত রতা?
int marks[4][10];
int i, j;
for (i = 0; i < 4; i++) {
for (j = 0; j < 10; j++) {
scanf("%d", &ara[i][j]);
}
}
এখন আভযা 1 প্থরে 10 মণন্ত িংখযাগুররায নাভতা প্ফয েযায জনয 2-D অযারয ফযফায েরয
এেমি প্রাগ্রাভ মরখফ। এরেয নাভতা রফ রথভ প্যা-প্ত, দুইরয়য নাভতা মিতীয় প্যা-প্ত … দরয
নাভতা দভ প্যা-প্ত থােরফ। প্তাভযা মে প্রাগ্রাভমি মনরজ মনরজ মরখায প্চষ্টা েযরফ? এে ঘণ্টায
ভরধযও মমদ না য়, তরফ আভায প্োডমি প্দরখা। প্রাগ্রামভিং প্খায ভয় অরনে জ প্রাগ্রাভ
মরখরতও রচুয ভয় রারগ, তারত তা ফায মেেু প্নই।
#include <stdio.h>
int main()
{
int namta[10][10];
int row, col;
for (row = 0; row < 10; row++) {
for(col = 0; col < 10; col++) {
namta[row][col] = (row + 1) * (col + 1);
}
}
for (row = 0; row < 10; row++) {
for(col = 0; col < 10; col++) {
printf("%d x %d = %d\n", (row + 1), (col + 1),
namta[row][col]);
}
printf("\n");
}
return 0;
}
প্রাগ্রাভ: ১১.২
ম্পূিণ আউিুি মিরন না-ও আিরত ারয, তারত মচন্তায মেেু প্নই।
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
এখন প্তাভারদয জনয এেমি ভযা। ওরযয প্রাগ্রাভমি মযফতণন েরযা মারত আউিুি মররফ
আভযা প্দখরত াময প্ম namta অযারযরত প্ভাি েয়মি প্জাড় ও েয়মি প্ফরজাড় িংখযা আরে। প্ই
রঙ্গ অযারযরত মতগুররা িংখযা আরে, তায প্মাগপরও প্ফয েযরত রফ। আা েময, প্রাগ্রাভমি
মিেিাে মরখরত প্রযে। মমদ প্োরনা ভযা য়, তরফ তুমভ প্তাভায ফন্ধুয াাময মনরত ারযা।
আো, প্েউ মমদ ফরর, ােণবুক্ত াতমি প্দরয নাভ এেমি অযারযরত যাখরত, তারর েী েযরফ?
এেমি char type অযারযরত এেমি প্দরয নাভ যাখা মায়। প্মভন: char country[] =
"Bangladesh";। তারর াতমি প্দরয নাভ যাখায জনয আভারদয এেমি 2-D অযারয ফযফায
েযরত রফ। এই অযারযরত প্ভাি েয়মি প্যা থােরফ? াতমি। েরাভ েয়মি থােরফ? জামন না।
আরর এরেে প্দরয নারভয দদঘণয প্তা এরেে যেভ। তাই আভযা এেমি োজ েযরত াময,
েরারভ 100মি েযারযক্টায যাখায ফযফস্থা েযরত াময, োযি ারেণয প্োরনা প্দরয নারভ প্তা
100মিয প্ফম েযারযক্টায প্নই, েভ আরে।
#include <stdio.h>
int main()
{
char saarc[7][100] = {"Bangladesh", "India", "Pakistan", "Sri Lanka",
"Nepal", "Bhutan", "Maldives"};
int row;
for (row = 0; row < 7; row++) {
printf("%s\n", saarc[row]);
}
return 0;
}
প্রাগ্রাভ: ১১.৩
প্রাগ্রাভমি প্তাভায েমম্পউিারয মররখ যান েযাও। এখন প্তাভযা ফররা প্তা, saarc[3][3],
saarc[0][5] ও saarc[5][0] – এই মতনমি ঘরয েী েী েযারযক্টায আরে? এেিু রয এেমি
প্রাগ্রাভ মরখফ, তায রঙ্গ প্তাভায উত্তয মভমররয় প্নরফ।
আভযা মমদ ওই অযারযয রমতমি েযারযক্টায আরাদাবারফ মরন্ট েযরত চাই, তরফ প্রাগ্রাভমি এবারফ
মরখরত াময:
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
#include <stdio.h>
#include <string.h>
int main()
{
char saarc[7][100] = {"Bangladesh", "India", "Pakistan", "Sri Lanka",
"Nepal", "Bhutan", "Maldives"};
int row, col, name_length;
for (row = 0; row < 7; row++) {
name_length = strlen(saarc[row]);
for(col = 0; col < name_length; col++) {
printf("%c ", saarc[row][col]);
}
printf("\n");
}
return 0;
}
প্রাগ্রাভ: ১১.৪
আফায মমদ প্দখরত চাই প্োন ঘরয েী আরে, তারর প্যা এফিং েরাভ নম্বয মরন্ট েযরত াময।
#include <stdio.h>
#include <string.h>
int main()
{
char saarc[7][100] = {"Bangladesh", "India", "Pakistan", "Sri Lanka",
"Nepal", "Bhutan", "Maldives"};
int row, col, name_length;
for (row = 0; row < 7; row++) {
name_length = strlen(saarc[row]);
for(col = 0; col < name_length; col++) {
printf("(%d, %d) = %c, ", row, col, saarc[row][col]);
}
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
printf("\n");
}
return 0;
}
প্রাগ্রাভ: ১১.৫
6 4 7 8 9
3 7 1 9 9
8 6 4 2 7
2 4 2 5 9
4 1 6 7 3
এখন 2-D অযারয ফযফায েরয প্তাভারদয দুমি প্রাগ্রাভ মরখরত রফ। রথভ প্রাগ্রাভমিয োজ রফ
রমতমি প্যা-এয িংখযাগুররায প্মাগপর প্ফয েযা আয মিতীয় প্রাগ্রারভয োজ রফ রমতমি েরারভয
িংখযাগুররায প্মাগপর প্ফয েযা।
6 3 8 2 4
4 7 6 4 1
7 1 4 2 6
8 9 2 5 7
9 9 7 9 3
আরর আরগয েরেয প্যাগুররা নতুন েরেয েরাভ, আয আরগয েরেয েরাভগুররা নতুন েরেয
প্যা। প্মভন আরগয েরেয রথভ প্যা-মি মের: 6, 4, 7, 8, 9। আয এই েরেয রথভ েরাভ রে:
6, 4, 7, 8, 9। এেইবারফ আরগয েরেয মিতীয় প্যা নতুন েরেয মিতীয় েরারভয রঙ্গ প্ভরর।
এখন আভযা এেমি প্রাগ্রাভ মরখফ, প্মমি এেমি 5 x 5 অযারযরে ( অথণাৎ 5 প্যা এফিং 5
েরাভমফমষ্ট অযারয), আরযেমি 5 x 5 অযারযরত এভনবারফ েম েযরফ, মারত রথভ অযারযয
প্যাগুররা য় মিতীয় অযারযয েরাভ আয রথভ অযারযয েরাভগুররা য় মিতীয় অযারযয প্যা। ভারন
ওরযয েে দুমিয ভত আযমে। প্মভন রথভ অযারযয রথভ প্যা মমদ য়: 1, 2, 3, 4, 5 তারর
মিতীয় অযারযয রথভ েরাভ রফ 1, 2, 3, 4, 5। প্তাভায মে মফলয়মি এেিু জমির ভরন রে?
তারর মেেুক্ষি মফশ্রাভ মনরয় তাযয মনরচয প্রাগ্রাভমি েম্পাইর েরযা, যান েরযা, আউিুি প্দরখা
এফিং েীবারফ োজ েযরে প্ফাঝায প্চষ্টা েরযা।
#include <stdio.h>
#include <string.h>
int main()
{
int ara1[5][5] = {{1, 2, 3, 4, 5}, {10, 20, 30, 40, 50}, {100, 200, 300,
400, 500}, {1000, 2000, 3000, 4000, 5000}, {10000, 20000, 30000,
40000, 50000}};
int ara2[5][5];
int r, c;
printf("Content of first array (ara1): \n");
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
for (r = 0; r < 5; r++) {
for(c = 0; c < 5; c++) {
printf("%d ", ara1[r][c]);
}
printf("\n");
}
printf("\n");
// now start copy
for (r = 0; r < 5; r++) {
for(c = 0; c < 5; c++) {
ara2[c][r] = ara1[r][c];
}
}
printf("Content of second array (ara2): \n");
for (r = 0; r < 5; r++) {
for(c = 0; c < 5; c++) {
printf("%d ", ara2[r][c]);
}
printf("\n");
}
return 0;
}
প্রাগ্রাভ: ১১.৬
প্তাভযা মমদ এতক্ষি 2-D অযারযয ফ উদাযি এফিং প্মফ প্রাগ্রাভ মনরজ মরখরত ফররমে,
প্গুররা ফ েমম্পউিারয যান েরয থারো এফিং ফুরঝ থারো (ফুঝরত রর অফযই মচন্তা েযরত রফ)
তরফ প্তাভারদয আয 2-D অযারয মনরয় ভযা ওয়ায েথা নয়। অযারয মেন্তু 3-D, 4-D মেিংফা
আযও প্ফম ডাইরভনরনয রত ারয, তরফ প্গুররা মনরয় এই ফইরত আয আররাচনা েযফ না।
্াইাম মনেন অ্য আা একনক ঘ, ৈনক ঘ, নক ঘ, নে ঘ া ্ন ্্
এনক ঘ, দুইনয় ঘ, চান ঘ, আনট ঘ। প্ক ্ প্ া? একটু মচন্তা কনা।
প্নমট প্খ্য়া কনা, 2 3 – 1 5 কা য় আা কী কম? খ্ 3 -এ ্াাঁনয় একমট
কাল্পমক 1 ন মই (্া 1 া কম), াো 1 3 – 5 = 8 প্মখ্। আ প্ই একমট া
কা, প্মট োন ঘন 1 -এ নে প্াগ কন মৈই। প্ ই ্াইামন 0 – 1 কন
প্গন 0 -এ ্াাঁনয় একমট এক ্, খ্ িংখ্যামট ন্ 1 0 (দুই), এই দুই প্েনক এক ্াৈ
মৈন এক োকন্। োন ঘন একমট এক প্াগ কন ন্ (প্ই িংখ্যামট ম্নয়াগ নে া
নে)।
110 –101 =ক ?
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
এনক ঘন 0 প্েনক 1 ্াৈ মৈন োনক 1 , এখ্ান 1 া কন নয়নে। াই 1 0 1 -এ
দুইনয় ঘন প্মট প্াগ কন প্ৈ্। ান দুইনয় ঘন 1 – 1 = 0 , চান ঘন 1 – 1 =
0 । াই ম্নয়াগৌ ন্: 0 0 1 ্া 1 । প্াগ-ম্নয়াগ োান গুণ-ৎাগ া োাা কাণ প্ই।
প্েমান ন াই ময়।
আ্া প্কানা প্েমা িংখ্যানক আা মমৈিষ্ট অঙ্ক x 1 0 ওই অনঙ্ক অ্স্থা-এ প্াগৌ মনন্
প্ মখ্ন োাম, ্াইাম িংখ্যানকও মমৈিষ্ট অঙ্ক x 2 ওই অনঙ্ক অ্স্থা-এ প্াগৌ মনন্
প্খ্া ায়। প্: 1 9 0 3 = 1 x 1 0 3 + 9 x 1 0 2 + 0 x 1 0 1 + 3 x
1 0 0।
্াইাম: 1 0 1 1 0 = 1 x 2 4 + 0 x 2 3 + 1 x 2 2 + 1 x 2 1 + 0 x
2 0 । ইিংনমজন এনক ্ন E x p o n e n t i a l E x p r e s s i o n ।
এখ্ প্কানা ্াইাম িংখ্যা া মৈ প্েমান প্্ কন চাই, ন্ রেন ্াইাম
িংখ্যামটনক এক্সনোানময়া এক্সনর আকান মখ্ন ন্। াো গুণৌগুনা প্েমান
মা্ কন ন্। মনচ উৈাণমট প্ৈনখ্া:
10110 =1 x 24 +0 x 23 +1 x 22 +1 x 2 1
+0 x 2 0
=
1 x 16 +0 x 8 +1 x 4 +1 x 2 +0 x 1
=16 +0 +4 +2 +0 =22
c h a r b i n a r y [] = "1 0 1 1 0 ";
i n t l e n = 5 ; // মরিংনয় দৈঘিয 5 ।
i n t d e c i ma l = 0 ; // এখ্না প্কানা মা্ কমম, াই া প্েমা
া 0 ।
ুো প্েনক প্্ ন আা িূণি ্াইাম িংখ্যা প্েমা া প্োনয় া্। এখ্ান
প্ৈনখ্া, আম p o w ৌািং ্য্া কনমে। এমট কাজ ্া আনেma t h .h প্ো
ৌাইন। a b -এ া প্্ কা জয p o w (a , b ) ্ন মৈনই য়। ান আানৈ
োুনা প্রাগ্রামট ৈাাঁড়ানে এই ক:
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
char binary[65];
int len, decimal, power, i;
printf("Enter the binary number: ");
scanf("%s", binary);
decimal = 0;
len = strlen(binary);
power = len - 1;
for(i = 0; i < len; i++) {
decimal += pow(2, power);
power--;
}
printf("Decimal value is %d\n", decimal);
return 0;
}
d e c i ma l += b i n a r y [i ] * p o w (2 , p o w e r );
একমট ্যাোা প্খ্য়া কনো প্ া? 1 0 1 1 0 -এ এনক ঘন অঙ্কমট আানৈ অযান প্
কযানক্টা, আ প্ানা ঘন অঙ্কমট নে অযান রে কযানক্টা। অযানন িংখ্যামট আনে
এইৎান্: ['1 ', '0 ', '1 ', '1 ', '0 ']। াই b i n a r y [0 ]-এ নে গুণ
ন্ p o w (2 , 4 ), b i n a r y [1 ]-এ নে গুণ ন্p o w (2 , 3 ),
…, এৎান্ b i n a r y [4 ]-এ নে গুণ ন্ p o w (2 , 0 )। এখ্ প্রাগ্রামট মিক
কন মনয় াো চাাও। ইোুট 1 0 1 1 0 -এ জয কী আউটোুট?
ৎুমট প্ d e c i ma l += b i n a r y [i ] * p o w (2 ,
p o w e r ); প্েটননে নয়নে ান প্কানা নি প্ই। কাণ আা এখ্ানই একটু
োম্ ি কনমে। ে কনা, b i n a r y [i ]-এ া য় '0 ' ্া '1 ' (ান
কযানক্টা '0 ' ্া কযানক্টা '1 ')। এখ্ কমিউটা '0 ' ্ন প্্ানে 4 8 আ '1 ' ্ন
প্্ানে4 9 । োনাটা এখ্ানই নয়নে। এখ্ এই '0 'প্ক 0 আ '1 'প্ক 1 প্্াো্ কীৎান্?
এ্ান আা প্ৈখ্্ প্েমা প্েনক ্াইামন রূোান্ত। একমট উৈানণ াানয োদ্ধম টা
প্ৈখ্াই। না 9 5 প্ক ্াইামন রূোান্ত কন ন্। এখ্ আানৈ প্্ কন ন্ n -এ
ন্িাচ্চ া, প্খ্ান 2 n <= 9 5 । দুইনয় োাওয়াগুনা নে 1 , 2 , 4 , 8 , 1 6 ,
3 2 , 6 4 , 1 2 8 , ...। এখ্ান আা প্ৈখ্ন োামে 6 4 < 9 5 ্া 2 6 < 9 5 ।
ান n -এ া 6 । আ আানৈ ্াইাম িংখ্যামট ন্ া অনঙ্ক (0 প্েনক 6 প্াট
া মট অঙ্ক)। প্ন ু 6 4 < 9 5 , াই এই িংখ্যামট প্ওয়া ায়। ান প্চৌমি ঘন (্াাঁ
প্েনক রে ্া ো প্েনক প্ত) ন্ 1 (1 x x x x x x )। এখ্ n -এ
া 1 কাই। 6 4 + 2 5 = 6 4 + 3 2 = 9 6 , া মকা 9 5 -এ প্চনয় ্ড়। াই
এনক প্ওয়া ান্ া। অ এ্ ্মত্রন ঘন 0 ্াই(1 0 x x x x x )। এ্ান n -এ া
আ্া এক কাই, n -এ া এখ্ 4 । 6 4 + 2 4 = 6 4 + 1 6 = 8 0 < 9 5 ।
ু ািং প্ানা ঘন ন্ 1 (1 0 1 x x x x )। এখ্ n -এ া এক কাই, n =
3 । 8 0 + 2 3 = 8 0 + 8 = 8 8 < 9 5 । াই আনট
ঘনও 1 ্ন্ (1 0 1 1 x x x )। এো একইৎান্, n = 2 -এ জয 8 8 + 2 2 =
8 8 + 4 = 9 2 < 9 5 । চান ঘনও 1 ্ন্ (1 0 1 1 1 x x )। াো n =
1 , 9 2 + 2 1 = 9 2 + 2 = 9 4 < 9 5 । দুইনয় ঘনও 1 (1 0 1 1 1 1 x )।
এখ্ n = 0 , 9 4 + 2 0 = 9 4 + 1 = 9 5 । াই এনক ঘনও 1 । ু ািং ্াইাম
িংখ্যামট নে 1 0 1 1 1 1 1 । প্ াা এখ্ এই োদ্ধম ন প্কানা ৈমৎমিক িংখ্যানক
্াইামন রূোান্ত কা প্রাগ্রা মনখ্ প্ৌনা এ্িং ম্মৎন্ন া মৈনয় োীো কন প্ৈনখ্া।
এখ্ একই কাজ আা একটু অযৎান্ ক্। মনচ প্টম্মট প্ৈনখ্া:
ৎাগৌ ৎাগন
9 5/2 47 1
4 7 /2 23 1
2 3 /2 11 1
1 1 /2 5 1
5 /2 2 1
2 /2 1 0
1 /2 0 1
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
এ্ান ৎাগন কান অঙ্কগুনা প্ প্েনক রে িন প্খ্নই আা ্াইাম ম্বটা প্োনয়
া্: 1 0 1 1 1 1 1 । আ ৎানগ কাজমট আা েণ ক্ েণ া
ৎাগৌ 0 োামে।
এই োদ্ধম ন ও প্ াা প্েমা প্েনক ্াইাম রূোান্তন জয একমট প্কাে মনখ্ প্ৌনা।
রূোান্তন প্কােমট ma i n ৌািংন া কন আাৈা একমট ৌািংন কন্।
পযামররাম (palindrome) িী মজমন, প্োমরা জান? প্িারনা লব্দরি উল্টাভারব (মারন প্ল
প্থরি শুরু) মখর যমে প্মি আর নেুন লব্দমি এিই রিম য় েরব প্মি এিমি পযামররাম।
প্যমন: madam। এমিরি প্ল প্থরি শুরু পযযন্ত মখরও madam রব। এখন এিমি প্রাগ্রাম
মখব প্যমিরে প্িারনা লব্দ ইনপুি মের প্মি পযামররাম মি না বর প্েরব। েরব প্রাগ্রাম প্খার
আরে প্োমারের জনয ইউমিউব প্থরি দুমি মভমডও:
মভমডও মঙ্ক ১
মভমডও মঙ্ক ২
এজনয আমরা িী িররে পামর? রথরম লব্দমি মরিং মররব এিমি অযারররে ইনপুি প্নব। োরপর
আররিমি অযারররে প্মি উল্টাভারব রাখব। োরপর যমে দুমি এিই মরিং য়, েরব প্মি
পযামররাম। োর প্রাগ্রামমি মরখ প্ফম:
#include <stdio.h>
#include <string.h>
int main()
{
char word[80], reverse_word[80];
int i, j, len;
scanf("%s", word);
len = strlen(word);
for(i = 0, j = len - 1; i < len; i++, j--) {
reverse_word[i] = word[j];
}
reverse_word[i] = '\0';
printf("%s\n", reverse_word);
if (0 == strcmp(word, reverse_word)) {
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
printf("%s is a palindrome.\n", word);
}
else {
printf("%s is not a palindrome.\n", word);
}
return 0;
}
প্রাগ্রাম: ১৩.১
িী মজা! আমম প্রাগ্রামমি মরখ মোম। েরব আমম এখারন প্বল মিছু প্বািামম িররমছ, যার মরধ্য
অনযেম রে এিমি অমেমরক্ত অযারর বযবার িরা। ুেরািং প্োমারের এখন প্রাগ্রামমি এমনভারব
মখরে রব, যারে প্িব এিমি অযারর বযবার িররই িাজ য়। আর েখন strcmp ফািংলনমিরও
েরিার রব না। প্রাগ্রামমি মখরে ময় প্বমল ােরে পারর, াগুি, অুমবধ্া প্নই। েরব মখরে
রব মিিিাি, এমিই রা িথা।
প্োমরা প্ো ফযাক্টমরয়া (factorial) মজমনমির রে পমরমচে? এমি এিমি োমিমেি অপাররলন
যা প্িারনা ধ্নাত্মি পূিযিংখযার প্েরে বযবার িরা যায়। n এিমি ধ্নাত্মি পূিয িংখযা র-এর
ফযাক্টমরয়ারি রিাল িরা য় n! মেরয় এবিং n! = n * (n – 1) * (n – 2) * … * 3 * 2 *
1। প্যমন 4! = 4 * 3 * 2 * 1 = 24। আবার 6! = 6 * 5 * 4 * 3 * 2 * 1 = 720। 1!
= 1। 0! = 1 (0-এর প্েরে বযমেক্রমমি ে িররা, মিছু মবরল ুমবধ্ার জনয 0-এর
ফযাক্টমরয়ারর মান 1 ধ্রা য়)। এখন প্োমরা প্িারনা ধ্নাত্মি পূিযিংখযার ফযাক্টমরয়া প্বর িরার
প্রাগ্রামমি মরখ প্ফরা। জ প্রাগ্রাম, এিমি ুপ বযবার িররই িরা যায়। এখন মবমভন্ন িংখযা
মেরয় প্রাগ্রামমি প্িে িরর প্েরখা ফযাক্টমরয়া মিিিাি প্বর িররে পারর মি না। প্রাগ্রারম েুমম যমে
ডািা িাইপ int বযবার িরর থাি েরব 12-এর প্চরয় বড় প্িারনা পূিয িংখযার ফযাক্টমরয়ারর মান
মিিমরো প্েখারব না (িযািুরিরর িরর মমমরয় প্েখরে পাররা)। িারি রে 12-এর প্চরয় বড়
প্িারনা পূিয িংখযার জনয প্ই িংখযার ফযাক্টমরয়ারর মান প্ররের বাইরর চর যায়।
এখন প্োমারের এিমি মজার মযা মাধ্ান িররে রব। প্িারনা পূিযিংখযা n (প্যখারন 1 < n <
100, মারন n-এর মান 2 প্থরি 99 পযযন্ত রে পারর)-এর ফযাক্টমরয়ারি প্মৌমি িংখযার
গুিফ মররব রিাল িরর প্িান প্মৌমি িংখযা িেবার আরছ প্মি প্বর িররে রব। প্যমন,
আমরা জামন, 5! = 120 = 2 * 2 * 2 * 3 * 5। এখারন 2 আরছ 3 বার, 3 আরছ 1 বার আর
5 আরছ 1 বার। োই ইনপুি 5 র আউিপুি রব: 5! = (2, 3), (3, 1), (5, 1)। প্োমরা মি
এিমি বযাপার বুঝরে পারছ প্য শুরুরে n-এর ফযাক্টমরয়ারর মান প্বর িরর োরপর প্মৌমি
উৎপােরি ভাঙরে প্ের এিমি ঝারমা রয় যারব? িারি n-এর মান রবযাচ্চ রে পারর 99 আর
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
ইমন্টজারর প্ো 12-এর প্চরয় বড় প্িারনা িংখযার ফযাক্টমরয়ারর মান রাখা যায় না। আর এই
প্রাগ্রারমর জনয n!-এর মান প্বর িরার প্িারনা েরিার প্নই। শুধ্ু এিিু োমিমেি যুমক্ত-বুমি
খািাও। আর 2 প্থরি 99 পযযন্ত প্মৌমি িংখযাগুরা এিমি অযারররে প্ররখ নাও। প্রাগ্রামমি
মিিভারব িররে প্োমারের অরনরিরই দু-মেন মেন ময় প্রে প্যরে পারর, এরে োল ওয়ার
মিছু প্নই।
এখন আমরা এিমি প্রাগ্রাম মখব। যার উরেলয রব প্িারনা অযারররে মিছু িংখযা থাির
প্গুরারি প্ছাি প্থরি বড় ক্ররম াজারনা। প্যমন, প্িারনা অযারর যমে এমন য়: int ara[] =
{3, 1, 5, 2, 4}, েরব আমারের প্রাগ্রাম প্ই অযাররর িংখযাগুরা এমনভারব াজারব, যারে
ara[] = {1, 2, 3, 4, 5} য়।
প্রাগ্রামমি এিিু পরর মখব, োর আরে মিি িরর প্নই প্য প্মি িীভারব িাজ িররব। প্োমার িারছ
পাাঁচমি িংখযা আরছ: 3, 1, 5, 2, 4। প্ছাি প্থরি বড় ক্ররম াজারে রব। েুমম রথরম িী িররব?
রথরম বরচরয় প্ছাি িংখযামি খুাঁরজ প্বর িরর োরি শুরুরে মখরব: 1। েখন বামি থারি চারমি
িংখযা: 3, 5, 2, 4। এখন এই চারমির মরধ্য বরচরয় প্ছাি িংখযামি 1-এর পরর মখরব: 1, 2।
বামি রই 3, 5, 4। এরের মরধ্য বরচরয় প্ছাি 3। োই েুমম মখরব : 1, 2, 3। এখন বামি 5,
4। এই দুমি িংখযার মরধ্য বরচরয় প্ছাি 4। প্মি েুমম 3-এর পরর মখরব: 1, 2, 3, 4। এখন
বামি এিমি িংখযা, 5। প্মি েুমম 4-এর পরর মখরব। 1, 2, 3, 4, 5। প্োমার াজারনার িাজ
রয় প্ে। এরি মিযিং (sorting) বর। মবমভন্ন উপারয় এমি িরা যায়। েরব আমরা এিমি জ-
র উপারয় িরাম।
আমরা প্যভারব িাজমি িররমছ, প্মি উইমিমপমডয়ারে চমৎিার এিিা অযামনরমলরনর াারযয
প্েখারনা রয়রছ। অযামনরমলনমি এিবার প্েখর প্বাঝা িমিন, োই আমার পরামলয রে িমপরে
চার-পাাঁচবার এমি প্েরখা।
#include <stdio.h>
int main()
{
int ara1[] = {3, 1, 5, 2, 4};
int ara2[5];
int i, minimum, index_2;
for (index_2 = 0; index_2 < 5; index_2++) {
minimum = 10000;
for (i = 0; i < 5; i++) {
if (ara1[i] < minimum) {
minimum = ara1[i];
}
}
ara2[index_2] = minimum;
}
for (i = 0; i < 5; i++) {
printf("%d\n", ara2[i]);
}
return 0;
}
প্রাগ্রাম: ১৩.২
িী ুন্দর প্রাগ্রাম! আউিপুি িী? আউিপুিও খুব ুন্দর, এরি এরি পাাঁচমি 1।
1
1
1
1
1
এিমি ঝারমা রয়রছ। প্ভেররর ুরপ (প্যখারন বরচরয় প্ছাি িংখযা প্বর িরা য়) মিন্তু ব
ময়ই minimum-এর মান 1 আরব, িারি 1 রে ওই পাাঁচমির মরধ্য বরচরয় প্ছাি িংখযা।
এজনয মিেীয় অযারররে পাাঁচমি িংখযাই 1 রয় যারে। োই আমরা যখন minimum প্বর িরব,
েখন অযাররর প্যই ঘরর বরচরয় প্ছাি িংখযা পাব প্ই ঘররর মান এিমি অরনি বড় িংখযা মেরয়
প্েব। এজনয এিমি প্ভমররয়ব রামখ minimum_index। আর ুপমি এখন এমন রব:
minimum = 10000;
for (i = 0; i < 5; i++) {
if (ara1[i] < minimum) {
minimum = ara1[i];
minimum_index = i;
}
}
এখন minimum-এর মান আমরা প্পরয় প্েমছ এবিং প্ই রে এমিও জামন প্য এমি আর আরছ
ara1[minimum_index] ঘরর।
ara1[minimum_index] = 10000;
#include <stdio.h>
int main()
{
int ara1[] = {3, 1, 5, 2, 4};
int ara2[5];
int i, minimum, index_2, minimum_index;
for (index_2 = 0; index_2 < 5; index_2++) {
minimum = 10000;
for (i = 0; i < 5; i++) {
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
if (ara1[i] < minimum) {
minimum = ara1[i];
minimum_index = i;
}
}
ara1[minimum_index] = 10000;
ara2[index_2] = minimum;
}
for (i = 0; i < 5; i++) {
printf("%d\n", ara2[i]);
}
return 0;
}
প্রাগ্রাম: ১৩.৩
এখন প্রাগ্রামমি আউিপুি মিিিাি প্েখারব। আো, ব িাজই প্ো আমম িরর মোম। প্োমারের
িাজমি িী? প্োমারের িাজ রব প্রাগ্রামমি এমনভারব প্খা যারে মিেীয় অযাররর ররয়াজন না য়।
শুরুরে প্য অযাররমি আরছ োর প্ভেররই মিযিং িররে রব। এজনয বরচরয় প্ছাি িংখযামি অযাররর
রথম ঘরর মনরয় আরা আর প্য ঘর প্থরি বরচরয় প্ছাি িংখযা প্পরয়ছ প্খারন রথম ঘররর
িংখযামি রারখা। এখন প্োমার অযাররর রথম ঘরর আরছ বরচরয় প্ছাি িংখযা। এবারর বামি চারমি
ঘররর মরধ্য বরচরয় প্ছাি িংখযামি অযাররর মিেীয় ঘরর রারখা এবিং প্য ঘর প্থরি ওই িংখযামি
প্পরয়ছ প্খারন মিেীয় ঘররর িংখযামি রারখা। আর মিছু বা যারব না।
প্রাবি মনরয় এখন আমরা এিমি প্রাগ্রাম মখব। প্িারনা এিমি N x N মগ্ররড এিমি প্রাবি আরছ।
শুরুরে োর এিমি অবস্থান আরছ। আমরা প্মিরি মিছু িমান্ড প্েব, এি ঘর ডারন, বাাঁরয়, ওপরর ও
মনরচ যাওয়ার িমান্ড।
মগ্রডমি প্েরখা। ওপররর এরিবারর বাাঁ মেরির ঘর রে (0, 0)। ওপররর এরিবারর ডানমেরির ঘর
রে (0, 8)। মনরচর এরিবারর বাাঁ মেরির ঘর রে (8, 0)। মনরচর এরিবারর ডান মেরির ঘর
রে (8, 8)। ধ্রা যাি, এই মুূরেয প্রাবিমি আরছ (2, 2) ঘরর। এি ঘর ওপরর প্যরে বর প্
যারব (1, 2) ঘরর। মনরচ প্যরে বর যারব (3, 2) ঘরর। ডারন আর বাাঁরয় প্যরে বর যথাক্ররম
(2, 3) ও (2, 1) ঘরর যারব। িমান্ডগুরা রে U (up), D (down), L (left), R (right),
S (stop)। এখন প্োমারি যমে শুরুর অবস্থান আর িমান্ডগুরা বর মেই, োর প্রাবরির প্ল
অবস্থান (stop িরার পর অবস্থান) প্বর িররে রব।
প্োমরা মনশ্চয়ই বুঝরে পারছ প্য এিমি 2-D অযারর েরিার রব এই প্রাগ্রারম। আর মিন্তু
এখারন অযাররর প্িারনাই েরিার প্নই। এমি াধ্ারি প্যাে-মবরয়ারের প্রাগ্রাম। মরন িমর, শুরুর
অবস্থান রে (x, y)। এখন U িমান্ড মের এিঘর ওপরর যারব, েখন x-এর মান এি িরম
যারব, y-এর মারনর প্িারনা পমরবেযন রব না। D িমান্ড মের এি ঘর মনরচ যারব, েখন x-এর
মান এি প্বরড় যারব, y-এর মারনর প্িারনা পমরবেযন রব না। R িমান্ড মের y-এর মান এি
বাড়রব, x-এর মান অপমরবমেযে থািরব। L িমান্ড মের y-এর মান এি িমরব, x-এর মান
অপমরবমেযে থািরব। োর আমারের পুররা প্রাগ্রামমি োাঁড়ারব এই রিম:
#include <stdio.h>
int main()
{
int x, y;
char c;
printf("Please enter the initial position: ");
scanf("%d %d", &x, &y);
while (1) {
scanf("%c", &c);
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
if (c == 'S') {
break;
}
else if (c == 'U') {
x--;
}
else if (c == 'D') {
x++;
}
else if (c == 'R') {
y++;
}
else if (c == 'L') {
y--;
}
}
printf("Final position of the robot is: %d, %d\n", x, y);
return 0;
}
প্রাগ্রাম: ১৩.৪
এই মযার মাধ্ান িররে প্য প্রাগ্রামমি মখরে রব, োরে মিন্তু এিমি 2-D অযারর বযবার
িররে রব। এই অযাররর াারযয আমরা বুঝব প্য প্িান ঘরর যাওয়া যারব আর প্িান ঘরর যাওয়া
যারব না। প্মি িীভারব? খুবই জ। প্যব ঘরর যাওয়া যারব অযাররর ওই ঘরগুরারে 1 আর
প্যব ঘরর যাওয়া যারব না প্গুরারে 0 রাখব।
এখন প্িান প্িান ঘরগুরারে যাওয়া যারব না ো বযবারিারীর িাছ প্থরি ইনপুি মনই:
এখন প্িারনা ঘরর যাওয়া যারব মি না, প্মি প্বাঝার জনয এিমি লেয পরীো িররই রব।
if (grid[x][y] == 1) {
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
যমে েয য়, েরব (x, y) ঘরর যাওয়া যারব।
}
প্রাগ্রামভিং ষে চায মফলয়। ভুেস্থ কষয যীক্ষায় অষনক বাষরা প্যোল্ট কযা মায়, এভনমক কষরে-
মফশ্বমফদযারষয় প্রাগ্রামভিং যীক্ষাষতও ভুেস্থ কষয অষনষকই প্ফ বাষরা নম্বয ায়। তষফ এই বাষরা
নম্বয াওয়ায ষে বাষরা প্রাগ্রাভায ওয়ায আষর প্কান িকচ প্নই। প্রাগ্রামভিং ষে একধযষনয
দক্ষতা (skill) এফিং প্কফর মনয়মভত অনুীরষনয ভাধযষভই এই দক্ষতা অেচন কযা ম্ভফ। এয েনয
বাষরা িাত্র ওয়ায দযকায প্নই, মেমনয়া ওয়াযও প্কাষনা দযকায প্নই। দযকায ষে
প্রাগ্রামভিংষক বাষরাফাা। মেন তুমভ প্রাগ্রামভিং কযষত ফষর োওয়াদাওয়ায কথা বুষর মাষফ, যাষত
প্কাষনা প্রাগ্রামভিং ভযা মনষয় কাে শুরু কযষর আয মকিুক্ষণ ষয প্দেষফ ফাইষয প্বাষযয আষরা
পুটষি, মকিংফা বুষর ফাথরুষভয যাষের ষয ক্লাষ ষর মাষফ, তেন ফুঝষফ প্ম তুমভ প্রাগ্রাভায ষয়
মাে।
এেন প্তাভায উম ত ষফ ফইমট আষযকফায ো এফিং ষে ষে প্রাগ্রাভগুষরা আফায কযা। তাযয
প্তাভযা আযও প্ফম ম মেষত াইষর ম-এয প্কান ফই েষত াষযা। প্তাভযা মমদ প্রাগ্রামভিং
কষেষেয ফযাাষয উৎাী ও তষফ ম প্লা প্লা (C++) প্ো শুরু কষয মদষত াষযা প্কান ফই
প্থষক। আফায োবা (Java), ম াচ (C#), মএই ম (PHP) মকিংফা াইথন (Python)
মেষত াষযা। প্কাষনামট মেষতই প্তভন ঝাষভরা প্াাষত ষফ না কাযণ তুমভ প্রাগ্রামভিংষয়য
প্ভৌমরক মেমনগুষরা এতক্ষষণ আয়ষে এষন প্পষরি। ফই ও ওষয়ফাইষটয তামরকা আমভ মযমষ্ট
অিংষ মরষেমি।
প্তাভাষদয প্রাগ্রামভিং েীফন আনন্দভয় প্াক, প্তাভাষদয মনষেয েীফন আনন্দভয় প্াক, প্তাভাষদয
কাযষণ প্তাভাষদয আষাষয ভানুলষদয েীফন আনন্দভয় প্াক। ফাইষক শুষবো।
এিাো ইোযষনষট অনুমিত য় আযও নানা ধযষনয প্রাগ্রামভিং রমতষমামেতা প্মোষন স্কুর-কষরে-
মফশ্বমফদযারষয়য িাত্র, মক্ষক ও প্ােীফীযা অিংশ্রগ্রণ কযষত াষযন। এষদয ভষধয গুরুেূণচ
মতনমট ষে Google Code Jam (http://code.google.com/codejam), Topcoder
(http://www.topcoder.com/tc) এফিং Codechef
(http://www.codechef.com/)। এই রমতষমামেতাগুষরা অতযন্ত কমিন, তাই এষত
অিংগ্রষণয েনয মচাপ্ত দক্ষতা থাকষত ষফ। তষফ এফ রমতষমামেতায় মকন্তু ফািংরাষদষয
প্রাগ্রাভাযযা প্ফ বাষরা অফস্থাষন যষয়ষি।
প্রাগ্রামভিং রমতষমামেতায় বাষরা কযষত ষর প্রাগ্রামভিংষয় দক্ষতায াাাম অযারেমযদভ ও েমণষত
মফষলবাষফ দক্ষ ষত য়। েযামভমত, কমম্বষনটমযক্স, িংেযাতত্ত্ব ইতযামদয মষথষ্ট জ্ঞাষনয াাাম
ভযা ভাধাষনয দক্ষতা অেচন কযষত য়। এেনয প্রোোয াাাম মনয়মভত প্রাগ্রামভিং
ভযা ভাধাষনয প্কাষনা মফকল্প প্নই। আয মফমবন্ন ওষয়ফাইষট মনয়মভত প্রাগ্রামভিং রমতষমামেতায
আষয়ােন কযা য় প্মোষন তুমভ অিংগ্রণ কযষত াষযা ইোযষনষটয ভাধযষভ।
প্া মষষফ প্রাগ্রামভিংষয়য আরাদা একমট গুরুে আষি আভাষদয েনয। প্মষতু মফমবন্ন ধযষনয
রমতষমামেতায ভাধযষভ মনষেষক প্ভষর ধযায অষনক ুষমাে এোষন যষয়ষি ,তাই ফািংরাষদ প্থষক
প্রোো কষয যামযই মফষশ্বয নাভকযা পটওয়যায মনভচাতা রমতিান প্মভন– গুের,
ভাইষরাপট, প্পফুক ইতযামদষত কাে কযায ুষমাে ততময ষয়ষি। রমতফিযই ফািংরাষদ প্থষক
কষয়কেন প্রাগ্রাভায মনষেয প্ভধা ও জ্ঞানষক কাষে রামেষয় এই ুষমাষেয দ্ব্যফায কযষিন।
অষনক প্ক্ষষত্রই ওইফ রমতিাষন কাে কযায েনয আষফদন কযায রষয়ােন য় না, তাযা মনষে
প্থষকই মফমবন্ন প্দষয প্যা প্রাগ্রাভাযষদয েুেঁষে প্ফয কষয।
মফশ্বমফেযাত ফ রমতিাষন কাে কযা িাোও প্রাগ্রাভাযষদয েনয আষযকমট ুমফধা ষে
Telecommuting। অথচাৎ প্কাষনা অমপষ না মেষয় কাে কযায ুষমাে। উন্নত মফষশ্বয অষনক
প্কািামন তাষদয মনে প্দষ প্রাগ্রাভাযষদয দুষ্প্রাযতায কাযষণ উন্নয়নীর অথচনীমতয প্দষয
প্রাগ্রাভাযষদয কাষেয ুষমাে প্দয়, আয প্ প্ক্ষষত্র মনে প্দষ ফষই কাে কযা মায়। কাযণ ওই
প্কািামনগুষরা োষন প্ম আভাষদয ভত প্দষয অথচনীমত উন্নয়নীর ষরও প্রাগ্রাভাযযা প্ভাষটও
অদক্ষ নন, ফযিং মফশ্বভাষনয প্রাগ্রাভায। ফািংরাষদষয প্ফমকিু প্রাগ্রাভায এেন ফািংরাষদষ ফষই
ইোযষনষটয ভাধযষভ কাে কযষিন আষভমযকা, কানাডা ও ইউষযাষয মফমবন্ন প্দষয পটওয়যায
প্কািামনষত।
আষযকমট ভোয ফযাায ষে, প্কউ মমদ ধযাফােঁধা াকময কযষত না ায় তষফ তায েনয মিরযান্স
প্রাগ্রামভিংষয়য ুষমাে যষয়ষি। ইোযষনষট অষনক ওষয়ফাইট আষি প্মোষন প্িাট-ভাঝাময-ফে
মফমবন্ন ধযষনয পটওয়যাষযয রষেক্ট থাষক প্মগুষরাষত মফড (bid) কষয কাে কযা মায়।
ফািংরাষদষ এেন ত ত প্রাগ্রাভায মিরযান্স প্রাগ্রামভিংষয়য ষে েমেত। এয েনয প্কফর
কমিউটায ও ইোযষনট িংষমাে থাকষরই রষফ। মিরযান্স কাে কযায েনয মফুর তধষমচয
রষয়ােন। আয ইিংষযমে বালায় প্মাোষমাষেয দক্ষতা থাকষত য়। তষফ ফযমিেতবাষফ আমভ ভষন
কময, িাত্রাফস্থায় এ ধযষনয কাে না কযাই বাষরা। কাযণ িাত্রেীফষন প্রোো কযায ও প্ভৌমরক
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
মফলয়গুষরা আয়ত্ত্ব কযায প্ম ভয় ও ুষমাে প্ভষর, েীফষনয যফতচী মচাষয় কেষনাই প্ই ুষমাে
াওয়া মায় না। তাই প্তাভাষদয রমত আভায যাভচ থাকষফ প্ম িাত্রেীফষন অথচ উােচষনয মদষক
ভষনাষমাে না মদষয় র ুয প্রোো এফিং ষে ষে নানা ধযষনয াভামেক ও ািংস্কৃমতক কভচকাষে
েমেত থাকায প্ ষ্টা কযষফ, প্মগুষরা প্তাভায বাষরা রাষে।
ফ প্ল কথা ষে, প্রাগ্রামভিং এভন একমট কাে প্মোষন ফ ভয়ই প্তাভায মনষেষক উন্নত কযায
ুষমাে আষি। তাই প্রোো কযায ভানমকতা থাকষত ষফ, েষত ষফ নানা ফইত্র, ােঁটষত ষফ
ইোযষনট। মনষে প্কাষনা ভযায় েষর রথষভই ইোযষনট প্ েঁষট প্দেষফ প্ম ভযামটয ভাধান
ইমতভষধয প্কউ কষয প্যষেষি মক না। মফমবন্ন প্পাযাভ ও ব্লষে াধাযণত প্রাগ্রাভাযযা মকিু কভন
ভযায ভাধান মদষয় যাষে। তষফ প্রাগ্রামভিং প্োয ভয় মকন্তু ভাধাষনয েনয ইোযষনট ােঁটষফ
না, মনষে প্ ষ্টা কযষফ।
ম প্োয ষয তুমভ ম প্লা প্লা ফা োবা মেষত াষযা। ম প্লা প্লা প্োয েনয বাষরা ফই
ষে Teach Yourself C++ (প্রেক: Herbert Schildt) আয োবায েনয Java How
to Program (প্রেক: Paul Deitel and Harvey Deitel)। তাযয অনয রযােুষয়ে
মেষত প্েষর আয ফই প্কনায দযকায প্নই। ইোযষনষট র ুয মটউষটামযয়ার আষি। প্গুষরা ষে
মষে প্পরষফ।
তুমভ মমদ কমিউটায মফজ্ঞাষন েষত াও, মকিংফা প্রাগ্রামভিং কষেষে বাষরা কযষত াও, তাষর
প্তাভায Discrete Mathematics বাষরা কষয মেষত ষফ। এয েনয Kenneth H.
Rosen-এয Discrete Mathematics ফইমট েুফ বাষরা। আোষোো ষে প্পরষফ। ষে ষে
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
অনুীরনীয ভযাগুষরা ভাধাষনয প্ ষ্টা কযষফ। Discrete Mathematics প্োয ষয
মেষত ষফ অযারেমযদভ। অযারেমযদভ প্োয শুরু আষি মকন্তু প্ল প্নই। আয শুরু কযায েনয
প্তাভযা েষত াষযা Introduction to Algorithms (প্রেক: Thomas H. Cormen,
Charles E. Leiserson, Ronald L. Rivest and Clifford Stein) এমট
অযারেমযদষভয প্ভৌমরক মফলয়গুষরা প্োয েনয আভায প্দো ফষ ষয় বাষরা ফই।
প্রাগ্রামভিং িাোও মফজ্ঞান ও েমণষতয নানা মফলষয়য েনয এই প্পাযাষভ অিংগ্রণ কযষত
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
াষযা:http://matholympiad.org.bd/forum/।