You are on page 1of 143

কম্পিউটার প্রাগ্রাম্প িং

তাম্প শাহম্পরয়ার সুম্পিন

কম্পিউটাররর জন্ম ঵রেম্পি঱ কম্পিউট বা ম্প঵঴াব করার জনয। এখন কম্পিউটারর মানু঳ গান শলারন ,
ম্প঴রনমা শেরখ, ম্পিম্পি শ঱রখ, শফ঴বুক করর, ইন্টাররনট ঘাাঁটাঘাাঁম্পট করর এমনম্পক িুম্পরিামাম্পর পযযন্ত করর
ম্পকন্তু ম্প঵঴াব করর না! অথি কম্পিউটারর কম্পিউট করার মরো আনন্দ আর ম্পকিুরে নে , শ঴ম্পট করার
জনয শযম্পট জানা েরকার, শ঴ম্পট ঵রে একটুখাম্পন শরাগ্রাম্পমিং।

ইউম্পনভাম্প঴যম্পটরে বা বড় বড় ম্পলক্ষারম্পেষ্ঠারন শরাগ্রাম্পমিং শলখারনা ঵ে ম্পকন্তু স্কু঱ -কর঱রজর


শির঱রমরেরাও শয খুব ঴঵রজ শরাগ্রাম্পমিং কররে পারর , শ঴ম্পট অরনরকই জারন না। আম্পম অরনক ম্পেন
শথরকই ভাবম্পি঱াম, স্কুর঱র শির঱রমরেরের জনয এরকম একম্পট বই ম্প঱ম্পখ ; ম্পকন্তু ম্পকিুরেই ঴মে করর
উিরে পারম্পি঱াম না।

ম্পিক এরকম ঴মে আমার িাত্র ঴ুম্পবরনর এই পাণ্ডুম্প঱ম্পপম্পট আমার শিারখ পরড়রি। আম্পম অবাক ঵রে
঱ক্ষ কর঱াম , আম্পম শয ম্পজম্পন঴ম্পট কররে শিরেম্পি঱াম ঴ুম্পবন ম্পিক শ঴ম্পটই করর শররখরি ! স্কু঱-
কর঱রজর শির঱রমরেরের জনয একম্পট শরাগ্রাম্পমিংরের বই ম্প঱রখরি , খুব ঴঵জ ভা঳াে, খুব ঴ুন্দর করর
গুম্পিরে।

আম্পম োর এই িমৎকার বইম্পটর ঴াফ঱য কামনা কম্পর। শির঱রমরেরা গান শলানা , ম্প঴রনমা শেখা, ম্পিম্পি
শ঱খা, শফ঴বুক করা, ইন্টাররনট ঘাাঁটাঘাাঁম্পট করার পালাপাম্পল আবার কম্পিউটাররর মূ঱ জােগাে ম্পফরর
আ঴ুক – শ঴ই রেযালাে থাক঱াম।

মু঵ম্মে জাফর ইকবা঱


জানুোম্পর, ২০১১।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রোগ্রোমমিং বইঃ অধ্যোয় লূন্য
শুরুর আগে।
কমিউটোর প্ ো আ঴গ঱ েণন্ো করোর যন্ত্র, োই ন্ো? যমিও আমরো এমট মিগয় েোন্ শুমন্, মভমিও প্িমি,
প্েম঴ প্িম঱, আরও ন্োন্ো কোজ কমর। আ঴গ঱ প্ল঳ পযযন্ত কমিউটোর প্বোগঝ লূন্য (0) আর এগকর
(1) ম঵঴োব। োই বযব঵োরকোরী ( user) যো-ই করুক ন্ো প্কন্, কমিউটোর মকন্তু ঴ব কোজ েণন্োর
মোধ্যগমই কগর। কমিউটোগরর বযব঵োর এ বযোপক ঵ওয়োর প্পছগন্ অন্য ম কোরণ ঵গে ন্োন্ো রকম
঴ফটওয়যোর মিগয় ন্োন্ো ধ্রগন্র কোজ করো যোয় কমিউটোগর। এ঴ব ঴ফটওয়যোর ত মর করগ ঵য়
প্রোগ্রোম ম঱গি অর্যোৎ কী ঵গ঱ কী করগব এমট প্রোগ্রোগমর ঴ো঵োগযয কমিউটোরগক প্বোঝোগ ঵য়।

এক঴ময় মকন্তু প্কব঱ 0 আর 1 বযব঵োর কগরই কমিউটোগরর প্রোগ্রোম ম঱িগ ঵গ ো। কোরণ


