পঞ্চম অধ্যায় – অনুধাবন প্রশ্ন ও উত্তর সমূহ।

পঞ্চম অধ্যায় – অনুধাবন প্রশ্ন ও উত্তর সমূহ।

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

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

অ্যাসেম্বলি ভাষা মেশিন ভাষা থেকে উন্নত কেন?
যান্ত্রিক ভাষায় প্রোগ্রাম রচনা করার মতো কঠিন কাজকে অপেক্ষাকৃত সহজ করার জন্য এবং সেই সাথে রচিত প্রোগ্রামের ভুল সংশোধন ও পরিবর্তনের কাজ সহজতর করে প্রোগ্রামিং এ গতি সঞ্চারণের লক্ষ্যে অ্যাসেম্বলি ভাষার উন্নয়ন সাধিত হয়। অ্যাসেম্বলি ভাষায় রচিত প্রোগ্রাম মেশিন ভাষার তুলনায় অনেক সহজ হয়। প্রোগ্রাম রচনায় তুলনামূলক সময় অনেক কম লাগে। সহজে ভুল সংশোধন করা যায় এবং প্রোগ্রাম পরিবর্তন করা যায়।

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

অ্যালগরিদমের চেয়ে ফ্লোচার্টের মাধ্যমে সমস্যা শনাক্ত করা সহজ”-ব্যাখ্যা কর।
সমস্যা সমাধানের ধাপসমূহের লিখিত পদ্ধতিকে অ্যালগরিদম বলে। অ্যালগরিদম বর্ণনা নির্ভর। অ্যালগরিদম তৈরির পূর্বে সুডোকোড তৈরির প্রয়োজন হতে পারে। অ্যালগরিদমে প্রোগ্রাম বুঝতে সময় বেশি লাগে। অন্যদিকে চিত্র বা সাংকেতিক চিহ্নের মাধ্যমে সমস্যা সমাধানের ধাপসমূহকে ফ্লোচার্ট বলে। ফ্লোচার্ট চিত্র নির্ভর। ফ্লোচার্ট রচনার ক্ষেত্রে সুডোকোডের কোন প্রয়োজন হয় না। ফ্লোচার্টে প্রোগ্রাম বুঝতে সময় অনেক কম লাগে। সুতরাং বলা যায় যে, অ্যালগরিদমের চেয়ে ফ্লোচার্টের মাধ্যমে সমস্যা শনাক্ত করা সহজ।

প্রবাহচিত্রে ব্যবহৃত প্রতীকগুলো ব্যাখ্যা কর। ফ্লোচার্ট হলো চিত্রভিত্তিক অ্যালগোরিদম ব্যাখ্যা কর।
প্রবাহচিত্রে ব্যবহৃত প্রতীকগুলোর কাজ নিচে দেওয়া হলঃ

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

সি একটি উচ্চ স্তরের প্রোগ্রামিং ভাষাব্যাখ্যা কর।

অনুবাদক প্রোগ্রাম হিসেবে কম্পাইলার বেশি উপযোগীব্যাখ্যা কর।
যে প্রোগ্রামের সাহায্যে উৎস (Source) প্রোগ্রামকে বস্তু (Object) প্রোগ্রামে পরিণত করা হয় তাকে অনুবাদক প্রোগ্রাম বলে। মেশিন ভাষায় লেখা প্রোগ্রামকে বলা হয় বস্তু প্রোগ্রাম (Object Program) এবং অন্য যেকোনো প্রোগ্রামিং ভাষায় লেখা প্রোগ্রামকে বলা হয় উৎস প্রোগ্রাম (Source program)। কম্পাইলার হলো এক ধরনের অনুবাদক প্রোগ্রাম যা হাইলেভেল ভাষায় লিখিত প্রোগ্রামকে মেশিন ভাষায় রূপান্তর করে।  অর্থাৎ সোর্স প্রোগ্রামকে অবজেক্ট প্রোগ্রামে রূপান্তর করে। অনুবাদক প্রোগ্রাম হিসেবে কম্পাইলার বেশি উপযোগী কারণ- কম্পাইলার সম্পূর্ণ প্রোগ্রামটিকে একসাথে অনুবাদ করে ফলে প্রোগ্রাম নির্বাহের গতি দ্রুত হয়। প্রোগ্রাম নির্বাহে কম সময় লাগে, কম্পাইলারের মাধ্যমে রূপান্তরিত প্রোগ্রাম সম্পূর্ণরূপে মেশিন প্রোগ্রামে রূপান্তরিত হয়, একবার প্রোগ্রাম কম্পাইল করা হলে পরবর্তিতে আর কম্পাইলের প্রয়োজন হয় না, প্রোগ্রামে কোন ভুল থাকলে তা মনিটরে একসাথে প্রদর্শন করে।উপরোক্ত বৈশিষ্ট্য থেকে বলা যায় অনুবাদক প্রোগ্রাম হিসেবে কম্পাইলার বেশি উপযোগী। 

