শ্রেণি : একাদশ - দ্বাদশ || অধ্যায় - ৫
প্রোগ্রামিং ভাষা
জ্ঞান ও অনুধাবন মুলক প্রশ্ন
শ্রেণি : একাদশ - দ্বাদশ || অধ্যায় - ৫
প্রোগ্রামিং ভাষা
জ্ঞান ও অনুধাবন মুলক প্রশ্ন
জ্ঞান মুলক প্রশ্ন
১. প্রোগ্রাম কী?
উত্তর: প্রোগ্রাম হলো কোনো সমস্যা সমাধানের জন্য কম্পিউটারের ভাষায় ধারাবাহিকভাবে কতকগুলো কমান্ড বা নির্দেশের সমষ্টি।
২. প্রোগ্রামিং ভাষা কী?
উত্তর: প্রোগ্রামিং ভাষা হলো একটি বিশেষ ভাষা যার সাহায্যে সফটওয়্যার বা অ্যাপ তৈরি করা যায়, এবং এটি কম্পিউটারকে কীভাবে কোন কাজ করতে হবে তা ধাপে ধাপে বোঝায়।
৩. মেশিন ভাষা কাকে বলে?
উত্তর: মেশিন ভাষা হলো বাইনারি ০ এবং ১ এর সমন্বয়ে গঠিত একটি ভাষা যা কম্পিউটার সরাসরি বোঝে ও কার্যকর করতে পারে।
৪. অ্যাসেম্বলি ভাষা কাকে বলে?
উত্তর: যে ভাষায় মেশিন কোডের পরিবর্তে মানুষের পক্ষে মনে রাখা সহজ এমন কিছু সাংকেতিক চিহ্ন বা নেমোনিক কোড ব্যবহার করে প্রোগ্রাম রচনা করা হয় তাকে অ্যাসেম্বলি ভাষা বলে।
৫. মধ্যম স্তরের ভাষা কাকে বলে?
উত্তর: অ্যাসেম্বলি ল্যাঙ্গুয়েজ এবং উচ্চ স্তরের ভাষার মধ্যবর্তী ভাষাকে মধ্যম স্তরের ভাষা বলা হয়।
৬. উচ্চ স্তরের ভাষা কাকে বলে?
উত্তর: যেসব ভাষা ব্যবহার করে বিভিন্ন সমস্যা খুব দ্রুত প্রোগ্রাম লিখে সমাধান করা যায় এবং প্রোগ্রাম ডিজাইন করা সহজ হয় তাকে উচ্চ স্তরের ভাষা বলে। যেমন: C++, জাভা, পাইথন ইত্যাদি।
৭. 4GL কী?
উত্তর: যে প্রোগ্রামিং ভাষাগুলো মানুষের ভাষার কিছুটা কাছাকাছি, সে ভাষাগুলোই হলো চতুর্থ প্রজন্মের ভাষা বা 4GL।
৮. অ্যালগরিদম কী?
উত্তর: অ্যালগরিদম হলো প্রোগ্রামিং সমস্যা সমাধানের বিভিন্ন ধাপ।
৯. ফ্লোচার্ট কী?
উত্তর: ফ্লোচার্ট হলো সমস্যা সমাধানের ধাপগুলোকে ছবির মাধ্যমে প্রকাশ করা।
১০. সুডো কোড কী?
উত্তর: গ্রিক শব্দ সুডো (Pseudo) মানে মিথ্যা বা ছন্ম। অর্থাৎ যা সত্য নয়। সুডোকোড হচ্ছে সেই কোড যা কোনো কোড নয়, কিন্তু প্রোগ্রাম রচনার সময় প্রোগ্রামকে বোঝার সুবিধার্থে ব্যবহার করা হয়।
১১. অনুবাদক প্রোগ্রাম কী?
উত্তর: অনুবাদক প্রোগ্রাম হলো বিভিন্ন ভাষায় লেখা প্রোগ্রামকে মেশিন কোডে রূপান্তর করার জন্য বিশেষ প্রোগ্রাম।
১২. কম্পাইলার কী?
উত্তর: কম্পাইলার হলো একটি অনুবাদক প্রোগ্রাম যা পুরো প্রোগ্রাম একসাথে পরীক্ষা করে সিনট্যাক্সগুলো মেশিন কোডে রূপান্তর করে।
১৩. ইন্টারপ্রেটার কী?
উত্তর: ইন্টারপ্রেটার হলো একটি অনুবাদক প্রোগ্রাম যা পুরো প্রোগ্রাম পরীক্ষা না করে প্রোগ্রামের প্রতিটি স্টেটমেন্ট মেশিন কোডে রূপান্তর করে সেটিকে এক্সিকিউট করে।
১৪. অ্যাসেম্বলার কী?
উত্তর: অ্যাসেম্বলার হলো অ্যাসেম্বলি ভাষায় লেখা প্রোগ্রামকে মেশিন কোডে অনুবাদ করার প্রোগ্রাম।
১৫. সোর্স কোড কী?
উত্তর: সোর্স কোড হলো এক বা একাধিক কমান্ডের লিখিত তালিকা যা কম্পাইল বা ইন্টারপ্রেট করে একটি কম্পিউটার একজিকিউট হয়।
১৬. অবজেক্ট প্রোগ্রাম কী?
উত্তর: মেশিন ভাষায় লেখা প্রোগ্রামকে বলা হয় অবজেক্ট প্রোগ্রাম বা বস্তু প্রোগ্রাম।
১৭. ডেটা টাইপ কী?
উত্তর: প্রোগ্রাম চালনার সকল ডেটা মেমোরিতে সংরক্ষিত হয়, ডেটার ধরনকে ডেটা টাইপ বলা হয়।
১৮. ইন্টিজার ডেটা টাইপ কী?
উত্তর: ইন্টিজার বা int ডেটা টাইপ এমন এক ধরনের ডেটা টাইপ যা শুধুমাত্র পূর্ণসংখ্যা ধারণ করে।
১৯. ফ্লোটিং ডেটা টাইপ কী?
উত্তর: ফ্লোটিং ডেটা টাইপে ভগ্নাংশ মান লেখা হয়। ফ্লোটিং ডেটা টাইপ অনেক সময় Double Floating Data Type আকারে ব্যবহার হয়ে থাকে।
২০. স্ট্রিং কাকে বলে?
উত্তর: সি প্রোগ্রামিং ভাষায় ক্যারেক্টার টাইপের ভেরিয়েবলে একাধিক অক্ষর রাখতে হলে ক্যারেক্টার টাইপের অ্যারে ব্যবহার করাকে বলা হয় স্ট্রিং।
২১. চলক কী?
উত্তর: সি ভাষায় মেমোরিতে ডেটা সংরক্ষণ করতে যে নাম ব্যবহৃত হয় তাকে বলা হয় চলক।
২২. ধ্রুবক কী?
উত্তর: C প্রোগ্রামে এমন কিছু মান আছে যেগুলো কোনো সময়ই পরিবর্তিত হয় না। প্রোগ্রামে উল্লেখ করে দিলে সেই মান একই থাকে এবং এর কোনোরূপ পরিবর্তন হয় না। এ সমস্ত মানকে ভাষায় ধ্রুবক বলে।
২৩. ফরম্যাট স্পেসিফায়ার কী?
উত্তর: ক্যারেক্টার টাইপের ডেটা প্রিন্ট করার জন্য যে সাংকেতিক চিহ্ন ব্যবহার করা হয় সেটিই ফরম্যাট স্পেসিফায়ার।
২৪. সিনট্যাক্স কী?
উত্তর: C প্রোগ্রামিং ভাষার নিয়ম কানুনগুলোই হলো সিনট্যাক্স।
২৫. বাগ কাকে বলে?
উত্তর: প্রোগ্রামের ভুলকে বলা হয় বাগ।
২৬. রান টাইম এরর কী?
উত্তর: প্রোগ্রাম নির্বাহের সময় ভুল ডেটা ইনপুট দিলে আউটপুট বা ফলাফল ভুল আসবে অথবা প্রোগ্রাম নির্বাহ হবে না। এ ধরনের ভুলকে রান টাইম এরর বলে।
২৭. Syntax Error কী?
উত্তর: Syntax Error বা সিনট্যাক্স ভুল হলো প্রোগ্রামিং ভাষার ব্যাকরণগত ভুল।
২৮. প্রোগ্রাম ডকুমেন্টেশন কাকে বলে?
উত্তর: ভুল সংশোধনের পর প্রোগ্রাম ঠিকমতো কাজ করলে এবং তা ভবিষ্যতে ব্যবহারের জন্য সংরক্ষণ করে রাখতে হয়। এই সংরক্ষণ করাকে প্রোগ্রাম ডকুমেন্টেশন বলে।
২৯. অ্যাসাইনমেন্ট অপারেশন কাকে বলে?
উত্তর: কোনো ভ্যারিয়েবলের মানকে অ্যাসাইন করার প্রক্রিয়াকে অ্যাসাইনমেন্ট অপারেশন বলে।
৩০. Scanf() কী?
উত্তর: Scanf() হলো ইনপুট নেওয়ার ফাংশন।
৩১. printf() কী?
উত্তর: print() হলো আউটপুট ফাংশন।
৩২. সংরক্ষিত শব্দ কী? / কী-ওয়ার্ড কী?
উত্তর: প্রত্যেক প্রোগ্রামিং ভাষায় কতকগুলো শব্দ আছে যা ঐ প্রোগ্রামিং এ কাজ করার সময় ব্যবহার করা হয়। এই সকল নির্ধারিত শব্দগুলোকে সংরক্ষিত শব্দ বলা হয়।
৩৩. Token কী?
উত্তর: সি প্রোগ্রামের বিভিন্ন স্টেটমেন্টে ব্যবহৃত ওয়ার্ড এবং ক্যারেক্টারসমূহকে সম্মিলিতভাবে টোকেন বলা হয় যা একক বা সম্মিলিতভাবে বিভিন্ন কাজ সম্পন্ন করে।
৩৪. অপারেটর কী?
উত্তর: কোনো রাশিমালায় + b (ab)/C এর +,-, </ প্রভৃতি ক্যারেক্টার হলো অপারেটর।
৩৫. রিলেশনাল অপারেটর কী?
উত্তর: সি প্রোগ্রামিং ভাষায় দুটি সংখ্যা তুলনা করার জন্য ব্যবহৃত = অপারেটরগুলোই হলো রিলেশনাল অপারেটর।
৩৬. লুপ কী?
উত্তর: C প্রোগ্রামে প্রোগ্রামিং চালনার জন্য পুনরাবৃত্তি করার প্রয়োজন হয়। পুনঃপুনরাবৃত্তি করার জন্য যে কমান্ড বা পদ্ধতিসমূহ ব্যবহৃত হয় তাই প্রোগ্রামের লুপ।
৩৭. নেস্টেড লুপ কী?
উত্তর: নেস্টেড লুপ হলো একটি লুপের ভেতর আরও লুপ ব্যবহার করা।
৩৮. অ্যারে কী?
উত্তর: সি প্রোগ্রামিং ভাষায় অ্যারে হলো একটি বিশেষ ডেটা স্ট্রাকচার যাতে একই ধরনের একাধিক ডেটা রাখা যায়।
৩৯. হেডার ফাইল কী?
উত্তর: সি প্রোগ্রামে ব্যবহৃত ফাংশন যে ফাইলে থাকে তাই হলো হেডার ফাইল।
৪০. ফাংশন কী?
উত্তর: বড় কোনো প্রোগ্রামকে ছোট ছোট অংশে ভাগ করার পদ্ধতিকে ফাংশন বলে।
৪১. লাইব্রেরি ফাংশন কী?
উত্তর: লাইব্রেরি ফাংশন হলো কোনো প্রোগ্রামিং ভাষার বিল্ট ইন (Built in) ফাংশন যা প্রোগ্রামের হেডার ফাইলে সংরক্ষিত থাকে। যেমন: printf, scanf ইত্যাদি।
৪২. রান টাইম এরর কী?
উত্তর: প্রোগ্রাম লিখে নির্বাহ করার সময় যে ভুল প্রর্দশন করে তখন তাকে রান টাইম এরর বলে।
৪৩. স্ট্রাকচার্ড প্রোগ্রামিং কী?
উত্তর: স্ট্রাকচার্ড প্রোগ্রামিং হলো একটি প্রোগ্রামিং কৌশল, যার মূল লক্ষ্য হলো প্রোগ্রামের সোর্স কোডকে এমনভাবে লেখা, যাতে সেটি সহজে বোঝা, সংশোধন করা এবং রক্ষণাবেক্ষণ করা যায়।
৪৪. OOP কী?
উত্তর: Object-Oriented Programming হল এমন একটি প্রোগ্রামিং কৌশল, যেখানে ডেটা এবং সেই ডেটার ওপরে কার্যকর হওয়া ফাংশন, উভয়কে একত্রে অবজেক্ট আকারে গঠন করে প্রোগ্রাম তৈরি করা হয়।
অনুধাবন মুলক প্রশ্ন
১. মানুষের পক্ষে মেশিন ভাষায় বড় প্রোগ্রাম তৈরি করা অসম্ভব বলা চলে- ব্যাখ্যা কর।
উত্তর: ০ ও 1 দিয়ে তৈরিকৃত ভাষাটি হলো মেশিন ভাষা। কম্পিউটারের জন্য মেশিন ভাষা খুব সহজবোধ্য হলেও মানুষের জন্য মেশিন ভাষার কোড পড়া দুঃসাধ্য ব্যাপার। কারণ কোডে কেবল 0 আর 1 থাকে। তাই মানুষের পক্ষে এই ভাষার বড় প্রোগ্রাম তৈরি করা অসম্ভব বলা চলে।
২. অ্যাসেম্বলি ভাষা মেশিন ভাষার চেয়ে উন্নততর কেন?
উত্তর: অ্যাসেম্বলি ভাষা মেশিন ভাষার চেয়ে উন্নততর। কারণ অ্যাসেম্বলি ভাষার সাহায্যে অতি সংক্ষিপ্ত আকারে প্রোগ্রাম লেখা যায় যা মেশিন ভাষায় কষ্টসাধ্য। মেশিন ভাষার তুলনায় অ্যাসেম্বলি ভাষায় প্রোগ্রাম পরিবর্তন করা সহজ। লেখা পড়া ও তুলনায় অ্যাসেম্বলি ভাষায় প্রোগ্রাম রচনা করতে সময় লাগে। এজন্য অ্যাসেম্বলি ভাষা মেশিন ভাষার চেয়ে উন্নততর।
৩. ০, ১ দিয়ে লেখা ভাষা ব্যাখ্যা কর।
উত্তর: কম্পিউটারের নিজস্ব ভাষা হচ্ছে মেশিন ভাষা। এটি কম্পিউটারের মৌলিক ভাষা। এই ভাষায় শুধুমাত্র ০ এবং ১ ব্যবহার করা হয় বলে এই ভাষায় দেওয়া কোনো নির্দেশ কম্পিউটার সরাসরি বুঝতে পারে। এর সাহায্যে সরাসরি কম্পিউটারের সাথে যোগাযোগ করা যায়।
৪. মেশিন ভাষায় লিখিত প্রোগ্রাম দ্রুত নির্বাহ হয় কেন?
উত্তর: মেশিন ভাষায় শুধুমাত্র ০ এবং ১ ব্যবহার করা হয় বলে যেকোনো নির্দেশ কম্পিউটার সরাসরি বুঝতে পারে। এটির মাধ্যমে সরাসরি কম্পিউটারের সাথে যোগাযোগ করা যায় বলে মেশিন ভাষায় লিখিত প্রোগ্রাম দ্রুত নির্বাহ হয়।
৫. যান্ত্রিক ভাষাকে নিম্নস্তরের ভাষা বলা হয় কেন?
উত্তর: কম্পিউটারের ভাষা তৈরি হয় বাইনারি সংখ্যা পদ্ধতিতে। বাইনারি সংখ্যা পদ্ধতিতে মাত্র ২টি অঙ্ক (0, 1) ব্যবহৃত হয়। বাইনারি ছাড়া অন্য কোনো সংখ্যা পদ্ধতি সরাসরি কম্পিউটারে ব্যবহার করা যায় না। সমস্যা সমাধানের জন্য বাইনারি সংখ্যায় নির্দেশ সাজিয়ে যান্ত্রিক ভাষায় প্রোগ্রাম প্রস্তুত করা হয়। শুধুমাত্র ০ ও । দিয়ে প্রোগ্রাম লেখা সহজ হয়। সেজন্য যান্ত্রিক ভাষাকে নিম্নস্তরের ভাষা বলা হয়।
৬. সি (C) একটি চমৎকার স্ট্রাকচার্ড প্রোগ্রামিং ভাষা- ব্যাখ্যা কর।
উত্তর : সি একটি সাধারণভাবে ব্যবহারের উপযোগী অত্যন্ত জনপ্রিয় প্রোগ্রামিংয়ের ভাষা। 1972 সালে ডেনিস রিচি (Dennis Ritchie) বেল ল্যাবে এ ভাষাটি তৈরি করেন। বলা হয়ে থাকে এ ভাষাটি জানা থাকলে কম্পিউটারের অন্য যেকোনো ভাষা শেখা খুব সহজ। সি ল্যাঙ্গুয়েজ দিয়ে অপারেটিং সিস্টেম থেকে জটিল ডেটাবেজ ম্যানেজমেন্ট প্রোগ্রাম, ইন্টারনেট ব্রাউজার কিংবা ইন্টারপ্রেটার পর্যন্ত সবকিছু তৈরি করা যায়। ছোট ছোট অসংখ্য অংশকে সমন্বয় করে একটি জটিল প্রোগ্রাম তৈরি করা যায়। এসব কারণে সি (C) একটি চমৎকার স্ট্রাকচার্ড প্রোগ্রামিক ভাষা।
৭. C ও C++ এর মধ্যে ভিন্নতা কী? ব্যাখ্যা কর।
উত্তর: C এবং C++ এর মধ্যে ভিন্নতা লক্ষ করা যায়। যেমন-
C একটি জেনারেল পারপার্স প্রোগ্রামিং ভাষা। C থেকে C++ এর উৎপত্তি।
C ভাষাকে প্রোগ্রামিং ভাষার জনক বলা হয়। C এর উন্নত ভার্সন C++
C হলো প্রসিডিউরাল বা স্ট্যান্ডার্ড প্রোগ্রামিং ভাষা। C ++ হলো অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষা।
C হচ্ছে উচ্চস্তরের প্রোগ্রামিং ভাষা। C++ মধ্যস্তরের প্রোগ্রামিং ভাষা।
৮. "লো-লেভেল ল্যাংগুয়েজের দুর্বলতাই হাই-লেভেল ল্যাংগুয়েজের উৎপত্তির কারণ" ব্যাখ্যা কর।
উত্তর: লো-লেভেল ল্যাঙ্গুয়েজের দুর্বলতার জন্যই হাই-লেভেল ল্যাঙ্গুয়েজ উৎপত্তি হয়েছে। লো-লেভেল ল্যাঙ্গুয়েজের (মেশিন ও আসেম্বলি) মাধ্যমে প্রোগ্রাম রচনায় বেশ কিছু সমস্যা রয়েছে। যেমন- প্রোগ্রাম রচনা করা অত্যন্ত ক্লান্তিকর ও সময়সাপেক্ষ, ডিবাগ করা কষ্টসাধ্য, এক ধরনের মেশিনের জন্য লিখিত প্রোগ্রাম অন্য মেশিনে রান করানো যায় না। এসব সমস্যা বা দুর্বলতা সমাধানের জন্যই হাই-লেভেল ল্যাঙ্গুয়েজ উৎপত্তি হয়েছে।
৯. প্রোগ্রামিং-এর জন্য উচ্চ স্তরের ভাষার ব্যবহার সুবিধাজনক- ব্যাখ্যা কর।
উত্তর: প্রোগ্রামিং-এর জন্য উচ্চস্তরের ভাষা সুবিধাজনক। কারণ-
এ ভাষায় লিখিত প্রোগ্রাম যেকোনো কম্পিউটারে ব্যবহার করা যায়।
নিম্নস্তরের ভাষা থেকে উচ্চস্তরের ভাষা শেখা বেশি সহজ।
এ ভাষায় তাড়াতাড়ি প্রোগ্রাম লেখা যায়।
এ ভাষায় স্বাভাবিক ভাষায় অনেক শব্দ ব্যবহার করা যায়।
অসংখ্য তৈরিকৃত লাইব্রেরি ফাংশন ব্যবহারের সুবিধা রয়েছে।
১০. চতুর্থ প্রজন্মের ভাষা বলতে কী বুঝায়? ব্যাখ্যা কর।
উত্তর : প্রোগ্রামিংকে মানুষের জন্য সহজ করার প্রচেষ্টায় এমন প্রোগ্রামিং ভাষা তৈরি হয় যেগুলো মানুষের ভাষার কিছুটা কাছাকাছি। এসব প্রোগ্রামিং ভাষাকে বলা হয় চতুর্থ প্রজন্মের ভাষা বা 4GL। SQL হলো 4GL ভাষা।
১১. কম্পাইলার ও ইন্টারপ্রেটারের উদ্দেশ্য এক হলেও কাজের ধরনে কিছুটা ভিন্নতা রয়েছে- ব্যাখ্যা কর।
উত্তর: কম্পাইলার ও ইন্টারপ্রেটার দুটিই অনুবাদক প্রোগ্রাম। কম্পাইলার প্রথমে পুরো প্রোগ্রামটি পরীক্ষা করে যে এর ভাষার নিয়ম কানুন ঠিক আছে কী না। যদি ঠিক থাকে, তখন সে পুরো প্রোগ্রামটি কম্পাইল করে মেশিন কোডে রূপান্তর করে। কিন্তু ইন্টারপ্রেটার পুরো প্রোগ্রাম পরীক্ষা না করে প্রোগ্রামের প্রতিটি স্টেটমেন্ট মেশিন কোডে রূপান্তর করে সেটি এক্সিকিউট করে। তাই কম্পাইলার ও ইন্টারপ্রেটারের উদ্দেশ্য এক হলেও কাজের ধরনে কিছুটা ভিন্নতা রয়েছে।
১২. কম্পাইলার ও ইন্টারপ্রেটারের মধ্যে পার্থক্য লিখ।
উত্তর: কম্পাইলার ও ইন্টারপ্রেটারের মধ্যে পার্থক্য নিচে দেওয়া হলো:
কম্পাইলার
কম্পাইলার পুরো প্রোগ্রামটি একসাথে পরীক্ষা করে মেশিন কোডে রূপান্তর করে।
কম্পাইলার দ্রুত কাজ করে।
সবগুলো ভুল একসাথে প্রদর্শন করে।
ইন্টারপ্রেটার
ইন্টারপ্রেটার পুরো প্রোগ্রামটি একসাথে পরীক্ষা না করে প্রতিটি স্টেটমেন্ট পরীক্ষা করে মেশিন কোডে রূপান্তর করে।
ইন্টারপ্রেটার ধীরে কাজ করে।
প্রতিটি স্টেটমেন্টের ভুল প্রদর্শন করে এবং ভুল পাওয়া মাত্রই কাজ বন্ধ করে দেয়।
১৩. অনুবাদক প্রোগ্রামের প্রয়োজনীয়তা ব্যাখ্যা কর।
উত্তর: এক ভাষা থেকে অন্য ভাষায় আউটপুট পাওয়ার প্রয়োজনে অনুবাদক প্রোগ্রামের গুরুত্ব বর্ণনাতীত। প্রতিটি যন্ত্রের মতো অনুবাদক প্রোগ্রামের নিজস্ব ভাষা আছে। আমরা যেকোনো প্রোগ্রামিং ভাষাতেই প্রোগ্রাম রচনা করি না কেন যন্ত্রের মাধ্যমে নির্বাহ করতে হলে অবশ্যই তাকে মেশিন ভাষায় রূপান্তর করতে হবে। বিভিন্ন ভাষায় লেখা প্রোগ্রামকে মেশিন কোডে রূপান্তর করার জন্য বিশেষ প্রোগ্রাম তৈরি করা হয়, যাকে বলে অনুবাদক প্রোগ্রাম। যেমন- C ল্যাংগুয়েজে একটি প্রোগ্রাম লেখা হলো কিন্তু কম্পিউটার এ প্রোগ্রামটি বুঝবে না, এ প্রোগ্রামটিকে অনুবাদ করে মেশিন ভাষায় (বাইনারিতে) বুঝিয়ে দিতে হয়।
১৪. ইন্টারপ্রেটারের তুলনায় কম্পাইলার সুবিধাজনক- কথাটি ব্যাখ্যা কর।
উত্তর: ইন্টারপ্রেটারের তুলনায় কম্পাইলার সুবিধাজনক। কারণ-
কম্পাইলার প্রথমে পুরো প্রোগ্রামটি কম্পাইল করে মেশিন কোডে রূপান্তর করে। পক্ষান্তরে ইন্টারপ্রেটার পুরো প্রোগ্রাম পরীক্ষা না করে প্রোগ্রামের প্রতিটি স্টেটমেন্ট মেশিন কোডে রূপান্তর করে।
কম্পাইল করার পর প্রোগ্রামগুলো অনেক দ্রুত গতিতে কাজ করে। পক্ষান্তরে ইন্টারপ্রেটারে একটি একটি করে স্টেটমেন্ট মেশিন কোডে রূপান্তরিত হয় বলে সময় বেশি লাগে।
১৫. অনুবাদক প্রোগ্রাম হিসেবে কম্পাইলার বেশি উপযোগী ব্যাখ্যা কর।
উত্তর: অনুবাদক প্রোগ্রাম হিসেবে কম্পাইলার বেশি উপযোগী এর কারণ নিম্নরূপ:
কম্পাইলার সম্পূর্ণ প্রোগ্রাম এক সাথে অনুবাদ করে ফলে প্রোগ্রাম নির্বাহের গতি দ্রুত হয়।
কম্পাইলারের মাধ্যমে রূপান্তরিত প্রোগ্রাম সম্পূর্ণরূপে মেশিন ভাষায় রূপান্তরিত হয়। ফলে একবার প্রোগ্রাম কম্পাইল করা হলে পরবর্তিতে আর কম্পাইল করার কোনো প্রয়োজন হয় না।
প্রোগ্রামে কোনো ভুল থাকলে তা মনিটরে একসাথে প্রদর্শন করে। ভুল সংশোধন করার পর প্রোগ্রাম নির্বাহে কম সময় লাগে।
১৬. অ্যালগরিদম ও ফ্লোচার্টের মধ্যে পার্থক্য লিখ।
উত্তর: অ্যালগরিদম ও ফ্লোচার্টের মধ্যে পার্থক্য নিচে লিখা হলো:
অ্যালগরিদম
সমস্যা সমাধানের জন্য যে ধাপগুলো লিখা হয়, সেই ধাপগুলোকে বলা হয় অ্যালগরিদম।
অ্যালগরিদম লেখার কিছু নিয়ম-কানুন রয়েছে।
ফ্লোচার্ট
সমস্যা সমাধানের ধাপগুলোকে যে ছবির মাধ্যমে প্রকাশ করা হয় তাকে বলা হয় ফ্লোচার্ট।
ফ্লোচার্ট তৈরির কোনো সুনির্দিষ্ট নিয়ম-কানুন নেই।
১৭. প্রোগ্রাম তৈরির মূল ধাপগুলো ব্যাখ্যা কর।
উত্তর: প্রোগ্রাম তৈরির মূল ধাপগুলো হলো:
যে সমস্যাটি সমাধান করা হবে, সেটিকে সঠিকভাবে বর্ণনা করা।
সমস্যার সমাধানের জন্য অ্যালগরিদম ও ফ্লোচার্ট তৈরি করা।
কোড লিখা।
প্রোগ্রাম পরীক্ষা করা ও ভুল থাকলে ডিবাগ করে প্রোগ্রাম সংশোধন করা।
প্রোগ্রাম রিলিজ করা।
১৮. ডকুমেন্টেশন কেন করতে হয়?
উত্তর: ডকুমেন্টেশন হচ্ছে সমস্যার বিবরণ, অ্যালগরিদম, ফ্লোচার্ট, গ্রাফ, কোডিং, পরীক্ষার ফলাফল, ব্যবহারকারীর জন্য প্রয়োজনীয় নির্দেশ ইত্যাদির লিখিত বিবরণ বা ডকুমেন্ট প্রস্তুত করা। ডকুমেন্টেশন - প্রোগ্রামারকে প্রোগ্রাম তৈরির প্রতিটি ধাপেই সাহায্য করে এবং এর ফলে প্রোগ্রামটি স্থায়ীভাবে রক্ষিত হয়। তাই প্রোগ্রাম রচনার সময় = ডকুমেন্টেশন করতে হয়।
১৯. অ্যালগরিদম কোডিং-এর পূর্বশর্ত-ব্যাখ্যা কর।
উত্তর: কোনো সমস্যাকে কম্পিউটার প্রোগ্রামিং দ্বারা সমাধান করার পূর্বে কাগজে কলমে সমাধান করার জন্যই অ্যালগরিদম ব্যবহার করা হয়। অবশ্যই নির্দিষ্ট সংখ্যক ধাপে সমস্যার সমাধান দেখতে হবে। কোডিং করার সময় উক্ত প্রোগ্রামের সকল ধাপ সম্পর্কে পরিষ্কার ধারণা থাকতে হয় তা ছাড়া কোডিং করা সম্ভব নয়। অতএব অ্যালগরিদম কোডিং এর পূর্বশর্ত। যার সাহায্যে সহজেই প্রোগ্রামের কোড লেখা হয়।
২০. সি একটি কেস সেনসিটিভ ভাষা-বুঝিয়ে লেখ।
উত্তর: সি ভাষায় সাধারণত সব প্রোগ্রাম ছোট হাতের অক্ষরে লেখা হয়। অর্থাৎ সি প্রোগ্রামে ছোট হাতের অক্ষর ও বড় হাতের অক্ষরের মধ্যে পার্থক্য পরিলক্ষিত হয়। এজন্য সি কে সেনসিটিভ ভাষা বলা হয়।
২১. 'সি' ভাষাকে Mid-Level ভাষা বলা হয় কেন? ব্যাখ্যা কর।
উত্তর: C কে Mid Level Language বলা হয়। কারণ এতে উচ্চ স্তরের ভাষার সুবিধার সাথে সাথে Assemble ভাষার সংযোগ ঘটানো যায়। মধ্য পর্যায়ের ভাষা হিসেবে C কে Assemble ভাষার মতো Bit, Byte, Memory Address নিয়ে ইচ্ছে মতো কাজ করা যায়। আবার উচ্চতর ভাষার মতো এতে বিভিন্ন ডেটা টাইপ নিয়ে কাজ করা যায়। তাছাড়া ডেটা টাইপ বিভিন্ন ধরনের হলেও C তে এগুলোকে সহজে রূপান্তর ও মিশ্রণ করা যায়।
২২. char ডেটা টাইপ ব্যাখ্যা কর।
উত্তর: char হচ্ছে character-এর প্রথম চারটি অক্ষর। এ ধরনের ডেটা টাইপ একটি মাত্র অক্ষর ধারণ করতে পারে। এটি কম্পিউটারের মেমোরিতে সাধারণত এক বাইট (অর্থাৎ, আট বিট) জায়গা দখল করে। তাহলে এ ধরনের ডেটা টাইপে 2' বা 256 টি পৃথক ডেটা রাখা যায়। 256 টি জিনিস কিন্তু একটি ভ্যারিয়েবলে একসঙ্গে রাখা যায় না, একটি ভ্যারিয়েবলে একই সময়ে কেবল একটি ডেটা রাখা যায়, আর char টাইপের ডেটার ক্ষেত্রে সম্ভাব্য 256 টি মানের যেকোনো একটি রাখা যায়।
২৩. int ডেটা টাইপ ব্যাখ্যা কর।
উত্তর: Integer শব্দের অর্থ পূর্ণসংখ্যা। এই শব্দের প্রথম তিনটি অক্ষর নিয়ে int ডেটা টাইপের নামকরণ করা হয়েছে। এ ধরনের ডেটা টাইপে পূর্ণসংখ্যা রাখা যায়। একটি int টাইপের ডেটা সাধারণত কম্পিউটারের মেমোরিতে চার বাইট (অর্থাৎ, 32 বিট) জায়গা দখল করে। যেহেতু এর সাইজ 32 বিট, তাই এতে সম্ভাব্য 232 বা 4294967296 রকমের সংখ্যা রাখা যায়।
২৪. নিচের চলকগুলো শুদ্ধ নয় কেন ব্যাখ্যা কর: abc, main, int, 2abc.
উত্তর: abc চলকটি শুদ্ধ নয় কারণ চলকে underscore (-) এবং dollar sign ($) ছাড়া অন্য কোনো বিশেষ অক্ষর যেমন- @, #, - ইত্যাদি ব্যবহার করা যায় না। main একটি ইউজার ডিফাইন্ড ফাংশন এবং int একটি কী-ওয়ার্ড তাই এগুলো শুদ্ধ চলক নয়। চলক লিখতে যে কোনো charater বা অক্ষর ব্যবহার করা যায়। তবে, প্রথম অক্ষর অবশ্যই character হতে হবে, সংখ্যা হতে পারবে না, তাই 2abc শুদ্ধ চলক নয়।
২৫. সি-ভাষায় 'Inumber' সঠিক চলক নয়- ব্যাখ্যা কর।
উত্তর: সি ভাষায় চলকের নামে কেবল বর্ণ, অঙ্ক এবং আন্ডারস্কোর চিহ্ন () ব্যবহার করা যায়। তবে নামের প্রথম অক্ষরটি কোনো অঙ্ক হতে পারবে না। কিন্তু 'Inumber' চলকে প্রথম অক্ষরটি অঙ্ক ব্যবহার করা হয়েছে। তাই সি ভাষায় 'Inumber' সঠিক চলক নয়।
২৬. চলকের নামে আন্ডারস্কোর ব্যবহার করা যাবে- বুঝিয়ে লেখ।
উত্তর: সি প্রোগ্রামে চলকের নাম লেখার ক্ষেত্রে কিছু নিয়ম কানুন রয়েছে। চলকের নামে বর্ণ, অঙ্ক এবং আন্ডারস্কোর চিহ্ন (1) ব্যতীত অন্য কোন চিহ্ন ব্যবহার করা যায় না। তাই চলকের নামে আন্ডারস্কোর ব্যবহার করা যাবে।
২৭. 'চলকের নামকরণের সময় কিছু নিয়ম মেনে চলতে হয়।'- ব্যাখ্যা কর।
উত্তর: কম্পাইলারের সীমাবদ্ধতার কারণে চলকের নামকরণের সময় কিছু নিয়ম মেনে চলতে হয়। যেমন-
চলকের নামে কেবল বর্ণ, অঙ্ক এবং আন্ডারস্কোর চিহ্ন ()' ব্যবহার করতে হয়।
একই ফাংশনে একই নামে একাধিক চলক ঘোষণা করা যাবে না।
চলকের নামের মাঝে কোনো ফাঁকা স্থান থাকতে পারে না।
চলকের নামের প্রথম অক্ষরটি অঙ্ক দিয়ে শুরু হতে পারে না ইত্যাদি।
২৮. লোকাল এবং গ্লোবাল ভেরিয়েবলের মধ্যে পার্থক্য লিখ।
উত্তর: লোকাল ভেরিয়েবল ও গ্লোবাল ভেরিয়েবলের মধ্যে পার্থক্য:
লোকাল ভেরিয়েবল
লোকাল ভেরিয়েবলে যে ফাংশনে ঘোষণা করা হয় তা শুধু ঐ ফাংশনেই কাজ করে।
কোন ফাংশনের ভিতরে এটি ঘোষণা করা হয়।
ফাংশন কল করার সময় এটি মান ধরে রাখতে পারে না।
গ্লোবাল ভেরিয়েবল
গ্লোবাল ভেরিয়েবল প্রোগ্রামের সর্বত্র কার্যকর থাকে।
যেকোনো ফাংশনের বাইরে এটি ঘোষণা করা হয়।
ফাংশন কল করার সময় এটি মান ধরে রাখতে পারে।
২৯. কি-ওয়ার্ডকে ভেরিয়েবলের নাম হিসেবে ব্যবহার করা যায় না কেন?
উত্তর: কি-ওয়ার্ডকে ভেরিয়েবলের নাম হিসেবে ব্যবহার করা যায় না, কারণ সি ভাষায় বেশ কিছু কি-ওয়ার্ড আছে যার প্রতিটি একটি নির্দিষ্ট অর্থ বহন করে এবং প্রোগ্রামে একটি নির্দিষ্ট কাজ সম্পাদন করে। কি- ওয়ার্ডগুলো হচ্ছে সি ভাষার অংশ। তাই কি-ওয়ার্ডকে ভেরিয়েবল হিসেবে ব্যবহার করা যায় না।
৩০. scanf("%f", &a); স্টেটমেন্টটি ব্যাখ্যা কর।
উত্তর: scanf("%f", &a); স্টেটমেন্টটি ইনপুটের মান গ্রহণের জন্য ব্যবহৃত হয়। প্রোগ্রামটি রান করালে Key board থেকে ইনপুটের মান গ্রহণ করে। এখানে, "%f" হলো float ডেটা টাইপের format specification, &a হলো Address of a যা float টাইপের a ভেরিয়েবলের মেমোরি লোকেশন। যেখানে ডেটা সংরক্ষিত হবে।
৩১. Variable ++ এবং++ variable এক নয়- ব্যাখ্যা কর।
উত্তর: সি প্রোগ্রামে Variable++ এবং ++Variable এক নয়। কারণ পোস্টফিক্স বা Variable++ এর ক্ষেত্রে কম্পাইলার প্রথমে প্রোগ্রামে ভেরিয়েবলের পুরাতন মান ব্যবহার করে। অতঃপর ভেরিয়েবলের মানের সাথে যথাক্রমে এক যোগ বা বিয়োগ করে। এ নতুন মান পরবর্তী ধাপে কার্যকর হয়। কিন্তু প্রিফিক্স বা ++Variable এর ক্ষেত্রে কম্পাইলার প্রথমে ভেরিয়েবলের প্রারম্ভিক মানের সাথে যথাক্রমে এক যোগ বা বিয়োগ করে। অতএব প্রোগ্রামের একই স্টেটমেন্ট এ বর্ধিত মান ব্যবহার করে।
৩২. অ্যারে প্রোগ্রামের জটিলতা কমায়- ব্যাখ্যা কর।
উত্তর: আরে প্রোগ্রামের জটিলতা কমায়। কারণ-
অ্যারেতে একই জাতীয় বা টাইপের ডেটা রাখতে হয়।
অ্যারের মাঝে ডেটা যুক্ত করে অনেকগুলো ডেটা সরাতে হয়।
প্রকৃত ভোটার সাইজ ঘোষণা করা হয়।
৩৩. প্রোগ্রামিং ভাষায় ফাংশনের হেডার ফাইল বলতে কী বুঝ?
উত্তর: যে ফাইলে লাইব্রেরি ফাংশনগুলোর প্রোটোটাইপ বর্ণিত থাকে তাকে C প্রোগ্রামিং ভাষায় ফাংশনের হেডার ফাইল বলে। C ভাষায় হেডার ফাইল প্রোগ্রামের আবশ্যকীয় অংশ। এজনা C প্রোগ্রামে সি প্রোগ্রাম কোনো লাইব্রেরি ফাংশন ব্যবহার করলে প্রোগ্রামের শুরুতেই include প্রিপ্রসেসিং ডিরেক্টিভ এর সাহায্যে সংশ্লিষ্ট হেডার ফাইল সংযুক্ত করতে হয়।
৩৪. #include<stdio.h>-ব্যাখ্যা কর।
উত্তর: #include <stdio.h> লিখে প্রোগ্রামে উক্ত হেডার ফাইলটি সংযুক্ত করা হয়। stdio.h হলো C প্রোগ্রামের একটি হেডার ফাইল। উক্ত ফাইলে printf() ফাংশনের বর্ণনা রয়েছে। ফলে printf() ফাংশন প্রোগ্রামে ব্যবহার করলে stdio.h হেডার ফাইলটি প্রোগ্রামে অন্তর্ভুক্ত করতে হবে।