কমিউটোর প্ ো 0, 1 ছোড়ো আর মকছু প্বোগঝ ন্ো, আর কমিউটোরগক মিগয় প্কোগন্ো কোজ করোগ
চোইগ঱ প্ ো োর ভো঳োগ ই কোগজর মন্গিযল মিগ ঵গব। 0, 1 বযব঵োর কগর প্য প্রোগ্রোমমিং করো ঵গ ো,
োর জন্য প্য ভো঳ো বযবহৃ ঵গ ো, োগক ব঱ো ঵য় প্মমলন্ ঱যোঙ্গুগয়জ। োরপর এ঱ অযোগ঴ম্বম঱
঱যোঙ্গুগয়জ। এগ প্রোগ্রোমোররো মকছু ইন্স্ট্রোকলন্ প্যমন্ ADD (প্যোে), MUL (গুণ) ই যোমি
বযব঵োগরর ঴ুগযোে প্প঱। আর এই ভো঳োগক 0, 1-এর ভো঳োয় মন্গয় কোজ করোবোর িোময়ত্ব পড়঱
অযোগ঴ম্ব঱োগরর ওপর, প্রোগ্রোমোরগির প্঴ মব঳গয় ভোবগ ঵গ ো ন্ো। মকন্তু মোন্ুগ঳র চোম঵িোর প্ ো প্ল঳
প্ন্ই। ন্ ুন্ ন্ ুন্ চোম঵িোর ফগ঱ ন্ ুন্ ন্ ুন্ মজমন্গ঴র উদ্ভব ঵য়। এক঴ময় প্িিো প্ে঱ প্য অযোগ঴ম্বম঱
঱যোঙ্গুগয়জ মিগয়ও কোজ করো ঝোগম঱ো ঵গয় যোগে। োই বড় বড় প্রোগ্রোম ম঱িোর জন্য আরও ঴঵জ ও
উন্ন ন্োন্ো রকম প্রোগ্রোমমিং ভো঳ো ত মর ঵গ঱ো। প্যমন্ - ফরট্রোন্ ( Fortran), প্বম঴ক ( Basic),
পযো঴গক঱ (Pascal), ম঴ (C)। গব এিোগন্ই প্ল঳ ন্য়, এরপর এ঱ আরও অগন্ক ঱যোঙ্গুগয়জ, যোর
মগধ্য অন্য ম ঵গে, ম঴ প্লো঴ প্লো঴ (C++), মভজুযয়ো঱ প্বম঴ক (Visual Basic), জোভো (Java),
ম঴ লোপয (C#), পো঱য (Perl), মপএইচমপ (PHP), পোইর্ন্ (Python), রুমব (Ruby)। এিগন্ো
কমিউটোর মবজ্ঞোন্ীরো মন্ যন্ ুন্ প্রোগ্রোমমিং ভো঳ো ত মর কগর যোগেন্। প্রোগ্রোমোররো এ঴ব ভো঳ো
বযব঵োর কগর প্রোগ্রোম প্঱গিন্ আর রম মট ভো঳োর রগয়গছ আ঱োিো কিোই঱োর, যোর কোজ ঵গে ওই
প্রোগ্রোমগক কমিউটোগরর প্বোধ্েময ভো঳োয় রূপোন্তর করো, োই এমট মন্গয় প্রোগ্রোমোরগির ভোবগ ঵য়
ন্ো।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রোগ্রোম ম঱িোর ঴ময় প্রোগ্রোমোরগক ম ন্মট রধ্োন্ কোজ করগ ঵য়। রর্গম োর বুঝগ ঵য় প্য প্঴
আ঴গ঱ কী করগ যোগে, মোগন্ োর প্রোগ্রোমমট আ঴গ঱ কী কোজ করগব। োরপর মচন্তোভোবন্ো কগর
এবিং যুমি ( logic) বযব঵োর কগর অযো঱েমরিম িোাঁড় করোগ ঵য়। মোগন্, ঱মজকগুগ঱ো ধ্োগপ ধ্োগপ
঴োজোগ ঵য়। এর পগরর কোজমট ঵গে অযো঱েমরিমটোগক প্কোগন্ো একমট প্রোগ্রোমমিং ভো঳োয় রূপোন্তর
করো, যোগক আমরো বম঱ প্কোমিিং করো। এগকক ধ্রগন্র কোগজর জন্য এগকক ঱যোঙ্গুগয়জ প্বমল
উপগযোেী।

এই বইগ আমরো প্রোগ্রোমমিংগয়র প্মৌম঱ক মকছু মজমন্঴ প্লিোর প্চষ্টো করব এবিং প্রোগ্রোমগুগ঱ো আমরো
ম঱িব ম঴ ঱যোঙ্গুগয়জ বযব঵োর কগর। আমম ধ্গর মন্মে, প্ োমরো কমিউটোর বযব঵োর কগর অভযস্ত এবিং
প্রোগ্রোমমিং মজমন্঴টোর ঴গঙ্গ ঴িূণয অপমরমচ । আর ম঴ ঱যোঙ্গুগয়জ বযব঵োর করোর প্পছগন্ কোরণ ঵গে,
এমট প্বল পুগরোগন্ো ঵গ঱ও অ যন্ত লমিলো঱ী ও জন্মরয় ঱যোঙ্গুগয়জ। প্রোগ্রোমমিংগয়র প্মৌম঱ক
মজমন্঴গুগ঱ো প্বোঝোর জন্য ম঴ ভো঳ো অ যন্ত ঴঵োয়ক। আর জন্মরয় ঴ব প্রোগ্রোমমিং রম গযোমে োয় প্য
অল্প কগয়কমট ঱যোঙ্গুগয়জ বযব঵োর করো যোয়, োর মগধ্য ম঴ অন্য ম। আমরো অবলয ম঴ ঱যোঙ্গুগয়গজর
পুগরোটো এিোগন্ মলিব ন্ো, প্কব঱ প্মৌম঱ক মব঳য়গুগ঱ো মন্গয় কোজ করগ যো িরকোর প্঴মট প্িিব।
এই বইমট পড়োর পগর প্ োমরো প্কব঱ ম঴-এর জন্য প্কোন্ বই পড়গ পোগরো অর্বো অন্য প্কোগন্ো ভো঳ো
(প্যমন্– ম঴ প্লো঴ প্লো঴, জোভো মকিংবো পোইর্ন্) প্লিো শুরু কগর মিগ পোগরো। বইগয়র পমরমলষ্ট অিংগল
আমম মকছু বইগয়র ন্োম মিগয়মছ, যো প্ োমোগির কোগজ ঱োেগব।

বইমট পড়গ প্ োমোগির ম ন্মট মজমন্঴ ঱োেগব, কমিউটোর (ইন্টোরগন্ট ঴িংগযোে র্োকগ঱ ভোগ঱ো ঵য়),
ম঴ ঱যোঙ্গুগয়গজর কিোই঱োর এবিং যগর্ষ্ট ঴ময়। োড়োহুগড়ো ন্ো কগর দুই প্র্গক ম ন্ মো঴ ঴ময় মন্গয়
বইমট পড়গ঱ ভোগ঱ো ঵য়। প্রোগ্রোমমিং প্লিোর জন্য প্কব঱ পড়োই যগর্ষ্ট ন্য়, পোলোপোমল প্কোমিিং করগ
঵গব। বইগয়র রম মট উিো঵রণ মন্গজ মন্গজ প্কোি কগর কমিউটোগর চোম঱গয় প্িিগ ঵গব। যিন্ই
আমম প্কোগন্ো রশ্ন করব, প্঴মট মন্গয় মচন্তো করগ ঵গব। োর জন্য যমি দু-ম ন্ ঘণ্টো বো দু-ম ন্ মিন্
঴ময় ঱োগে ঱োগুক, প্কোগন্ো ক্ষম প্ন্ই, বরিং িীঘয ঴ময় প্কোগন্ো ঴ম঴যোর ঴মোধ্োন্ মন্গয় মচন্তো করোর
অভযো঴মট িুব জরুমর। প্কোগন্ো অধ্যোয় পুগরোপুমর প্বোঝোর আগে পগরর অধ্যোয় পড়ো শুরু করো যোগব ন্ো।
আবোর প্কোগন্ো অিংল যমি প্ োমোর কোগছ িুব ঴঵জ মগন্ ঵য়, প্঴ই অিংল মিকভোগব ন্ো পগড় এবিং
প্রোগ্রোমগুগ঱ো ন্ো কগর পগরর অিংগল চগ঱ প্যগয়ো ন্ো মকন্তু। ঴োধ্োরণ পড়োম঱িোর ঴গঙ্গ প্রোগ্রোমমিং প্লিোর
অগন্ক পোর্যকয। এিোগন্ পড়োর ঴গঙ্গ ঴গঙ্গ কোজ করোও জরুমর। আর এই বই পগড়ই মকন্তু ুমম
প্রোগ্রোমোর ঵গয় যোগব ন্ো, বইমট পগড় ুমম প্রোগ্রোমোর ঵ওয়ো শুরু করগব।

এবোর আ঴ো যোক, কিোই঱োর পোগব প্কোর্োয়? ম঴-এর জন্য প্বল মকছু কিোই঱োর আগছ। ুমম যমি
ম঱ন্োক্স মকিংবো মযোক বযব঵োরকোরী ঵ও, গব ঴বগচগয় ভোগ঱ো ঵গে gcc। অমধ্কোিংল ম঱ন্োগক্সই এমট
আগে প্র্গক ইন্স্ট঱ করো র্োগক। প্ োমোর কমিউটোগর ন্ো র্োকগ঱ এমট ইন্স্ট঱ কগর মন্গ ঵গব। আর
উইগডোজ বযব঵োর করগ঱ ুমম Codeblocks (http://www.codeblocks.org/) বযব঵োর
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
করগ পোগরো। এমট একমট মি ও ওগপন্ প্঴ো঴য IDE (Integrated Development
Environment) এবিং মযোক আর ম঱ন্োগক্সও চগ঱। এমমন্গ ঴োধ্োরণ প্কোগন্ো প্টক্সট এমিটর
(প্যমন্: প্ন্োটপযোি, মজএমিট, প্করোইট) বযব঵োর কগর প্কোি ম঱গি প্঴মট কিোই঱োর মিগয় কিোই঱
কগর রোন্ করো যোয়। গব অমধ্কোিংল আইমিই ( IDE) গুগ঱োগ ই মন্জস্ব প্টক্সট এমিটর ও
কিোই঱োর র্োগক। প্রোগ্রোম রোন্ করোর বযবস্থোও র্োগক। এ ছোড়োও ন্োন্ো ধ্রগন্র টু঱স্ র্োগক।

Codeblocksটো ঴রো঴মর ুমম http://www.codeblocks.org ঴োইট প্র্গক িোউন্গ঱োি ও


ইন্স্ট঱ করগ পোগরো। Downloads প্পইগজ Binaries-এ প্েগ঱ উইগডোগজর জন্য ুমম দুমট
অপলন্ প্িিগব: codeblocks-10.05-setup.exe ও codeblocks-10.05mingw-
setup.exe। ুমম মি ীয়মট িোউন্গ঱োি করগব ( 74.0 MB)। আর ইন্স্ট঱ করোর কোজমট অন্য
প্যগকোগন্ো ঴ফটওয়যোর বো প্েমগ঴র মগ োই। যোরো উবুন্টু বযব঵োর কগরো, োরো Ubuntu
Software Center (Applications > Ubuntu Software Center) প্র্গক এমট
িোউন্গ঱োি করগ পোগরো।

প্রোগ্রোমমিং চচযোর মব঳য়। ইন্টোরগন্গট প্বল মকছু ওগয়ব঴োইট আগছ, প্যিোগন্ রচুর ঴ম঴যো প্িওয়ো আগছ
প্যগুগ঱ো প্রোগ্রোগমর ঴ো঵োগযয ঴মোধ্োন্ করগ ঵য়। ঴ব জোয়েোগ ই ুমম ম঴ ঱যোঙ্গুগয়গজ প্রোগ্রোমমিং
করগ পোরগব। এর মগধ্য মকছু মকছু ওগয়ব঴োইট আবোর মন্য়মম প্রোগ্রোমমিং রম গযোমে োরও
আগয়োজন্ কগর। এ঴ব রম গযোমে োয় অিংলগ্র঵ণ মন্ঃ঴গেগ঵ প্ োমোর প্রোগ্রোমমিং-িক্ষ ো বৃমি করগব
আর প্঴ই ঴গঙ্গ মবগের ন্োন্ো প্িগলর প্রোগ্রোমোরগির ঴গঙ্গ প্মলোরও ঴ুগযোে কগর প্িগব। অবলয
প্রোগ্রোমমিং রম গযোমে োয় ভোগ঱ো করগ ঵গ঱ প্কব঱ প্রোগ্রোমমিং জোন্গ঱ই চ঱গব ন্ো, েোমণম ক িক্ষ োও
যগর্ষ্ট গুরুত্বপূণয। পমরমলষ্ট অিংগল প্রোগ্রোমমিং রম গযোমে ো মন্গয় আ঱োপ করব।

বইগয়র রম মট প্রোগ্রোগমর মন্গচ আমম একমট ন্ম্বর মিগয়মছ। প্রোগ্রোগমর ন্ম্বর যমি ২.৫ ঵য়, োর মোগন্
঵গে এমট মি ীয় অধ্যোগয়র পোাঁচ ন্ম্বর প্রোগ্রোম।

এমট মকন্তু প্কোগন্ো েগল্পর বই ন্য়। োই মবছোন্োয় শুগয়-বগ঴ পড়ো যোগব ন্ো। বইমট পড়োর ঴ময়
কমিউটোর চো঱ু রোিগ ঵গব এবিং রম মট উিো঵রণ ঴গঙ্গ ঴গঙ্গ প্রোগ্রোম ম঱গি প্িিগ ঵গব, প্কোগন্ো
঴ম঴যো ঴মোধ্োন্ করগ মিগ঱ িন্ই প্঴মট ঴মোধ্োগন্র প্চষ্টো করগ ঵গব। মগন্ রোিগব, য প্বমল
প্রোগ্রোমমিং প্বমল আন্ে।

আলো করমছ, ুমম তধ্যয মন্গয় বোমক অধ্যোয়গুগ঱ো পড়গব এবিং ঴বগুগ঱ো প্রোগ্রোম কমিউটোগর চোম঱গয়
প্িিগব। প্ োমোর জন্য শুভ কোমন্ো।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রাগ্রামমিং বইঃ অধ্যায় এক
রথম প্রাগ্রাম
প্রাগ্রামমিংয়য়র জগয়ে স্বাগেম!

আমরা এখন একমি প্রাগ্রাম ম঱য়খ প্ফ঱ব, প্যমি প্োমার কমিউিায়রর মিয়ন Hello World
প্েখায়ব বা মরন্ট করয়ব। এমি ঵য়ে প্রাগ্রামমিংয়য়র একমি ঐমে঵য। পৃমথবীর অমধ্কািংল প্রাগ্রামারই
জীবয়নর রথম প্রাগ্রাম ম঵য়঴য়ব এমি প্঱য়খ। আমম এই বইয়য়র প্রাগ্রামগুয়঱া চা঱ায়নার জনয
Codeblocks বযব঵ার করব। েয়ব প্োমরা অনয মকছু বযব঵ার করয়঱঑ প্কায়না ঴ম঴যা প্নই,
঴বগুয়঱ায়ে কায়জর ধ্ারা প্মািামুমি একই রকম। কমিউিায়র প্কাডব্লক঴ ইনস্ট঱ কয়র প্ফয়঱া।
মনয়জ মনয়জ ইনস্ট঱ করয়ে না পারয়঱ মনয়চর মভমড঑ প্েয়খা।

মভমড঑ ম঱িংক

ইনস্ট঱ ঵য়য় প্গ঱। এখন উইয়ডায়জর Start প্মনুয়ে Programs-এ মগয়য় Codeblocks চা঱ু
কয়রা। উবুন্টুয়ে এমি থাকয়ব Applications > Programming-এর প্ভের।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


এখন প্োমরা প্রাগ্রামগুয়঱া রাখার জনয ঵াডডমডয়ের প্ভের একমি প্ফাল্ডার তেমর কয়র না঑। ঑ই
প্ফাল্ডায়র ফাই঱গুয়঱া প্঴ভ (Save)করয়ব। ফাইয়঱র প্যয়কায়না একমি নাম ো঑। আর Save as
type ঵য়ব C/C++ files।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


মনয়চর ছমবয়ে প্েয়খা ফাইয়঱র নাম ঵য়ে hello.c। ম঴ প্রাগ্রায়মর ঴ব ফাইয়঱র এক্সয়িনলন ঵য়ব
.c।

এখায়ন আমরা আমায়ের প্কাড বা প্রাগ্রাম ম঱খব। মনয়চর প্কাডমি িাইপ কয়র প্ফয়঱া এবিং ফাই঱মি
প্঴ভ কয়রা।

#include <stdio.h>
int main ()
{
printf("Hello World");
return 0;
}
প্রাগ্রাম: ১.১

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্োমরা ঵য়য়ো মচন্তা করছ, আমম এই ম঵মজমবমজ কী ম঱খ঱াম? আয়ে ধ্ীয়র ঴ব বযাখযা করব, মচন্তা
প্নই! আপােে আমার কথাময়ো কাজ কয়র যা঑। এবার Build প্মনুয়ে মগয়য় Compile
Current File-এ মিক কয়রা।

েুমম যমে প্রাগ্রামমি মিকভায়ব িাইপ কয়র থায়কা েয়ব কিাই঱ার প্োমায়ক ব঱য়ব প্য 0 errors, 0
warnings, মায়ন- প্রাগ্রায়ম syntax মিক আয়ছ।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


এখন আবার Build প্মনুয়ে মগয়য় Run-এ মিক কয়রা। ো঵য়঱ প্োমার প্রাগ্রাম চা঱ু ঵য়য় যায়ব।

এবিং েুমম মনয়চর ছমবর ময়ো মিন প্েখয়ে পায়ব।

এখায়ন প্েয়খা, প্োমার প্রাগ্রামমি মিয়ন Hello World মরন্ট কয়রয়ছ। পয়রর ঱াইয়ন ব঱া
আয়ছ Process returned 0 (0x0) (এমির অথড মনয়য় আমায়ের এখন মাথা না ঘামায়঱঑
চ঱য়ব) আর execution time : 0.031 s মায়ন প্রাগ্রামমি চ঱য়ে 0.031 প্঴য়কড ঴ময়
প্঱য়গয়ছ। োরপয়রর ঱াইন ঵য়ে, Press any key to continue. মক-প্বায়ডডAny key খুুঁয়জ
না প্পয়঱ অনয প্যয়কায়না মক চাপয়঱ই চ঱য়ব।
েুমম যমে প্রাগ্রামমি মিকিাকভায়ব রান করায়ে পায়রা এবিং Hello World প্঱খািা প্েয়খ থায়কা
ো঵য়঱ প্োমায়ক অমভনন্দন। েুমম প্বল গুরুত্বপূর্ড একমি কাজ কয়র প্ফয়঱ছ।

আর মিকিাকভায়ব রান করায়ে না পারয়঱ আবার শুরু প্থয়ক প্চষ্টা কয়রা। রয়য়াজয়ন অমভজ্ঞ কার঑
঴া঵াযয না঑। কারর্ এই প্রাগ্রাম না চা঱ায়ে পারয়঱ বইয়য়র পয়রর অিংল পয়ে প্েমন একমি ঱াভ
঵য়ব না। মনয়চর মভমড঑ মি প্েখয়ে পায়রা...

মভমড঑ ম঱িংক

এবায়র প্েখা যাক আমম কী ম঱য়খমছ প্কায়ড।


রথম ঱াইন মছ঱: #include <stdio.h>, এমি প্কন ম঱য়খমছ একিু পয়র ব঱মছ।
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
মিেীয় ঱াইন ফাুঁকা। প্েখয়ে ঴ুন্দর ঱ায়গ োই।
েৃেীয় ঱াইন: int main()। এমিয়ক বয়঱ প্মইন ফািংলন। ম঴ প্রাগ্রামগুয়঱া প্মইন ফািংলন প্থয়ক
কাজ করা শুরু কয়র,োই ঴ব প্রাগ্রায়ম একমি (এবিং প্কব঱ একমি) প্মইন ফািংলন থাকয়ে ঵য়।
প্মইন ফািংলয়নর শুরুয়ে মিেীয় বন্ধনী মেয়য় শুরু করয়ে ঵য় আর প্ল঳঑ করয়ে ঵য় একমি মিেীয়
বন্ধনী মেয়য়। প্ল঳ করার আয়গ আমম return 0; ম঱য়খমছ,প্঴মি প্কন এখন বযাখযা না করয়঱ই ভায়঱া
঵য়, ফািংলন মনয়য় যখন আ঱াপ করব েখন ব঱ব। োই আপােে প্োমরা প্যয়কায়না প্রাগ্রায়ম মনয়চর
অিংলিুকু ম঱য়খ প্ফ঱য়ব:

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;। আয রক্ষ িয়যো প্ম প্বমযয়য়ফর মডক্লোয়য঱য়নয প্঱য়ল প্঳মভয়িোরন ফযফ঴োয িযয়ত ঴য়।

এয঩য আমভ দুমট প্েটয়ভি মরয়খমছ:


a = 50;
b = 60;
এখোয়ন a-এয ভোন 50 আয b-এয ভোন 60 ফয়র মদরোভ (assign িযরোভ), মতক্ষণ নো এমট
আভযো ঩মযফততন িযমছ, িিোইরোয a-এয ভোন 50 আয b-এয ভোন 60 ধযয়ফ।

঩য়যয প্েটয়ভি ঴য়ে: 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 ফযফ঴োয িযরোভ, অনয ধযয়নয
প্বমযয়য়ফয়রয জনয অনয মিছু মরখয়ত ঴য়ফ, প্মমট আভযো ফযফ঴োয িযয়ত িযয়ত ম঱খফ। খুফ বোয়রো
঴য়তো মমদ আমভ এখন এিমট চোটত মরয়খ মদতোভ প্ম ম঳ রযোঙ্গুয়য়য়জ িী িী ডোটো টোই঩ আয়ছ, প্঳গুয়রো
িী মদয়য় প্রয়খ এফিং মরি িযোয জনয িী িযয়ত ঴য়ফ আয প্তোভযো প্঳ই চোটত ভুখস্থ িয়য প্পরয়ত।
মিন্তু শুধু শুধু ভুখস্থ িযোয প্িোয়নো দযিোয প্নই, ভুখস্থ িযোয রফণতো মচন্তো঱মি িভোয় আয
প্রোগ্রোভোযয়দয জনয মচন্তো িযোয ক্ষভতো খুফই গুরুত্ব঩ূণত।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


আভযো ও঩য়যয প্রোগ্রোভমট চোইয়র এবোয়ফও মরখয়ত ঩োযতোভ:
#include <stdio.h>
int main()
{
int a, b, sum;
a = 50;
b = 60;
sum = a + b;
printf("Sum is %d", sum);
return 0;
}
প্রোগ্রোভ: ২.২
আফোয প্বমযয়য়ফর মডয়ক্লয়োয িযোয ঳ভয় এিই ঳য়ঙ্গ অযো঳োইনও িযো মোয়:
#include <stdio.h>
int main()
{
int a = 50, b = 60, sum;
sum = a + b;
printf("Sum is %d", sum);
return 0;
}
প্রোগ্রোভ: ২.৩
এখন প্তোভোয়দয জনয এিমট রশ্ন। মনয়চয প্রোগ্রোভমটয আউট঩ুট িী ঴য়ফ?
#include <stdio.h>
int main()
{
int x, y;
x = 1;
y = x;
x = 2;
printf("%d", y);
return 0;
}
প্রোগ্রোভ: ২.৪
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
িী ভয়ন ঴য়? আউট঩ুট 1 নোমি 2? আউট঩ুট ঴য়ফ 1, িোযণ রথয়ভ িিোইরোয প্দখয়ফ, x-এয ভোন
1 অযো঳োইন িযো ঴য়য়য়ছ (x = 1;)। তোয঩য x-এয ভোনমট আফোয y-এ অযো঳োইন িযো ঴য়য়য়ছ (y
= x;)। এখন y-এয ভোন 1। তোয঩য আফোয x-এয ভোন 2 অযো঳োইন িযো ঴য়য়য়ছ। মিন্তু তোয়ত y-
এয ভোয়নয প্িোয়নো ঩মযফততন ঴য়ফ নো। প্রোগ্রোমভিংয়য় y = x; আ঳য়র প্িোয়নো ঳ভীিযণ নো প্ম এমট
঳ফ঳ভয় ঳তয ঴য়ফ। '=' মচহ্ন মদয়য় এিমট প্বমযয়য়ফয়র মনমদতষ্ট প্িোয়নো ভোন যোখো ঴য়।

এফোয়য মনয়চয প্রোগ্রোভমট প্দয়খো:


#include <stdio.h>
int main()
{
int a = 50, b = 60, sum;
sum = a + b;
printf("%d + %d = %d", a, b, sum);
return 0;
}
প্রোগ্রোভ: ২.৫
প্রোগ্রোভমট ভমনটয়য িী মরি িয়য? চোমরয়য় প্দয়খো। printf("%d + %d = %d", a, b, sum);
নো মরয়খ printf("%d + %d = %d", b, a, sum); মরয়খ প্রোগ্রোভমট আফোয চোরোও। এখন
মজমন঳মট মচন্তো িয়য ফুয়ঝ নোও।

প্রখো঩ড়ো িযোয ঳ভয় আভোয়দয ভয়ন নোনো মফলয়য় নোনো রশ্ন আয়঳, মোয উত্তয আভযো ফইয়ত খুুঁমজ,
ম঱ক্ষিয়ি মজজ্ঞো঳ো িময, ইিোযয়নয়ট খুুঁমজ ফো মচন্তো িয়য মুমি দোুঁড় িমযয়য় উত্তযমট প্ফয িময।
আভোয়দয দুবতোগয প্ম প্ফম঱যবোগ প্ছয়রয়ভয়য়ই প্঱ল িোজমট িয়য নো, িোযণ মনয়জ মনয়জ মচন্তো িযয়ত
এিটু ঳ভয় রোয়গ ও ঩মযশ্রভ ঴য়, প্঳ই ঳ভয় আয শ্রভ তোযো মদয়ত চোয় নো। আয আভোয়দয
অমববোফি, ম঱ক্ষি ও ম঱ক্ষোফযফস্থো মচন্তো িযোয জনয প্িোয়নো ঩ুযস্কোয প্দয় নো, ফযিং ভুখস্থ িযোয
জনযই ঩ুযস্কৃত িয়য।

মো-প্঴োি, প্রোগ্রোমভিংয়য়য ফযো঩োয়য মখনই ভয়ন প্িোয়নো রশ্ন আ঳য়ফ, ঳য়ঙ্গ ঳য়ঙ্গ এিমট প্রোগ্রোভ মরয়খ
প্পরয়ফ। প্দয়খো প্তোভোয িিোইরোয িী ফয়র। ধযো মোি, আভযো মমদ int টোইয়঩য প্বমযয়য়ফয়র
দ঱মভি মুি ঳িংখযো (ফোেফ ঳িংখযো ফো real number) ফযফ঴োয িযতোভ, তো঴য়র িী ঴য়তো?

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


#include <stdio.h>
int main()
{
int a = 50.45, b = 60, sum;
sum = a + b;
printf("%d + %d = %d", a, b, sum);
return 0;
}
প্রোগ্রোভ: ২.৬
এখোয়ন a-এয ভোন 50.45 ফযফ঴োয িযরোভ। এফোয়য প্রোগ্রোভ চোরোও, প্দয়খো িী ঴য়। আফোয ভয়ন
মমদ রশ্ন আয়঳ প্ম, main পোিং঱য়নয প্঱ল রোইয়ন return 0; নো মরখয়র িী ঴য়? তো঴য়র return
0; ছোড়ো প্রোগ্রোভ চোমরয়য় প্দয়খো িী ঴য়।

আউট঩ুট ঴য়ফ: 50 + 60 = 110।

ম঳ িিোইরোয 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 প্তোভযো

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


এবোয়ফ মরখয়ত ঩োয়যো: printf("Value of a is %d\n", a);। এখন printf পোিং঱য়ন ""-এয
প্বতয \n মরখয়র িী ঴য় প্঳মট আমভ ফরফ নো। প্রোগ্রোভমট চোরোয়রই ফুঝয়ত ঩োযয়ফ।

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;
}
প্রোগ্রোভ: ২.৯
প্রোগ্রোভমট িিোইর এফিং যোন িয়যো। আউট঩ুট ঴য়ফ মনয়চয দুই রোইন:

Sum is: 18.243000


Sum is: 18.24
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
%lf ফযফ঴োয িযোয় রথভ রোইয়ন দ঱মভয়িয ঩য়য ছয় ঘয ঩মতন্ত মরি ঴য়য়য়ছ। আফোয মিতীয় রোইয়ন
দ঱মভয়িয ঩য়য দুই ঘয ঩মতন্ত মরি ঴য়য়য়ছ, িোযণ %0.2lf মরয়খমছ (মতন ঘয ঩মতন্ত মরি িযয়ত
চোইয়র %0.3lf মরখতোভ, আফোয দ঱মভি অিং঱ মরি িযয়ত নো চোইয়র %0.0lf)। double
টোইয়঩য ডোটোয জনয 64 মফট ফযফহৃত ঴য় এফিং 1.7E-308 (1.7 x 10-308) প্থয়ি
1.7E+308 (1.7 x 10308) ঩মতন্ত ডোটো যোখো মোয়। মফেোমযত ম঴঳োফ ফুঝয়ত ঴য়র িমিউটোয
মফজ্ঞোন঳িংক্রোন্ত আযও মিছু জ্ঞোনফুমিয দযিোয, তোই আমভ আয এখন প্঳মদয়ি মোমে নো।

এখন আভযো আভোয়দয প্রোগ্রোয়ভ এভন ফযফস্থো যোখয়ত চোই, মোয়ত প্িোন দুমট ঳িংখযো প্মোগ িযয়ত ঴য়ফ
প্঳মট আভযো প্িোয়ডয প্বতয মরখফ নো, ফযফ঴োযিোযীয িোছ প্থয়ি ইন঩ুট আিোয়য প্জয়ন প্নফ।
ফযফ঴োযিোযীয (ভোয়ন প্ম প্রোগ্রোভমট ফযফ঴োয িযয়ছ) িোছ প্থয়ি ইন঩ুট প্নওয়োয জনয আভযো 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 টোইয়঩য প্বমযয়য়ফয়র যোখো
মোয়ফ নো। মনয়চয প্রোগ্রোভমট িমিউটোয়য মরয়খ যোন িযোও:

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


#include <stdio.h>
int main()
{
char ch;
printf("Enter the first letter of your name: ");
scanf("%c", &ch);
printf("The first letter of your name is: %c\n", ch);
return 0;
}
প্রোগ্রোভ: ২.১২
প্িোড প্দয়খ ফুঝয়তই ঩োযছ, char টোইয়঩য জনয printf এফিং scanf পোিং঱য়নয প্বতয়য %c
ফযফ঴োয িযয়ত ঴য়। আয়যিমট পোিং঱ন আয়ছ getchar, এমট মদয়য়ও char টোইয়঩য ডোটো মযড িযো
মোয়। মনয়চয প্রোগ্রোভমট প্দয়খো:
#include <stdio.h>
int main()
{
char ch;
printf("Enter the first letter of your name: ");
ch = getchar();
printf("The first letter of your name is: %c\n", ch);
return 0;
}
প্রোগ্রোভ: ২.১৩
এমট যোন িযোও। আয়গয প্রোগ্রোভমটয ভয়তো এিই িোজ িযয়ফ। getchar পোিং঱ন এিমট অক্ষয
঩য়ড় প্঳মট ch প্বমযয়য়ফয়রয প্বতয়য অযো঳োইন িয়য মদর। আয ঳যো঳ময প্িোয়নো মিছু char টোই঩
প্বমযয়য়ফয়র যোখয়ত চোইয়র প্মই অক্ষয ফো মচহ্ন যোখয়ফ তোয দুই ঩োয়঱ ম঳য়ঙ্গর প্িোয়ট঱ন মচহ্ন প্দয়ফ।
প্মভন: char c = 'A';

এখন মনয়চয প্রোগ্রোভমট প্দয়খো:


#include <stdio.h>
int main()
{
int num1, num2;
printf("Please enter a number: ");
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
scanf("%d", &num1);
printf("Please enter another number: ");
scanf("%d", &num2);
printf("%d + %d = %d\n", num1, num2, num1+num2);
printf("%d - %d = %d\n", num1, num2, num1-num2);
printf("%d * %d = %d\n", num1, num2, num1*num2);
printf("%d / %d = %d\n", num1, num2, num1/num2);
return 0;
}
প্রোগ্রোভ: ২.১৪
এমট িিোইর ও যোন িযোও। এমট প্দয়খ মনশ্চয়ই ফুঝয়ত ঩োযছ মফয়য়োগ, গুণ ও বোয়গয িোজ িীবোয়ফ
িযয়ত ঴য়। এফোয়য প্তোভোয়দয িোজ ঴য়ে চোযমট। এি, num1 ও num2-এয ভয়ধযিোয প্মোগ,
মফয়য়োগ, গুণ, বোয়গয িোজমট printf পোিং঱য়নয প্বতয়য নো িয়য আয়গ িযো এফিং ভোনমট অনয এিমট
প্বমযয়য়ফয়র প্যয়খ প্দওয়ো। এয জনয এিমট প্রোগ্রোভ মরয়খ প্পয়রো। মিতীয় িোজ ঴য়ে প্রোগ্রোভমট
ডফর টোইয়঩য প্বমযয়য়ফর ফযফ঴োয িয়য িয়যো। তৃতীয় িোজ ঴য়ে, num2-এয ভোন 0 মদয়য় প্দয়খো
িী ঴য়। চতুথত িোজমট ঴য়ে printf পোিং঱য়নয প্বতয়য ডফর প্িোয়ট঱য়নয প্বতয়য প্মই +, -, *, /
মচহ্ন আয়ছ প্঳গুয়রো ঳যো঳ময ফযফ঴োয নো িয়য এিমট char টোই঩ প্বমযয়য়ফয়র প্যয়খ তোয঩য
ফযফ঴োয িযো। চোযমট িোজ মিিভয়তো িযোয ঩য়য মনয়চয প্রোগ্রোভমট প্দয়খো:
#include <stdio.h>
int main()
{
int num1, num2, value;
char sign;
printf("Please enter a number: ");
scanf("%d", &num1);
printf("Please enter another number: ");
scanf("%d", &num2);
value = num1 + num2;
sign = '+';
printf("%d %c %d = %d\n", num1, sign, num2, value);
value = num1 - num2;
sign = '-';
printf("%d %c %d = %d\n", num1, sign, num2, value);
value = num1 * num2;
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
sign = '*';
printf("%d %c %d = %d\n", num1, sign, num2, value);
value = num1 / num2;
sign = '/';
printf("%d %c %d = %d\n", num1, sign, num2, value);
return 0;
}
প্রোগ্রোভ: ২.১৫
প্রোগ্রোভমট প্দখয়রই ফুঝয়ত ঩োযয়ফ িী িোজ িয়য। তয়ফ শুধু প্দয়খ ফুঝয়রই ঴য়ফ নো। প্িোড িয়য
িিোইর ও যোন িয়যো।

ম঳ রযোঙ্গুয়য়য়জ আযও প্ফ঱ মিছু ডোটো টোই঩ যয়য়য়ছ। ইন঩ুট ও আউট঩ুয়টয জনযও যয়য়য়ছ নোনো
঩িমত, মো প্তোভযো আয়ে আয়ে ম঱খয়ফ (঳ফ ঴য়য়তো এ ফইয়য় থোিয়ফ নো, ম঳-এয অনয ফই ঩ড়য়র
জোনয়ত ঩োযয়ফ)। আ঩োতত মো ম঱য়খছ, তো মদয়য়ই প্তোভযো অয়নি প্রোগ্রোভ মরয়খ প্পরয়ত ঩োযয়ফ।

এখন এিমট ভজোয এফিং দযিোময মজমন঳ ফয়র যোমখ। প্রোগ্রোয়ভয প্িোয়ডয প্বতয়য তুমভ মনয়জয
বোলোও ফযফ঴োয িযয়ত ঩োয়যো। এমটয়ি ফয়র িয়ভি (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 নোভ
মদয়রও প্রোগ্রোভ চয়র। অথত঩ণূ ত নোভ মদয়র ফুঝয়ত ঳ুমফধো ঴য়, প্বমযয়য়ফরটো িী উয়েয়঱য ফযফ঴োয িযো
঴য়য়য়ছ।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রাগ্রামমিং বইঃ অধ্যায় মিন
কমিলনা঱ ঱মিক

প্িামরা অনননকই ঵য়নিা িাননা প্য 'চাচা প্চৌধ্ুরীর বুমি কমিউটানরর প্চনয়ও রখর'! এমট শুনন
রথম রথম চাচা প্চৌধ্ুরীর ওপর ভমি-শ্রিা অননক প্বনে প্গন঱ও একটু মচন্তা করন঱ই প্িামরা
বুঝনি পারনব প্য আ঴ন঱ প্িামানের ঴বার বুমি কমিউটানরর প্চনয় রখর। আ঴ন঱ কমিউটানরর
প্িা প্কাননা বুমিই প্নই। প্রাগ্রামাররা প্যভানব প্রাগ্রাম ম঱নখ প্েয় কমিউটার প্঴ভানব কাি কনর।
এখন আমরা প্রাগ্রামমিংনয়র ঴঵ি অথচ খুব গুরুত্বপূর্ণ একমট মব঳য় মলখব। প্঴মট ঵নে কমিলনা঱
঱মিক। প্কান লনিণ কী করনি ঵নব প্঴মট প্রাগ্রাম ম঱নখ কমিউটারনক প্বাঝানি ঵নব। কথা না
বামেনয় আমরা প্রাগ্রাম প্঱খা শুরু কনর মেই। প্িামরা মকন্তু অবলযই রমিমট প্রাগ্রাম কমিউটানর
চাম঱নয় প্েখনব।
#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 লূননযর ঴মান মক না এবিং ঴মান ঵ন঱
বন঱ মেমে প্য এমট লূনয।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


দুমট ঴িংখযা িু঱না করার ঴ময় রথমটা যমে মিিীয়মটর প্চনয় বে না ঵য়, প্োটও না ঵য়, িনব িারা
অবলযই ঴মান। িাই িৃিীয় কমিলনটা আ঴ন঱ আমানের েরকার প্নই। আমরা রথম দুমট কমিলন
মমথযা ঵ন঱ই বন঱ মেনি পামর প্য 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
এখানন প্কব঱ প্েখা ঵নে প্য ঴িংখযামটর মান মক েনলর প্চনয় বে মক না।

মননচর প্রাগ্রামমট প্েনখ বন঱া প্িা আউটপুট কী ঵নব?


#include <stdio.h>
int main()
{
int n = 10;
if (n < 30) {
printf("n is less than 30.\n");
}
else if(n < 50) {
printf("n is less than 50.\n");
}
return 0;
}
প্রাগ্রাম: ৩.৬
আউটপুট ঵নব: n is less than 30. যমেও else if(n < 50) এমটও ঴িয মকন্তু প্যন঵িু if (n <
30) ঴িয ঵নয় প্গনে, িাই এর ঴নঙ্গ বামক যি else if মকিংবা else থাকনব, প্঴গুন঱া আর পরীক্ষা
করা ঵নব না। এখন প্িামরা মনশ্চয়ই মননচর প্রাগ্রামমটর আউটপুট ব঱নি পারনব।
#include <stdio.h>

int main()

int n = 10;

if (n < 30) {

printf("n is less than 30.\n");

if(n < 50) {


Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
printf("n is less than 50.\n");

return 0;

প্রাগ্রাম: ৩.৭

এখন আমরা আনরকমট প্রাগ্রাম ম঱খব। প্কাননা ঴িংখযা প্িাে না প্বনিাে প্঴মট মনর্ণয় করার প্রাগ্রাম।
প্কাননা ঴িংখযা প্িাে মক না প্঴মট প্বাঝার উপায় ঵নে ঴িংখযামটনক 2মেনয় ভাগ করা। যমে ভাগনল঳
লূনয ঵য়, িনব ঴িংখযামট প্িাে; আর ভাগনল঳ লূনয না ঵নয় এক ঵ন঱ প্঴মট প্বনিাে। ম঴ ঱যাঙ্গুনয়নি
ভাগনল঳ প্বর করার িনয মডু঱া঴ অপানরটর (modulus operator) আনে, প্যটানক '%' মচহ্ন
মেনয় রকাল করা ঵য়। িা঵ন঱ আর মচন্তা প্নই।

শুরুনি একমট ঴িংখযা প্নব: int number;


এবানর number-এর িনয একমট মান মিক কমর: number = 5;
এখন numberপ্ক 2 মেনয় ভাগ করন঱ প্য ভাগনল঳ পাব প্঴মট প্বর কমর: remainder =
number % 2;
এখন if-এর ঴া঵ানযয remainder-এর মান পরীক্ষা কনর আমরা ম঴িানন্ত প্পৌাঁনে প্যনি পামর।
remainder-এর প্কব঱ দুমট মানই ঴ম্ভব– 0 আর 1। পুনরা প্রাগ্রামমট ম঱নখ প্ফম঱:
#include <stdio.h>
int main()
{
int number, remainder;
number = 5;
remainder = number % 2;
if(remainder == 0) {
printf("The number is even\n");
}
else {
printf("The number is odd\n");
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
}
return 0;
}
প্রাগ্রাম: ৩.৮
প্রাগ্রামমট remainder প্ভমরনয়ব঱ বযব঵ার না কনরও প্঱খা যায়:

#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);

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


}
if(ch >= 'A' && ch <= 'Z') {
printf("%c is upper case\n", ch);
}
return 0;
}
প্রাগ্রাম: ৩.১০
'&&'-এর বাাঁ পানল একমট কমিলন এবিং ডান পানল একমট কমিলন থাকনব, এবিং দুমট কমিলন
঴িয ঵ন঱ই ঴িূর্ণ কমিলনটা ঴িয ঵নব। ch >= 'a' && ch <= 'z' এমট পুনরাটা একমট
কমিলন। এখন &&-এর বাাঁ মেনক একমট কমিলন আনে ch >= 'a' আর ডানমেনক আনরকমট
কমিলন ch <= 'z'। দুমট কমিলনই যমে ঴িয ঵য়, িনব পুনরা কমিলনটা ঴িয ঵নব। এখন
কমিউটার রমিমট অক্ষর প্বাঝার িনয প্যই প্কাড বযব঵ার কনর িানি a-এর প্চনয় b-এর মান এক
প্বমল, b-এর প্চনয় c-এর মান এক প্বমল, c-এর প্চনয় d-এর মান এক প্বমল … এরকম। িাই
প্কাননা অক্ষর lower case ঵ন঱ প্঴মট অবলযই 'a'-এর ঴মান মকিংবা বে ঵নি ঵নব। আবার প্঴মট
'z'-এর ঴মান মকিংবা প্োট ঵নি ঵নব। একইভানব A-এর প্চনয় B-এর মান এক প্বমল, B-এর প্চনয়
C-এর মান এক প্বমল … এরকম। িাই প্কাননা কযানরক্টানরর মান 'A' প্থনক 'Z'-এর মনধ্য ঵ন঱
আমরা ব঱নি পামর প্য প্঴মট upper case। 'A'-এর ঴মান মকিংবা বে ঵নি ঵নব এবিং 'Z'-এর
঴মান মকিংবা প্োট ঵নি ঵নব। আনরকমট বযাপার। মিিীয় if-এর আনগ else বযব঵ার করা উমচি।
িা঵ন঱ কিাই঱ার রথম if-এর প্ভিনরর লিণ ঴িয ঵ন঱ আর পনরর if-এর কমিলন পরীক্ষা করনব
না। িানি ঴ময় বাাঁচনব।
#include <stdio.h>

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);
}

