সি / সি++ প্রোগ্রামিং (C / C++ Programming ) Tutorial with Laboratory Practice

পর্ব-১:

Concept of Computer Programming

কম্পিউটার প্রোগ্রামিং সম্পর্কে প্রাথমিক ধারণা

 

The process of developing and implementing various sets of instructions to enable a computer to do a certain task. These instructions are considered computer programs and help the computer to operate smoothly. Computer programming is done as essentially a set of written instructions that the computer follows. These instructions can be written in a number of different "languages", which are really just different ways of organizing the instructions and text.


কোন সমস্যা সমাধানের জন্য কম্পিউটারের ভাষায় ধারাবাহিকভাবে লিখিত কতগুলো কমান্ড বা নির্দেশের সমষ্টি বা তালিকাকে প্রোগ্রাম বলা হয় । প্রোগ্রাম লেখার জন্য কম্পিউটারে ব্যবহারযোগ্য বিভিন্ন ধরনের প্রোগ্রাম ভাষা ব্যবহৃত হয় । প্রোগ্রামে লিখিত নির্দেশসমূহ সোর্স প্রোগ্রাম ফাইলে সারিবদ্ধভাবে লেখা হয় । কম্পিউটার এ নির্দেশসমূহকে পর্যায়ক্রমিকভাবে পালনের মাধ্যমে নির্দিষ্ট সমস্যার সমাধান করে।

Programming Language

প্রোগ্রামিং ল্যাংগুয়েজ

A vocabulary and set of grammatical rules for instructing a computer to perform specific tasks. The term programming language usually refers to high-level languages, such as BASIC, C, C++, COBOL, FORTRAN, Ada, and Pascal. Each language has a unique set of keywords (words that it understands) and a special syntax for organizing program instructions.

High-level programming languages, while simple compared to human languages, are more complex than the languages the computer actually understands, called machine languages. Each different type of CPU has its own unique machine language.

কম্পিউটার সিস্টেমে প্রোগ্রাম রচনার জন্য ব্যবহৃত শব্দ, বর্ণ, অঙ্ক, সংকেত এবং এগুলো বিন্যাসের নিয়ম মিলিয়ে তৈরি হয় প্রোগ্রামিং ল্যাংগুয়েজ বা কম্পিউটারের ভাষা। বিভিন্ন ধরনের প্রোগ্রাম রচনার জন্য বিভিন্ন ধরনের প্রোগ্রাম ভাষার ব্যবহার হয়। প্রোগ্রামিং এর মাধ্যমে জটিল সমস্যা অল্পসময়ে এবং সহজে সমাধান করা যায়। প্রোগ্রাম রচনার জন্য উপযুক্ত প্রোগ্রামিং ল্যাংগুয়েজ প্রয়োজন হয় ।

১৯৪৫ সাল থেকে শুরু করে এ পর্যন্ত কয়েকশ প্রোগ্রামিং ল্যাংগুয়েজ বা ভাষা আবিষ্কৃত হয়েছে। এ সকল ভাষাকে বৈশিষ্ট্য অনুযায়ী পাচটি স্তর বা প্রজন্মে ভাগ করা যায় । যথা:

  • প্রথম প্রজন্ম/First Generation Language (১৯৪৫): মেশিন ভাষা/Machine Language
  • দ্বিতীয় প্রজন্ম/Second Generation Language (১৯৫০): এসেম্বলি ভাষা/ Assembly Language
  • তৃতীয় প্রজন্ম/Third Generation Language (১৯৬০): উচ্চতর ভাষা/High Level Language
  • চতুর্থ প্রজন্ম/Fourth Generation Language (১৯৭০): অতি উচ্চতর ভাষা/Very High Level Language
  • পঞ্চম প্রজন্ম/Fifth Generation Language (১৯৮০) : স্বাভাবিক বা ন্যাচারাল ভাষা/Natural Language