প্রত্যেকবার প্রোগ্রাম নির্বাহের সময় কম্পাইল করা প্রয়োজন ব্যাখ্যা কর।
কম্পাইলারের তুলনায় ইন্টারপ্রেটার কোন ক্ষেত্রে ভালো ব্যাখ্যা কর।
উৎস প্রোগ্রামকে কম্পাইল করার প্রয়োজন হয় কেনব্যাখ্যা কর।

সি প্রোগ্রামিং ভাষা একটি কেস সেনসিটিভ ভাষাবুঝিয়ে লিখ।  
সি প্রোগ্রামিং ভাষা একটি উচ্চস্তরের ভাষা। এই ভাষা প্রায় মানুষের ভাষার কাছাকাছি তাই এই ভাষার সাহায্যে প্রোগ্রাম রচনা করা সহজ। সি প্রোগ্রামিং ভাসাটির একটি বৈশিষ্ট্য হল  এটি case sensitive প্রোগ্রামিং ভাষা। অর্থাৎ এই ভাষায় লেখা প্রোগ্রামে ছোট হাতের অক্ষর এবং বড় হাতের অক্ষর আলাদা অর্থ বহন করে। যেমন: a এবং A দুটি আলাদা চলক। তাই বলা হয় সি প্রোগ্রামিং ভাষা একটি case sensitive প্রোগ্রামিং ভাষা।

চলক তৈরির ক্ষেত্রে কিছু বিধিবদ্ধ নিয়ম কানুন রয়েছেব্যাখ্যা কর।/সি ভাষায় int roll@no; স্টেটমেন্টটি বৈধ/অবৈধ ব্যাখ্যা কর।
চলক হলো মেমোরি লোকেশনের নাম বা ঠিকানা। অর্থাৎ প্রোগ্রামে ডেটা নিয়ে কাজ করার সময় প্রতিটি ডেটার জন্য একটি চলকের ব্যবহার করতে হয়। প্রতিবার প্রোগ্রাম নির্বাহের সময় মেমরিতে ভেরিয়েবলগুলো অবস্থান এবং সংরক্ষিত মান পরিবর্তন হয় বা হতে পারে বলে এদেরকে ভেরিয়েবল বা চলক বলা হয়। একটি প্রোগ্রামের শুরুতে প্রয়োজনীয় সংখ্যক চলক বা ভেরিয়েবল ঘোষণা করা হয়। এই চলক ঘোষণা করার কিছু নিয়ম আছে। যেমন-
  • ১. ভেরিয়েবল এর নাম হিসাবে কেবল অ্যালফাবেটিক ক্যারেক্টার (A-Z,a-z),সংখ্যা (0-9) এবং আন্ডারস্কোর (_) ব্যবহার করা যায়। যেমন: Roll_number,Counta7 ইত্যাদি।
  • ২. ভেরিয়েবলের নামের প্রথম ক্যারেক্টার অবশ্যই অক্ষর হতে হবে। যেমন: Roll_number, number, amount, Roll_22 সঠিক ভেরিয়েবল । কিন্তু 22Roll সঠিক ভেরিয়েবল নয়।
  • ৩. ভেরিয়েবল এ কোন প্রকার স্পেশাল ক্যারেক্টার যেমন !,@,#,%,&,$ ইত্যাদি ব্যবহার করা যাবে না। যেমন- my@roll, ashek$mizan$amir, &a ইত্যাদি অবৈধ ভেরিয়েবল ।
  • ৪. কোন কী-ওয়ার্ড বা রির্জাভ ওয়ার্ড ভেরিয়েবল এর নাম হিসাবে ব্যবহার করা যাবে না। যেমন: for, while ইত্যাদি । তাই বলা যায় চলক তৈরির ক্ষেত্রে কিছু নিয়ম কানুন রয়েছে।