িা঵ন঱ এবার ঴িূর্ণ প্রাগ্রামমট প্িামরা ম঱নখ প্ফ঱নি পানরা।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রাগ্রামভিং ফইঃ অধযায় চায
রু঩ (Loop)
প্তাভযা এযই ভধ্ধয প্রাগ্রাধ্ভয ভধ্ধয মফমবন্ন ধযধ্নয ঱তত (condition) ফযফ঴ায কযধ্ত ম঱ধ্ে প্েছ।
এই঳ফ ঱তত মদধ্য় মফমবন্ন প্রাগ্রাভ ততময কযাও ঴য়ধ্তা শুরু কধ্য মদধ্য়ছ। েুফ বাধ্রা কথা। মকন্তু এেন
আভযা আধ্যকমি ঳ভ঳যা ও তায ঳ভাধাধ্নয ঩থ েুুঁজফ। একমি প্রাগ্রাভ মরেধ্ত ঴ধ্ফ, প্মমি 1 প্থধ্ক
10 ঩মতন্ত ঳ফ ঩ূণত঳িংেযা ভমনিধ্য প্দোধ্ফ (রমত রাইধ্ন একমি ঳িংেযা থাকধ্ফ)। েুফই ঳঴জ ঳ভ঳যা
এফিং ঳ভাধানও অতযন্ত ঳঴জ। আমভ জামন, প্তাভযা এক মভমনধ্িয ভধ্ধযই মনধ্চয প্রাগ্রাভমি মরধ্ে
প্পরধ্ফ:
#include <stdio.h>
int main()
{
printf("1\n");
printf("2\n");
printf("3\n");
printf("4\n");
printf("5\n");
printf("6\n");
printf("7\n");
printf("8\n");
printf("9\n");
printf("10\n");
return 0;
}
প্রাগ্রাভ: ৪.১
এোধ্ন আভযা 1 প্থধ্ক 10 ঩মতন্ত ঳ফগুধ্রা ঳িংেযা মরন্ট কধ্য মদধ্য়মছ। অফ঱য একমি printf()
ফযফ঴ায কধ্যও কাজমি কযা প্মত: printf("1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n");

আফায প্রাগ্রাভমি এবাধ্ফও প্রো প্মত। 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 মরন্ট ঴ধ্ে এফিং প্রাগ্রাভমি ফন্ধ ঴ধ্ে না। েুফই দুঃধ্েয মফলয়। প্দো মাক
দুঃধ্েয প্঩ছধ্ন কাযণিা কী।

int n = 1; রথধ্ভ প্রাগ্রাভমি n-এয ভান 1 ফ঳াধ্ফ।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


তায঩য while রুধ্঩ মেধ্য় ঱তত ঩যীো কযধ্ফ। আভযা ঱তত মদধ্য়মছ n <= 10 ভাধ্ন n-এয ভান
10-এয প্ছাি ফা ঳ভান। এই ঱তত প্তা ঳তয কাযণ n-এয ভান 1। তায঩য প্রাগ্রাভমি n-এয ভান
মরন্ট কযধ্ফ printf("%d\n", n);। তায঩য মক n-এয ভান 1 ফাড়ধ্ফ? ফাড়ধ্ফ না, কাযণ আভযা
মিতীয় ফন্ধনী প্঱ল কধ্য মদধ্য়মছ '}' মচহ্ন মদধ্য় (ভাধ্ন রু঩ প্঱ল)। তায ভাধ্ন প্রাগ্রাভমি আফায ঱তত
঩যীো কযধ্ফ, আফায n-এয ভান মরন্ট কযধ্ফ...এবাধ্ফ চরধ্তই থাকধ্ফ কাযণ n-এয ভান প্মধ্঴তু
ফাড়ধ্ছ না, n <= 10 ঱ততমি ঳ফ ঳ভয় ঳তযই যধ্য় মাধ্ে – কেধ্না মভথযা ঴ধ্ে না। এেন প্তাভযা
while রু঩ মনধ্য় মফমবন্ন ধযধ্নয েধ্ফলণা চামরধ্য় প্মধ্ত ঩াধ্যা। ঳ফ ঳ভয় ঳তয ঴য় এভন ঱তত
ফযফ঴ায কধ্য প্তাভায কমিউিাযধ্ক ফযস্ত যােধ্ত ঩াধ্যা। while(1){...} এোধ্ন ঱তত ম঴ধ্঳ধ্ফ 1
ফযফ঴ায কযা ঴ধ্য়ধ্ছ। কমিউিায 1 ফরধ্ত প্ফাধ্ঝ ঳তয। ঳ুতযািং রুধ্঩য প্বতধ্যয কাজগুধ্রা ঳ফ
঳ভয় চরধ্ত থাকধ্ফ, ফন্ধ ঴ধ্ফ না। while(1 == 1){...} ও একই আচযণ কযধ্ফ। তধ্ফ এেন
আমভ প্তাভাধ্দয একমি দযকাময মজমন঳ ফধ্র যামে, প্মমি মদধ্য় প্তাভযা প্জায কধ্য রু঩ প্থধ্ক প্ফয
঴ধ্য় প্মধ্ত ঩াযধ্ফ। প্঳মি ঴ধ্ে break প্েিধ্ভন্ট। কথা না ফামড়ধ্য় একমি প্রাগ্রাভ মরেধ্রই
ফযা঩াযমি ঩মযষ্কায ঴ধ্য় মাধ্ফ।
#include <stdio.h>
int main()
{
int n = 1;
while(n <= 100) {
printf("%d\n", n);
n++;
if(n > 10) {
break;
}
}
return 0;
}
প্রাগ্রাভ: ৪.৪
এই প্রাগ্রাভমি কী কযধ্ফ? 1 প্থধ্ক 10 ঩মতন্ত মরন্ট কযধ্ফ। মমদও while-এয প্বতয আভযা
ফধ্রমছ প্ম ঱তত ঴ধ্ে n <= 100, মকন্তু রুধ্঩য প্বতধ্য আফায ফধ্র মদধ্য়মছ প্ম মমদ n > 10 ঴য়,
তধ্ফ break; ভাধ্ন প্ফয ঴ধ্য় মাও, ফা রু঩মি প্বধ্ে দাও। break ঳ফ ঳ভয় প্মই রুধ্঩য প্বতয
থাধ্ক প্঳মিয ফাইধ্য প্রাগ্রাভমিধ্ক মনধ্য় আধ্঳। ঳ুতযািং n-এয ভান 10 মরন্ট ঴ওয়ায ঩ধ্য এয ভান
এক ফাড়ধ্ফ (n++;) অথতাৎ n-এয ভান ঴ধ্ফ 11। আয তেন n > 10 ঳তয ঴ধ্ফ, পধ্র প্রাগ্রাভমি
if কমে঱ধ্নয প্বতধ্য ঢুধ্ক মাধ্ফ। প্঳োধ্ন মেধ্য় প্঳ প্দেধ্ফ তাধ্ক break কযধ্ত ফরা ঴ধ্য়ধ্ছ তাই
প্঳ রুধ্঩য ফাইধ্য চধ্র মাধ্ফ। break-এয উল্টা কাজ কধ্য, এভন একমি প্েিধ্ভন্ট ঴ধ্ে
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
continue;। প্কাধ্না জায়োয় continue ফযফ঴ায কযধ্র রুধ্঩য প্বতধ্য continue-এয ঩ধ্যয
অিংধ্঱য কাজ আয ঴য় না। মনধ্চয প্রাগ্রাভমি প্কাড কধ্য কিাইর ও যান কধ্যা:

#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(; i<= 10; i = i + 1) {


printf("%d X %d = %d\n", n, i, n*i);
}
মমদ মতনমি অিংধ্঱য প্কাধ্নামিই মরেধ্ত না চাই, তধ্ফ ঩ুধ্যা প্রাগ্রাভমি এবাধ্ফ প্রো মায়:
#include <stdio.h>
int main()
{
int n = 5;
int i = 1;
for( ; ; ) {
printf("%d X %d = %d\n", n, i, n*i);
i = i + 1;
if (i > 10) {
break;
}
}
return 0;
}
প্রাগ্রাভ: ৪.৮
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
এেন আভযা আধ্যকমি কাজ কযফ। for রু঩ ফযফ঴ায কধ্য 5-এয নাভতায় প্ম গুণ কধ্যমছ (n*i)
প্঳মি না কধ্য প্কফর প্মাে কধ্য প্রাগ্রাভমি মরেফ। প্তাভযা মক অফাক ঴ে প্ম নাভতায প্রাগ্রাভ
আফায গুণ ছাড়া কীবাধ্ফ ঴ধ্ফ? আভযা মকন্তু 5 x 3-প্ক মরেধ্ত ঩াময 5 + 5 + 5। আমভ কী কযধ্ত
মামে তা ফুঝধ্ত ঩াযছ মনশ্চয়ই। প্রাগ্রাভমি মরধ্ে প্পমর:
#include <stdio.h>
int main()
{
int m, n = 5;
int i;
m = 0;
for(i = 1; i <= 10; i = i + 1) {
m = m + n;
printf("%d X %d = %d\n", n, i, m);
}
return 0;
}
প্রাগ্রাভ: ৪.৯
প্রাগ্রাভমিধ্ত আভযা গুণ না কধ্য প্মাে কযরাভ। কিাইর ও যান কধ্য প্দধ্ো। কাজ কযধ্ফ
মিকিাক। প্কাধ্না ঳িংেযায গুমণতকগুধ্রা প্মভন গুণ কধ্য প্ফয কযা মায়, প্তভনই প্মাে কধ্যও কযা
মায়। আভযা মমদ প্কাধ্না প্রাগ্রাধ্ভ প্দমে প্ম গুণ না কধ্য প্মাে কযধ্রই কাজ ঴ধ্ে, তা঴ধ্র প্মাে
কযাই বাধ্রা কাযণ কমিউিাধ্যয রধ্঳঳য একমি প্মাে কযধ্ত প্ম ঳ভয় প্নয়, একমি গুণ কযধ্ত
তায প্চধ্য় অধ্নক প্ফম঱ ঳ভয় প্নয়। মমদও তুমভ ঴য়ধ্তা প্রাগ্রাভ যান কযায ঳ভয় তা ফুঝধ্ত ঩াধ্যা
না। কমিউিাধ্যয রধ্঳঳য ঳িধ্কত মফস্তামযত প্রো঩ড়া কযধ্র মফলয়িা জানধ্ত ঩াযধ্ফ। আ঩াতত
এমি জানধ্রই চরধ্ফ প্ম একমি গুণ কযায প্চধ্য় একমি প্মাে কযা বাধ্রা, কাযণ প্মাে কযধ্ত
কমিউিায অধ্঩োকৃত কভ ঳ভয় প্নয়।

প্তা আভযা 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

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রাগ্রামভিং ফইঃ অধযায় ঩াাঁচ
একটুখামন গমিত

এই অধযায়য় আভযা প্রাগ্রামভিংয়য়য নতুন মকছু ম঱খফ না। এখন ঩মযন্ত আভযা মতটুকু প্রাগ্রামভিং
ম঱য়খমছ, তা মদয়য়ই মকছু ঳঴জ-঳যর গামিমতক ঳ভ঳যায ঳ভাধান কযফ।

১) x + y = 15, x – y = 5 ঴য়র x ও y-এয ভান কত?

঳ভীকযিদুমট প্মাগ কযয়র ঩াই 2x = 20, ফা x = 10। আফায মফয়য়াগ কযয়র ঩াই, 2y = 10,
ফা y = 5। এখন একমট প্রাগ্রাভ মরখয়ত ঴য়ফ প্মখায়ন x + y ও x – y-এয ভান প্দওয়া থাকয়ফ, x
ও y-এয ভান প্ফয কযয়ত ঴য়ফ। আমভ প্রাগ্রাভমট একটু ঩য়য মরয়খ প্দফ। এয ভয়ধয তুমভ মনয়জ
মরখায প্চষ্টা কয়যা। ঳঴জ প্রাগ্রাভ।

