Showing posts with label c plus plus language. Show all posts
Showing posts with label c plus plus language. Show all posts

C++ পর্ব ১ – যন্ত্রের মতো চিন্তা করা - বাংলা টিউটোরিয়াল

C++  পর্ব ১ – যন্ত্রের মতো চিন্তা করা
আমরা প্রোগ্রামিং শুরু করার পূর্বে মনে রাখা প্রয়োজন এমন কিছু ধারণার সাথে পরিচিত
হবো।

[সংশোধনীঃ ভুলবশত প্রারম্ভিক পরিচিতির স্লাইডে “পর্ব ১” এবং এই পর্বের স্লাইডে “পর্ব ২” লেখা আছে ভিডিওতে। প্রথম দুইটি ভিডিওতে এই ত্রুটি মার্জনার অনুরোধ রইলো।]

প্রোগ্রামিং অনেকটা রূপকথার রাক্ষসের মতো একটা ব্যাপার। এর দেহ বিশাল, তর্জন-গর্জন বিকট, দাপট অপরিমেয়। তবে তাই বলে তাকে বধ করা খুব কঠিন নয়। রাক্ষসের প্রাণ যেমন তার দেহের বাইরে ছোট্ট ভ্রমরে, প্রোগ্রামিং জানবার চাবিকাঠি তেমনি কম্পিউটার বা যেকোনো রকম যন্ত্রপাতি থেকে অনেক দূরে। সূত্রটি খুব সহজ — জীবনের সকল চিন্তাকে গাণিতিক রূপ দিতে হবে। “ভালো”, “মন্দ”, “উহু”, “ও গো”, “প্রিয়”, ইত্যাদি আবছা আবেগের স্থানে নেই এখানে। ভালো-মন্দ নির্বিশেষে সব চিন্তাকেই সংখ্যার মাধ্যমে প্রকাশ করতে হবে। বাকিটা এই সংখ্যা সামলাতে পারার খেলা।

এই খেলায় পারদর্শী হওয়া খুব কষ্টের নয়। এর জন্য যেটুকু জ্ঞান ও বোধ প্রয়োজন, তা সবারই আছে। সহজ উদাহরণ হিসাবে একটি কুকুর পালন করার কথা ভাবুন। ধরুন আপনাকে দুই দিন বয়সী একটি কুকুরছানা দিয়ে বলা হলো তাকে পেলে বড় করতে। এই অবস্থায় কী চিন্তা ঘুরপাক খাবে আপনার মাথায়? কী কী মৌলিক শর্ত পূরণ করার পর আপনি কুকুরকে নিজের মন মতো প্রশিক্ষণ দিতে পারবেন? এই সময়টুকুতে তার জন্য কী কী বন্দোবস্ত করতে হবে আপনাকে?

এই প্রশ্নগুলোর জবাবের মধ্যেই লুকিয়ে আছে প্রোগ্রামিং-এ হাত দেবার আগে জানা প্রয়োজন এমন কিছু শিক্ষা। ভিডিওতে বিশদ ব্যাখ্যা আছে, আপাতত অনুলিপিতে মূল অংশ তুলে দিচ্ছি।

১) কী ধরণের কুকুর চান? — আপনার কুকুরটি কি শিকারী, না কি নিঃসঙ্গতার মুহূর্তে একান্ত সহচর?
২) আগাম পরিকল্পনা — কুকুর ঘরে আনবার আগে তার থাকার ব্যবস্থা করেছেন কি?
৩) স্থান সংকুলান — আপনার ঘরে যেটুকু বাসযোগ্য জায়গা আছে তার তুলনায় বেশি কুকুরছানা আনেন নি তো?
৪) মৌলিক নির্দেশনা — আপনি কুকুরের সাথে সহজ ভাষায় কথা বলছেন, নাকি তাকে মেঘনাদবধ কাব্য পড়ে শোনাচ্ছেন?
৫) যৌক্তিক প্রত্যাশা — কুকুরের কাছ থেকে আপনি কম্পিউটার চালানোর মতো জটিল কিছু প্রত্যাশা করছেন না তো?
৬) কার্যপরিধি সম্পর্কে সচেতনতা — আপনি এবং আপনার কুকুর নিজের অধিকার এবং স্বত্বের সীমানা জানেন তো?
৭) ত্রুটিমুক্তি — কুকুরের প্রশিক্ষণ শেষ হওয়ার আগেই আপনি তাকে জনারণ্যে উন্মুক্ত করে দেন নি তো?
৮) পরিচ্ছন্নতা — আপনার কুকুরের জৈবিক বর্জ্য নিয়মিত পরিষ্কার করছেন তো?
৯) প্রস্থানের পথ খোলা রাখা — অনেক সাধের কুকুর যদি পাগল হয়ে যায় তাহলে সেটার বিহিত করার প্রস্তুতি আছে তো?
১০) শ্রমবিভাজন — কুকুরকে কোনো কাজ করতে বললে সেই আদেশ বুঝতে এবং পালন করতে প্রস্তুত তো?