সি প্রোগ্রামিং ভাষার লাইব্রেরি ফাংশনের হেডার ফাইল বলতে কী বুঝায়?
সি প্রোগ্রামের সোর্স কোডের লিঙ্ক সেকশনে লাইব্রেরিতে সংরক্ষিত যে সব ফাইলকে যুক্ত করা হয় তাদেরকে header ফাইল বলে। এই ফাইলের এক্সটেনশন হলো “h” যেমন- stdio.h  সি প্রোগ্রামিং ভাষার একটি হেডার ফাইল। উক্ত ফাইলে printf() বা scanf() ফাংশনের বর্ণনা রয়েছে। ফলে printf() ফাংশন প্রোগ্রামে ব্যবহার করলে stdio.h হেডার ফাইলটি প্রোগ্রামে অন্তর্ভুক্ত করতে হয়। এখানে #include<stdio.h> লিখে প্রোগ্রামে উক্ত হেডার ফাইলটি সংযুক্ত করা হয়েছে।

সি প্রোগ্রামিং ভাষায় লিখিত প্রোগ্রামে #include<stdio.h> আবশ্যক কেনব্যাখ্যা কর।
একটি আদর্শ প্রোগ্রামে ইনপুট, প্রসেস ও আউটপুট এর ব্যবস্থা থাকতে হয়। সি প্রোগ্রামিং ভাষায় লেখা একটি প্রোগ্রামে ইনপুট এবং আউটপুট এর জন্য যথাক্রমে  scanf() এবং printf() নামক লাইব্রেরী ফাংশন ব্যবহার করা হয়। এই ফাংশন দুটির জন্য #include<stdio.h> হেডার ফাইল ব্যবহার করা হয়। তাই বলা যায়, সি প্রোগ্রামিং ভাষায় লিখিত প্রোগ্রামে #include<stdio.h> আবশ্যক।

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

আউটপুট ফাংশন বলতে কি বুঝায়?
সি প্রোগ্রামে যখন কোনো  নির্দিষ্ট কাজ সম্পাদনের জন্য কতগুলো স্টেটমেন্ট কোনো  নামে একটি ব্লকের মধ্যে রাখা হয় তখন তাকে ফাংশন বলা হয়। প্রতিটি ফাংশন একটি নির্দিষ্ট কাজ করে। আউটপুট ফাংশন হচ্ছে এমন একটি ফাংশন যা মনিটরে কোন কিছু প্রদর্শন করে। যেমন- printf() হচ্ছে একটি আউটপুট ফাংশন যা প্রোগ্রামে কোনকিছু আউটপুট হিসেবে দেখায়।

সি প্রোগ্রামিং ভাষায় ব্যবহৃত ইনপুট ও আউটপুট ফাংশনগুলো লেখ।
সি প্রোগ্রামে যখন কোনো  নির্দিষ্ট কাজ সম্পাদনের জন্য কতগুলো স্টেটমেন্ট কোনো  নামে একটি ব্লকের মধ্যে রাখা হয় তখন তাকে ফাংশন বলা হয়। প্রতিটি ফাংশন একটি নির্দিষ্ট কাজ সম্পাদন করে। সি প্রোগ্রামে কোনো মান ইনপুট হিসেবে গ্রহণ করার জন্য scanf(), gets() ও getchar() ফাংশন ব্যবহৃত হয়। মনিটরে কোন কিছু প্রদর্শন করার জন্য printf(), puts() ও putchar() আউটপুট ফাংশন ব্যবহৃত হয়।

printf(“%d %d”, a, b); স্টেটমেন্টটি ব্যাখ্যা কর।
printf(“%d %d”, a, b); স্টেটমেন্টটিকে সি প্রোগ্রামিং ভাষায় আউটপুট স্টেটমেন্ট বলা হয়। আউটপুট স্টেটমেন্ট হলো যার মাধ্যমে ব্যবহারকারীকে আউটপুট দেখানো হয়। উপরের স্টেটমেন্টটির মাধ্যমে দুটি চলক  a ও b এর মান প্রদর্শন করা হয়েছে।