২) 4x + 5y = 14, 5x + 6y = 17 ঴য়র x ও y-এয ভান কত?

঳ভীকযিদুমটয়ক আভযা এবায়ফ মরখয়ত ঩াময:


a1x + b1y = c1, a2x + b2y = c2। প্তাভযা মফমবন্নবায়ফ এয ঳ভাধান কযয়ত ঩ায। এয
ভয়ধয দুমট জনমরয় উ঩ায় ঴য়ে রমতস্থা঩ন (substitution) ও মনিযায়য়কয (determinant)
঳া঴ায়ময ঳ভাধান। ঩দ্ধমতগুয়রা জানা না থাকয়র ক্লা঳ এইট ফা নাইয়নয গমিত ফই প্দয়খা। ঳ভাধান
কযয়র প্দখয়ফ,
x = (b2c1 – b1c2) / (a1b2 – a2b1) এফিং y = (a1c2 – a2c1) / (a1b2 – a2b1)।
এখন a1, a2, b1, b2, c1, c2-এয জায়গায় মনমদযষ্ট ভান ফম঳য়য় মদয়রই x ও y-এয ভান প্঩য়য়
মায়ফ।

এই ধযয়নয ঳ভীকযি ঳ভাধায়নয জনযও আভযা একমট প্রাগ্রাভ মরখফ, মায ইন঩ুট ঴য়ফ a1, a2,
b1, b2, c1, c2 এফিং আউট঩ুট ঴য়ফ x ও y-এয ভান। এমটও ঳঴জ প্রাগ্রাভ। মনয়জ প্চষ্টা কয়যা।

আ঱া কময, প্তাভযা দুমট ঳ভ঳যাযই ঳ভাধান মনয়জ কয়য প্পরয়ত ঩াযয়ফ। এখন আমভ রথভ ঳ভ঳যায
প্কাড মদমে:

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


#include <stdio.h>
int main()
{
double x, y, x_plus_y, x_minus_y;
printf("Enter the value of x + y: ");
scanf("%lf", &x_plus_y);
printf("Enter the value of x - y: ");
scanf("%lf", &x_minus_y);
x = (x_plus_y + x_minus_y) / 2;
y = (x_plus_y - x_minus_y) / 2;
printf("x = %0.2lf, y = %0.2lf\n", x, y);
return 0;
}
প্রাগ্রাভ: ৫.১

঳ভাধান খুফই ঳঴জ। তয়ফ রক্ষ কয়যা প্ম আমভ প্বমযয়য়ফয়রয ডাটা টাই঩ 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()
{

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


double loan_amount, interest_rate, number_of_years, total_amount,
monthly_amount;
printf("Enter the loan amount: ");
scanf("%lf", &loan_amount);
printf("Enter the interest rate: ");
scanf("%lf", &interest_rate);
printf("Number of years: ");
scanf("%lf", &number_of_years);
total_amount = loan_amount + loan_amount * interest_rate / 100.00;
monthly_amount = total_amount / (number_of_years * 12);
printf("Total amount: %0.2lf\n", total_amount);
printf("Monthly amount: %0.2lf\n", monthly_amount);
return 0;
}
প্রাগ্রাভ: ৫.৪

আভায়দয পভুযরায়ত একটু ঳ভ঳যা আয়ছ। আ঳য়র 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 ঳ভয়য় অমতক্রান্ত দূযত্ব মনিযয় কযয়ত ঴য়ফ। প্রাগ্রাভমট মনয়জ মনয়জ মরয়খ প্পয়রা।

৫) 1 + 2 + 3 + … + 998 + 999 + 1000 এই ধাযায ঳ভমষ্ট কত?

প্তাভযা মাযা ধাযায প্মাগপয়রয ঳ূত্র জায়না, তাযা চট কয়য ফয়র মদয়ত ঩াযয়ফ, এই ধাযামটয
প্মাগপর ঴য়ে 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-এয ভান ঴য়ফ ইন঩ুট, আয প্মাগপর ঴য়ফ আউট঩ুট।

৬) আভায়দয এফাযকায প্রাগ্রাভমট ঴য়ফ তা঩ভাত্রায়ক প্঳রম঳য়া঳ (Celsius) প্থয়ক পায়যন঴াইয়ট


(Farenheit) রূ঩ান্তয কযায প্রাগ্রাভ।

প্঳রম঳য়া঳য়ক পায়যন঴াইয়ট রূ঩ান্তয়যয ঳ূত্র ঴য়ে: °F = (°C × 1.8) + 32।

#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;
}
প্রাগ্রাভ: ৫.৯

এই প্রাগ্রাভমট আযও ইমপম঱য়য়ি কযায প্চষ্টা কয়যা।

এফায র঳াগু প্ফয কযায প্রাগ্রাভ। প্তাভযা মনশ্চয়ই স্কুয়র ম঱য়খছ, কীবায়ফ র঳াগু প্ফয কযয়ত ঴য়।
প্঳ই ঩দ্ধমত অফরম্বন কয়য প্রাগ্রাভ মরয়খ প্পয়রা। আয মাযা প্঳ই ঩দ্ধমত জায়না না, তায়দয জনয
একমট ঳ূত্র ফয়র মদমে। আ঱া কময, র঳াগু প্ফয কযায প্রাগ্রাভ মরখয়ত আয ঳ভ঳যা ঴য়ফ না।

দুমট ঳িংখযায র঳াগু x দুমট ঳িংখযায গ঳াগু = ঳িংখযা দুমটয গুিপর।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রাগ্রামভিং ফইঃ অধযায় ছয়
অযারয
এতক্ষরে প্তাভারদয প্রাগ্রামভিং জ্ঞান-ফুমি একটু প্ফরেরছ। চররা, এফায তা঴রর মকছু জনর঳ফাভূরক
কভমকাণ্ড কযা মাক। আভযা স্কুররয মরয় গমেত ম঱ক্ষরকয জনয ঩যীক্ষায পরাপর প্ফয কযায প্রাগ্রাভ
মররে প্দফ। ওই স্কুরর রথভ ঳াভময়ক, মিতীয় ঳াভময়ক ও ফামলমক এই মতনমট ঩যীক্ষাই 100 নম্বরযয
঴য়। তায঩য ফামলমক ঩যীক্ষায 50%, মিতীয় ঳াভময়ক ঩যীক্ষায 25% ও রথভ ঳াভময়ক ঩যীক্ষায
25% মনরয় চূোন্ত পরাপর রকা঱ কযা ঴য়। তা঴রর আভারদয প্রাগ্রারভয ইন঩ুট ঴রে ওই মতনমট
঩যীক্ষায নম্বয। আভারদযরক চূোন্ত পরাপর প্দোরত ঴রফ। এমট প্কারনা ফযা঩াযই নয়:

#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 টাইর঩য
মজমন঳ থাকরফ।

অযারযরত কয়মট উ঩াদান থাকরফ প্঳মট শুরুরতই ফরর মদরত ঴য়।


int ara[10]; এবারফ আভযা একমট অযারয মডরক্লয়ায কযরত ঩াময, মায নাভ ঴রে ara, প্মমটরত
প্কফর ইমিজায টাইর঩য ডাটা থাকরফ আয এই অযারযরত প্ভাট দ঱মট ঳িংেযা যাো মারফ। রথভমট
঴রে ara[0] (঴যাাঁ, ara[1] না মকন্তু), মিতীয়মট ara[1], তৃতীয়মট ara[2], এবারফ দ঱ভ ঳িংেযামট
঴রে ara[9]। অথমাৎ, ara[i] ঴রে i+1তভ উ঩াদান।

এফারয চররা অযারয মনরয় একটু প্েরাধুরা কযা মাক। রমতমট প্রাগ্রাভ মকন্তু অফ঱যই কমিউটারয
চামররয় প্দেরফ।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


#include <stdio.h>
int main()
{
int ara[5] = {10, 20, 30, 40, 50};
printf("First element: %d\n", ara[0]);
printf("Third element: %d\n", ara[2]);
return 0;
}
প্রাগ্রাভ: ৬.২

আউট঩ুট মিকিাক প্দেরত ঩াে?

আরযকমট প্রাগ্রাভ:

#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;
}
প্রাগ্রাভ: ৬.৬

প্রাগ্রাভমট চারাও। কী প্দেরর? আউট঩ুট মক এযকভ?


10
20
30
40
50
60
70
80
90
100

তাযভারন কাজ ঴য়মন! আ঳রর আমভ একমট প্ছাট্ট বুর করযমছ, প্঳মট প্তাভযা েুাঁরজ প্ফয করযা। এ
ধযরনয বুররক ফরর ফাগ (bug), তেন প্রাগ্রাভ মিকভরতা যান করয মকন্তু ঳মিক আউট঩ুট প্দয় না।
আভায প্কারড ফাগ আরছ, প্তাভযা মডফাগ (debug) করযা (ভারন ফাগমট প্ফয করয মিক করযা)।

এেন চররা আভারদয আরগয ঳ভ঳যায় মপরয মাই। আভযা এেন রথভ ঳াভময়ক ঩যীক্ষায় ঳ফায
গমেরতয নম্বয একমট অযারযরত যােফ, মিতীয় ঳াভময়ক ঩যীক্ষায নম্বয আরযকমট অযারযরত, ফামলমক
঩যীক্ষায নম্বরযয জনয আযও একমট এফিং প্যজারেয জনযও একমট অযারয ফযফ঴ায কযফ।

int ft_marks[40], st_marks[40], final_marks[40];


double total_marks[40];
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
মায প্যার নম্বয 1 তায নম্বযগুররা থাকরফ অযারযয রথভ র্ঘরয (ভারন index 0 ঴রফ)। এেন ফররা
প্তা total_marks[34]-এ কায ঳ফমরভাট নম্বয আরছ? মায প্যার নম্বয 35। তা঴রর কাযও প্যার
নম্বয n ঴রর তায ঳ফমরভাট নম্বয ঴রে total_marks[n-1]।

এেন প্রাগ্রাভমট মররে প্পরা মাক:

#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) তা মরি করয মদমে।
}
তা঴রর ঩ুরযা প্রাগ্রাভ মররে প্পমর:

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


#include <stdio.h>
int main()
{
int marks, i, count;
int total_marks[] = {86, 78, 94, 68, 92, 78, 64, 62, 72, 61, 72, 66, 65,
65, 80, 72, 62, 68, 81, 62, 56, 68, 58, 56, 82, 70, 74, 78, 76, 84, 88, 73,
62, 66, 76, 70, 67, 65, 77, 63};
for(marks = 50; marks <= 100; marks++) {
count = 0;
for(i = 0; i < 40; i++) {
if(total_marks[i] == marks) {
count++;
}
}
printf("Marks: %d Count: %d\n", marks, count);
}
return 0;
}
প্রাগ্রাভ: ৬.৮

প্তভন কমিন মকছু নয়। প্নরেড পয রু঩ ফযফ঴ায করয ঳঴জ-঳যর ঳ভাধান করয প্পররাভ। আো
ফররা প্তা if-এয প্বতয প্ম ঱তমমট আভযা ঩যীক্ষা কযমছ (total_marks[i] == marks) এই
কাজমট প্রাগ্রারভ কতফায ঴য়? ফাইরযয রু঩মট র্ঘুযরফ 51 ফায এফিং রমতফারযয জনয প্বতরযয রু঩মট
র্ঘুযরফ 40 ফায। তা঴রর প্ভাট 51 x 40 = 2040 ফায।

ও঩রযয প্রাগ্রাভমট আভযা এেন একটু অনযবারফ মরোয প্চষ্টা কযফ। মনরচয প্রাগ্রাভমট চট঩ট টাই঩
করয প্পররা এফিং যান করযা:

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

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


int total_marks[] = {86, 78, 94, 68, 92, 78, 64, 62, 72, 61, 72, 66, 65,
65, 80, 72, 62, 68, 81, 62, 56, 68, 58, 56, 82, 70, 74, 78, 76, 84, 88, 73,
62, 66, 76, 70, 67, 65, 77, 63};
int marks_count[101];
for(i = 0; i < 101; i++) {
marks_count[i] = 0;
}
for(i = 0; i < 40; i++) {
marks_count[total_marks[i]]++;
}
for(i = 50; i <= 100; i++) {
printf("Marks: %d Count: %d\n", i, marks_count[i]);
}
return 0;
}
প্রাগ্রাভ: ৬.৯

এোরন আমভ প্মমট করযমছ, একমট অমতমযক্ত অযারয ফযফ঴ায করযমছ। 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;
}
প্রাগ্রাভ: ৬.১০

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রাগ্রামমিং বইঃ অধ্যায় ঴াত
ফািংলন (Function)

প্তামরা মি এিমি মজার বযাপার জাননা? এিজন প্঱খি ঴ারা জীবনন যতিা ঴ময় প্঱নখন তার
প্েনয় প্বমল ঴ময় মতমন অননযর প্঱খা পনেন? বযাপারমি প্রাগ্রামারনের প্ব঱ানতও ঴তয। এিজন
প্রাগ্রামার তার প্রাগ্রামমিং জীবনন যতিা ঴ময় মননজ প্িাড প্঱নখ তার প্েনয় প্বমল ঴ময় অননযর প্঱খা
প্িাড পনে! তাই প্িাড ম঱খার ঴ময় প্খয়া঱ রাখনত ঵নব, প্যন প্঴মি পোও ঴ুমবধ্াজনি ঵য়।

যারা বইমি শুরু প্েনি পনে এন঴ছ তারা ইমতমনধ্য অননিবার ফািংলন লব্দমি প্েনখছ। যারা আরও
প্বমল মননানযাগ মেনয় পনেছ তারা এমিও প্খয়া঱ িনরছ প্য printf, scanf ইতযামে, প্যগুন঱া
প্তামরা বযব঵ার িরছ প্঴গুন঱া এনিিমি ফািংলন। আবার mainও এিমি ফািংলন। আমরা এবার
প্েখব ফািংলন বযাপারমি আ঴ন঱ িী, এর েরিারিাই বা িী। আর তারপর আমরা মননজনের ফািংলন
ততমর িরা মলখব।

ফািংলন বযব঵ার িরা ঵য় প্িাননা এিমি মনমেিষ্ট িাজ িরার জনয। প্যমন printf ফািংলনমি মেনয়
আমরা মমনিনর আউিপুি মেই। আবার scanf, getchar এ঴ব ফািংলন মেনয় আমরা মিনবাডি
প্েনি ইনপুি মনই। এখন printf ফািংলনমি প্য আমরা ম঱খ঱াম, িমিউিানরর প্তা আর এমি
প্বাঝার িো নয়। printf ফািংলনমি িী িাজ িরনব, িীভানব িরনব প্঴মি আ঴ন঱ বন঱ প্েওয়া
আনছ stdio.h নানমর এিমি প্঵ডার (header) ফাইন঱র মনধ্য। এজনযই আমরা আমানের
প্রাগ্রামগুন঱ানত (প্যখানন printf, scanf ইতযামে বযব঵ার িনরমছ) ওই প্঵ডার ফাই঱মির িো
বন঱ মেই (#include )। আবার মরিং-঴িংক্রান্ত ফািংলনগুন঱া বযব঵ার িরন঱ string.h – এই
প্঵ডার ফাই঱মির িোও বন঱ মেই। এখন মেন্তা িনরা, printf ফািংলননর এই প্িাডমি যমে আমানের
মননজনের ম঱খনত ঵নতা, তা঵ন঱ বযাপারমি িী মবরমিিরই না ঵নতা! এরিম অননি ফািংলন আনছ
প্যগুন঱ার বযব঵ার প্তামরা আনে আনে প্জনন যানব।

আচ্ছা, main প্ি ও প্তা আমম এিমি ফািংলন বন঱মছ, মিন্তু এমি মেনয় আমরা আবার িী িমর? ম঴
঱যাঙ্গুনয়নজ এই ফািংলনমি মেনয়ই আ঴ন঱ আমরা এিমি প্রাগ্রাম ো঱াই। িিাই঱ার জানন প্য
main ফািংলন প্যখানন আনছ, প্঴খান প্েনিই িাজ শুরু িরনত ঵নব। তাই এিমি প্রাগ্রানম প্িব঱
এিমিই main ফািংলন োনি।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


এবানর প্েমখ, আমরা মননজরা িীভানব ফািংলন ততমর িরনত পামর। এিমি ফািংলন যখন আমরা ততমর
িরব প্঴মির গঠন ঵নব প্মািামুমি এই রিম:

return_type function_name (parameters) {


function_body
return value
}

return_type: এখানন বন঱ মেনত ঵নব ফািংলনমি িাজ প্ল঳ িনর প্বর ঵বার ঴ময় িী ধ্রননর
ডািা মরিানি িরনব। প্঴মি, int, double এ঴ব ঵নত পানর। আবার মিছু মরিানি িরনত না োইন঱
প্঴মি void ঵নত পানর। অেিাৎ প্঴ মিছুই মরিানি িরনব না। এর মানন োাঁোনচ্ছ, তুমম আ঴ন঱
ফািংলননি মেনয় প্িাননা এিমি িাজ িরানব, প্঴জনয িাজ প্লন঳ প্঴ প্তামানি িী ধ্রননর ডািা
প্ফরত প্েনব প্঴মি বন঱ মেনত ঵নব। ফািংলননর প্িাননা জায়গানত তুমম যখনই return বযব঵ার
িরনব, ফািংলনমি প্঴ই জায়গা প্েনিই মরিানি িরনব বা প্বর ঵নয় যানব। অননি ফািংলননর প্ভতর
প্েখনব এিামধ্ি মরিানি আনছ এবিং ঴নঙ্গ মবমভন্ন লতি প্েওয়া আনছ। লনতির উপর মনভির িনর যখনই
প্রাগ্রামমি প্িাননা মরিানি পানব তখনই ফািংলন প্েনি প্বর ঵নয় যানব।

function_name: এখানন আমানের ফািংলননর নাম ম঱খনত ঵নব। ফািংলননর নাম ঵নত ঵নব
অেিপর্ূ ি যানত নাম প্েনখই ধ্ারনা িরা যায় প্য ফািংলনমি িী িাজ িরনব। প্যমন প্িান ঴িংখযার
বগিমূ঱ মনর্িনয়র জনয যমে আমরা এিমি ফািংলন ম঱মখ তনব প্঴মির নাম আমরা মেনত পামর
square_root বা sqrt। আমরা মনশ্চয়ই প্঴মির নাম beautiful মেব না, যমেও িিাই঱ার
তানত প্িান আপমি িরনব না।

parameters: এখানন ফািংলনমি িাজ িরার জনয রনয়াজনীয় ডািা আমরা প্েব। প্যমন মরিং-এর
তেঘিয মনর্িনয়র জনয আমরা যখন strlen ফািংলনমি বযব঵ার িমর প্঴খানন প্িান মরিং-এর তেঘিয মনর্িয়
িরনত ঵নব প্঴মি বন঱ মেনত ঵য় (নইন঱ প্঴মি িার তেঘিয মনর্িয় িরনব?)। আবার বগিমূ঱ মনর্িনয়র
জনয ফািংলন ম঱খন঱ প্িান ঴িংখযার বগিমূ঱ প্বর িরনত ঵নব প্঴মি বন঱ মেনত ঵নব। পযারামমিানরর
মাধ্যনম আমরা প্঴঴ব ডািা ওই ফািংলননর িাছ পাঠানত পামর। আবার প্িাননা মিছু পাঠানত না
োইন঱ প্঴মি খাম঱ও রাখনত পামর। প্যমন, getchar() বা main() ফািংলন। এিামধ্ি পযারামমিার
পাঠাননার ঴ময় রমতমি পযারামমিার িমা (,) মেনয় আ঱াো িরনত ঵নব।

function_body: ফািংলনমি িীভানব িী িাজ িরনব প্঴মি বমডনত বন঱ মেনত ঵নব। মানন প্িাড
ম঱খনত ঵নব আর মি।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


return value: ফািংলনমি িাজ প্ল঳ িনর, তানি প্য জায়গা প্েনি ি঱ িরা ঵নয়নছ প্঴ জায়গায়
মফনর যায়। প্ফরার ঴ময় আমরা প্িাননা মান পাঠানত পামর। প্যমন sqrt() ফািংলনন আমরা োই প্঴
বগিমূ঱ প্বর িরনব। প্তা বগিমূ঱মি প্বর িনর প্তা প্঴মি প্ফরত পাঠাবার বযবস্থা রাখনত ঵নব?
বগিমূ঱মির মান যমে x ঵য়, তনব আমরা return x; প্েিনমন্ট মেনয় প্঴মির মান প্ফরত পাঠাব।

int root = sqrt(25);

এখানন 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;
}
প্রাগ্রাম: ৭.১