এই মৌলিক প্রশ্নগুলোর জবাব না জেনে যেমন কুকুর পালন করা যায় না, তেমনি একই ধারার কিছু মৌলিক বিবেচ্য মাথায় না রেখে প্রোগ্রামিং-এও হাত দেওয়া যায় না।

C++ — পর্ব ২ — আপনার প্রথম প্রোগ্রাম - বাংলা টিউটোরিয়াল

C++ — পর্ব ২ — আপনার প্রথম প্রোগ্রাম


প্রথমেই জরুরী একটি কাজ সেরে নেওয়া প্রয়োজন — যেই প্রোগ্রামটি আপনি লিখবেন, তা যন্ত্রের ভাষায় অনুবাদের প্রক্রিয়া তৈরি করা। এই কোর্সে আমরা www.ideone.com
ওয়েবসাইট ব্যবহার করে প্রোগ্রাম যন্ত্রের ভাষায় অনুবাদ করবো। সেই সম্পর্কেই কিছু প্রাথমিক তথ্য ও নির্দেশনা নিয়ে এই পর্বের প্রথম ভিডিওঃ


প্রোগ্রাম কোথায় প্রকাশ করবো তা তো জানা হলো, এবার জানা প্রয়োজন প্রোগ্রাম কীভাবে লিখবো, এর বর্ণমালা ও ব্যাকরণ কী, ইত্যাদি। এই পর্বের দ্বিতীয় ভিডিওতে সেই ব্যাপারে থাকলো বিস্তারিত লেকচার। (ভিডিওটি দুই অংশে বিশ্লিষ্ট)।




ভাষাশিক্ষা শুরু করা যাক আমাদের পরিচিত দুইটি ভাষার মধ্যে তুলনা দিয়ে। বাংলা ভাষায় বাক্য গঠণের রীতি অনুযায়ী, বাক্যে ক্রিয়াপদ শেষে ব্যবহৃত হয় — যেমন, “আমি ভাত খাই।” একই বাক্যটি যদি ইংরেজিতে গঠিত হয়, তখন তার রূপ দাঁড়ায় — “I eat rice.” ইংরেজি ভাষার ব্যাকরণের রীতি অনুযায়ী verb এর অবস্থান subject এবং object এর মাঝামাঝি। ভাষান্তরের এমন খুব সহজ কিছু নিয়ম যন্ত্রের বেলায়ও প্রযোজ্য। এই নিয়মগুলোকে আমরা কিছু “ধারণা” হিসাবে চিনবো।

ধারণা ১ — সীমানা নির্ধারণ

খেলার মাঠ থেকে রেস্টুরেন্টের টেবিল পর্যন্ত সর্বত্রই আমাদের কার্যকলাপ কিছু নির্দিষ্ট সীমানার মধ্যে আবদ্ধ থাকে। সেই সীমানা কোথাও মাঠে দাগ দিয়ে চিহ্নিত থাকে, কোথাও ঘরের দেওয়াল দিয়ে। প্রোগ্রামের বিভিন্ন অংশের মাঝেও তেমনি কিছু সীমানা নির্দিষ্ট রাখা প্রয়োজন। এই উদ্দেশ্যে ব্যবহৃত হয় second bracket, বা curly braces, বা {} চিহ্ন।

ধারণা ২ — প্রোগ্রাম ও ফাইলের পরিচিতি

