Wednesday, October 18, 2017

Deque in C++ (STL container)

What is deque ? how to insert and delete value from deque


A deque is a double ended queues sequence container of expresion and contraction with both the
ends. they are similar to vectors but are more efficient in case of insertion and deletion
and other opperation.

Deque diclaretion -->

                   std::deque <data type> deq;


Insertion >>

#include<bits/stdc++.h>
using namespace std;
int main()
{
    deque <int> dq;
    dq.push_back(10);
    dq.push_front(20);
    dq.push_back(11);
    dq.push_front(21);

    cout<<"Deque elements are : "<<endl;

    for(int i=0; i<dq.size(); i++)
    {
        cout<<dq[i]<<" ";
    }
    cout<<endl;
    return 0;
}


Deletion >>>

#include<bits/stdc++.h>
using namespace std;
int main()
{
    deque <int> dq;
    dq.push_back(10);
    dq.push_front(20);
    dq.push_back(11);
    dq.push_front(21);

    cout<<"Deque elements are : "<<endl;

    for(int i=0; i<dq.size(); i++)
    {
        cout<<dq[i]<<" ";
    }
    cout<<endl;

    dq.pop_back();
    dq.pop_front();

    cout<<"Deque elements after deletion are : "<<endl;

    for(int i=0; i<dq.size(); i++)
    {
        cout<<dq[i]<<" ";
    }
    cout<<endl;
    return 0;
}

Wednesday, October 11, 2017

Important programming problems

Important programming problems

How to calculate sum of all digit of a given integer in c++ programming language

Here is the code for calculate sum of all digit and length of  a given integer in c++ programming.

If you have any problem to understand the code please put your question into the comment below .

 #include<bits/stdc++.h>
using namespace std;
int main()
{
    int num;
    int sum = 0, count=0;

    cout << " Enter a number : ";
    cin >> num;
    while ( num > 0 )
    {
        sum += num % 10;
        num /= 10;
        count++;
    }
    cout<< "The given integer is = " << num <<endl;
    cout << "The sum all digit is = " << sum << endl;
    cout << "The length of the given integer is = " << count <<endl;

    return 0;
}

Tuesday, October 10, 2017

অনলাইন জাজ কি এবং কেন।

অনলাইন জাজ কি এবং কেন।

আজকে আলোচনা করব অনলাইন জাজ নিয়ে।


অনলাইন জাজ ঃঅনেক ওয়েবসাইট আছে, যেখানে অনেক প্রোগ্রামিং সমস্যা দেওয়া আছে এবং        সেগুলোর সমাধান করে জমা দিলে স্বয়ংক্রিয়ভাবে পর্যবেক্ষণ করে বলে দেওয়া  হয় যে সমাধানটি সঠিক কিনা। এই ধরনের ওয়েবসাইট কে বলা হয় অনলাইন  জাজ।

😟অনলাইন  জাজে  কি  থাকে  এবং  কি  করতে  হয় ?

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

🍅এখন  প্রশ্ন  হল  অনলাইন  জাজে  প্রোগ্রামিং  সমস্যা  থাকে  ভাল  কথা , এই  সমস্যাগুলো কেন 
     সাজানো হয়েছে? কদের জন্য সাজানো হয়েছে ?

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

    এতক্ষণ  তো  অনলাইন  জাজের  প্ররিচয় দিলাম  মাত্র ,

 😡এখন  আসব  আসল কথায়  কেন  একজন  ভাল প্রোগ্রামার  হতে  হলে  অনলাইন  জাজের  গুরুত্ত  এত  বেশি ।
                 একটা  কথা আমরা  সবাই  জানি  যে   Practice  make  a  man  perfect .  প্রোগ্রামিংয়েও                     একইভাবে  যে  যত  বেশি  প্রোগ্রাম  লিখবে , সমস্যা  সমাধান  করবে  সে  তত  বেশি  দক্ষ  প্রোগ্রামার  হবে । এই  বেশি  বেশি  প্রোগ্রামিং  চর্চা  করার  জন্য  আমাদের  জন্য  সবথেকে  সহজ  এবং  সুভিধাজনক  জায়গা  হচ্ছে  অনলাইন  জাজ ।  তাই  আমরা  যদি  কেউ  প্রোগ্রামিং  দক্ষতা  বারাতে  বা  নিজেকে  ভাল  প্রোগ্রামার  হিসেবে  গড়ে  তোলতে  চাই  তাহলে  আমাদের  প্রত্যেকেরই  অনলাইন  জাজগুলোতে  গিয়ে  সমস্যা  সমাধানের  মাধ্যমে নিজের  প্রোগ্রামিং  দক্ষতা  বাড়ানো  প্রয়জন । 

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