প্রোগ্রাম রচনার বৈশিষ্ঠ্যের ভিত্তিতে প্রোগ্রাম ভাষাসমূহকে প্রধান দু’ভাগে ভাগ করা হয়। যথা-

  • নিম্নস্তরের ভাষা/Low Level Language
  • উচ্চস্তরের ভাষা/High Level Language

 

বিভিন্ন সময়ে বিভিন্ন উচ্চস্তর প্রোগ্রাম ভাষা চালু হয়েছে এবং দিন দিন এদের সংখ্যা বৃদ্ধি পাচ্ছে। তাদের কোনটি বর্তমানে চালু আছে, কোনটি বা বিলুপ্ত হয়েছে। আবার কোনটির ব্যবহার নেই বললেই চলে। বর্তমান সময়ে প্রচলিত কয়েকটি উচ্চতর ভাষা হলো: ভিজুয়্যাল বেসিক, সি সার্প, ফরট্রান, কোবল, পাস্কেল, সি, সি++ এবং জাভা ইত্যাদি ।

 

আমরা যদি স্ট্রাকচার্ড প্রোগ্রামিং/Structured Programming গঠনকে সামনে রেখে এগুতে থাকি তাহলে প্রথমেই তিনটি বিষয়কে প্রাধান্য দিবো যেমন:

 

  • পর্যায়ক্রমিক গঠন/ Sequential Structure
  • চক্র বা লুপ / Loop
  • ডিশিসন স্টেটমেন্ট Decision Statement


Structured programming, sometimes known as modular programming, is a subset of procedural programming that enforces a logical structure on the program being written to make it more efficient and easier to understand and modify.

স্ট্রাকচার্ড প্রোগ্রামিং হলো প্রসিডিউরাল প্রোগ্রামিং(যার মাধ্যমে বিভিন্ন যুক্তি এবং শর্ত উপস্থাপন করা যায়) এর সাবসেট যা প্রোগ্রামকে সহজ করার জন্য লজিক্যাল স্ট্রাকচার প্রয়োগ করে থাকে ।

  

প্রোগ্রামিং শুরু করবার সময় যেসব খেয়াল রাখা জরুরি:

 

  • ইনপুট
  • প্রসেস
  • আউটপুট

 

একটি আদর্শ প্রোগ্রামের ভেতরে তথ্য ইনপুটের সুবিধা থাকবে অথবা প্রোগ্রাম চলাকালে বাইরে থেকে তথ্য যোগানের সুবিধা থাকবে । এরপর সেই তথ্য প্রক্রিয়াকরণই হবে প্রোগ্রামের মূল উদ্দেশ্য। অতএব একটি আদর্শ প্রোগ্রামে অবশ্যই তথ্য প্রক্রিয়াকরণের সুবিধা থাকবে। এরপর ফলাফল প্রাপ্তির ব্যবস্থা থাকবে।

 

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

এখন সবচেয়ে জরুরী বিষয় হলো নিজের কম্পিউটারে বা লেপটপে সি/সি++ এর এডিটর/কম্পাইলার ইন্সটল থাকা । উল্লেখযোগ্য কিছু সি/সি++ এর সফটওয়্যার হচ্ছে Turbo C++, Code Block, Dev C++ ইত্যাদি ।

 

উইন্ডোজ-৭ কিম্বা এর পরবর্তী ভার্সন গুলোতে কাজ করবার জন্য কোড-ব্লক সফটওয়্যারটি ভালো সুবিধা প্রদান করে ।

 

আমরা প্রথম প্রোগ্রামটি লিখার আগেই কিভাবে নিজেই নিজের কম্পিউটারে সি/সি++ সফটওয়্যারটি নিজে ইন্সটল করবো তা লক্ষ্য করবো । পর্ব-২ থেকে আমরা সি/সি++ সফটওয়্যার ইন্সটল করা শিখবো।

 

এরপর পর্ব-২: