পড়াশোনা
1 min read

পঞ্চম অধ্যায় : প্রোগ্রামিং ভাষা, একাদশ-দ্বাদশ শ্রেণির তথ্য ও যোগাযোগ প্রযুক্তি

প্রশ্ন-১। প্রোগ্রামিং ভাষা (Programming Language) কি?
উত্তরঃ প্রোগ্রামিং ভাষা হলো এক ধরণের কৃত্রিম ভাষা, যা কোনো যন্ত্রের, বিশেষত কম্পিউটারের আচরণ নিয়ন্ত্রণ করে।

প্রশ্ন-২। প্রোগ্রাম রচনার জন্য কোন ধরনের ভাষা ব্যবহৃত হয়?
উত্তরঃ প্রোগ্রাম রচনার জন্য C, C++, Java ইত্যাদি ভাষা ব্যবহৃত হয়।

প্রশ্ন-৩। অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং কী?
উত্তরঃ অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং হচ্ছে কতগুলো অবজেক্টের সমষ্টি যাদের প্রত্যেকের নিজস্ব ভিন্ন ভিন্ন

এট্রিবিউট এবং বিহেইভিয়ার আছে।

প্রশ্ন-৪। অ্যালগরিদম কী?
উত্তরঃ সমস্যা সমাধানের যুক্তিসম্মত ও পর্যায়ক্রমিক ধারা বর্ণনাকে অ্যালগরিদম বলে।

প্রশ্ন-৫। প্রোগ্রাম তৈরির ধাপসমূহ কী কী?
উত্তরঃ প্রোগ্রাম তৈরির ধাপসমূহ হলো: ১. তথ্যানুসন্ধান, ২. সমস্যা বিশ্লেষণ, ৩. প্রোগ্রাম ডিজাইন, ৪. প্রোগ্রাম

কোডিং, ৫. প্রোগ্রাম টেস্টিং, ডিবাগিং ও বাস্তবায়ন এবং ৬. প্রোগ্রাম রক্ষণাবেক্ষণ।

প্রশ্ন-৬। প্রবাহ চিত্রকে প্রধানত কত ভাগে ভাগ করা যায়?
উত্তরঃ প্রবাহ চিত্রকে প্রধানত ২ ভাগে ভাগ করা যায়।

প্রশ্ন-৭। 4GL এর অপর নাম কী?
উত্তরঃ 4GL এর অপর নাম Rapid Application Development (RAD).

প্রশ্ন-৮। RDBMS এর রুলস কতটি?
উত্তরঃ RDBMS এর রুলস ১২টি।

প্রশ্ন-৯। জাভা ভাষা কত সালে উৎপত্তি হয়?
উত্তরঃ ১৯৯১ সালে জেমস গসলিং এর নেতৃত্বে জাভা ভাষার উৎপত্তি হয়।

প্রশ্ন-১০। কত সালে C++ ভাষার উদ্ভাবন হয়?
উত্তরঃ ১৯৮০ সালে C++ ভাষার উদ্ভাবন হয়।

প্রশ্ন-১১। কত সালে C ভাষার উদ্ভাবন হয়?
উত্তরঃ ১৯৭০ সালে C ভাষার উদ্ভাবন হয়।

প্রশ্ন-১২। হাইলেভেল ভাষাকে কয়টি ভাগে ভাগ করা যায়?
উত্তরঃ হাইলেভেল ভাষাকে দুইটি ভাগে ভাগ করা যায়।

প্রশ্ন-১৩। প্রোগ্রামিং ভাষাকে বৈশিষ্ট্য অনুযায়ী কতটি স্তরে ভাগ করা যায়?
উত্তরঃ প্রোগ্রামিং ভাষাকে বৈশিষ্ট্য অনুযায়ী ৫টি স্তরে ভাগ করা যায়।

প্রশ্ন-১৪। Variable বা চলক কি?
উত্তরঃ Variable বা চলক হলো মেমোরি লোকেশনের নাম বা ঠিকানা।

প্রশ্ন-১৫। সিস্টেম ফ্লোচার্ট কাকে বলে?
উত্তরঃ যে ফ্লোচার্টের মাধ্যমে কোনো ব্যবস্থার সংগঠনকে সহজে তুলে ধরা যায় তাকে সিস্টেম ফ্লোচার্ট বলে।

প্রশ্ন-১৬। সিএসএস দিয়ে কি কি কাজ করা যায়?
উত্তরঃ সিএসএস দিয়ে যেসব কাজ করা যায়-
১. সিএসএস এর মাধ্যমে এইচটিএমএল এ তৈরীকৃত পেজটি আরও দৃষ্টিনন্দন করা যায়।
২. কিছু সিএসএস কোড পরিবর্তন করে সম্পুনভাবে সাইটের restyle করা যায়।