প্রাগ্রামমি ো঱াও। আউিপুি িী? 5.000000।

এবার আমরা দুমি ঴িংখযা প্যাগ িরার জনয এিমি ফািংলন ম঱নখ প্ফম঱। প্যানগর িাজমি আর main

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


ফািংলননর প্ভতনর িরব না।

#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 (িাইপ িামেিংনয়র িো মনন আনছ
প্তা?)। আমরা ভু঱ মঠি িনর প্ফম঱:

int add(double num1, double num2)


{
double sum = num1 + num2;
return sum;
}

এবানর প্রাগ্রামমি রান িরন঱ আউিপুি িী? 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) বন঱ প্েওয়া:

double add(double n1, double n2);

প্রানিািাইনপ পুরা ফািংলনমি ম঱খনত ঵য় না। এর অিংলগুন঱া ঵নচ্ছ:

return_type function_name (parameters) ;

প্঴মমনিা঱ন মেনত ভু঱ িরনব না মিন্তু। আর প্রানিািাইনপর পযারামমিানর প্য প্ভমরনয়ব঱ বযব঵ার
িরনব তার ঴নঙ্গ মূ঱ ফািংলননর প্ভমরনয়বন঱র নাম এিরিম না ঵ন঱ প্িাননা অ঴ুমবধ্া প্নই, তনব
ডািা িাইপ এিই ঵নত ঵নব। এখন মননের প্রাগ্রামমি মঠিঠাি িাজ িরনব:

#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;
}
প্রাগ্রাম: ৭.৬

প্রাগ্রামমি না োম঱নয় শুধ্ু প্িাড প্েনখ বন঱া প্তা আউিপুি িী ঵নব? আমানের প্িাননা তাো প্নই,
তাই ধ্ীনর঴ুনস্থ মেন্তা িনর বন঱া।

এবার প্ি প্ি আমার ঴নঙ্গ এিমত প্য আউিপুি ঵নব:


20 10 200 (অেিাৎ x = 20, y = 10, z = 200)?

িারর্ 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।

এবানর প্রাগ্রামমি ো঱াও, আউিপুি প্েখনব: 10 20 200 (অেিাৎ x = 10, y = 20, z =


200)। এমন ঵ওয়ার িারর্ িী? z-এর মান মননয় প্িাননা আপমি প্নই, ফািংলনমি 200 মরিানি িনর
আর প্঴মি আমরা z-এ বম঴নয় মেনয়মছ। িো ঵নচ্ছ, x আর y-এর মান মননয়। আ঴ন঱
test_function-এর প্ভতনর আমরা x, y-এর মান পমরবতিন িরায় main ফািংলননর x, y-এর
মিছু আন঴-যায় না। রনতযি ফািংলননর প্ভমরনয়ব঱গুন঱া আ঱াো। এনি বন঱ প্঱ািা঱ প্ভমরনয়ব঱
(local variable)। আমরা main ফািংলননর x, y-এর মান মরন্ট িনরমছ test_function
ফািংলননর x, y-এর মান মরন্ট িমরমন। এি ফািংলননর প্঱ািা঱ প্ভমরনয়বন঱র অমেত্ব অনয ফািংলনন
োনি না। তুমম এখন মিছু প্রাগ্রাম ম঱নখ আরও পরীো-মনরীো িনর প্েখনত পানরা। িী প্রাগ্রাম
ম঱খনব প্঴মি প্তামার ওপর প্ছনে মে঱াম।

আমরা যমে োই, প্িাননা প্ভমরনয়বন঱র অমেত্ব আমানের প্রাগ্রানমর ঴ব ফািংলননর প্ভতনর োিনত
঵নব, তনব আমরা প্঴মি িরনত পামর প্লাবা঱ (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;
}

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


আবার আমরা যমে my_fnc ফািংলননর প্ভতনর মগনয় pi নানম এিমি প্ভমরনয়ব঱ মডনেয়ার
িরতাম (double pi;), তনব প্঴মি এিমি প্঱ািা঱ প্ভমরনয়ব঱ ঵নতা এবিং প্লাবা঱ pi-এর মাননর
প্িান পমরবতিন ঵নতা না।

এতের্ আমরা ফািংলননর পযারামমিার ম঵ন঴নব প্িব঱ প্ভমরনয়ব঱ বযব঵ার িনরমছ। এবানর আন঴া
আমরা ফািংলননর পযারামমিার ম঵ন঴নব অযানর পাঠাই। আমরা এিমি প্রাগ্রাম ম঱খব প্যমি প্িাননা
এিমি ইমন্টজার অযানর প্েনি ঴বনেনয় বে ঴িংখযামি খুাঁনজ প্বর িরনব। অযানর প্েনি ঴নবিাচ্চ ঴িংখযা
খুাঁনজ প্বর িরার িাজমি িরার জনয এিমি ফািংলন ম঱নখ প্ফম঱, িী বন঱া?

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, িারর্ অযানরমির রেম উপাোননর মান পমরবমতিত ঵নয়নছ। অেিাৎ
আমরা বুঝনত পার঱াম ফািংলননর প্ভতনর অযানর পা঴ িরন঱ ওই অযানরর আ঱াো প্িাননা িমপ
ততমর ঵য় না। িারর্ ঵নচ্ছ আমরা ফািংলননর প্ভতর অযানরর নামমি প্িব঱ পাঠাই, প্যমি মিনা ওই
অযানরমি প্মনমামরর প্িান জায়গায় আনছ তার অযানে঴। এখন প্তামরা বৃনির প্েিফ঱ মনর্িনয়র জনয
এিমি ফািংলন ম঱নখ প্ফন঱া। প্েিফ঱ প্বর িরার ঴ূিমি মনন আনছ প্তা? মনন না োিন঱ জযামমমত
বই প্েনি প্েনখ নাও।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রাগ্রামমিং বইঃ অধ্যায় আট
বাইনামর সার্চ
একমট সহজ প্ে঱া মিয়য় শুরু করা যাক। এমট প্ে঱য়ে দুজন িরকার। একজন ময়ন ময়ন একমট
সিংেযা ধ্রয়ব। আর মিেীয়জন মকছু রশ্ন কয়র প্সই সিংেযামট প্বর করয়ব। েয়ব 'প্োমার সিংেযামট
কে?' - এমন রশ্ন মকন্তু সরাসমর করা যায়ব না। রশ্নমট হয়ে:
সিংেযামট মক N (একমট সিংেযা)-এর প্র্য়য় বড়, প্ছাট নামক সমান?

আর সিংেযামট মকন্তু একমট মনমিচষ্ট সীমার ময়ধ্য হয়ে হয়ব (প্যমন 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

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্েয়ক 500। োরপর 1 প্েয়ক 250, 1 প্েয়ক 125, 1 প্েয়ক 62, 31 প্েয়ক 62, 46 প্েয়ক 62,
46 প্েয়ক 54।

সিংেযা েুুঁয়জ প্বর করার এই পদ্ধমেয়ক বয়঱ বাইনামর সার্চ। র্য়঱া আমরা োহয়঱ অযা঱গ্মরিমমট
ম঱োর প্র্ষ্টা কমর:
বাইনামর সার্চ (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-প্ে না োয়ক েেন কী হয়ব? প্সমটও
আমরা প্িেব। সিংেযামট যমি েুুঁয়জ পাওয়া না যায় েয়ব প্সমট জামনয়য় প্িওয়ার বযবস্থা রােয়ে হয়ব
আমায়ির প্রাগ্রায়ম।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


আমায়ির প্যয়হেু প্োুঁজার কাজমট বারবার করয়ে হয়ব, আমায়িরয়ক একমট ঱ুপ বযবহার করয়ে হয়ব।
঱ুয়পর প্ভের আমরা প্োুঁজােুুঁমজ করব আর সিংেযামট প্পয়য় প্গ্য়঱ (মকিংবা সিংেযামট প্নই প্সমট মনমশ্চে
হয়঱) আমরা ঱ুপ প্েয়ক প্বর হয়য় যাব।
while(1) {
mid_indx = (low_indx + high_indx) / 2;
if(num == ara[mid_indx]) {
/* num যমি ara[mid_indx]-এর সমান হয়, েয়ব প্সমট আমরা প্পয়য় প্গ্মছ */
break;
}
if(num < ara[mid_indx]) {
/* num যমি ara[mid_indx]-এর প্ছাট হয়, েয়ব আমরা low_indx প্েয়ক
mid_indx – 1 সীমার ময়ধ্য েুুঁজব। */
high_indx = mid_indx – 1;
}
else {
/* num যমি ara[mid_indx]-এর বড় হয়, েয়ব আমরা mid_indx + 1 প্েয়ক
high_indx সীমার ময়ধ্য েুুঁজব। */
low_indx = mid_indx + 1;
}
}
বাইনামর সায়র্চর প্রাগ্রাম আমরা ম঱য়ে প্ফ঱঱াম। েুবই সহজ-সর঱ প্রাগ্রাম। সিংেযামট েুুঁয়জ না
পাওয়া পযচন্ত ঱ুপমট র্঱য়েই োকয়ব, কারণ আমরা ম঱য়েমছ while(1) আর 1 সব সময় সমেয।
মকন্তু সিংেযামট যমি ara-প্ে না োয়ক েয়ব ঱ুপমট র্঱য়েই োকয়ব এবিং আমায়ির প্রাগ্রাম কেয়না
বন্ধ হয়ব না। সুেরািং একটা বযবস্থা করা িরকার। আো, আমরা কীভায়ব বুঝব প্য সিংেযামট ara-প্ে
প্নই? প্োমরা ইমেময়ধ্য ঱ক্ষ কয়রছ প্য আমরা রমেবার সায়র্চর সীমাটা অয়ধ্চক কয়র প্ফম঱। এভায়ব
র্঱য়ে োকয়঱ একসময় ওই সীমার প্ভের একমট সিংেযাই োকয়ব। েেন low এবিং high-এর
মান সমান হয়ব। আর রমেবার প্যয়হেু হয় low-এর মান বাড়য়ছ নাহয় high-এর মান কময়ছ,
সুেরািং প্যবার low আর high সমান হয়ব, োর পয়রর বার low-এর মান high-এর মায়নর
প্র্য়য় প্বমল হয়ব। েেন আমরা বুঝব প্য সিংেযামট েুুঁয়জ পাওয়া যায়মন। সুেরািং যেক্ষণ low <=
high েেক্ষণ ঱ুপমট র্঱য়ব। ঱ুপ প্েয়ক প্বর হয়য় যমি প্িমে low > high, েেন বুঝব প্য
সিংেযামট েুুঁয়জ পাওয়া যায়মন, আর না হয়঱ বুঝব সিংেযামট েুুঁয়জ পাওয়া প্গ্য়ছ এবিং-এর মান
ara[mid_indx]।

োহয়঱ পুয়রা প্রাগ্রামমট এবায়র ম঱য়ে প্ফ঱া যাক:


Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
#include <stdio.h>
int main()
{
int ara[] = {1, 4, 6, 8, 9, 11, 14, 15, 20, 25, 33 83, 87, 97, 99, 100};
int low_indx = 0;
int high_indx = 15;
int mid_indx;
int num = 97;
while (low_indx <= high_indx) {
mid_indx = (low_indx + high_indx) / 2;
if (num == ara[mid_indx]) {
break;
}
if (num < ara[mid_indx]) {
high_indx = mid_indx – 1;
}
else {
low_indx = mid_indx + 1;
}
}
if (low_indx > high_indx) {
printf("%d is not in the array\n", num);
}
else {
printf("%d is found in the array. It is the %d th element of the
array.\n", ara[mid_indx], mid_indx);
}
return 0;
}
প্রাগ্রাম: ৮.১
এবার প্োমায়ির কাজ হয়ব বাইনামর সায়র্চর জনয একমট আ঱ািা ফািংলন প্঱ো।

আর বাইনামর সার্চ কীভায়ব কাজ কয়র, প্সমট এোয়ন সুন্দর কয়র অযামনয়মলয়নর মাধ্যয়ম প্বাঝায়না
হয়য়য়ছ:
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)। এ বইন এর ম মজমন঴ আমরা
মানঝ মানঝ বযব঵ার রন঱ও মবস্তামর আন঱াচনায় যাব না।

এবানর প্রাগ্রাম ম঱খার পা঱া।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


#include <stdio.h>
int main()
{
char country[] = {'B', 'a', 'n', 'g', 'l', 'a', 'd', 'e', 's', 'h', '\0'};
printf("%s\n", country);
return 0;
}
প্রাগ্রাম: ৯.১

এখানন ঱ক্ষ নরা প্য 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;
}
প্রাগ্রাম: ৯.৬

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


এই প্রাগ্রামমিও চ঱ন র্া নব য ক্ষণ না ুমম ctrl + z (মানন ম -প্বানডথ ctrl ও z এ ঴নঙ্গ)
চানপা, ম঱নানের জনয ctrl + d। ctrl + z বা ctrl + d মেন঱ gets ফািংলনমি NULL মরিানথ
নর। আনর মি মজমন঴ ঱ক্ষ নরা প্য আমম char ara[100]; মডনেয়ার নর শুরুন ই বন঱
মেনয়মে মরিংনয়র ঴নবথাচ্চ তের্ঘথয ঵নব 100।

আনর মি বযাপার। string_length ফািংলননর প্ভ নর আ঴ন঱ দুমি প্ভমরনয়ব঱ বযব঵ার না


রন঱ও চন঱। আমরা ফািংলনমি এভানবও ম঱খন পামর:

int string_length(char str[])


{
int i;
for(i = 0; str[i] != '\0'; i++);
return i;
}

এখন প্ ামানের াজ ঵নব string_length ফািংলনমি for ঱ুপ বযব঵ার না নর while ঱ুপ
বযব঵ার নর প্঱খা।

আমানের পরব থী প্রাগ্রানমর ঱ক্ষয ঵নব দুমি মরিং প্জািা প্েওয়া বা concatenate রা। প্যমন
এ মি মরিং যমে ঵য় " bangla" এবিং আনর মি মরিং যমে ঵য় " desh" নব দুমি প্জািা মেনয়
"bangladesh" বানান ঵নব।

রর্নমই মরিংগুন঱া মডনেয়ার নর প্নই: char str1[] = "bangla", str2[] = "desh",


str3[12];

আমানের ঱ক্ষ ঵নে str3প্ " bangladesh" রাখা। খুব ঴ুমবধ্া ঵ন া যমে আমরা এমন ম েু
ম঱খন পার াম:
str3 = str1 + str2;

ম ন্তু 'ম঴'-প্ এভানব দুমি অযানর বা মরিং প্যাে রা যায় না। াই এ মি এ মি নর str1-এর
উপাোনগুন঱া str3প্ মপ রন ঵নব, ারপর str2-এর উপাোনগুন঱া str3প্ মপ রন
঵নব।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


#include <stdio.h>
int main()
{
char str1[] = "bangla", str2[] = "desh", str3[12];
int i, j, length1 = 6, length2 = 4;
for(i = 0, j = 0; i < length1; i++, j++) {
str3[j] = str1[i];
}
for(i = 0, j = 0; i < length2; i++, j++) {
str3[j] = str2[i];
}
str3[j] = '\0';
printf("%s\n", str3);
return 0;
}
প্রাগ্রাম: ৯.৭

প্রাগ্রামমি চা঱াও। আউিপুি ী আ঴া উমচ ? bangladesh। ম ন্তু আউিপুি এন঴নে desh।
আ঴ন঱ আমরা ম েু এ িা ভু঱ নরমে। প্ ামানের এখন প্঴ই ভু঱মি মি রার প্চষ্টা রা উমচ ।
অন্ত ম মরল মমমনি প্চষ্টার পরও যমে ভু঱ প্বর রন না পানরা নব আবার বইমি পিা শুরু নরা।

for(i = 0, j = 0; i < length1; i++, j++) {


str3[j] = str1[i];
}

এখানন আমরা শুরুন ই i-এর মান 0 নরমে ারণ iপ্ আমরা str1-এর ইননডে ম঵ন঴নব বযব঵ার
রব। jপ্ বযব঵ার রব str3-এর ইননডে ম঵ন঴নব াই j-এর মানও 0 রা ঵নয়নে। ারপর
এন এন str1-এর উপাোনগুন঱া str3প্ মপ রমে এবিং i ও j-এর মান 1 নর বািামে
(i++, j++)। ঱ুপ প্ল঳ ঵ওয়ার পনর i ও j রন যন র মান ঵নব 6।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


এখন পনরর ঱ুনপ আমরা str2প্ str3-প্ মপ রব। এখন str2-এর ইননডে ম঵ন঴নব যমে i
বযব঵ার মর, নব ার মান ঱ুনপর শুরুন ই আবার 0 নর মেন ঵নব। আমরা প্঴মি নরমে। ম ন্তু
ভু঱ নরমে প্঴ই ঴নঙ্গ j-এর মান 0 নর মেনয়। j-এর মান 0 রন঱ প্ া str2-এর রর্ম (0 ম)
উপাোন str3-এর রর্ম ( 0 ম) উপাোন ম঵ন঴নব মপ ঵নব, ম ন্তু আমরা প্ া প্঴মি চাই না।
আমরা চাই str2-এর রর্ম উপাোন ঵নব str3-এর ঴প্তম উপাোন। া঵ন঱ j-এর মান 0 রা
যানব না। াই মে ীয় ঱ুপমি ঵নব এমন:

for(i = 0; i < length2; i++, j++) {


str3[j] = str2[i];
}

আনর মি বযাপার ঱ক্ষ নরা। মে ীয় ঱ুপ প্র্ন প্বর ঵বার পনর str3-এর প্ল঳ র্ঘনর '\0' অযা঴াইন
নরমে (str3[j] = '\0';) যান মরিংিা প্য ওখাননই প্ল঳, এমি ম্পাই঱ার বুঝন পানর।

আমানের পরব থী প্রাগ্রাম ঵নব দুমি মরিংনয়র মনধ্য ু঱না রা। অর্থাৎ দুমি মরিংনয়র মনধ্য প্োি, বি,
঴মান মনণথয় রা। ঴িংখযার প্ক্ষনে প্যমন >, <, >=, <=, == মচহ্ন বযব঵ার নর ু঱না রা যায়,
মরিংনয়র প্ক্ষনে প্঴ই বযবস্থা নাই। ম ন্তু মরিংনয়র প্ক্ষনে রায়ই আমানের এই ু঱না রার ের ার
পিনব। প্যমন ধ্নরা, ঴মিথিংনয়র প্ক্ষনে প্যখানন প্োি প্র্ন বি বা বি প্র্ন প্োি ক্রমানু঴ানর
঴াজান ঵নব (alphabetical ordering)। মরিংনয় প্োি-বি আবার ী? প্বমল র্া বন঱ বযাখযা
না নর ম েু উো঵রণ মেই, া঵ন঱ই বুঝন পারনব। 'aaa'-এর প্চনয় 'aab' বি। আবার 'ba' ও
'ca'-এর মনধ্য 'ca' বি। এই প্রাগ্রানম আমরা এ মি ফািংলন ম঱খব string_compare() প্যমির
াজ ঵নব দুমি মরিংনয়র মনধ্য ু঱না নর রর্মমি মে ীয়মির প্চনয় বি ঵ন঱ 1 মরিানথ রনব, প্োি
঵ন঱ - 1 আর দুমি ঴মান ঵ন঱ 0 মরিানথ রনব। ফািংলননর মরিানথ িাইপ ঵নব ইমন্টজার এবিং
পযারামমিার ঵নব দুমি char িাইনপর অযানর।

int string_compare(char a[], char b[])


{

আমানের মূ঱ াজ ঵নব 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 মরিানথ রব।
ান বুঝব প্য মরিং দুমি ঴মান।

int string_compare(char a[], char b[])


{
int i, j;
for(i = 0; a[i] != '\0' && b[i] != '\0'; i++) {
if(a[i] < b[i]) {
return -1;
}
if(a[i] > b[i]) {
return 1;
}
}
if(string_length(a) == string_length(b)) {
return 0;
}
if(string_length(a) < string_length(b)) {
return -1;
}
if(string_length(a) > string_length(b)) {
return 1;
}
}

মরিংনয়র প্বম঴ মজমন঴গুন঱া মননয় আন঱াচনা র঱াম। নব মজার বযাপার ঵নে ম঴ ঱যাঙ্গুনয়নজ
এ মি প্঵ডার ফাই঱ আনে, যার নাম 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;
}
}

