Uploaded by Fahmid

CP-Computer Programming -Tamim Shariar Subeen-

advertisement
কম্পিউটার প্রাগ্রাম্প িং
তাম্প
শাহম্পরয়ার সুম্পিন
কম্পিউটাররর জন্ম ঵রেম্পি঱ কম্পিউট বা ম্প঵঴াব করার জনয। এখন কম্পিউটারর মানু঳ গান শলারন ,
ম্প঴রনমা শেরখ, ম্পিম্পি শ঱রখ, শফ঴বুক করর, ইন্টাররনট ঘাাঁটাঘাাঁম্পট করর এমনম্পক িুম্পরিামাম্পর পযযন্ত করর
ম্পকন্তু ম্প঵঴াব করর না! অথি কম্পিউটারর কম্পিউট করার মরো আনন্দ আর ম্পকিুরে নে , শ঴ম্পট করার
জনয শযম্পট জানা েরকার, শ঴ম্পট ঵রে একটুখাম্পন শরাগ্রাম্পমিং।
ইউম্পনভাম্প঴যম্পটরে বা বড় বড় ম্পলক্ষারম্পেষ্ঠারন শরাগ্রাম্পমিং শলখারনা ঵ে ম্পকন্তু স্কু঱
-কর঱রজর
শির঱রমরেরাও শয খুব ঴঵রজ শরাগ্রাম্পমিং কররে পারর , শ঴ম্পট অরনরকই জারন না। আম্পম অরনক ম্পেন
শথরকই ভাবম্পি঱াম, স্কুর঱র শির঱রমরেরের জনয এরকম একম্পট বই ম্প঱ম্পখ ; ম্পকন্তু ম্পকিুরেই ঴মে করর
উিরে পারম্পি঱াম না।
ম্পিক এরকম ঴মে আমার িাত্র ঴ুম্পবরনর এই পাণ্ডুম্প঱ম্পপম্পট আমার শিারখ পরড়রি। আম্পম অবাক ঵রে
঱ক্ষ কর঱াম , আম্পম শয ম্পজম্পন঴ম্পট কররে শিরেম্পি঱াম ঴ুম্পবন ম্পিক শ঴ম্পটই করর শররখরি
! স্কু঱কর঱রজর শির঱রমরেরের জনয একম্পট শরাগ্রাম্পমিংরের বই ম্প঱রখরি , খুব ঴঵জ ভা঳াে, খুব ঴ুন্দর করর
গুম্পিরে।
আম্পম োর এই িমৎকার বইম্পটর ঴াফ঱য কামনা কম্পর। শির঱রমরেরা গান শলানা , ম্প঴রনমা শেখা, ম্পিম্পি
শ঱খা, শফ঴বুক করা, ইন্টাররনট ঘাাঁটাঘাাঁম্পট করার পালাপাম্পল আবার কম্পিউটাররর মূ঱ জােগাে ম্পফরর
আ঴ুক – শ঴ই রেযালাে থাক঱াম।
মু঵ম্মে জাফর ইকবা঱
জানুোম্পর, ২০১১।
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.05mingwsetup.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" বানান ঵নব।
রর্নমই মরিংগুন঱া মডনেয়ার
str3[12];
নর প্নই: char str1[] = "bangla", str2[] = "desh",
আমানের ঱ক্ষ ঵নে 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
প্রাগ্রামভিং ফইঃ অধযায় এগায
আফাযও অযারয
গমিত ম঱ক্ষরেয জনয প্রখা প্রাগ্রাভমিয েথা ভরন আরে প্তা? প্঳ই প্ম আভযা মতনমি অযারয ফযফ঴ায
েরয প্রাগ্রাভ মররখমেরাভ োত্র-োত্রীরদয গমিত ঩যীক্ষায প্ভাি নম্বয প্ফয েযায জনয। ভরন না
থােরর প্রাগ্রাভমি আফায প্দরখ নাও।
আভযা রথভ ঳াভময়ে ঩যীক্ষায নম্বয প্যরখমেরাভ এেমি অযারযরত, মিতীয় ঳াভময়ে ঩যীক্ষায নম্বয
আরযেমি অযারযরত, পাইনার ঩যীক্ষায নম্বয আরযেমি অযারযরত আয প্ভাি নম্বয আযও এেমি
অযারযরত – প্ভাি চাযমি অযারয ফযফ঴ায েরযমে। প্তা এখন মমদ ঩ুরযা স্কুররয পরাপর মনিণরয়য জনয
প্রাগ্রাভ প্রখরত ঴য়, তরফ ঳ফ ক্লার঳য ঳ফ োত্র-োত্রীয ঳ফ মফলরয়য ঳ফ ঩যীক্ষায জনয এেমি েরয
অযারয ফযফ঴ায েযা খুফই ঝারভরায োজ ঴রয় মারফ। তাই প্ভািাভুমি ঳ফ প্রাগ্রামভিং রযাঙ্গুরয়রজই
ভামি-ডাইরভন঱নার অযারযয ফযফস্থা আরে। এতক্ষি আভযা প্ম঳ফ অযারয ফযফ঴ায েরযমে, তায
঳ফগুররাই মের এে ডাইরভন঱রনয অযারয।
এখন ওই প্রাগ্রাভমি আভযা এেিু অনযবারফ মরখফ, এেমি ভাত্র অযারয ফযফ঴ায েরয। আ঩াতত েষ্ট
েভারনায জনয ধময ক্লার঳ প্ভাি দ঱জন োত্র-োত্রী আরে। মনরচয েরে তারদয নম্বযগুররা মরখরাভ:
First
terminal
exam
Second
terminal
exam
Final
exam
Total
Roll: Roll: Roll: Roll: Roll: Roll: Roll: Roll: Roll: Roll:
1
2
3
4
5
6
7
8
9
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
83
80
90
88
77
81
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
3
8
2
4
4
7
6
4
1
7
1
4
2
6
8
9
2
5
7
9
9
7
9
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
4
7
8
9
3
7
1
9
9
8
6
4
2
7
2
4
2
5
9
4
1
6
7
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 x 16 +0 x 8 +1 x 4 +1 x 2 +0 x 1
=16 +0 +4 +2 +0 =22
1
+0 x 2
0
=
অেিাৎ ্াই৊াম৑ 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
4
2
1
5
2
1
5/2
7 /2
3 /2
1 /2
/2
/2
/2
ৎাগৌ৒
47
23
11
5
2
1
0
ৎাগন৓৔
1
1
1
1
1
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)
(1, 0)
(2, 0)
(3, 0)
(4, 0)
(0, 1)
(2, 1)
(0, 2)
(1, 2)
R (2,
2)
(3, 2)
(0, 3)
(0, 4)
(0, 5)
(0, 6)
(0, 7)
(0, 8)
(2, 3)
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
Download