প্রশ্ন-১৭। অ্যারে চলকের সুবিধা কি?
উত্তরঃ অ্যারে হলো এমন এক ধরনের ডেটা স্ট্রাকচার যাতে একই ধরনের ডেটা সংরক্ষিত হয়। এর ব্যবহার বেশ সুবিধাজনক। একটি অ্যারের মধ্যে অনেকগুলো চলকের মান রাখা যায়। অ্যারের element গুলো মেমোরিতে পাশাপাশি থাকে বলে খুব দ্রুত তাদের Access করা যায়। আবার অ্যারে Declare করলে প্রোগ্রাম খুব দ্রুত নির্বাহ করা যায়। অনেক জটিল প্রোগ্রাম অ্যারে ব্যবহার করে সমাধান করা যায়। তা ছাড়া অ্যারে ব্যবহার করলে প্রোগ্রামের আকার ছোট হয়।

প্রশ্ন-১৮। Printf () ও Getch () ফাংশনের কাজ কি?
উত্তরঃ C ভাষায় আউটপুট স্টেটমেন্ট হিসেবে বহুল ব্যবহৃত ফাংশন হলো printf (), যার সাহায্যে স্ট্রিং বা স্ট্রিংসহ বিভিন্ন টাইপের (যেমন – int, Char, float ইত্যাদি) ডেটার মান মনিটরে স্ক্রিনে প্রদর্শন করা যায়। প্রোগ্রামিংয়ের ক্ষেত্রে একটি করে ইনপুট দিতে getch () ফাংশন ব্যবহার করা হয়। অর্থাৎ C প্রোগ্রামিংয়ের জন্য print () ও getch () উভয়ই অপরিহার্য ফাংশন হিসেবে কাজ করে।

অ্যারিথমেটিক অপারেটর কাকে বলে?
উত্তরঃ সি প্রোগ্রামে বিভিন্ন গাণিতিক কাজ (যেমনঃ যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি) সম্পন্ন করার জন্য যেসব সিম্বল বা অপারেটর ব্যবহৃত হয় তাদেরকে অ্যারিথমেটিক অপারেটর  বলে।

4GL বলতে কী বোঝায়?
উত্তরঃ চতুর্থ প্রজন্মের ভাষা বা 4th Generation Language কে সংক্ষেপে 4GL বলা হয়। এটি Non-Procedural ভাষা অর্থাৎ এই ভাষায় শুধু বলে দিতে হয় যে কী ফলাফল প্রয়োজন। কীভাবে কার্য সমাধান করতে হবে তা ব্যাখ্যা করার প্রয়োজন নেই।

ফরম্যাট স্পেসিফায়ার কি?
উত্তরঃ সি প্রোগ্রামে ফরম্যাটেড (কাঙ্খিত আকারে) ভেরিয়েবলের মান গ্রহণ এবং প্রদর্শনের জন্য যে সকল ক্যারেক্টার সেট বা ক্যারেক্টারগুচ্ছ ব্যবহৃত হয় তাদেরকে ফরম্যাট স্পেসিফায়ার বলা হয়।

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

অ্যাসেম্বলারের কাজ কি?
উত্তরঃ অ্যাসেম্বলারের কাজ নিম্নরূপঃ
(১) নোমেনিক কোডকে মেশিন ভাষায় রুপান্তর করা।
(২) অ্যাসেম্বলি অ্যাড্রেসকে মেশিন ভাষায় লেখা অ্যাড্রেসে পরিনত করে।
(৩) প্রত্যেক নির্দেশ ঠিক আছে কিনা তা যাচাই করা।
(৪) সব নির্দেশ ও ডেটা প্রধান মেমোরিতে রাখা।
(৫) সব ভুল সংশোধন করে প্রথম নির্দেশ থেকে কাজ শুরু করতে কন্ট্রোলকে বলা।
(৬) অ্যাসেম্বলি ভাষার প্রত্যেক নির্দেশকে মেশিন ভাষার একটি নির্দেশে পরিনত করা।

অ্যাসেম্বলি ভাষাকে মধ্যস্তরের ভাষা বলা যায় কেন?
উত্তরঃ অ্যাসেম্বলি ভাষা মেশিন ভাষা থেকে উন্নত আবার উচ্চতর ভাষার সমকক্ষ নয় বলে এই ভাষাকে মধ্যস্তরের ভাষা বলা যায়। ১৯৫০ সাল থেকে দ্বিতীয় প্রজন্মের পর কম্পিউটারে অ্যাসেম্বলি ভাষার ব্যাপক প্রচলন শুরু হয়। এই ভাষা প্রথম প্রজন্মের মেশিন ভাষা থেকে উন্নত কিন্তু উচ্চতর ভাষার সমকক্ষ নয়, এ জন্য এ ভাষাকে মধ্যস্তরে ভাষাও বলা হয়ে থাকে। এ ভাষায় নির্দেশগুলো কতকগুলো সংকেত বা নেমনিক কোর্ডের মাধ্যমে দেওয়া হয়। যেমন – CLR দিয়ে Clear Accumulator, INP দিয়ে Input ইত্যাদি বোঝানো হয়।