প্রোগ্রামিং-এর জন্য আপনি যেই ভাষা ব্যবহার করছেন, প্রথম কর্তব্য হলো যন্ত্রকে সেই ভাষার নাম জানানো। নচেৎ শুদ্ধ ব্যাকরণ বলার পরও যন্ত্র আপনার কথা বুঝতে পারবে না! এ-কারণেই C++ প্রোগ্রামটি যেই ফাইলে লিখবেন তার নামকরণে এক্সটেনশন হিসাবে .cpp থাকতে হবে। শুধু তাই নয়, তাকে আরও জানতে হবে কোন মাধ্যমে আপনি যন্ত্রকে বার্তা পাঠাবেন, কোন মাধ্যমে যন্ত্র আপনাকে জবাব দেবে, ইত্যাদি। সেই উদ্দেশ্যে প্রতিটি প্রোগ্রামের শুরুতেই ব্যবহৃত হয় #include <iostream> নির্দেশনাটুকু। এর অর্থ হলো, আপনি standard input & output ব্যবহার করে বার্তা আদান-প্রদান করবেন।

ধারণা ৩ — যতি চিহ্ন

বাক্যের সমাপ্তি বুঝানোর জন্য আমরা দাড়ি কিংবা full stop বা period ব্যবহার করে থাকেই। যন্ত্রকে দেওয়া প্রতিটি নির্দেশনার শেষেও একই ভাবে বিরাম চিহ্ন ব্যবহার করতে হয়। তফাৎ একটাই, এক্ষেত্রে ব্যবহৃত হয়ে থাকে সেমিকোলন (;) চিহ্নটি।

ধারণা ৪ — দলবদ্ধ নির্দেশনা

ব্যবহারে সুবিধার জন্য প্রায়ই ছোটো ছোটো নির্দেশনাকে দলবদ্ধ করে থাকি আমরা। যেমন, “ব্যাটিং পাওয়ার-প্লে নাও” কিংবা “পদ্মাসন করো” বলা হলে আমরা বুঝে যাই কী কী কাজ করতে হবে। প্রথমবারের পর খুঁটিনাটি বিষয়গুলো আলাদা করে বলে দিতে হয় না। যন্ত্রের ক্ষেত্রেও একই ব্যাপার প্রযোজ্য। C++ এ এই একই কাজ করার জন্য namespace এর ধারণা ব্যবহৃত হয়। প্রোগ্রামের শুরুতেই সে-কারণে লিখতে হয় using namespace std; যার অর্থ দাঁড়ায় “std নামক namespace (যেখানে বিভিন্ন প্রচলিত নির্দেশনার শর্টকাট আছে) ব্যবহার করো”।

ধারণা ৫ — মন্তব্য করা

যেমনটা এর মধ্যেই ধারণা করতে পারছেন, যন্ত্রের ভাষায় কথা বলার জন্য সচরাচর পূর্ণ বাক্য ব্যবহার করতে হয় না। চুম্বক অংশটুকু একটি নির্দিষ্ট ক্রমে লিখলেই চলে। সমস্যা হলো, কিছুদিন বিরতির পর ভাবনার সুতা ছিঁড়ে যাওয়ার সম্ভাবনা প্রবল। এ-কারণেই আছে মন্তব্য করার সুযোগ। এক লাইনের মন্তব্য লিখতে ব্যবহার করুন // চিহ্নটি। যেমন —
// এটি একটি মন্তব্য।
একাধিক লাইনে মন্তব্য করতে চাইলে ব্যবহার করুন /* মন্তব্য লিখুন */ আকারে। যেমন —
/*
মন্তব্য লাইন ১
মন্তব্য লাইন ২
*/

ধারণা ৬ — শ্রমবিভাজন

কোনো মানুষের পক্ষে যেমন সব কাজ একা করা সম্ভব না, ঠিক তেমনি প্রোগ্রাম লিখবার সময়ও সব নির্দেশনা এক জায়গায় লিখলে জটলা পাকিয়ে যাওয়ার ভয় থাকে। সেই লক্ষ্যেই কিছু শ্রমবিভাজন করা হয়, অর্থাৎ প্রোগ্রামের একেক অংশ একেকটি কাজ করে। এটাকে বাস্তবায়ন করা হয় ফাংশন ব্যবহার করে। এই নিয়ে বিশদ আলোচনা পরবর্তীতে হবে। আপাতত জেনে রাখুন যে int SomeFunction() দিয়ে বোঝানো হয় SomeFunction নামে একটি ফাংশনকে, যে তার কাজ সমাপ্ত করার পর একটি integer (“ইন্টিজার”) বা পূর্ণ সংখ্যার মাধ্যমে জবাব দেবে।