scanf(“%f”, &a); স্টেটমেন্টটি ব্যাখ্যা কর।  
scanf(“%f”, &a); এই স্টেটমেন্ট কে “সি” প্রোগ্রামিং ভাষায় ইনপুট স্টেটমেন্ট বলা হয়। ইনপুট স্টেটমেন্ট হলো যার মাধ্যমে প্রোগ্রাম ইউজারের কাছ থেকে ডেটা ইনপুট নেয়। এই স্টেটমেন্টের মাধ্যমে প্রোগ্রাম ইউজারের কাছ থেকে একটি ভগ্নাংশ ধরনের সংখা ইনপুট নিয়ে a চলকে সংরক্ষণ করে যা পরবর্তীতে ব্যবহার করে।

printf() ও scanf() উদাহরণ দ্বারা ব্যাখ্যা কর।
সি প্রোগ্রামিং ভাষায় বহুল ব্যবহৃত ও গুরুত্বপূর্ণ ফাংশন হলো printf() এবং scanf()। প্রোগ্রামে কোনো মান ইনপুট নেওয়ার জন্য scanf() ফাংশন ব্যবহৃত হয় এবং কোনো ফলাফল প্রদর্শনের জন্য printf() ফাংশন ব্যবহৃত হয়। যেমন- scanf(“%d”, &a);  এবং printf(“%d”, a); স্টেটমেন্ট দুটির সাহায্যে যথাক্রমে a চলকে ইনপুট নেওয়া ও a চলকের মান আউটপুটে দেখানো হয়।

Integer এর পরিবর্তে কখন Long Integer ব্যবহার করা হয়বুঝিয়ে লেখ।
integer হল একধরনের ডেটা টাইপ যা পূর্ণসংখ্যা ইনপুট নেওয়ার জন্য সি প্রোগ্রামে ব্যবহৃত হয়। এটি সাধারণত ভেরিয়েবল ডিক্লারেশন এর সময় ভেরিয়েবল এর সামনে লিখে দিতে হয়। যেমনঃ int a=32; এর রেঞ্জ -৩২৭৬৮ থেকে +৩২৭৬৭ পর্যন্ত। এর চেয়ে বড় কোন রেঞ্জের সংখ্যা ইনপুট নেওয়ার জন্য long integer ব্যবহৃত হয়।

সি ভাষায় Float type বলতে কি বুঝউদাহরণ সহ লিখ।
যদি কোনো ডেটার মান সংখ্যাসূচক কিন্তু ভগ্নাংশ হয় তবে তার জন্য ব্যবহৃত চলক অথবা ধ্রুবকের ডেটা টাইপকে float বলা হয়। এ ধরনের চলকের জন্য মেমোরিতে ৪ বাইট জায়গা লাগে। যেমন- ধরি x=৩২, printf(“%f”, x); তাহলে আউটপুট হবে x=32.000000

কখন ইউনারি অপারেটর ব্যবহার করা হয়ব্যাখ্যা কর।
সি ভাষায় গাণিতিক এবং যৌক্তিক কাজ নিয়ন্ত্রণ করার জন্য কতগুলো বিশেষ চিহ্ন ব্যবহৃত হয়এগুলোকে অপারেটর বলা হয়। আর যা ডেটা ধারণ করে তাকে অপারেন্ড বলা হয়। যে সকল অপারেটর একটি মাত্র অপারেন্ড নিয়ে কাজ করে তাদের ইউনারি অপারেটর বলে। অর্থাৎ যখন প্রোগ্রামিং এর ক্ষেত্রে একটি মাত্র অপারেন্ড নিয়ে কাজ করতে হয়, সেই ক্ষেত্রে ইউনারি অপারেটর ব্যবহার করা হয়। যেমন- ইনক্রিমেন্টাল অপারেটর (++) এবং ডিক্রিমেন্টাল অপারেটর(–) ইত্যাদি।

প্রোগ্রামে অপারেটরের গুরুত্ব লেখ।
সি ভাষায় গাণিতিক এবং যৌক্তিক কাজ নিয়ন্ত্রণ করার জন্য কতগুলো বিশেষ চিহ্ন/symbol (যেমন- +, -, *, /, ++, –, <, >, >= ইত্যাদি) ব্যবহৃত হয় যা অপারেটর নামে পরিচিত। এই অপারেটর সমূহ না থাকলে সি ভাষায় কখনো গাণিতিক বা যৌক্তিক কাজ করা সম্ভব হতো না।