প্ ামরা ম test-র঵঴য ঴মাধ্ান রন প্পনরে? প্ ামরা প্চষ্টা রন র্ান া আর আমম এখন


প্রাগ্রামমি অনযভানব ম঱খব (এর ঴নঙ্গ test র঵ন঴যর প্ াননা ঴ম্প থ প্নই প্঴মি বন঱ রাখ঱াম)।

এখন আমম প্যমি রব, প্রাগ্রামমি এমনভানব ম঱খব যান 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

মরিং-঴িংক্রান্ত ঴ম঴যাগুন঱া প্েখন জমি঱ মনন ঵ন঱ও আ঴ন঱ ঴঵জ। আর এ ধ্রননর ঴ম঴যা
঴মাধ্াননর য চচথা রনব েক্ষ া বািনব।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রাগ্রামভিং ফইঃ অধযায় দ঱
প্ভৌমরক ঳িংখ্যা
প্ভৌমরক ঳িংখ্যা ( Prime Number) গমিতমফদদদয কাদে প্মভন মরয়, প্তভনই প্রাগ্রাভাযদদয঑
অদনক মরয় একমি মফলয়। প্তাভাদদয মফমবন্ন ঳ভদয় এই প্ভৌমরক ঳িংখ্যা঳িংক্রান্ত নানা ঳ভ঳যায
঳ভাধান কযদত ঴দফ। প্ভৌমরক ঳িংখ্যা মিমন঳মি প্ম গুরুত্ব঩ূিণ প্঳মি প্ফাঝায আদযকমি উ঩ায় ঴দরা,
এই ফইদত মফলয়মিয িনয আমভ একমি ঩ৃথক অধযায় ফযাদ্দ কদযমে। প্ভৌমরক ঳িংখ্যা ঴দে প্঳঳ফ
঳িংখ্যা মাযা 1-এয প্েদয় ফড় ঩ূিণ঳িংখ্যা এফিং প্঳মি প্কফর 1 এফিং ঑ই ঳িংখ্যামি দ্বাযাই মনঃদ঱দল
মফবািয ঴দফ। খ্ুফই ঳঴ি-঳যর মিমন঳। এখ্ন প্কাদনা ঳িংখ্যা প্ভৌমরক মক না প্঳মি প্ফয কযায িনয
একমি প্রাগ্রাভ মরদখ্ প্পরা মাক।
#include <stdio.h>
int is_prime(int n)
{
int i;
if (n < 2) {
return 0;
}
for(i = 2; i < n; i++) {
if(n % i == 0) {
return 0;
}
}
return 1;
}

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-এয প্েদয় প্োি ঳িংখ্যা এফিং তাদদয
গুমিতকগুদরা আভযা ইমতভদধযই ফাদ মদদয় মদদয়মে।

আদযা ঩মযষ্কাযবাদফ প্ফাঝায িনয উইমকম঩মডয়ায এই অযাদনদভ঱নমি প্দখ্দত ঩াদযা ( এখ্াদন 2


প্থদক 120 ঩মণন্ত ঳িংখ্যাগুদরায ভদধয প্ভৌমরক ঳িংখ্যাগুদরা প্ফয কযা ঴দয়দে):

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


এফাদয ইভমিদভি কযায ঩ারা। আভযা তামরকা যাখ্ায িনয একমি অযাদয ফযফ঴ায কযফ। ধযা মাক,
তায নাভ ঴দে ara। অযাদযমি এভনবাদফ ততময কযদত ঴দফ, মাদত প্কাদনা একমি ঳িংখ্যা n-এয
অফস্থা (অথণাৎ প্঳মি প্ভৌমরক মক না) ara[n] মদদয় রকা঱ কযা মায়। মমদ ara[n]-এয ভান 1 ঴য়,
তদফ n প্ভৌমরক ঳িংখ্যা আয ara[n]-এয ভান 0 ঴দর n প্ভৌমরক ঳িংখ্যা নয়। ইভমিদভদি঱দনয
আদগ অযারগমযদভিা প্রখ্া মাক:
ধা঩ ১: ধযা মাক, অযাদযদত nমি উ঩াদান আদে। শুরুদত অযাদযয ঳ফ উ঩াদাদনয ভান 1 ফ঳াই।
ধা঩ ২: অযাদযয রমতমি উ঩াদাদনয িনয প্঳মিয ভান 1 মক না তা ঩যীক্ষা কময। মমদ 1, ঴য় তদফ
তৃতীয় ধাদ঩ মাই।
ধা঩ ৩: ঑ই ঳িংখ্যাদক 2 প্থদক m ঩মণন্ত ক্রমভক ঳িংখ্যাগুদরা মদদয় গুি কময এফিং গুিপর মত ঴দফ,
অযাদযয তত নম্বয উ঩াদাদন ঱ূনয (0) ফ঳াই। অথণাৎ প্঳মি প্ম প্ভৌমরক নয় তা মেমিত কময। এখ্াদন
m-এয ভান এভন ঴দফ প্মন ঐ ঳িংখ্যায ঳দে m-এয গুিপর n-এয প্েদয় প্োি ফা ঳ভান ঴য়।

এখ্ন প্তাভযা প্কাডমি মরখ্ায প্েষ্টা কদযা। কভ঩দক্ষ মতন ঘণ্টা মনদি প্েষ্টা কযায ঩য এফাদয আভায
প্কাড প্দদখ্া।
#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 পািং঱দন আয঑ প্ফ঱ মকেু উ঩ায় আদে ইমপম঳দয়মি ফাড়াদনায। এয ভদধয একমি ঴দে
গুদিয ফদদর প্মাগ কযা। প্তাভযা প্঳মি কযায প্েষ্টা কদযা।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রাগ্রামভিং ফইঃ অধযায় এগায
আফাযও অযারয
গমিত ম঱ক্ষরেয জনয প্রখা প্রাগ্রাভমিয েথা ভরন আরে প্তা? প্঳ই প্ম আভযা মতনমি অযারয ফযফ঴ায
েরয প্রাগ্রাভ মররখমেরাভ োত্র-োত্রীরদয গমিত ঩যীক্ষায প্ভাি নম্বয প্ফয েযায জনয। ভরন না
থােরর প্রাগ্রাভমি আফায প্দরখ নাও।

আভযা রথভ ঳াভময়ে ঩যীক্ষায নম্বয প্যরখমেরাভ এেমি অযারযরত, মিতীয় ঳াভময়ে ঩যীক্ষায নম্বয
আরযেমি অযারযরত, পাইনার ঩যীক্ষায নম্বয আরযেমি অযারযরত আয প্ভাি নম্বয আযও এেমি
অযারযরত – প্ভাি চাযমি অযারয ফযফ঴ায েরযমে। প্তা এখন মমদ ঩ুরযা স্কুররয পরাপর মনিণরয়য জনয
প্রাগ্রাভ প্রখরত ঴য়, তরফ ঳ফ ক্লার঳য ঳ফ োত্র-োত্রীয ঳ফ মফলরয়য ঳ফ ঩যীক্ষায জনয এেমি েরয
অযারয ফযফ঴ায েযা খুফই ঝারভরায োজ ঴রয় মারফ। তাই প্ভািাভুমি ঳ফ প্রাগ্রামভিং রযাঙ্গুরয়রজই
ভামি-ডাইরভন঱নার অযারযয ফযফস্থা আরে। এতক্ষি আভযা প্ম঳ফ অযারয ফযফ঴ায েরযমে, তায
঳ফগুররাই মের এে ডাইরভন঱রনয অযারয।

এখন ওই প্রাগ্রাভমি আভযা এেিু অনযবারফ মরখফ, এেমি ভাত্র অযারয ফযফ঴ায েরয। আ঩াতত েষ্ট
েভারনায জনয ধময ক্লার঳ প্ভাি দ঱জন োত্র-োত্রী আরে। মনরচয েরে তারদয নম্বযগুররা মরখরাভ:

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

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


marks

Total Marks ঳ামযয ঘযগুররা পাাঁো, োযি এগুররা এখরনা ম঴঳াফ েমযমন। রথভ ঳াভময়ে
঩যীক্ষায 25%, মিতীয় ঳াভময়ে ঩যীক্ষায 25% এফিং পাইনার ঩যীক্ষায 50% নম্বয প্মাগ েরয
প্ভাি নম্বয প্ফয েযরত ঴রফ। এখন প্দরখা, আভারদয েরে তারদয নম্বযগুররা যাখরত ঴রয়রে 4 িা
঳াময (row) এফিং 10 িা েরারভ। আভযা আরগ প্মই প্রাগ্রাভ মররখমেরাভ, তারত রথভ প্যা-এয
জনয এেমি অযারয, মিতীয় প্যা-এয জনয এেমি, তৃতীয় প্যা-এয জনয এেমি এফিং চতুথণ প্যা-এয
জনয এেমি অযারয ফযফ঴ায েরযমেরাভ। এখন ফযফ঴ায েযফ এেমি 2-D অযারয (িু ডাইরভন঱নার
অযারয)।

2-D অযারয মডরক্লয়ায েযায মনয়ভ ঴রে: data_type array_name [number of


rows][number of columns];
প্মভন ও঩রযয েেিা মমদ marks নারভয এেমি 2-D অযারযরত যাখরত চাই, তরফ মরখরত ঴রফ:
int marks[4][10];

এখন, অযারযয রথভ প্যা ঴রে 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] ঘরয োয এফিং প্োন ঩যীক্ষায নম্বয আরে?

marks[0][0]-এ থােরফ প্যার 1-এয রথভ ঳াভময়ে ঩যীক্ষায নম্বয আয marks[1][9]-এ


থােরফ প্যার 10-এয মিতীয় ঳াভময়ে ঩যীক্ষায নম্বয। অযারযরত ঳িংখযাগুররা এবারফ যাখরত ঩াময:

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]);
}
}

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


এবারফ প্নরেড রুর঩য ঳া঴ারময আভযা ইন঩ুি মনরত ঩াময। রথভ রু঩মি ফযফ঴ায েযা ঴রয়রে প্যা-
এয জনয আয মিতীয় রু঩মি েরারভয জনয। মখন i = 0, অথণাৎ রথভ প্যা-এয জনয আভযা j = 0
প্থরে 9 ঩মণন্ত ঳ফ ঘরযয ইন঩ুি মনমে, তায঩য আফায i = 1 (মিতীয় প্যা)-এয জনয j = 0 প্থরে
9 (রমত েরাভ) ঩মণন্ত ঳ফ ঘরযয ভান ইন঩ুি প্নওয়া ঴রে।

এখন আভযা 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 অযারয ফযফ঴ায েরয প্তাভারদয দুমি প্রাগ্রাভ মরখরত ঴রফ। রথভ প্রাগ্রাভমিয োজ ঴রফ
রমতমি প্যা-এয ঳িংখযাগুররায প্মাগপর প্ফয েযা আয মিতীয় প্রাগ্রারভয োজ ঴রফ রমতমি েরারভয
঳িংখযাগুররায প্মাগপর প্ফয েযা।

রথভ প্রাগ্রারভয আউি঩ুি ঴রফ এই যেভ:


Sum of row 1: 34
Sum of row 2: 29
Sum of row 3: 27
Sum of row 4: 22
Sum of row 5: 21
মিতীয় প্রাগ্রারভয আউি঩ুি ঴রফ এই যেভ:
Sum of column 1: 23
Sum of column 2: 22
Sum of column 3: 20
Sum of column 4: 31
Sum of column 5: 37

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্তাভারদয অরনরেযই মিতীয় প্রাগ্রাভমি মরখরত এেিু ঳ভয় রাগরত ঩ারয, মেন্তু ঴তা঱ায প্োন
োযি প্নই। ঳ভয় রাগাই স্বাবামফে। এখন মনরচয েেমি প্দরখা। আরগয েেমিয ঳রঙ্গ-এয প্োথায়
প্মন এেিু মভর যরয়রে!

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 মেিংফা
আযও প্ফম঱ ডাইরভন঱রনয ঴রত ঩ারয, তরফ প্঳গুররা মনরয় এই ফইরত আয আররাচনা েযফ না।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রাগ্রাম৏িং ্ইঃ অ৉যায় ্া৑
্াই৊াম৑ ৕িংখ্যা
আ৏৑া প্ া দৈ৊মি৊ জী্ন৊ ৊া৊া ম৖৕া্-ম৊কান৓৑ জ৊য ৈ৓মৎমিক (d e c i ma l ) ৕িংখ্যা
োদ্ধম ্য্৖া৑ কম৑। মকন্তু কমিউটা৑ ্য্৖া৑ কন৑ দুইমৎমিক ্া
্াই৊াম৑ (b i n a r y ) ৕িংখ্যা োদ্ধম । ৈ৓মৎমিক ৕িংখ্যা োদ্ধম ন আনে প্৏াট ৈ৓মট অঙ্ক 0 ,
1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 আ৑ ্াই৊াম৑ন দুমট, 0 আ৑1 । আ৏৑া এই অ৉যানয়
্াই৊াম৑ ৕িংখ্যা োদ্ধম ৑ মকেু প্৏ৌম৒ক মজম৊৕ প্ৈখ্্ আ৑ ্াই৊াম৑ প্েনক প্েম৕৏া৒ এ্িং প্েম৕৏া৒
প্েনক ্াই৊াম৑ ৕িংখ্যায় রূোান্ত৑ ক৑া ম৓খ্্। প্েম৕৏ান৒ আ৏৑া গণ৊া কম৑ এৎান্: 0 , 1 , 2 ,
3 , 4 , 5 , 6 , 7 , 8 , 9 , 1 0 , 1 1 , 1 2 , … 19, 20, 21, …, 98, 99, 100,
101 ...। প্ৈনখ্া, ৐খ্৊ই আ৏৑া ো৊ মৈনক৑ ঘন৑ (একনক৑ ঘন৑) ৈ৓মট অঙ্ক ্য্৖া৑ কন৑
প্ৌম৒, খ্৊ া৑ ্াাঁনয় ৈ৓নক৑ ঘন৑৑ অনঙ্ক৑ ৏া৊ এক ্াড়াই (আ৑ ৐মৈ ৊া োনক
া৖ন৒ 1 ্৕াই ্া 0 -এ৑ ৕নে 1 প্৐াগ কম৑ আ৑ মক, কা৑ণ 9 আ৑ 0 9 মকন্তু একই
কো, াই 0 9 -এ৑ ো৑্ম ি ৕িংখ্যা ৖নে 1 0 ), আ্া৑ ৈ৓নক৑ ঘন৑ 0 প্েনক 9 ৕্ অঙ্ক
্য্৖া৑ কন৑ প্ৌ৒া৑ োন৑ ৓ নক৑ ঘন৑৑ অনঙ্ক৑ ৏া৊ এক ্াড়াই (আ৑ ৐মৈ ৊া োনক
া৖ন৒ 1 ্৕াই ্া 0 -এ৑ ৕নে 1 প্৐াগ কম৑ আ৑ মক)। প্ ৏৊ই ্াই৊াম৑ন আ৏৑া গণ৊া ক৑্
এইৎান্: 0 , 1 , 1 0 , 1 1 , 1 0 0 , 1 0 1 , 1 1 0 , 1 1 1 , 1 0 0 0 ,
1 0 0 1 , 1 0 1 0 , 1 0 1 1 ...। প্৐ন৖ ু অঙ্ক ৏াত্র দুমট, াই দুমট অনঙ্ক৑ ্য্৖া৑ ৖নয়
প্গন৒ই ্াাঁ মৈনক৑ ঘন৑ এক ্৕ান ৖য় ্া 0 -এ৑ ৕নে1 প্৐াগ ক৑ন ৖য় (্াাঁ মৈনক প্ া আ৏৑া
ইো৏ ৓ূ৊য ্৕ান োাম৑)।

্াই৊াম৑ ম৕নেন৏ অ্৓য আ৏৑া একনক৑ ঘ৑, ৈ৓নক৑ ঘ৑, ৓ নক৑ ঘ৑, ৕৖নে৑ ঘ৑ ৊া ্ন৒ ্৒্
এনক৑ ঘ৑, দুইনয়৑ ঘ৑, চান৑৑ ঘ৑, আনট৑ ঘ৑। প্ক৊ ্৒ প্ া? একটু মচন্তা কন৑া।

প্েম৕৏ান৒ প্৐৏৊ 1 0 ম৒খ্ন দুমট অঙ্ক ৒ানগ, 1 0 0 ম৒খ্ন ম ৊মট, 1 0 0 0 ম৒খ্ন


চা৑মট, প্ ৏৊ই ্াই৊াম৑ন দুই ম৒খ্ন দুমট (1 0 ), চা৑ ম৒খ্ন ম ৊মট (1 0 0 ), আট ম৒খ্ন
চা৑মট (1 0 0 0 ), প্৔া৒ ম৒খ্ন োাাঁচমট (1 0 0 0 0 ) অঙ্ক ্য্৖া৑ ক৑ন ৖য়। প্েম৕৏ান৒
ো৊ মৈনক৑ রে৏ অঙ্ক (1 0 0 = 1 ) ৖নে একনক৑ ঘ৑, মি ীয় অঙ্ক (1 0 1 = 1 0 ) ৖নে
ৈ৓নক৑ ঘ৑, ৃ ীয় অঙ্ক (1 0 2 = 1 0 0 ) ৖নে ৓ নক৑ ঘ৑, প্ ৏৊ই ্াই৊াম৑ন ো৊মৈনক৑
রে৏ অঙ্ক (2 0 = 1 ) ৖নে এনক৑ ঘ৑, োন৑৑ অঙ্ক (2 1 = 2 ) ৖নে দুইনয়৑
ঘ৑, া৑ো৑ (2 2 = 4 ) ৖নে চান৑৑ ঘ৑, এই ৑ক৏।
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
ৈ৓মৎমিক ৕িংখ্যায় প্৐৏৊ প্৐াগ, ম্নয়াগ, গুণ, ৎাগ ক৑া ৐ায়, প্ ৏৊ই ্াই৊াম৑ন ক৑া ৐ায়।
আ৕ন৒ প্৐াগ ক৑ন োা৑ন৒ মকন্তু ্ামক কাজ ক৑া প্কান৊া ্যাোা৑ ৊য়। আ্া৑ ্াই৊াম৑ন ৎগ্ািংন৓৑
্যাোা৑ আনে, ন্ আম৏ প্ক্৒ োূণি৕িংখ্যা ম৊নয়ই আন৒াচ৊া ক৑্।

প্৐ানগ৑ প্েনত্র ৏ূ৒ ম৖৕া্গুন৒া ৖নে:


0 +0 =0,
0 +1 =1,
1 +0 =1,
1 +1 =10।

প্েম৕৏ান৒৑ ৏ন াই ম৖৕া্, 1 + 1 এ৑ প্েনত্র প্ৈনখ্া, দুইনয়৑ (1 0 ) ৓ূ৊য এ৒ রেন৏, ৖ান