ধারণা ৭ — নাটের গুরু

প্রতিটি সুসংগঠিত প্রতিষ্ঠানের একজন নাটের গুরু থাকেন যিনি সব কিছু দেখেন, জানেন, নিয়ন্ত্রণ করেন। প্রোগ্রামেও তেমনটি একটি ভিত্তিমূল থাকে। একে বলা হয় main ফাংশন। প্রতিটি প্রোগ্রামে শুধু এবং শুধুমাত্র একটি main ফাংশন থাকে।

এই প্রাথমিক ধারণাগুলোকে সম্বল করেই আমরা প্রথম প্রোগ্রামটি লিখতে ফেলতে পারি। স্লাইডে দেওয়া কোড এখানে তুলে দিচ্ছি। এই কোড শুধু কপি-পেস্ট করলেই চলবে, ভিডিওতে দেখানো পন্থায় সংশোধন করতে হবে না। কোডটি ব্যবহার করার জন্য ভিডিওতে দেখানো উদাহরণ অনুসরণ করুন।

এই পর্বে এটুকুই। ভালো থাকবেন সবাই।

C++ এ হ্যালো ওয়ার্ল্ড প্রোগ্রামের উদাহরণ কোড
/*  Example of multi-line comment:
    This program outputs the words "Hello World!" in the console.
    There is no need to allocate any memory as no computational
    variable is used.
 */
#include <iostream>  // standard I/O library
 using namespace std;  // allows use of standard definitions
int main()
{
    // ‘cout’ is used for standard output to console
    // cursor is moved to the next line using ‘n’
    cout << "Hello World!n";
    // do not close the console
    system(“PAUSE”);
    // return integer value to ‘main’
    return 0;
}

C++ — পর্ব ৩ — চলক ও গণিত -বাংলা টিউটোরিয়াল

C++ — পর্ব ৩ — চলক ও গণিত

পর্ব ৩, অংশ ১



পর্ব ৩, অংশ ২


ধারণা ৮ — ইনপুট/আউটপুট
আগের পর্বে আমরা কিছু মৌলিক ধারণার মধ্য দিয়ে প্রোগ্রামিং শিখছিলাম। সেটার ধারাবাহিকতায়ই আমরা জানবো ৮ম ধারণা — ইনপুট/আউটপুট। আগের পর্বে আমরা জেনেছি যে cout এবং লেফট-শিফট (<<)। এক্ষেত্রে স্মরণ রাখতে হবে যে যন্ত্র কোনো প্রকার স্থান-সংকট পছন্দ করে না। যেকোনো তথ্য গ্রহণ করার আগে তা সংরক্ষণের স্থান সংজ্ঞায়িত থাকতে হবে। এই লক্ষ্যেই cin >> এর পর একটি চলক ব্যবহার করতে হবে। যেমন, cin >> SomeVariable;

ধারণা ৯ — চলক
এর পরের ধারণা হলো চলক। কোর্সের শুরুতে বলেছিলাম যে আপনাদের মাধ্যমিক বীজগণিত জানা প্রয়োজন। তার কারণ হলো, বীজগণিতের চলকের ধারণাটি প্রায় হুবহু ব্যবহৃত হয় প্রোগ্রামিং-এ। শুধু তাই নয়, প্রোগ্রামিং-এর ক্ষেত্রে একটি চলকের মান হিসাবে সংখ্যার পাশাপাশি বর্ণ বা বাক্যও ব্যবহার করতে পারি!

চলক ব্যবহার যেমন সহজ, তার সংজ্ঞায়ণও তেমনি সহজ। প্রতিটি চলকের চারটি বৈশিষ্ট্য থাকে — ধরণ (type), নাম (name), প্রারম্ভিক (initial) মান, এবং বিশেষ (specific) বৈশিষ্ট্য। পূর্ণ ব্যাকরণ হলোঃ [specifier] type name [initializer]; এক্ষেত্রে উল্লেখ্য যে specifier এবং initializer এর ব্যবহার ঐচ্ছিক।