i++ এবং ++i ব্যাখ্যা কর।
i++ হলো পোস্ট ইনক্রিমেন্ট বা পোস্টফিক্স। পোস্টফিক্স প্রথমে বাম পাশে চলকের মান অ্যাসাইন করে তারপর অপারেন্ডের মান 1 বৃদ্ধি করে। ++i হলো প্রিইনক্রিমেন্ট বা প্রিফিক্স। প্রিফিক্স প্রথমে অপারেন্ডের সাথে 1 যোগ করে। তারপর ফলাফলকে বাম পাশের চলকে অ্যাসাইন করে।

“=” এবং = =” এর মধ্যে পার্থক্য লেখ।
“=” হচ্ছে অ্যাসাইনমেন্ট অপারেটর। কোনো চলকের মানকে বা কোন সংখ্যাকে অন্য কোনো চলকের মান হিসেবে নির্ধারণ করতে যেসব অপারেটর ব্যবহার করা হয়, তাকে অ্যাসাইনমেন্ট অপারেটর বলে। যেমন- C=A+B। এখানে A ও B চলকের মান যোগ করে যোগফল C চলকে অ্যাসাইন করা হয়েছে। “= =”  হলো রিলেশনাল অপারেটর। দুটি অপারেন্ডের মধ্যে তুলনা করতে যে অপারেটরসমূহ ব্যবহৃত হয় তাদেরকে সম্পর্কযুক্ত অপারেটর বলা হয়। যেমন- a==b হলো a এবং b এর মান সমান।

for loop এবং Do while loop এর মধ্যে কোনটি ব্যবহার করা সহজ?  
for এবং do while loop এর মধ্যে for loop ব্যবহার করা সহজ। কারণ সি প্রোগ্রামে কোন স্টেটমেন্ট দুই বা ততোধিক বার ব্যবহার করার জন্য for loop ব্যবহৃত হয়। loop কতবার নির্বাহ করা হবে তা জানা থাকলে for loop ব্যবহার করা উপযোগী। তাই do while loop এর চেয়ে for loop ব্যবহার করা সহজ।

গ্লোবাল ভেরিয়েবলকে প্রোগ্রামের সকল অংশে জুড়ে দেওয়া সম্ভব”-ব্যাখ্যা কর।
কোনো চলক বা ভেরিয়েবল যদি main() ফাংশনের বাইরে ঘোষণা করা হয় তবে সেই ভেরিয়েবলের কার্যকারিতা main() ফাংশন বা ঐ প্রোগ্রামে ব্যবহৃত সকল ফাংশনের মধ্যে বিস্তৃত থাকে। আর এই ধরনের চলককে গ্লোবাল ভেরিয়েবল বলা হয়। এই ধরনের চলক প্রোগ্রামের সকল ফাংশনেই ব্যবহার করা সম্ভব।       
  
অ্যারে এবং চলক এক নয়”-ব্যাখ্যা কর।
একই ধরনের বা সমপ্রকৃতির চলকের সমাবেশকে অ্যারে বলা হয়। অ্যারের একটি নাম থাকে, ইনডেক্স নাম্বার এবং আইটেম সমূহকে বন্ধনীর মধ্যে উপস্থাপন করা হয়। অ্যারে একমাত্রিক ও বহুমাত্রিক হতে পারে। মেমোরি অ্যাড্রেস সরাসরি ব্যবহার না করে একটি নাম দিয়ে ঐ নামের অধীনে ডেটা রাখা হয়। এই ডেটা পরিবর্তনশীল তাই ঐ নামকে চলক বলা হয়। চলক হলো প্রোগ্রামের দেওয়া মেমোরির কয়েক বাইট স্থানের একটি নাম। তাই বলা যায় যে, অ্যারে এবং চলক এক নয়।

অ্যারে প্রোগ্রামের জটিলতা কমায়ব্যাখ্যা কর।
একই জাতীয় একাধিক ডেটা একটি চলকের আন্ডারে রাখা সম্ভব ব্যাখ্যা কর।

Post a Comment

0 Comments
Post a Comment (0)
To Top