োনক এক, প্৕মট োন৑ ম৒খ্৒া৏।
101 +101 =ক ?
রেন৏ এনক৑ ঘন৑৑ প্৐াগ, 1 + 1 = 1 0 । াই প্৐াগৌন৒৑ এনক৑ ঘন৑ ্৕ন্ 0 আ৑ ৖ান
োক৒ 1 (c a r r y )। এ্ান৑ দুইনয়৑ ঘন৑, 0 + 0 = 0 ,এখ্৊ এই 0 -এ৑ ৕নে
৖ান ৑ 1 প্৐াগ ক৑ন ৖ন্। া৖ন৒ প্৐াগৌন৒৑ দুইনয়৑ ঘন৑ ্৕ন্ 1 । এ্ান৑ চান৑৑ ঘন৑৑
প্৐াগ ক৑ন৒ োাই, 1 + 1 = 1 0 । ৖ান মকেু প্৊ই (প্কান৊া c a r r y প্৊ই)। ৕ু ৑ািং
চান৑৑ ঘন৑ ্৕ন্ 0 আ৑ 1 ্৕ন্ আনট৑ ঘন৑। প্৐াগৌ৒: 1 0 1 0 । এ্ান৑
্ন৒া 1 0 1 1 + 1 0 1 1 =ক ? প্৐াগ কন৑ ৐মৈ প্ৈনখ্া
প্৐াগৌ৒ 1 0 1 1 0 ৖য়ম৊, া৖ন৒ ুম৏ প্৐ানগ প্কাোও ৎু৒ কন৑ে।

ম্নয়ানগ৑ প্েনত্রও প্েম৕৏ান৒৑ ৏ন া ম৖৕া্ ৖ন্।


0 –0 =0,
1 –0 =1,
1 –1 =0,
0 –1 =1।

প্৓ন৔৑মট প্খ্য়া৒ কন৑া, 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

অেিাৎ ্াই৊াম৑ 1 0 1 1 0 = প্েম৕৏া৒ 2 2 । আ৏৑া অন৊কেণ প্কান৊া প্রাগ্রাম৏িং ক৑মে


৊া, চন৒া ্াই৊াম৑ ৕িংখ্যা৑ প্েম৕৏া৒ ৏া৊ প্্৑ ক৑া৑ একমট প্রাগ্রা৏ ম৒নখ্ প্ৌম৒। োদ্ধম প্ া জা৊া
৖নয় প্গনে। এখ্৊ গুরুত্বোূণি রশ্ন ৖নে, ্াই৊াম৑ ৕িংখ্যা ম৑ে ক৑্ কী মৈনয়? আ৏৑া মরিং ্য্৖া৑
ক৑ন োাম৑।

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 ।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


এ্ান৑ আ৏৑া একমট ৒ুনো৑ ৕া৖ান৐য ্াই৊াম৑ ৕িংখ্যা৑ রম মট অনঙ্ক৑ ৕নে 2 ওই অনঙ্ক৑ অ্স্থা৊ গুণ
কন৑ প্৕মট প্েম৕৏ান৒৑ ৕নে প্৐াগ কন৑ প্ৈ্। রে৏ কযান৑ক্টা৑ অেিাৎ b i n a r y [0 ]প্
প্ া '1 ' আনে,-এ৑ অ্স্থা৊ ক ্ন৒া প্ া?-এ৑ অ্স্থা৊ ৖নে 4 । া৑োন৑৑ অনঙ্ক৑ প্্৒ায়
অ্স্থান৊৑ ৏া৊ এক ক৏ন্,এৎান্ এনক্ান৑ প্৓ন৔৑ অনঙ্ক৑ প্্৒ায় অ্স্থা৊ ৖ন্ 0 ।
int position = 4;
int indx;
for(indx = 0; indx < len; indx++) {
decimal = decimal + pow(2, position);
position--;
}

৒ুো প্েনক প্্৑ ৖ন৒ আ৏৑া ৕িূণি ্াই৊াম৑ ৕িংখ্যা৑ প্েম৕৏া৒ ৏া৊ প্োনয় ৐া্। এখ্ান৊
প্ৈনখ্া, আম৏ 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;
}

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রাগ্রা৏ কিাই৒ কন৑ ৑া৊ কন৑া। ই৊োুট ৐মৈ 1 0 1 1 0 ৈাও, া৖ন৒ আউটোুট ক
আন৕? আউটোুট আন৕ 3 1 মকন্তু আউটোুট প্ া আ৕া উমচ 2 2 । া৖ন৒ আ৏৑া প্কাোও ৎু৒
কন৑মে। প্ া৏৑া ম৊নজ ম৊নজ ৎু৒মট প্্৑ ক৑া৑ প্চষ্টা কন৑া।

আ৏ানৈ৑ প্ া আ৕ন৒ p o w (2 , p o s i t i o n )প্ক ্াই৊াম৑ ৕িংখ্যা৑


ওই p o s i t i o n -এ৑ অঙ্কমট মৈনয় গুণ ক৑া৑ কো, প্৕মট আ৏৑া ক৑ন ৎুন৒ প্গমে।
অেিাৎ আ৏ানৈ৑ ম৒খ্ন ৖ন্:

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 v a l u e i s 1 5 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 প্্াো্ কীৎান্?

'0 ' – '0 ' = 4 8 – 4 8 = 0 ।


'1 ' – '0 ' = 4 9 – 4 8 = 1 ।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


্ুমদ্ধটা ৈারুণ ৊া? আ৏৑া b i n a r y [i ] ৊া ম৒নখ্ (b i n a r y [i ] – '0 ') ম৒খ্ন৒ই
োন৏৒া প্৓৔। এ্ান৑ প্রাগ্রা৏ মিকিাক কাজ ক৑ন্ (৐মৈ ৊া ুম৏ ৊ ু৊ প্কান৊া ৎু৒ কন৑ োনকা)।

এ্ান৑ আ৏৑া প্ৈখ্্ প্েম৕৏া৒ প্েনক ্াই৊াম৑ন রূোান্ত৑। একমট উৈা৖৑নণ৑ ৕া৖ান৐য োদ্ধম টা
প্ৈখ্াই। ৉ন৑া 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 ৌািং৓ন৊ ৊া কন৑ আ৒াৈা একমট ৌািং৓ন৊ ক৑ন্।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রাগ্রামমিং বইঃ অধ্যায় প্েররা
মিছু প্রাগ্রামমিং ঴ম঴যা
এই অ‌ধ্যারয় আমরা িরয়িমি ঴঵জ ঴ম঴যা প্েখব ও ঴মাধ্ারনর প্চষ্টা িরব।
আমারের রথম ঴ম঴যা ঵রে, মবমভন্ন ধ্ররনর আিৃমে তেমর িরা। মনরচর ছমবগুর঱া প্েরখা।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্োমারের চারমি প্রাগ্রাম ম঱খরে ঵রব এই চার ধ্ররনর আিৃমে তেমর িরার জনয। প্িব঱ printf
ফািংলন বযব঵ার িরর঱ই ঵রব না, ঱ুপ বযব঵ার িররে ঵রব। ো঵র঱ ঱ুপ বা প্নরেড ঱ুপ, এবিং 'c' ও
' ' (প্ে঴ িযাররক্টার) মরন্ট িরর প্োমরা প্রাগ্রামগুর঱া ম঱রখ প্ফ঱রে পাররা। আরও প্খ঱াধ্ু঱া
িরার ইো ঵র঱ আরও নানান রিম আিৃমে তেমরর প্চষ্টা িররে পার।

পযাম঱ররাম (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) বর঱। মবমভন্ন উপারয় এমি িরা যায়। েরব আমরা এিমি ঴঵জ-
঴র঱ উপারয় ির঱াম।

আমরা প্যভারব িাজমি িররমছ, প্঴মি উইমিমপমডয়ারে চমৎিার এিিা অযামনরমলরনর ঴া঵ারযয
প্েখারনা ঵রয়রছ। অযামনরমলনমি এিবার প্েখর঱ প্বাঝা িমিন, োই আমার পরামলয ঵রে িমপরে
চার-পাাঁচবার এমি প্েরখা।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


এখন প্রাগ্রামমি ম঱খব িীভারব?

রথরম এিমি অযারররে ঴িংখযাগুর঱া রারখা: int ara1[] = {3, 1, 5, 2, 4};


এখন আররিমি অযারর নাও: int ara2[5];
অযাররমি এখরনা খাম঱। োই এিমি প্ভমররয়বর঱ ইনরডক্স 0 ম঱রখ রারখা। int index_2 = 0;
এখন এিমি এিমি িরর ara2প্ে ঴িংখযাগুর঱া রাখরে ঵রব। োর জনয এিমি ঱ুপ েরিার।
for(index_2 = 0; index_2 < 5; index_2++) // মারন 0 প্থরি 4 পযযন্ত রমেমি ঘরর
আমরা ঴িংখযা ব঴াব। এই ঱ুরপর প্ভেরর আররিমি ঱ুপ েরিার প্যমি মেরয় আমরা ara1-এর
঴বরচরয় প্ছাি ঴িংখযা খুাঁরজ প্বর িরব।
minimum = 100000; // এমন এিমি বড় ঴িংখযা অযা঴াইন ির঱াম প্যমি ara1-এর
প্যরিারনা ঴িংখযার প্চরয় বড়।
for (i = 0; i < 5; i++) {
if (ara1[i] < minimum) {
minimum = ara1[i];
}
}
এখন ara1-এর েুদ্রেম ঴িংখযামি minimum এ চর঱ এ঱।
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
প্঴মি এখন ara2 প্ে রামখ: ara2[index_2] = minimum।
঴বরলর঳ ara2-এর ঴ব ঴িংখযা মরন্ট িরর প্েখব।
এবারর চর঱া, পুররা প্রাগ্রামমি ম঱রখ িম্পাই঱ ও রান িরর প্েমখ আউিপুি িী আর঴।

#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

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


মিন্তু আমরা প্ো এমন আউিপুি চাইমন। প্িাথাও প্ো঱মা঱ ঵রয়রছ। এখন আমার প্িারড প্েরখা প্ো
প্িারনা ভু঱ প্বর িরা যায় মি না।

এিমি ঝারম঱া ঵রয়রছ। প্ভেররর ঱ুরপ (প্যখারন ঴বরচরয় প্ছাি ঴িংখযা প্বর িরা ঵য়) মিন্তু ঴ব
঴ময়ই 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, 1) (0, 2) (0, 3) (0, 4) (0, 5) (0, 6) (0, 7) (0, 8)


(1, 0) (1, 2)
(2, 0) (2, 1) R (2, (2, 3)
2)
(3, 0) (3, 2)
(4, 0)
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
(5, 0)
(6, 0)
(7, 0)
(8, 0) (8, 8)

মগ্রডমি প্েরখা। ওপররর এরিবারর বাাঁ মেরির ঘর ঵রে (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;
}
প্রাগ্রাম: ১৩.৪

আউিপুি িী ঵রব প্঴মি মনভযর িররব প্োমার ইনপুরির ওপর। প্যমন:


Please enter the initial position: 2 2
D
R
D
R
S
Final position of the robot is: 4, 4
প্বল ঴঵জ ঴র঱ প্রাগ্রাম। মিন্তু এখন যমে বম঱ প্য মগ্ররড মিছু মিছু ঘরর যাওয়া মনর঳ধ্ এবিং ওই
ঘরগুর঱ারে প্যরে ব঱র঱ প্রাবিমি মিছুই িররব না (অথযাৎ ওই িমান্ডরি উরপো িররব), েখন
আমরা প্রাগ্রামমি িীভারব ম঱খব? প্যমন এিমি উো঵রি মেই। ধ্রা যাি, (0, 4) ঘরমি মনম঳ি
(blocked)। যমে প্রাবরির অবস্থান ঵য় (0, 3) ঘরর এবিং োরি 'R' িমান্ড প্েওয়া ঵য়, েখন

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


োর অবস্থারনর প্িারনা পমরবেযন ঵রব না। িারি এি ঘর ডারন (মারন (0, 4) ঘরর) যাওয়া ঴ম্ভব
নয়।

এই ঴ম঴যার ঴মাধ্ান িররে প্য প্রাগ্রামমি ম঱খরে ঵রব, োরে মিন্তু এিমি 2-D অযারর বযব঵ার
িররে ঵রব। এই অযাররর ঴া঵ারযয আমরা বুঝব প্য প্িান ঘরর যাওয়া যারব আর প্িান ঘরর যাওয়া
যারব না। প্঴মি িীভারব? খুবই ঴঵জ। প্য঴ব ঘরর যাওয়া যারব অযাররর ওই ঘরগুর঱ারে 1 আর
প্য঴ব ঘরর যাওয়া যারব না প্঴গুর঱ারে 0 রাখব।

রথরম 10 x 10 মগ্ররডর জনয এিমি 2-D অযারর মডরেয়ার িমর:


int grid[10][10];

োরপর শুরুরে ধ্রর মনই ঴ব ঘরর যাওয়া যারব।

for (i = 0; i < 10; i++) {


for (j = 0; j < 10; j ++) {
grid[i][j] = 1;
}
}

এখন প্িান প্িান ঘরগুর঱ারে যাওয়া যারব না ো বযব঵ারিারীর িাছ প্থরি ইনপুি মনই:

printf("Please enter the number of blocked cells: ");


scanf("%d", &n);
printf("Now enter the cells: ");
for (i = 0; i < n; i++) {
scanf("%d %d", &x, &y);
grid[x][y] = 0;
}

এখন প্িারনা ঘরর যাওয়া যারব মি না, প্঴মি প্বাঝার জনয এিমি লেয পরীো িরর঱ই ঵রব।

if (grid[x][y] == 1) {
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
যমে ঴েয ঵য়, েরব (x, y) ঘরর যাওয়া যারব।
}

এখন প্োমরা ঴ম্পূিয প্রাগ্রামমি মনরজ মনরজ ম঱রখ প্ফর঱া।


মব.দ্র. ঴মিযিং মনরয় চমৎিার এিমি প্঱খা আরছ এখারন: http://jontrogonok.com/?p=12

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


Collected by: ভারুপ ঴া঳ান

প্রাগ্রামভিং ফইঃ অধযায় প্ ৌদ্দ


প্঱ষলয শুরু
আভযা ফইষয়য প্঱ল অধযাষয় ষর এষ঳মি। প্তাভযা মমদ আষেয অধযায়গুষরা মিকভষতা ঩ষে থাষকা,
উদা঴যণগুষরা মনষে মনষে কমিউটাষয ামরষয় প্দষে থাষকা এফিং মেনই আমভ প্তাভাষদযষক প্কাষনা
প্রাগ্রাভ মনষে মরেষত ফষরমি, প্঳গুষরা মনষে মরোয প্ ষ্টা কষয থাষকা, তা঴ষর প্তাভাষক অমবনন্দন!
তুমভ প্রাগ্রামভিং প্঱োয েনয রস্তুত ঴ষয় প্েি। মমদ ফরষত ঩াযতাভ তুমভ প্রাগ্রামভিং ম঱ষে প্পষরি তষফ
প্তাভাষদযও বাষরা রােত, আভাযও বাষরা রােত, মকন্তু মভথযা কথা ফষর কী রাব?

প্রাগ্রামভিং ঴ষে চায মফলয়। ভুেস্থ কষয ঩যীক্ষায় অষনক বাষরা প্যোল্ট কযা মায়, এভনমক কষরে-
মফশ্বমফদযারষয় প্রাগ্রামভিং ঩যীক্ষাষতও ভুেস্থ কষয অষনষকই প্ফ঱ বাষরা নম্বয ঩ায়। তষফ এই বাষরা
নম্বয ঩াওয়ায ঳ষে বাষরা প্রাগ্রাভায ঴ওয়ায আ঳ষর প্কান ঳িকচ প্নই। প্রাগ্রামভিং ঴ষে একধযষনয
দক্ষতা (skill) এফিং প্কফর মনয়মভত অনু঱ীরষনয ভাধযষভই এই দক্ষতা অেচন কযা ঳ম্ভফ। এয েনয
বাষরা িাত্র ঴ওয়ায দযকায প্নই, মেমনয়া঳ ঴ওয়াযও প্কাষনা দযকায প্নই। দযকায ঴ষে
প্রাগ্রামভিংষক বাষরাফা঳া। মেন তুমভ প্রাগ্রামভিং কযষত ফ঳ষর োওয়াদাওয়ায কথা বুষর মাষফ, যাষত
প্কাষনা প্রাগ্রামভিং ঳ভ঳যা মনষয় কাে শুরু কযষর আয মকিুক্ষণ ঩ষয প্দেষফ ফাইষয প্বাষযয আষরা
পুটষি, মকিংফা বুষর ফাথরুষভয ঳যাষের ঩ষয ক্লাষ঳ ষর মাষফ, তেন ফুঝষফ প্ম তুমভ প্রাগ্রাভায ঴ষয়
মাে।

এেন প্তাভায উম ত ঴ষফ ফইমট আষযকফায ঩ো এফিং ঳ষে ঳ষে প্রাগ্রাভগুষরা আফায কযা। তায঩য
প্তাভযা আযও প্ফম঱ ম঳ ম঱েষত াইষর ম঳-এয প্কান ফই ঩েষত ঩াষযা। প্তাভযা মমদ প্রাগ্রামভিং
কষেষেয ফযা঩াষয উৎ঳া঴ী ঴ও তষফ ম঳ প্লা঳ প্লা঳ (C++) প্঱ো শুরু কষয মদষত ঩াষযা প্কান ফই
প্থষক। আফায োবা (Java), ম঳ ঱া঩চ (C#), ম঩এই ম঩ (PHP) মকিংফা ঩াইথন (Python)
ম঱েষত ঩াষযা। প্কাষনামট ম঱েষতই প্তভন ঝাষভরা প্঩া঴াষত ঴ষফ না কাযণ তুমভ প্রাগ্রামভিংষয়য
প্ভৌমরক মেমন঳গুষরা এতক্ষষণ আয়ষে এষন প্পষরি। ফই ও ওষয়ফ঳াইষটয তামরকা আমভ ঩মযম঱ষ্ট
অিংষ঱ মরষেমি।

একেন দক্ষ প্রাগ্রাভায ঴ষত প্েষর প্ম মেমন঳গুষরা রােষফ তা ঴ষে–


১) এক ফা একামধক প্রাগ্রামভিং রযােুষয়ষে বাষরা দের,
২) বাষরা একমট IDE ফযফ঴াষযয দক্ষতা,
৩) প্রাগ্রামভিংষয়য প্ভৌমরক মফলয়গুষরা ঳িষকচ স্বে ধাযনা,
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
৪) েমণত ও মুমিষত দক্ষতা,
৫) অফষেক্ট ওমযষয়নষটড প্রাগ্রামভিংষয় (OOP– Object Oriented Programming) দক্ষতা,
৬) ডাটা স্ট্রাক ায ও অযারেমযদষভয প্ভৌমরক জ্ঞান ও তা রষয়াষেয ক্ষভতা,
৭) প্মাোষমাষে দক্ষতা (Communication Skills),
৮) ইোযষনট প্ েঁষট অল্প ঳ভষয় প্কাষনা ঳ভ঳যায ঳ভাধান প্ফয কযা ফা দ্রুত প্কান নতুন মফলয় ম঱ষে
প্নওয়ায দক্ষতা,
৯) একমট ঳ভ঳যায ম঩িষন প্রষে থাকায ভানম঳কতা,
১০) প্রাগ্রামভিংষয়য রমত বাষরাফা঳া।

প্তাভাষদয প্রাগ্রামভিং েীফন আনন্দভয় প্঴াক, প্তাভাষদয মনষেয েীফন আনন্দভয় প্঴াক, প্তাভাষদয
কাযষণ প্তাভাষদয আষ঱঩াষ঱য ভানুলষদয েীফন আনন্দভয় প্঴াক। ঳ফাইষক শুষবো।

প্রাগ্রামভিং ফইঃ ঩মযম঱ষ্ট