ধারণা ১০ — তথ্যের প্রকারভেদ
একটু আগেই আমরা জেনেছি যে C++ -এ চলক শুধু সংখ্যা নয়, অন্যান্য ধরণের তথ্যও ধারণ করতে পারে। মোট ১৪ প্রকারের তথ্য সংজ্ঞায়িত করতে পারি আমরা, যার মধ্যে সবচাইতে গুরুত্বপূর্ণ ৫টি হলোঃ

১) ইন্টিজার (Integer) বা পূর্ণ সংখ্যা, সংক্ষেপে int, উদাহরণ 1
২) ডাবল (Double) বা ভগ্নাংশ, সংক্ষেপে double, উদাহরণ 1.0
৩) ক্যারেক্টার (Character) বা অক্ষর, সংক্ষেপে char, উদারহণ ‘a’
৪) স্ট্রিং (String) বা বাক্য, সংক্ষেপে string, উদাহরণ “Sample string”
৫) বুলিয়ান (Boolean) বা হ্যাঁ/না-বাচক, সংক্ষেপে bool, উদাহরণ true/false

 ধারণা ১১ — গাণিতিক সংকেত
C++ -এ গাণিতিক সংকেতের ব্যবহার প্রচলিত গণিতের মতোই। অর্থাৎ, যোগ-বিয়োগ-গুণ-ভাগ করার জন্য প্রচলিত সংকেতগুলোই (+,-,*,/) ব্যবহৃত হয়। তবে, এক্ষেত্রে একটি নতুন সংযোজন আছে। একটি সংখ্যাকে আরেকটি সংখ্যা দিয়ে ভাগ করলে আমরা মূলত “ভাগফল”-কেই ফলাফল হিসাবে চিহ্নিত করি। এক্ষেত্রে উল্লেখ্য যে, “ভাগশেষ”-ও একটি ফলাফল, যার গাণিতিক তাৎপর্য অনেক ক্ষেত্রেই খুব গুরুত্বপূর্ণ। ভাগশেষ নিরূপণের জন্য ব্যবহৃত সংকেত হচ্ছে % (মডুলাস)। অর্থাৎ, 43/20 = 2 এবং 43%20 = 3

ধারণা ১২ — বিশেষ সংকেত সমূহ
কোড লেখার সুবিধার্থে কী-ওয়ার্ডের (keyword) পাশাপাশি কিছু বিশেষ সংকেতও সংরক্ষিত আছে। যেমন, "n" হলো পরের লাইনে যাওয়ার (প্রচলিত অর্থে কী-বোর্ডে Enter চাপা) সমতুল, "t" হলো একটি Tab চাপার সমতুল, ইত্যাদি।

আপনার দ্বিতীয় প্রোগ্রামঃ

কোর্সের ভিডিও লেকচারে একটি ছোট্ট প্রোগ্রাম ব্যবহার করে দেখানো হয়েছে। আপনাদের সুবিধার্থে সেই প্রোগ্রামের কোড এখানে তুলে দিচ্ছিঃ

// Example of basic arithmetic:
#include <iostream> // standard I/O library
using namespace std; // allows use of standard definitions
int main()
{
    // declare some variables
    int a,b,c;
    double d,e;
    // get user input
    cin >> b >> c >> e;
    // do some math
    a = (2*b) / c;
    cout << "a is: " << a << endl;
    d = a / e;
    cout << "d is: " << d << "n";
    return 0;
}

C++ — পর্ব ৪ — যুক্তিবুদ্ধি - বাংলা টিউটোরিয়াল

C++ — পর্ব ৪ — যুক্তিবুদ্ধি