High Level ও Low Level Language এর পার্থক্য কি?
উত্তরঃ High Level ও Low Level Language এর পার্থক্য নিম্নে দেওয়া হলোঃ

High Level Language

  • কম্পিউটারকে সর্বজন ব্যবহার উপযোগী করে তুলতে যে ভাষা তৈরি হয় তাকে হাই লেভেল ল্যাংগুয়েজ বলে।
  • উচ্চস্তরের ভাষা মেশিন নির্ভর নয়। তাই এ ভাষায় লিখিত প্রোগ্রাম কম্পিউটারকে বুঝানোর জন্য মেশিনের ভাষায় অনুবাদ করে দিতে হয়।
  • মেশিনের ভাষার তুলনায় উচ্চস্তরের ভাষার প্রোগ্রাম রচনা করা সহজ।
  • উচ্চস্তরের ভাষায় লিখিত প্রোগ্রামকে উৎস বা Source প্রোগ্রাম বলে।
  • কয়েকটি উচ্চস্তরের ভাষা হচ্ছে C++, Basic, Pascal, Fortran etc.

 

Low Level Language

  • কম্পিউটার যে ভাষা সরাসরি বুঝতে পারে তাকে মেশিন ল্যাংগুয়েজ বলা হয়।
  • এটি মেশিনের ভাষা বিধায় কম্পিউটারকে বুঝানোর জন্য অনুবাদের প্রয়োজন হয় না।
  • মেশিন ভাষায় প্রোগ্রাম লেখা তুলনামূলকভাবে কষ্টসাধ্য এবং সময়সাপেক্ষ ব্যাপার।
  • মেশিনের ভাষায় লিখিত প্রোগ্রামকে বস্তু বা Object প্রোগ্রাম বলা হয়।
  • মেশিনের ভাষা হচ্ছে বাইনারি যা 0 এবং 1 দ্বারা গঠিত।

 

যান্ত্রিক ভাষায় লেখা প্রোগ্রাম দ্রুত নির্বাহিত হয় কেন?
উত্তরঃ কম্পিউটার একমাত্র যান্ত্রিক বা মেশিন ভাষাই সরাসরি বুঝতে পারে বলে এ ভাষায় লেখা প্রোগ্রাম দ্রুত নির্বাহিত হয়। ভাষার সর্বনিম্ন স্তর হলো মেশিন ভাষা তথা যান্ত্রিক ভাষা। ১৯৪৫ সাল থেকে মেশিন ভাষা কম্পিউটারে প্রচলন হয়। মেশিন ভাষায় 0 ও 1 ব্যবহার করে নির্দেশ ও প্রোগ্রাম লেখা হয়। মেশিন ভাষা মূলত যন্ত্রনির্ভর, এতে যে কম্পিউটারের জন্য প্রোগ্রাম তৈরি করা হয় তা অন্য কম্পিউটারে ব্যবহার করা যায় না। কম্পিউটার সরাসরি এই ভাষা বুঝতে পারে, তাই এই ভাষায় লিখিত প্রোগ্রাম দ্রুত নির্বাহিত হয়।

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

কম্পাইলার ও ইন্টারপ্রেটারের মধ্যে পার্থক্য লিখ।
উত্তরঃ কম্পাইলার ও ইন্টারপ্রেটারের মধ্যে পার্থক্য নিম্নরূপ–

কম্পাইলার

  • সম্পূর্ণ প্রোগ্রামটিকে একসাথে অনুবাদ করে।
  • কম্পাইলার দ্রুত কাজ করে।
  • সবগুলো ভুল একসাথে প্রদর্শন করে।
  • ভুল-ত্রুটি দূর করার ক্ষেত্রে বেশি সময় লাগে।

 

ইন্টারপ্রেটার

  • এক লাইন এক লাইন করে অনুবাদ করে।
  • ইন্টারপ্রেটার ধীরে কাজ করে।
  • প্রতিটি লাইনের ভুল প্রদর্শন করে এবং ভুল পাওয়া মাত্রই কাজ বন্ধ করে দেয়।
  • ভুল-ত্রুটি দূর করার ক্ষেত্রে দ্রুত কাজ করে।

 