প্রাগ্রামভিং রমতষমামেতা
প্রাগ্রামভিং রমতষমামেতা ঴ষে প্রাগ্রাভাযষদয ভষধয রোই। এয ভাষন মকন্তু এই নয় প্ম প্রাগ্রাভাযযা
এষক অ঩ষযয ঳ষে ভাযাভাময কযষফ আয প্঱ল ঩মচন্ত প্ম মটষক থাকষফ প্঳-ই মফেয়ী। আ঳ষর
প্রাগ্রামভিং রমতষমামেতা ঴ষে একমট ঩যীক্ষায ভষতা প্মোষন রষতযকষক একমট মনমদচষ্ট ঳ভষয়
মনমদচষ্ট঳িংেযক প্রাগ্রামভিং ঳ভ঳যায ঳ভাধান কযষত প্দওয়া ঴ষফ। প্ম ঳ফষ ষয় প্ফম঱ ঳ভ঳যায মনবুচর
঳ভাধান কযষফ প্঳ মফেয়ী ঴ষফ। আয দুেন মমদ ঳ভান঳িংেযক ঳ভ঳যায ঳ভাধান কষয, তষফ তাষদয
ভষধয প্ম কভ ঳ভষয় কষযষি প্঳ মফেয়ী। তষফ স্কুর-কষরষেয ঩যীক্ষায ঳ষে এয ঩াথচকয ঴ষে,
এোষন ফই প্থষক ঳যা঳ময রশ্ন কযা ঴য় না। তাই ভুেস্থ কযায প্কাষনা ঳ুষমাে প্নই। মফ াযষকযা
অষনক ঳ভয় মনষয় প্রাগ্রামভিং রমতষমামেতায ঳ভ঳যা ততময কষযন। এয ভষধয ঳঴ে ঳ভ঳যাও থাষক
আফায েুফ কমিন ঳ভ঳যাও থাষক।

স্কুর-কষরষেয িাত্রিাত্রীষদয েনয ঳ফষ ষয় ফে রমতষমামেতা ঴ষে আইওআই (IOI–


International Olympiad in Informatics)। 1989 ঳ার প্থষক রমতফিয এ রমতষমামেতা
অনুমিত ঴ষে। এষকক ফিয এষকক প্দষ঱ রমতষমামেতা অনুমিত ঴য়। মফেত ায ফিয মাফৎ
ফািংরাষদ঱ এ রমতষমামেতায় অিং঱গ্র঴ণ কষয আ঳ষি। এেন ঩মচন্ত আভাষদয প্঳যা অেচন ঴ষে
2009 ঳াষর আমফরুর ই঳রাষভয প্যৌ঩য ঩দক (ম঳রবায প্ভষডর)। IOIপ্ত অিং঱গ্র঴ণ কযায েনয
ফািংরাষদ঱ দর েিষনয কােমট কযা ঴য় দুই ধাষ঩। রথষভ মফবােীয় ইনপযষভমটক্স অমরমিয়াড।
তায঩য মফবােীয় ঩মচাষয়য মফেয়ীষদয মনষয় োতীয় ইনপযষভমটক্স অমরমিয়াড অনুমিত ঴য়। োতীয়
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
অমরমিয়াষডয মফেয়ীষদয ভধয প্থষকই দষরয ঳দ঳য ফািাই কযা ঴য়।

মফশ্বমফদযারয় ঩মচাষয়য িাত্রিাত্রীষদয েনয ঳ফষ ষয় ফে প্রাগ্রামভিং রমতষমামেতা ঴ষে এম঳এভ


আইম঳ম঩ম঳ (ACM ICPC– ACM International Collegiate Programming
Contest)। এয েনয দর ফািাই অষনকটা মফশ্বকা঩ পুটফষরয ভষতা ঴য়। রমত ভ঴াষদ঱ প্থষক
রমতষমামেতায ভাধযষভ দর মনফচা ন কযা ঴য়। একমট দষর মতনেন ঳দ঳য এফিং একেন রম঱ক্ষক
থাষকন। ভোয ফযা঩ায ঴ষে দষরয ঳দ঳যষদয মকন্তু কমিউটায মফজ্ঞাষনয ম঱ক্ষাথচী ঴ষত ঴ষফ, এভন
প্কাষনা কথা প্নই। প্মষকাষনা মফবাষেয ম঱ক্ষাথচী এই রমতষমামেতায় অিং঱গ্র঴ণ কযষত ঩াষয।
ফািংরাষদষ঱য রমতষমামেযা ঢাকায় ICPC Regional Contest-এ অিং঱গ্র঴ণ কষয। এিাো
বাযত ও আষ঱঩াষ঱য প্দষ঱য ICPC Regional Contest-এও ফািংরাষদষ঱য রমতষমােীষদয
অিং঱গ্র঴ষণয ঳ুষমাে যষয়ষি এফিং রায়ই আভাষদয প্দষ঱য কষয়কমট দর ওই঳ফ রমতষমামেতায়
অিং঱গ্র঴ণ কষয। ICPC Regional Contest-এ মফেয়ী দরগুষরা ঳ুষমাে ঩ায় ূোন্ত ঩ষফচ
(ICPC World Finals) অিং঱গ্র঴ণ কযায। 1998 ঳াষরয ঩য প্থষক রমত ফিযই ফািংরাষদ঱
প্থষক কভ঩ষক্ষ একমট দর ূোন্ত ঩ষফচ অিং঱গ্র঴ষণয প্মােযতা রাব কষয মা আভাষদয প্দষ঱য
প্রাগ্রাভাযষদয কৃমতষেয ঩ময য় ফ঴ন কষয। প্তাভযা এ মফলষয় উইমকম঩মডয়াষত আযও তথয ঩াষফ
এই মরিংষক: http://en.wikipedia.org/wiki/ACM_ICPC_Dhaka_Site।

এিাো ইোযষনষট অনুমিত ঴য় আযও নানা ধযষনয প্রাগ্রামভিং রমতষমামেতা প্মোষন স্কুর-কষরে-
মফশ্বমফদযারষয়য িাত্র, ম঱ক্ষক ও প্঩঱ােীফীযা অিংশ্রগ্র঴ণ কযষত ঩াষযন। এষদয ভষধয গুরুে঩ূণচ
মতনমট ঴ষে Google Code Jam (http://code.google.com/codejam), Topcoder
(http://www.topcoder.com/tc) এফিং Codechef
(http://www.codechef.com/)। এই রমতষমামেতাগুষরা অতযন্ত কমিন, তাই এষত
অিং঱গ্র঴ষণয েনয ঩মচাপ্ত দক্ষতা থাকষত ঴ষফ। তষফ এ঳ফ রমতষমামেতায় মকন্তু ফািংরাষদষ঱য
প্রাগ্রাভাযযা প্ফ঱ বাষরা অফস্থাষন যষয়ষি।

প্রাগ্রামভিং রমতষমামেতায় বাষরা কযষত ঴ষর প্রাগ্রামভিংষয় দক্ষতায ঩া঱া঩াম঱ অযারেমযদভ ও েমণষত
মফষ঱লবাষফ দক্ষ ঴ষত ঴য়। েযামভমত, কমম্বষনটমযক্স, ঳িংেযাতত্ত্ব ইতযামদয মষথষ্ট জ্ঞাষনয ঩া঱া঩াম঱
঳ভ঳যা ঳ভাধাষনয দক্ষতা অেচন কযষত ঴য়। এেনয প্রো঩োয ঩া঱া঩াম঱ মনয়মভত প্রাগ্রামভিং
঳ভ঳যা ঳ভাধাষনয প্কাষনা মফকল্প প্নই। আয মফমবন্ন ওষয়ফ঳াইষট মনয়মভত প্রাগ্রামভিং রমতষমামেতায
আষয়ােন কযা ঴য় প্মোষন তুমভ অিং঱গ্র঴ণ কযষত ঩াষযা ইোযষনষটয ভাধযষভ।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks


প্রাগ্রামভিং ফইঃ ঩মযম঱ষ্ট
প্রাগ্রামভিং কযামযয়ায
েমণত প্মভন প্কফর েমণতমফষদযাই ফযফ঴ায কষযন না, ফযিং মফজ্ঞাষনয ঳ফ ঱াোয় যষয়ষি এয
ফযফ঴ায, প্তভনই প্রাগ্রামভিংও মকন্তু প্কফর কমিউটায মফজ্ঞানী ফা কমিউটায ইমিমনয়াযষদয েনয
নয়। মফশ্বমফদযারষয় ঩েষত প্েষর মফজ্ঞান ও রষকৌ঱ষরয ঳ফ মফবাষেয ম঱ক্ষাথচীষদয েনয প্রাগ্রামভিং
োনাটা েুফ গুরুে঩ূণচ।

প্঩঱া ম঴ষ঳ষফ প্রাগ্রামভিংষয়য আরাদা একমট গুরুে আষি আভাষদয েনয। প্মষ঴তু মফমবন্ন ধযষনয
রমতষমামেতায ভাধযষভ মনষেষক প্ভষর ধযায অষনক ঳ুষমাে এোষন যষয়ষি ,তাই ফািংরাষদ঱ প্থষক
প্রো঩ো কষয ঳যা঳মযই মফষশ্বয নাভকযা ঳পটওয়যায মনভচাতা রমতিান প্মভন– গুের,
ভাইষরা঳পট, প্প঳ফুক ইতযামদষত কাে কযায ঳ুষমাে ততময ঴ষয়ষি। রমতফিযই ফািংরাষদ঱ প্থষক
কষয়কেন প্রাগ্রাভায মনষেয প্ভধা ও জ্ঞানষক কাষে রামেষয় এই ঳ুষমাষেয ঳দ্ব্যফ঴ায কযষিন।
অষনক প্ক্ষষত্রই ওই঳ফ রমতিাষন কাে কযায েনয আষফদন কযায রষয়ােন ঴য় না, তাযা মনষে
প্থষকই মফমবন্ন প্দষ঱য প্঳যা প্রাগ্রাভাযষদয েুেঁষে প্ফয কষয।

মফশ্বমফেযাত ঳ফ রমতিাষন কাে কযা িাোও প্রাগ্রাভাযষদয েনয আষযকমট ঳ুমফধা ঴ষে
Telecommuting। অথচাৎ প্কাষনা অমপষ঳ না মেষয় কাে কযায ঳ুষমাে। উন্নত মফষশ্বয অষনক
প্কািামন তাষদয মনে প্দষ঱ প্রাগ্রাভাযষদয দুষ্প্রা঩যতায কাযষণ উন্নয়ন঱ীর অথচনীমতয প্দষ঱য
প্রাগ্রাভাযষদয কাষেয ঳ুষমাে প্দয়, আয প্঳ প্ক্ষষত্র মনে প্দষ঱ ফষ঳ই কাে কযা মায়। কাযণ ওই
প্কািামনগুষরা োষন প্ম আভাষদয ভত প্দষ঱য অথচনীমত উন্নয়ন঱ীর ঴ষরও প্রাগ্রাভাযযা প্ভাষটও
অদক্ষ নন, ফযিং মফশ্বভাষনয প্রাগ্রাভায। ফািংরাষদষ঱য প্ফ঱মকিু প্রাগ্রাভায এেন ফািংরাষদষ঱ ফষ঳ই
ইোযষনষটয ভাধযষভ কাে কযষিন আষভমযকা, কানাডা ও ইউষযাষ঩য মফমবন্ন প্দষ঱য ঳পটওয়যায
প্কািামনষত।

আষযকমট ভোয ফযা঩ায ঴ষে, প্কউ মমদ ধযাফােঁধা াকময কযষত না ায় তষফ তায েনয মিরযান্স
প্রাগ্রামভিংষয়য ঳ুষমাে যষয়ষি। ইোযষনষট অষনক ওষয়ফ঳াইট আষি প্মোষন প্িাট-ভাঝাময-ফে
মফমবন্ন ধযষনয ঳পটওয়যাষযয রষেক্ট থাষক প্মগুষরাষত মফড (bid) কষয কাে কযা মায়।
ফািংরাষদষ঱ এেন ঱ত ঱ত প্রাগ্রাভায মিরযান্স প্রাগ্রামভিংষয়য ঳ষে েমেত। এয েনয প্কফর
কমিউটায ও ইোযষনট ঳িংষমাে থাকষরই রষফ। মিরযান্স কাে কযায েনয মফ঩ুর তধষমচয
রষয়ােন। আয ইিংষযমে বালায় প্মাোষমাষেয দক্ষতা থাকষত ঴য়। তষফ ফযমিেতবাষফ আমভ ভষন
কময, িাত্রাফস্থায় এ ধযষনয কাে না কযাই বাষরা। কাযণ িাত্রেীফষন প্রো঩ো কযায ও প্ভৌমরক
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
মফলয়গুষরা আয়ত্ত্ব কযায প্ম ঳ভয় ও ঳ুষমাে প্ভষর, েীফষনয ঩যফতচী ঩মচাষয় কেষনাই প্঳ই ঳ুষমাে
঩াওয়া মায় না। তাই প্তাভাষদয রমত আভায ঩যাভ঱চ থাকষফ প্ম িাত্রেীফষন অথচ উ঩ােচষনয মদষক
ভষনাষমাে না মদষয় র ুয প্রো঩ো এফিং ঳ষে ঳ষে নানা ধযষনয ঳াভামেক ও ঳ািংস্কৃমতক কভচকাষে
েমেত থাকায প্ ষ্টা কযষফ, প্মগুষরা প্তাভায বাষরা রাষে।

঳ফ প্঱ল কথা ঴ষে, প্রাগ্রামভিং এভন একমট কাে প্মোষন ঳ফ ঳ভয়ই প্তাভায মনষেষক উন্নত কযায
঳ুষমাে আষি। তাই প্রো঩ো কযায ভানম঳কতা থাকষত ঴ষফ, ঩েষত ঴ষফ নানা ফই঩ত্র, ােঁটষত ঴ষফ
ইোযষনট। মনষে প্কাষনা ঳ভ঳যায় ঩েষর রথষভই ইোযষনট প্ েঁষট প্দেষফ প্ম ঳ভ঳যামটয ঳ভাধান
ইমতভষধয প্কউ কষয প্যষেষি মক না। মফমবন্ন প্পাযাভ ও ব্লষে ঳াধাযণত প্রাগ্রাভাযযা মকিু কভন
঳ভ঳যায ঳ভাধান মদষয় যাষে। তষফ প্রাগ্রামভিং প্঱োয ঳ভয় মকন্তু ঳ভাধাষনয েনয ইোযষনট ােঁটষফ
না, মনষে প্ ষ্টা কযষফ।

প্রাগ্রামভিং ফইঃ ঩মযম঱ষ্ট


ফই ও ওষয়ফ঳াইষটয তামরকা
তুমভ মমদ ইমতভষধয এই ফইমট ঩ষে প্পষরা এফিং এফাষয বাষরাবাষফ ম঳ ম঱েষত াও, তষফ
Herbert Schildt-এয Teach Yourself C ফইমট ঩েষত ঩াষযা। আফায Brian
Kernighan ও Dennis Ritchie-এয প্রো The C Programming Language
ফইমটও ঩েষত ঩াষযা। প্রেকষদয একেন, Dennis Ritchie, ম঳ রযােুষয়ে মডোইন কষযষিন।
আয প্কউ মমদ প্তাভায কাষি োনষত ায় শুরুষত ম঳ ম঱েষত ঴ষর প্কান ইিংষযমে ফইমট বাষরা তষফ
Stephen G. Kochan-এয Programming in C ফইমটয কথা ফষর প্দষফ। এমট ম঳ প্঱োয
েনয ভৎকায ও ঳঴ে একমট ফই। Schaums Outlines ম঳মযষেয Programming with C
ফইমটও বাষরা। ফইষত র ুয উদা঴যণ আয অনু঱ীরনী আষি।

ম঳ প্঱োয ঩ষয তুমভ ম঳ প্লা঳ প্লা঳ ফা োবা ম঱েষত ঩াষযা। ম঳ প্লা঳ প্লা঳ প্঱োয েনয বাষরা ফই
঴ষে 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) এমট
অযারেমযদষভয প্ভৌমরক মফলয়গুষরা প্঱োয েনয আভায প্দো ঳ফষ ষয় বাষরা ফই।

প্রাগ্রামভিং রমতষমামেতায েনয মকিু মরিংক:

http://projecteuler.net/ এোষন অষনক ভোয ঳ভ঳যা আষি প্মগুষরায প্ফম঱যবােই


প্রাগ্রাভ মরষে ঳ভাধান কযষত ঴য়। এোষন প্রাগ্রাভ েভা প্দওয়া রাষে না, প্কফর প্রাগ্রাভ মদষয় প্ফয
কযা উত্তযটা েভা মদষত ঴য়।
http://www.spoj.pl/ এোষনও অষনক বাষরা ঳ভ঳যা আষি। ঳ভাধান কষয প্রাগ্রাভ েভা
মদষর প্রাগ্রাভ ঳মিক ঴ষয়ষি মক না তা োনা মায়। এই ওষয়ফ঳াইষটয একমট তফম঱ষ্টয ঴ষে ম঳, ম঳
প্লা঳ প্লা঳, োবা, ঩ারচ, ঩াইথন, রুমফ, ম঩এই ম঩ ইতযামদ ফযফ঴ায কষয প্রাগ্রাভ প্রো মায়।
http://uva.onlinejudge.org/ এই ঳াইষট মনয়মভত অনরাইন প্রাগ্রামভিং রমতষমামেতায
আষয়ােন কযা ঴য়। এ িাোও অনু঱ীরষনয েনয র ুয ঳ভ঳যা প্দওয়া আষি। নতুন প্রাগ্রাভাযষদয
েনয এমট প্ফ঱ বাষরা োয়ো।
http://ace.delos.com/usacogate এমট মমদও আষভমযকায ইনপযষভমটক্স অমরমিয়াড
প্েমনিং প্রাগ্রাভ, মকন্তু ঳াইষট প্মষকাষনা প্দষ঱য প্রাগ্রাভাযযাই প্যমেষস্ট্র঱ন কষয অনু঱ীরন কযষত
঩াষয। প্তাভযা মাযা প্রাগ্রামভিং রমতষমামেতায় বাষরা কযষত াও, তাষদয অফ঱যই এোষন অনু঱ীরন
কযা উম ত।
http://www.topcoder.com/tc এোষনও মনয়মভত অনরাইন প্রাগ্রামভিং রমতষমামেতা
অনুমিত ঴য়। এোষন বাষরা পরাপর কযষর আফায টাকাও প্দয় (কী আনন্দ!)। এ িাো এোষন
অষনক বাষরা মটউষটামযয়ার ও আমটচষকর আষি। এমট অমবজ্ঞ প্রাগ্রাভাযষদয েনয প্ফ঱ বাষরা একমট
঳াইট।
http://codeforces.com এই ঳াইষট মনয়মভত মফমবন্ন ধযষনয প্রাগ্রামভিং কষেে ঴য়। অমবজ্ঞ
প্রাগ্রাভাযষদয েনয বাষরা।
http://www.codechef.com এমটও প্রাগ্রামভিং রমতষমামেতায েনয একমট বাষরা
ওষয়ফ঳াইট এফিং অমবজ্ঞ প্রাগ্রাভাযষদয েনয।
http://ioinformatics.org আন্তেচামতক ইনপযষভমটক্স অমরমিয়াষডয অমপম঳য়ার
ওষয়ফ঳াইট।
http://cm.baylor.edu/welcome.icpc এম঳এভ আইম঳ম঩ম঳য অমপম঳য়ার ওষয়ফ঳াইট।

প্রাগ্রামভিং িাোও মফজ্ঞান ও েমণষতয নানা মফলষয়য েনয এই প্পাযাষভ অিং঱গ্র঴ণ কযষত
Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks
঩াষযা:http://matholympiad.org.bd/forum/।

আয ঳ফষ ষয় গুরুে঩ূণচ ওষয়ফ঳াইট ঴ষে www.google.com। এমট আ঳ষর একমট ঳া চ ইমিন।


মেনই প্কান মকিু োনষত ইো কযষফ, google-এ ঳া চ কযষর তুমভ প্঳ই মফলষয়য নানা তথয঳ভৃদ্ধ
ওষয়ফ঳াইষটয মরিংক প্঩ষয় মাষফ।

Wants More Updated Bangla e-books(pdf): www.facebook.com/tanbir.ebooks

You might also like