গল্প-সিনেমায় আমরা অনেক যন্ত্রমানব বা রোবট দেখেছি। এরা কখনও মানুষের বন্ধু, আবার কখনও শত্রু। এরা অনেক শক্তিশালী, কিন্তু একই সাথে বেশ দ্বিধাগ্রস্ত। এই দ্বিধার উৎসমূলে আছে যন্ত্রের যুক্তিবুদ্ধি বিবেচনার পদ্ধতি। যন্ত্রকে কোনো সিদ্ধান্ত নিতে বলার মানে হলো তাকে কিছু সাংখ্যিক মানের মধ্যে তুলনা করতে বলা। এ-কারণেই যন্ত্রকে কোনো জটিল বা অস্পষ্ট প্রশ্ন করা যায় না। যেমন, আপনি একজন মানুষকে জিজ্ঞেস করতে পারেন, “আপনার মন কেমন?” কিংবা “আপনার প্রিয় রঙ কী?”। এই একই প্রশ্ন যন্ত্রকে করলে তার কোনো জবাব মিলবে না। যন্ত্রকে এ-ধরনের প্রশ্ন করতে হলে তার সাংখ্যিক কিছু জবাব নির্দিষ্ট রাখতে হবে। যেমন, “আপনার মন ভালো না মন্দ?” এবং “আপনার প্রিয় রঙ কি লাল, সবুজ, না নীল?”।

যন্ত্রের হিসাব-নিকাশে আরও একটি বিষয় স্মরণে রাখতে হবে। তাহলো, যন্ত্রকে কোনো প্রশ্ন করা হলে তার যেন শুধু এবং শুধুমাত্র দুইটি জবাব থাকে — হ্যাঁ অথবা না। যদি একাধিক শর্ত পূরণ হয়, তাহলে তা আপনার প্রোগ্রামে বিভিন্ন রকম ত্রুটি ঘটাবে।

ধারণা ১৩ — শর্তাবলি
যুক্তিবুদ্ধি নির্দেশ করার পদ্ধতি জানলাম, এবার দেখা যাক কী ভাবে আমরা একে শর্তের মাধ্যমে প্রকাশ করবো। যুক্তি নির্দেশ করার জন্য ব্যবহৃত হয় if, else if, এবং else. প্রতিটি keyword-ই কোনো না কোনো শর্তের সত্য-মিথ্যা নিরূপণ করে। যদি শর্ত পূরণ হয়, তাহলে প্রোগ্রামের ঐ scope এর নির্দেশেনাগুলো সম্পন্ন হবে। উদাহরণঃ

ধরা যাক আপনার প্রোগ্রাম ব্যবহারকারীর কাছ থেকে একের পর এক ইনপুট গ্রহণ করছে।  নিচের কোডটুকু সেই ইনপুটকে তুলনা করবে ৫ সংখ্যাটির সাথে। যদি ইনপুটের মান ৫ হয়, অর্থাৎ প্রথম শর্ত সত্য হয়, তাহলে স্ক্রিনে আউটপুট দেখানো হবে যে ইনপুটের মান ৫। অন্যথায় দেখানো হবে যে ইনপুটের মান ৫ নয়।

if (a == 5)
{
cout << “a = 5” << endl;
}
else
{
cout << “a is not equal to 5” << endl;
}

এবারে একটি সম্পূর্ণ প্রোগ্রামে দেখা যাক কী ভাবে আমরা শর্ত ও যুক্তিবুদ্ধির প্রয়োগ করতে পারি। নিচের প্রোগ্রামে আমরা ৩টি সংখ্যার মধ্যে সবচেয়ে ছোটোটি খুঁজে বের করবো। প্রোগ্রামে আমরা জোড়ায় জোড়ায় সংখ্যাগুলো তুলনা করবো।

#include <iostream>
using namespace std;

int main()
{
//declare the integers
int num1, num2, num3, min;
//prompt the user for integers
cout << “Enter 3 integers." << endl;
//get the integers
cin >> num1 >> num2 >> num3;

//compare the first two integers
if (num1 < num2)
{
min = num1;
}
else
{
min = num2;
}
/*compare the previous answer with the third one to find the smallest */
if (num3 < min) {
min = num3;
}

//display minimum
cout << "min: " << min << endl;
}

C++ — পর্ব ৫ — হাতে-কলমে প্রোগ্রামিং -বাংলা টিউটোরিয়াল

C++ — পর্ব ৫ — হাতে-কলমে প্রোগ্রামিং


বাড়ির কাজটির ধারণা খুব সহজ। আপনাকে একটি প্রোগ্রাম লিখতে হবে যা একটি মাত্র ইনপুট হিসাবে একজন ছাত্রের মোট নম্বর নেবে। কিছু হিসাব-নিকাশ করার পর প্রোগ্রামটি একটি লেটার গ্রেড আউটপুট দেবে। এই পর্বে আমরা প্রোগ্রামটি ধাপে ধাপে লিখবো, আপনারা Ideone.com -এ পাশাপাশি কোড লিখে হাত পাকাতে পারেন।