তুমি  প্রোগ্রামিং  সমস্যা  সমাধানের  জন্য  অনলাইনে  অনেক অনলাইন  জাজ  পাবে, তাদের  মধে  কয়েকটির  নাম  আমি  বলে  দিচ্ছি.....................

         *  Uri online judge  (  https://www.urionlinejudge.com.br/judge/en  )                   
         *  Uva online judge  (  https://uva.onlinejudge.org/index.php )
         *  Hackerrank           (  https://www.hackerrank.com/dashboard  )
         *  Topcoder               (  https://www.topcoder.com/  )
         *  Codeforces           (  http://codeforces.com/  )

যারা  প্রোগ্রামিং  এ  নতুন  তাদেরকে  আমি  Uri online judge  এবং  Uva online judge  এই দুটুর  যেকোন  একটি  দিয়ে  শুরু  করতে  বলব  এই  সাইটগুলোতে  যেমন  সহজ  সমস্যা  রয়েছে  তেমনি  কঠিন  সমস্যাও  রয়েছে  ।  তাই সাইটগুলোতে  যারা  প্রোগ্রামিংয়ে নতুন  অথবা  যারা  আগে  থেকে  প্রোগ্রামিং  করে   যে  কেউ  চর্চা  করতে  পারে।  উপরে  বর্ণিত  সাইটগুলোর  কোনটিই  যদি  পছন্দ  না হয়  তাহলে  আরো  অনেক  অনলাইন  জাজ  রয়েছে  সেখানে  গিয়েও  প্রোগ্রামিং  চর্চা  করা  যেতে  পারে । কোন জাজ  এ  তুমি  চর্চা  করছ  সেটা  বড়  কথা  না  বড়  কথা  হছে  তুমি  চর্চা  করতেছ  কিনা। তাই  যেকোন  অনলাইন  জাজে  গিয়েই  তুমি  চর্চা  করতে  পারো।

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

এই  ছিল  অনলাইন  জাজ  নিয়ে  আমার  কথা  আশা  করছি  অনলাইন  জাজ  সম্পর্কে  এবং  অনলাইন  জাজ এর  গুরুত্ত  সম্পর্কে  তোমাদের  মাঝে  একটা  মোটামোটি  ধারনা  সৃষ্টি  করতে  পেরেছি  ।

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


লিখাটি  পড়ার  জন্য  ধন্যবাদ ।
                                                     ( সাইফুল ইসলাম )।








                    


Wednesday, October 4, 2017

কিভাবে প্রোগ্রামিং এ দক্ষতা বাড়ানো যায় ? How to be a good programmer?

কিভাবে প্রোগ্রামিং এ দক্ষতা বাড়ানো যায় ?

প্রোগ্রামিং এর একটা মৌলিক বিষয় হচ্ছে তুমি যত বেশি অনুশীলন করবে তত বেশি দক্ষতা অর্জন করবে।

এখন আমাদের মনের প্রশ্ন হল সবাই বলে যে  অনুশীলন (practice) করার জন্য কিন্তু কোথায় করব কিভাবে করব অনুশীলন (practice) ?

আসলে এখানে অনুশীলন করা বলতে বুঝায় প্রতিনিয়ত প্রোগ্রামিং এর নতুন নতুন বৈশিষ্ট্য  বা (feature) গুলু সম্পর্কে জ্ঞান অর্জন করতে থাকা ।
বিভিন্ন কৌশল বা (technique) শিখা , কিভাবে কোড (code) এর রান করার সময় কমিয়ে আনা যায় , কিভাবে প্রোগ্রামের স্টোরেজ বা মেমোরি আয়তন কমিয়ে আনা যায়। কিভাবে কোড (code) লিখলে সবাই বুঝতে সুভিদে হয় ইত্যাদি ইত্যাদি, এই পর্যন্ত হল প্রোগ্রামিং ভাষা শিখার জন্য যা যা করা লাগে । তবে শুধু এই পর্যন্ত শিখে  আর অনুশীলন করা পর্যন্তই শেষ না , তুমি উপরের সবগুলো কাজ ই অনেক সুন্দর ভাবে করলে এখন তোমাকে প্রোগ্রামিংয়ে আরো ভাল এবং নিযেকে আরো দক্ষ করে তোলতে হবে।

## এখন প্রশ্ন হল প্রোগ্রামিংয়ে আরো ভাল করতে হলে অথবা প্রোগ্রামিং এ নিজেকে আরও দক্ষ করতে হলে কি করা উচিত ? কিভাবে এগোলে প্রোগ্রামিং এ ভাল করা যাবে ? 

তোমার মনে যদি এই প্রশ্ন ঘুরে আর তুমি যদি প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখে থাক তাহলে আমি বলব তুমি নিচের বিসয়গুলু শিখা শুরু করে দাও। নিচে ক্রমান্বয়ে বিষয়বস্তু গুলু তুলে ধরা হল।

(১) Data structure

         * Array
         * Linked list
         * Stack
         * Queue
         * Searching
         * Sorting
         * Graph Data structure
         * Tree Data structure
         * Recursion
 
   ==> DATA STRUCTURE  এর এই বিষয়(topic) গুলো  ভাল ভাবে শিখে ফেল এবং এই সব বিষয়                 সম্পর্কিত প্রোগ্রামিং প্রব্লেম গুলু অনলাইন থেকে এবং নিজের প্রচেষ্টায় বাস্তবায়ন(implement)             করতে থাক এবং অনুশীলন করতে থাক।
           এবং কোন DATA STRUCTURE টা  কেন কখন এবং কোথায় ব্যবহার করব এই সবকিছু                   জানার চেষ্টা কর এবং ব্যবহারের পধ্যতিগুলু অনুশীলন করতে থাক।

       এখন তোমার যখনই মনে হবে DATA STRUCTURE এর বিসয়গুলু তুমি বুঝতে পেরেছ এবং এইগুলুকে প্রোগ্রাম এ ব্যবহার করতে পারছ তখনই তোমার পরবর্তী  ধাপ হবে Algorithm শিখা ।

(২) Algorithm

         * Complexity of algorithme
         * Recursion
         * Search Algorithms
         * Sorting Algorithms
         * Divide and Conquer
               > Quick Sort
               > Merge Sort
         * The Greedy Algorithm
         * Dynamic Programming
         * Backtracking Algorithm

       এখানে শুধু ধারনা দেয়ার জন্য কয়েকটি বিসয়বস্তুর নাম তুলে ধরলাম যখন তুমি শিখবে তখন  আরো বিস্তারিত ভাবে শিখবে । Algorithm শিখার জন্য তুমি অনলাইন থেকে সাহায্য অথবা Algorithm এর বই অনুসরন করে শুরু করতে পার । তাছারা অনলাইনে অনেক ওয়েবসাইট আছে যেমন (tutorialspoint.com) এইরকম আরো অসংখ্য ওয়েবসাইট রয়েছে, ইউটিউবে  অনেক  চেনেল আছে
সেখান থেকে শিখতে পার ।

তবে মনে রাখবে যখনই কোনকিছু বুঝতে সমস্যা হবে তখনই  GOOGLE এ গিয়ে খোঁজে বের করে শিখে ফেলবে । কোনকিছু গুগল করে নিজে নিজে শিখাটা অনেক ভাল অভ্যাস।

এখানে আরো একটি বিষয় তা হল String সম্পর্কেও ভাল ধারনা প্রয়োজন।

তাই সময় নষ্ট না করে এখনি সুরু করে দাও।

এতক্ষণ যা বললাম এইগুলু ছিল শিখার জন্য প্রাথমিক কিছু ধারনা এখন আসি আসল কথায় , উপরের বর্ণিত বিসয়গুলি শিখার পাশাপাশি অথবা শিখার পর প্রোগ্রামিংয়ে আরো ভাল করতে হলে যেটা করতে হবে সেটা হল বিভিন্ন প্রোগ্রামিং সমস্যা সমাধার করা। যেমন অনলাইনে অনেক সাইট রয়েছে যেগুলুতে প্রচুর পরিমান সমস্যা দেয়া আছে তাদের মধ্যে কয়েকটি অন্যতম হল hackerrank.com, leetcode.com, codeforces.com and codechef.com) etc। এই সাইটগুলোতে গেলে তুমি পাবে অনেক মজার মজার প্রোগ্রামিং সমস্যা । তাই এখনি Account খুলে practice আরম্ভ করে দাও।

এইভাবেই তুমি যখন বিভিন্ন সাইটে গিয়ে সমস্যা  সমাধান করতে থাকবে আসতে আসতে তত বেশি তোমার প্রোগ্রামিং দক্ষতা বাড়তে থাকবে ।

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

লিখাটি পড়ে যদি ভাল লাগে তাহলে অবশ্যই comment আশা করছি।😎😎

আরো কিছু জানার থকলে কমেন্ট বক্স এ কমেন্ট করতে পারো। অথবা আমাকে মেইল করতে পারো
(  saiful.comilla24@yahoo.com  )  অথবা ফেইসবুকে আমাকে বার্তা পাঠাতে পার।


ভুল ভ্রান্তি মার্জনীয়..................।।😎😏

কম্পিউটার প্রোগ্রামিং শেখা কতটা গুরুত্বপূর্ণ ?

প্রোগ্রামিং কতটা গুরুত্বপূর্ণ? কম্পিউটার বিজ্ঞানের অনেক বড় একটা অংশ জুড়েই রয়েছে প্রোগ্রামিংয়ের দখল। প্রোগ্রামিং ছাড়া আমর...