কিভাবে Switch স্টেটমেন্ট গঠন করা যায়?
উত্তরঃ Switch স্টেটমেন্ট মূলত  if……else অথবা if……else if পরিবর্তে ব্যবহার করা হয়ে থাকে। switch স্টেটমেন্ট এ বিভিন্ন কন্ডিশন চেক করার জন্য case, break, default স্টেটমেন্ট ব্যবহার করা হয়। এক্ষেত্রে switch স্টেটমেন্ট ব্যবহার করে যখন কোন প্রােগ্রাম লেখা হয় তখন রিলেশন চেক করার জন্য case স্টেটমেন্ট ব্যবহার করা হয়। case স্টেটমেন্ট যখন শর্ত সম্পূর্ণ করে তখন রিলেশন ব্রেক হয় এবং তা আউটপুটে চলে যায়। যদি switch স্টেটমেন্ট এ একটি case মিথ্যা হয় তখন তা ঐ case স্টেটমেন্ট থেকে বের হয়ে যায় এবং তা অন্য একটি case স্টেটমেন্ট এ রিলেশন চেক করে। এভাবে switch স্টেটমেন্ট গঠন করা হয়।

রিকার্সিভ ফাংশন বলতে কী বোঝায়?
উত্তরঃ সি প্রোগ্রামে কোন ফাংশন যখন স্বয়ংক্রিয়ভাবে নিজে নিজেকে call করে তখন সেই ফাংশনকে রিকার্সিভ ফাংশন এবং এই প্রক্রিয়াকে রিকার্সিভ বলা হয়। রিকার্সিভ ফাংশন একবারে বুঝতে পারা বেশ কষ্টসাধ্য। গণিতশাস্ত্রের সিরিজকে রিকার্সিভ ফাংশনের মাধ্যমে সহজে সমাধান করা যায়। প্রতিটি রিকার্সিভ ফাংশনের একটি টার্মিনেটিং কন্ডিশন থাকতে হয়।

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

প্রোগ্রামে ভেরিয়েবল ব্যবহারের সুবিধা কি?
উত্তরঃ ভেরিয়েবল ব্যবহার না করেও প্রোগ্রামে বিভিন্ন ধরনের ডেটা নিয়ে কাজ করা যায়। তবে সেক্ষেত্রে ডেটার স্বয়ংক্রিয় মান নির্ধারণ, পুনঃব্যবহার প্রভৃতি সুবিধা পাওয়া যায় না। উদাহরণ হিসেবে বলা যায়, কারো যদি লক্ষ লক্ষ বন্ধু থাকে, তবে যতই আন্তরিক হোক না কেন তারা কে কোন রুমে থাকে তা মনে রাখা সম্ভবপর নহে। কিন্তু তারা যদি তাদের নাম, রোল বা আইডি নাম্বারের অনুরুপ নামবিশিষ্ট রুমে থাকে তবে সহজেই তাদের খুঁজে বের করা সম্ভব হবে। মূলত প্রোগ্রামে ভেরিয়েবল ব্যবহারের মাধ্যমে মেমরিতে ভেরিয়েবলের নামবিশিষ্ট লোকেশনে ডেটা সংরক্ষণ করা হয়, ফলে পরবর্তী সময়ে সেগুলো খুঁজে পাওয়া সহজ হয়।

প্রোগ্রাম বিশ্লেষণ কেন করা হয়?
উত্তরঃ সমস্যা চিহ্নিত করার পর তা সমাধান করার উপায় বের করতে প্রোগ্রাম বিশ্লেষণ করা হয়। প্রোগ্রাম রচনার সবচেয়ে গুরুত্বপূর্ণ ধাপ হচ্ছে প্রোগ্রাম বিশ্লেষণ। সমস্যা চিহ্নিত করার পর তা বিশ্লেষণ করে সমাধান করার উপায় বের করতে হবে। এজন্য সমস্যার কাঠামোগত বর্ণনা প্রস্তুত এবং প্রয়োজনে সমস্যার গাণিতিক মডেল প্রস্তুত করাসহ ইনপুট/আউটপুট উপাত্তের বৈশিষ্ট্য বর্ণনা করা, ইনপুট/আউটপুট সরঞ্জাম নির্বাচন এবং প্রয়োজনমত কম্পিউটার স্মৃতি নির্ধারণ করে। এ ছাড়াও এ ধাপে সমস্যাটি সমাধানে কত সময় লাগবে এবং কত জনবল দরকার, কত ব্যয় হবে তা নির্ধারণ করা হয়।

Two dimensional array চলক কি?
উত্তরঃ অ্যারেতে একটি subscript থাকলে তাকে one dimensional array বলে। দুটি subscript থাকলে তাকে two dimensional array বলে। যেমন – int a [3] [4] একটি two dimensional array. Two dimensional array এর ক্ষেত্রে প্রথম subscripts দ্বারা সারি ও দ্বিতীয় subscripts দ্বারা কলাম বােঝায়। যেমন–
a[3] [4] = a [0] [0] a[0][1]a[0][2]a[0][3]
= a[1][0]a[1][1]a[1][2] a[1] [3]
= a[2][0] a[2][1] a[2][2] a[2][3]

Rate this post