লেটার গ্রেড নিরূপণের মাপকাঠিঃ A(90+), B(80+), C(70+), D(60+), F(<60).

যেকোনো প্রোগ্রাম লিখবার প্রথম ধাপ হলো প্রারম্ভিক কাঠামো পরীক্ষা করে দেখা। এ-কারণে শুরু করুন শুধুমাত্র নিচের কোডটুকু লিখেঃ

#include <iostream>
using namespace std;

int main()
{

}

আপনার প্রোগ্রামটি কিছু করবে না, কিন্তু কোনো ত্রুটি দেখা না দেওয়ার অর্থ হলো আপনি প্রোগ্রাম লিখবার জন্য তৈরি। এরপর যোগ করুন শুধুমাত্র একটি নির্দেশ, যার মধ্য দিয়ে আপনি নিশ্চিত হবেন যে প্রোগ্রামটি কাজ করছে। এক্ষেত্রে সবচেয়ে সুবিধাজনক হলো একটি cout ব্যবহার। পরের ধাপটা একই রকম, একটি ইনপুট কমান্ড ব্যবহার। এভাবে একটু একটু করে প্রোগ্রাম লিখতে থাকুন। একটি বাক্য লিখবেন, সেভ করবেন, একবার কম্পাইল করবেন। প্রতিবার ইনপুট নেওয়ার পর তা সাথে সাথেই আউটপুট করে নিশ্চিত হবে।

কিছুক্ষণ পর হয়তো আপনার প্রোগ্রামটি নিম্নরূপ হতে পারেঃ

#include <iostream>
using namespace std;

int main() {

cout << "Enter your final grade: ";

double totalPoint;
cin >> totalPoint;

cout << "You have entered: " << totalPoint << endl;

}

এবার সময় এসেছে শর্ত প্রয়োগের। এজন্য ব্যবহার করুন গত পর্বে দেখানো ব্যাকরণ। যথারীতি আপনার কোড একটু একটু করে লিখুন এবং প্রতিটি ধাপ পরীক্ষা করার পর নতুন লাইন লিখুন। এক্ষেত্রে শুরু করতে পারেন নিচের সহজ কোড দিয়েঃ

if (totalPoint >= 90) {
cout << "Your grade is A" << endl;
}
else {
cout << "Your grade is F" << endl;
}

এই অংশটুকু প্রোগ্রামে অন্তর্ভুক্ত করে কম্পাইল করুন। ত্রুটিমুক্ত ভাবে কম্পাইল করা গেলে কয়েকবার এই প্রোগ্রামটি চালান। প্রতিবার নতুন কোনো সংখ্যামান দিন। চেষ্টা করে দেখুন -৫, ৫০, ৯৫, এবং ১০৫ ইনপুট করলে কী ধরনের আউটপুট দেখতে পান।

এভাবেই একের পর এক if ব্যবহার করে আমরা একেক নম্বরের জন্য একেক গ্রেড নির্ধারণ করতে পারি। তবে এখানেও ছোট্ট একটা সমস্যা আছে। ধরুন আপনি if, if, if, if, else -এর মাধ্যমে এই প্রোগ্রামটি লিখলেন। এক্ষেত্রে দেখতে পাবেন যে একই সংখ্যা একেক বার একেক গ্রেড হিসাবে নির্ধারিত হচ্ছে। হবে না কেন? ৯৫ তো ৯০-এর চেয়েও বেশি, ৮০-র চেয়েও বেশি, ৭০-এর চেয়েও বেশি, আবার ৬০-এর চেয়েও বেশি!! এই সমস্যার সমাধান কী হতে পারে?

এই সমস্যার জন্য ছোট্ট একটি সংযোজন যথেষ্ট। সেটি হলো if এর পরিবর্তে else if ব্যবহার করা। C++ এ একটি if এর সাথে ঠিক পরবর্তী else শেকলের মতো সংযুক্ত। এর মধ্য দিয়ে প্রোগ্রামকে বলা হয়, “১ম শর্ত পূরণ না হলে ২য় শর্তে যাও, সেটাও পূরণ না হলে ৩য় শর্তে যাও, ইত্যাদি।” এভাবে আমরা অনেক অনেক শর্তের একটি সংযুক্ত শিকল তৈরি করতে পারি।

শুধু এটুকু পরিবর্তন আনলেই আপনার প্রোগ্রাম ত্রুটিমুক্ত হবে। তবুও একটু সাবধান হওয়ার জন্য আরেকটি দিক দেখা প্রয়োজন। দুই অনুচ্ছেদ আগে চারটি সংখ্যা ইনপুট হিসাবে ব্যবহার করার কথা বলছিলাম। সেখানে কি কোনো কিছুতে খটকা লেগেছে? কোনো ছাত্রের প্রাপ্ত নম্বর কি ১০৫ বা -৫ হতে পারে? এই ধরণের ত্রুটি এড়ানোর জন্য আমাদের উচিত প্রতিটি গ্রেডের জন্য উর্ধ্বসীমা এবং নিম্নসীমা নির্ধারণ করে দেওয়া।

সবটুকু পরিবর্তনের পর আপনার প্রোগ্রাম নিম্নরূপ হতে পারেঃ

#include <iostream>
using namespace std;
int main() {
cout << "Enter your final grade: ";
double totalPoint;
cin >> totalPoint;
cout << "You have entered: " << totalPoint << endl;
char letterGrade;
if (totalPoint >= 90 && totalPoint <= 100) {
letterGrade = 'A';
}
else if (totalPoint >= 80 && totalPoint < 90) {
letterGrade = 'B';
}
else if (totalPoint >= 70 && totalPoint < 80) {
letterGrade = 'C';
}
else if (totalPoint >= 60 && totalPoint < 70) {
letterGrade = 'D';
}
else if (totalPoint >= 0 && totalPoint < 60) {
letterGrade = 'F';
}
else {
cout << "Error!!!" << endl;
letterGrade = '?';
}
cout << "Your final grade is: " << letterGrade << endl;
}

C++ প্রোগ্রামিং – আসুন যন্ত্রের ভাষায় কথা বলি

C++ প্রোগ্রামিং – যন্ত্রের ভাষায় কথা বলা 


সি++ (উচ্চারণ: সি প্লাস প্লাস) একটি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষা। ১৯৮০ সালে বিয়ার্নে স্ট্রাউসট্রপ (Bjarne Stroustrup) যুক্তরাষ্ট্রের এটিএন্ডটি বেল ল্যাবরেটরিতে (AT&T Bell Laboratory) এটি ডেভেলপ করেন। মূলত সিমুলা৬৭ এবং সি প্রোগ্রামিং ভাষার সুবিধাজনক বৈশিষ্ট্যগুলোর সমন্বয় সাধন করে সি++ তৈরি হয়।
এটি একটি মধ্যম শ্রেণীর প্রোগ্রামিং ভাষা যাতে উচ্চ শ্রেণী এবং নিম্ন শ্রেণীর ভাষাগুলোর সুবিধা সংযুক্ত আছে। এটি সর্বকালের অন্যতম জনপ্রিয় প্রোগ্রামিং ভাষা এবং সফটওয়্যার শিল্পে এটি বহুল ব্যবহৃত হয়। যেমন- সিস্টেম সফটয়্যার, অ্যাপ্লিকেশন সফটওয়্যার, ডিভাইস ড্রাইভার, এম্বেডেড সফটওয়্যার, উচ্চ মানের সার্ভার ও ক্লায়েন্ট অ্যাপ্লিকেশন, বিনোদন সফটওয়্যার যেমন- ভিডিও গেম ইত্যাদি ক্ষেত্রে সি++ ব্যবহৃত হচ্ছে। সি++ এর বিভিন্ন মুক্ত এবং মালিকানাধীন কম্পাইলার আছে যা বিভিন্ন দল যেমন- জিএনইউ প্রকল্প, মাইক্রোসফট, ইন্টেল এবং বোরল্যান্ড সরবরাহ করে। সি++ পরবর্তী সময়ে বিভিন্ন প্রোগ্রামিং ভাষাকে প্রভাবিত করেছে যার মধ্যে সর্বাপেক্ষা উল্লেখযোগ্য হচ্ছে জাভা।

c++ বাংলা ভিডিও টিওটরিয়াল (৪৫ টি ভিডিও)