পঞ্চম অধ্যায়

প্রোগ্রামিং ভাষা

প্রোগ্রামিং ভাষা

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

প্রোগ্রামিং ভাষার প্রজন্ম

প্রোগ্রামিং ভাষাকে ৫টি প্রজন্মে ভাগ করা হয়েছে:

প্রজন্ম সাল ভাষা
১ম ১৯৪৫ মেশিন ভাষা (Machine language)
২য় ১৯৫০ অ্যাসেম্বলি ভাষা (Assembly language)
৩য় ১৯৬০ উচ্চতর ভাষা (High Level Language)
৪র্থ ১৯৭০ অতি উচ্চতর ভাষা (Very High Level)
৫ম ১৯৮০ স্বাভাবিক ভাষা (Natural Language)

মেশিন ভাষা

০ এবং ১ দ্বারা লিখিত ভাষাকে বলা হয় মেশিন ভাষা বা যান্ত্রিক ভাষা। মেশিন ভাষার প্রোগ্রাম সরাসরি ও দ্রুত কার্যকরি হয়। এ ভাষায় লেখা প্রোগ্রামকে অবজেক্ট প্রোগ্রাম বা বস্তু প্রোগ্রাম বলা হয়।

মেশিন ভাষার বৈশিষ্ট্য:
  • ০, ১ দ্বারা লেখা হয়।
  • কম্পিউটার সরাসরি বুঝতে পারে।
  • অনুবাদক প্রোগ্রামের প্রয়োজন হয় না।
  • ডিবাগিং করা কঠিন।
  • প্রোগ্রাম লেখা কষ্টসাধ্য ব্যাপার।

মেশিন ভাষার নির্দেশে ২ টি অংশ: অপকোড, অপারেন্ড।

অ্যাসেম্বলি ভাষা-Assembly Language

বিভিন্ন সাংকেতিক চিহ্ন ব্যবহার করে লিখিত ভাষাকে অ্যাসেম্বলি ভাষা বলে। অ্যাসেম্বলি ভাষাকে সাংকেতিক ভাষাও বলা হয়। মেশিন ভাষার চেয়ে অ্যাসেম্বলি ভাষায় কোড লেখা ও পড়া সহজ।

মেশিন ভাষা ও অ্যাসেম্বলি ভাষার মধ্যে পার্থক্য

মেশিন ভাষা অ্যাসেম্বলি ভাষা
০১। ০ এবং ১ দ্বারা লিখিত ভাষাকে বলা হয় মেশিন ভাষা বা যান্ত্রিক ভাষা। ০১। বিভিন্ন সাংকেতিক চিহ্ন ব্যবহার করে লিখিত ভাষা হচ্ছে অ্যাসেম্বলি ভাষা।
০২। এ ভাষা কম্পিউটার সরাসরি বুঝতে পারে। ০২। এ ভাষা কম্পিউটার সরাসরি বুঝতে পারে না।
০৩। এ ভাষার ক্ষেত্রে অনুবাদক প্রোগ্রাম প্রয়োজন হয়না। ০৩। এ ভাষার ক্ষেত্রে অনুবাদক প্রোগ্রাম প্রয়োজন হয়।

মধ্যমস্তরের ভাষা

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

উচ্চস্তরের ভাষা

প্রোগ্রাম সহজে বোঝার জন্য সর্বজনীন ভাষা হচ্ছে উচ্চস্তরের ভাষা। নিম্ন স্তরের ভাষায় প্রোগ্রাম লেখা খুবই সময় সাপেক্ষ। এছাড়া, নিম্নস্তরের ভাষায় প্রোগ্রাম ডিবাগিং করা কঠিন। তাই, উচ্চস্তরের ভাষার উৎপত্তি। উচ্চস্তরের ভাষায় সহজেই প্রোগ্রাম রচনা করা যায়। উচ্চ স্তরের ভাষার মধ্যে উল্লেখযোগ্য হচ্ছে: C, C++, JAVA, Pascal, Algol, Oracle, Cobol ইত্যাদি।

মেশিন ভাষা ও উচ্চস্তরের ভাষার মধ্যে পার্থক্য

মেশিন ভাষা উচ্চস্তরের ভাষা
০১। ০ এবং ১ দ্বারা লিখিত ভাষাকে বলা হয় মেশিন ভাষা বা যান্ত্রিক ভাষা। ০১। উচ্চস্তরের ভাষা বিভিন্ন বর্ণ, চিহ্ন, অংক ও প্রতিকের সমন্বয়ে লেখা হয়।
০২। এ ভাষা কম্পিউটার সরাসরি বুঝতে পারে। ০২। এ ভাষা কম্পিউটার সরাসরি বুঝতে পারে না।
০৩। এ ভাষার ক্ষেত্রে অনুবাদক প্রোগ্রাম প্রয়োজন হয়না। ০৩। এ ভাষার ক্ষেত্রে অনুবাদক প্রোগ্রাম প্রয়োজন হয়।
০৪। মেশিন ভাষায় প্রোগ্রাম ভুল হওয়ার সম্ভবনা বেশী। ০৪। উচ্চস্তরের ভাষায় প্রোগ্রাম ভুল হওয়ার সম্ভবনা কম।

অনুবাদক প্রোগ্রাম

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

যে প্রোগ্রাম সোর্স প্রোগ্রামকে অবজেক্ট প্রোগ্রাম এ রূপান্তর করে তাকে অনুবাদক প্রোগ্রাম বলে।

অনুবাদক প্রোগ্রাম ৩ প্রকার: যথা -
১। অ্যাসেম্বলার: অ্যাসেম্বলি ভাষাকে অনুবাদ করার জন্য যে অনুবাদক প্রোগ্রাম ব্যবহার করা হয় তাকে অ্যাসেম্বলার বলে।
২। ইন্টারপ্রিটার: যে অনুবাদক প্রোগ্রাম উচ্চস্তরের ভাষার সোর্স কোডকে অবজেক্ট কোডে রূপান্তর করে তাকে কম্পাইলার বলে।
৩। কম্পাইলার: যে অনুবাদক প্রোগ্রাম উচ্চস্তরের ভাষার সোর্স কোডকে অবজেক্ট কোডে রূপান্তর করে তাকে কম্পাইলার বলে।

কম্পাইলার ও ইন্টারপ্রিটারের মধ্যে পার্থক্য

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

অনুধাবনমূলক প্রশ্নোত্তর

অনুবাদক প্রোগ্রাম হিসেবে কম্পাইলার বেশি উপযোগী – ব্যাখা কর।

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


কম্পাইলার ও ইন্টারপ্রিটার এক নয় – ব্যাখা কর।

উত্তর: কম্পাইলার সম্পূর্ণ প্রোগ্রাম একসাথে অনুবাদ করে। কিন্তু, ইন্টারপ্রিটার প্রোগ্রাম এক লাইন এক লাইন করে অনুবাদ করে। কম্পাইলারে প্রোগ্রাম নির্বাহে কম সময় লাগে। অপরদিকে, কম্পাইলারে প্রোগ্রাম নির্বাহে বেশী সময় লাগে। তাই, কম্পাইলার ও ইন্টারপ্রিটার উভয়ই অনুবাদক প্রোগ্রাম কিন্তু এক নয়।

প্রোগ্রাম উন্নয়নের ধাপসমূহ

একটি প্রোগ্রাম তৈরি করার জন্য বেশ কিছু ধাপ অনুসরণ করতে হয়। প্রোগ্রাম তৈরির উল্লেখযোগ্য ধাপগুলো নিচে আলোচনা করা হয়েছে:-

অ্যালগরিদম

অ্যালগরিদম হচ্ছে কোন সমস্যা সমাধানের জন্য ধারাবাহিক কিছু ধাপের সমস্টি । অ্যালগরিদম হচ্ছে কোডিং এর পূর্বশর্ত।

অ্যালগরিদম এর বৈশিষ্ট্য:

১। অ্যালগরিদম এর ধাপগুলো স্পষ্ট হতে হতে হবে।
২। অ্যালগরিদম প্রয়োগ উপযোগী হতে হবে।
৩। ধাপে ধাপে সমাধান করতে হবে।

ফ্লোচার্ট

চিত্র বা প্রতীকের মাধ্যমে কোন সমস্যা সমাধানের প্রক্রিয়াকে ফ্লোচার্ট বা প্রবাহচিত্র বলে।

ফ্লোচার্ট ২ প্রকার:

১। সিস্টেম ফ্লোচার্ট
২। প্রোগ্রাম ফ্লোচার্ট

ফ্লোচার্টের সুবিধা:

১। সহজে প্রোগ্রাম উপস্থাপন করা যায়।
২। প্রোগ্রামের প্রবাহ বুঝা যায়।
৩। প্রবাহচিত্র থেকে সহজেই প্রোগ্রাম অনুধাবন করা যায়।

ফ্লোচার্ট এ ব্যবহৃত প্রতীকসমূহ:

নাম প্রতীক বর্ণনা
টার্মিনাল শুরু এবং শেষ নির্দেশ করে।
ইনপুট / আউটপুট ইনপুট এবং আউপুট নির্দেশ করে।
প্রক্রিয়াকরণ প্রক্রিয়াকরণ নির্দেশ করে।
সিদ্ধান্ত সিদ্ধান্ত গ্রহণের জন্য এই প্রতীক ব্যবহার করা হয়।
সংযোগ সংযোগ করার জন্য ব্যবহার করা হয়।
প্রবাহদিক ফ্লোচার্টের প্রবাহদিক নির্দেশ করে।

অ্যালগরিদম ও ফ্লোচার্টের পার্থক্য:

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

সুডোকোড

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

ডিবাগিং

প্রোগ্রামের ভুলকে বাগ বলা হয়। প্রোগ্রামের ভুল সংশোধন করা হচ্ছে ডিবাগিং। সি প্রোগ্রামে ৩ ধরনের বাগ দেখা যায়:

বাগ বর্ণনা
ডেটা ভুল প্রোগ্রামিং এ ভুল ডেটা প্রবেশ করালে তাকে ডেটা ভুল বলা হয়। যেমন: 75 এর পরিবর্তে ভুল করে 57 টাইপ করলে সেটা ডেটা ভুল হয়। ডেটা ভুলের ক্ষেত্রে কম্পিউটার ভুলের বার্তা (ওয়ার্নিং বা এরর) প্রদর্শন করে না।
যুক্তিগত ভুল প্রোগ্রামে যুক্তির ভুলকে লজিক্যাল এরর বা যুক্তিগত ভুল বলা হয়। যেমন: sum = a+b এর পরিবর্তে sum = a-b লেখা, x>y এর পরিবর্তে ভুল করে x<y লেখা এগুলো যুক্তিগত ভুল। লজিক্যাল ভুলের ক্ষেত্রে কম্পিউটার ভুলের বার্তা (ওয়ার্নিং বা এরর) প্রদর্শন করে না।
সিনট্যাক্স ভুল সিনট্যাক্স ভুল বলতে বোঝায় কোন প্রোগ্রামিং ভাষার ব্যকরণগত ভুল। যেমন: include এর পূর্বে # চিহ্ন না দেওয়া, main এর পর প্রথম বন্ধনী না দেওয়া, সেমিকোলন না দেওয়া ইত্যাদি। সিনট্যাক্স ভুলের ক্ষেত্রে কম্পিউটার ভুলের বার্তা (ওয়ার্নিং বা এরর) প্রদর্শন করে।

প্রোগ্রাম তৈরির মূল ধাপসমূহ

সমস্যা নির্দিষ্টকরণ: প্রোগ্রাম রচনার ক্ষেত্রে প্রথমেই সমস্যাটি নির্দিষ্ট করতে হবে।

সমস্যা বিশ্লেষণ: সমস্যাটি ধাপে ধাপে সমাধান করার জন্য সমস্যাটি সঠিকভাবে বিশ্লেষণ করতে হবে।

প্রোগ্রাম ডিজাইন বা পরিকল্পনা: প্রোগ্রাম ডিজাইনের অন্তর্ভুক্ত কাজগুলো হচ্ছে অ্যালগরিদম, ফ্লোচার্ট এবং সুডোকোড তৈরি।

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

প্রোগ্রাম বাস্তবায়ন: প্রোগ্রাম কোডিং করার পর প্রোগ্রাম বাস্তবায়ন করা হয়। এই ধাপে প্রোগ্রাম টেস্ট করা হয়। টেস্টিং এ কোন বাগ পেলে তা সংশোধন করা হয়।

প্রোগ্রাম ডকুমেন্টেশন: ডকুমেন্টেশন হল একটি প্রোগ্রামের বিবরণ, অ্যালগরিদম, ফ্লোচার্টসহ প্রয়োজনীয় নির্দেশনা। একটি প্রোগ্রামের ব্যবহারিক নির্দেশনা-ই হচ্ছে প্রোগ্রাম ডকুমেন্টেশন।

প্রোগ্রাম রক্ষণাবেক্ষণ: প্রোগ্রামের পরবর্তী উন্নয়ন, নিরাপত্তা নিশ্চিতকরণ, ব্যবহারকারীর চাহিদার ভিত্তিতে প্রোগ্রাম পরিবর্তন প্রোগ্রাম রক্ষণাবেক্ষণ এর অন্তর্ভুক্ত।

সি প্রোগ্রামিং

সি একটি স্ট্রাকচার বা প্রসিডিউরাল প্রোগ্রামিং ভাষা। এটি অত্যন্ত শক্তিশালী প্রোগ্রামিং ভাষা। সি ভাষার জনক ডেনিস রিচি। ১৯৭২ সালে বেল (Bell) ল্যাব সি ভাষা তৈরি করেন। সি ভাষাকে General Purpose Programming Language ও বলা হয়। সি ভাষায় লেখা প্রোগ্রাম সোর্স কোড। সি ফাইলের এক্সটেনশন হচ্ছে .c

সি ভাষার বৈশিষ্ট্য:
  • সি একটি কেস সেনসিটিভ ভাষা।
  • এটি একটি মধ্যম স্তরের ভাষা।
  • প্রতিটি স্ট্যাটমেন্ট এর শেষে সেমিকোলন দিতে হয়।
  • সি ভাষায় অসংখ্য কমেন্ট ব্যবহার করা যায়।
  • সি ভাষার প্রচুর বিল্ড ইন ফাংশন রয়েছে।
  • সি ভাষা অবজেক্ট অরিয়েন্টেড নয়।

সি ভাষার গঠন

সি ভাষায় এক বা একাধিক ফাংশন থাকে । প্রতিটি সি প্রোগ্রামে একটি main ফাংশন থাকে । সি প্রোগ্রামের গঠন:

Document Section
Link Section
Defination Section
Global Declaration Section
main() Function Section
{
    Declaration Part
    Execution Part

}
Sub Program Section
  • Document Section: প্রোগ্রামের উদ্দেশ্য এখানে লেখা হয়। এটি একটি ঐচ্ছিক (Optional) অংশ। বড় বড় ডেভেলপারগণ হাজার হাজার লাইন ব্যবহার করে প্রোগ্রাম তৈরি করেন। তখন, কমেন্ট ব্যবহার করেন যেন অন্য একজন ডেভেলপার সহজেই তার প্রোগ্রাম বুঝতে পারেন।
  • Link Section: এই অংশে সি প্রোগ্রামে প্রয়োজনীয় হেডার ফাইল প্রোগ্রামে অন্তর্ভুক্ত করা হয়। হেডার ফাইল অন্তর্ভুক্ত করার সিনট্যাক্স হল:
     #include<filename>  
    যেমন:
       #include<stdio.h>
  • Defination Section: এটি প্রোগ্রামের ঐচ্ছিক অংশ। এ অংশে ধ্রবক ব্যবহার করা হয়। যেমন: #define PI 3.14
  • Global Declaration Section: গ্লোবাল ভেরিয়েবল ঘোষনা এই সেকশনে ঘোষনা করা হয়। অর্থাৎ, প্রোগ্রামের সকল ফাংশনে ব্যবহৃত হবে এমন চলক এখানে লেখা হয়। এটি প্রোগ্রামের ঐচ্ছিক অংশ।
  • main() Function Section: প্রোগ্রাম রান করার সময় এই ফাংশন থেকেই কাজ শুরু হয়।
  • Sub Program Section: কোন ব্যবহারকারী চাইলে আরও ফাংশন তৈরি করতে পারেন যা এই সেকশনে লেখা হয়। এটি প্রোগ্রামের ঐচ্ছিক অংশ।

Hello World প্রোগ্রাম


#include<stdio.h>
int main()
{

    printf("Hello World");
    return 0;
}

প্রোগ্রাম এর ব্যাখা:

  • এখানে, include মানে হচ্ছে কোন কিছু যুক্ত করা। stdio এর পূর্ণরূপ হচ্ছে standard input output এবং .h দিয়ে header ফাইল বুঝানো হয়। আর পুরো লাইন দিয়ে বুঝানো হয় যে standard input output কে যুক্ত করা।
  • সি প্রোগ্রামে অবশ্যই একটি main() ফাংশন থাকতে হবে। সি প্রোগ্রামের কাজ main ফাংশন থেকেই শুরু হয়। প্রতিটি সি প্রোগ্রামে এই main ফাংশন ব্যবহার করা বাধ্যতামূলক।
  • main() ফাংশন এর পর দ্বিতীয় বন্ধনী ব্যবহার করতে হয়। সি ভাষার সমস্ত কোড এই দ্বিতীয় বন্ধনীর ভিতরে থাকবে। এই বন্ধনী শেষ হয়েছে ৬ নম্বর লাইনে।
  • printf() হচ্ছে একটি লাইব্রেরী আউটপুট ফাংশন। এই ফাংশনের প্রথম বন্ধনীর ভিতরে ডাবল কোটেশন এর ভিতরে যা লিখবো তাই আউটপুট হবে।
  • প্রতিটি ফাংশনের একটি রিটার্ন ভ্যালু থাকতে হয়। main ফাংশনের ডেটাটাইপ int হলে এই ফাংশনটি একটি ইন্টিজার ভ্যালু রিটার্ন করে। return 0 মানে ০ রিটার্ন করা। তবে, এটি লেখা বাধ্যতামূলক নয়।

প্রোগ্রামিং ভাষায় প্রতিটি স্ট্যাটমেন্ট এর শেষে একটি সেমিকোলন দিতে হয়। সেমিকোলন না দিলে প্রোগ্রামটি চলবে না।

ডেটা টাইপ

সি ভাষায় বিভিন্ন ধরনের ডেটা নিয়ে কাজ করা হয়। ডেটা টাইপ বলতে বোঝায় ডেটার ধরন। সি প্রোগ্রামে ভেরিয়েবল বা চলক ঘোষনা করার পূর্বে ডেটাটাইপ লিখতে হয়। সি ভাষায় অনেক ধরনের ডেটা টাইপ রয়েছে। কয়েকটি উল্লেখযোগ্য ডেটাটাইপ হচ্ছে: int, float, char এবং double

int ডেটা টাইপ

int হচ্ছে integer এর সংক্ষিপ্ত রূপ যা দ্বারা পূর্নসংখ্যা বোঝায়। এই ডেটাটাইপে ধনাত্মক এবং ঋণাত্মক উভয়ই রাখা যায়। যেমন: 1, 2, 3, 0, -1, -2 ইত্যাদি। এই ডেটা টাইপের সাইজ ২ বাইট। তবে, বর্তমানে কম্পাইলারগুলোতে ইন্টিজারের সাইজ ৪(চার) বাইট পর্যন্ত ধারণ করতে পারে। ইন্টিজার ডেটা টাইপের ২ বাইটের রেঞ্জ: −32,768 থেকে 32,767 এবং ৪ (চার) বাইটের রেঞ্জ: -2147483648 থেকে 2147483647

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

float ডেটা টাইপ

float হচ্ছে floating point number এর সংক্ষিপ্ত রূপ। float দ্বারা দশমিক সংখ্যা বোঝায়। যেমন: 5.6, 10.3 ইত্যাদি। float ডেটা টাইপের ফরমেট স্পেসিফায়ার হচ্ছে %f তবে %.2f দ্বারা দশমিকের পর ২ ঘর পর্যন্ত মান প্রদর্শন করা বুঝানো হয়। শুধুমাত্র %f ব্যবহার করলে দশমিকের পর ৬ ঘর পর্যন্ত মান প্রদর্শন করে।

char ডেটা টাইপ

char হচ্ছে character এর সংক্ষিপ্ত রূপ। char দ্বারা একটি অক্ষর বোঝায়। যেমন: a, b, c ইত্যাদি। char ডেটা টাইপের সাইজ ১ বাইট বা ৮ বিট। এই ডেটা টাইপের রেঞ্জ: −128 থেকে 127

char ডেটা টাইপের ফরমেট স্পেসিফায়ার হচ্ছে %c

double ডেটা টাইপ

এটা float ডাটা টাইপ মতই। এটিও দশমিক সংখ্যা রাখার জন্য ব্যবহার করা হয়। এর সাইজ ৬৪ বিট হওয়ায় দশমিকের পর ১৫ ঘর পর্যন্ত নির্ভুল মান সংরক্ষণ করতে পারে।

double ডেটা টাইপের ফরমেট স্পেসিফায়ার হচ্ছে %lf (এলএফ)

ডেটা টাইপ সাইজ ফরমেট স্পেসিফায়ার
int ২ / ৪ বাইট %d
float ৪ বাইট %f
char ১ বাইট %c
double ৮ বাইট %lf

ফরমেট স্পেসিফায়ার

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

ফরমেট স্পেসিফায়ার বর্ণনা
%d ডেসিমাল ইন্টিজার (Decimal Integer) বা পূর্ণসংখ্যা ইনপুট এবং আউটপুট এর জন্য %d ব্যবহার করা হয়।
%f floating point number বা ভগ্নাংশ ইনপুট এবং আউটপুট এর জন্য %f ব্যবহার করা হয়।
%c character বা বর্ণ ইনপুট এবং আউটপুট এর জন্য %c ব্যবহার করা হয়।
%o octal number বা অক্টাল সংখ্যা ইনপুট এবং আউটপুট এর জন্য %o ব্যবহার করা হয়।
%x hexadecimal number বা হেক্সাডেসিমাল সংখ্যা ইনপুট এবং আউটপুট এর জন্য %x ব্যবহার করা হয়।

চলক

চলক হচ্ছে একটি নাম যার মধ্যে ডেটা রাখা যায়। সি ভাষায় উপাত্ত সংরক্ষনের জন্য ভেরিয়েবল বা চলক ব্যবহার করা হয়। চলক ঘোষনার জন্য প্রথমে ডাটা টাইপ এরপর চলকের নাম লিখতে হয়। যেমন:

int num = 75;

এখানে num নামে একটি চলক নেওয়া হয়েছে চলকের মান যেহেতু পূর্ণসংখ্যা তাই int num লেখা হয়েছে। কারণ, int দ্বারা পূর্ণসংখ্যা বোঝায়।

সি ভাষায় চলকের নামের নিয়ম:

  • চলকের নাম বর্ণ দ্বারা শুরু করতে হবে। চলকের নাম সংখ্যা দ্বারা শুরু হতে পারবে না।
  • চলকের নামের মাঝখানে স্পেস (খাঁলি) থাকা যাবে না। যেমন: ict class ব্যবহার করা যাবে না।
  • আন্ডারস্কোর (_) ছাড়া অন্য কোন চিহ্ন ব্যবহার করা যাবে না। যেমন: ict@class ব্যবহার করা যাবে না।
  • কিওয়ার্ড চলক হিসেবে ব্যবহার করা যাবে না। যেমন: int, float ইত্যাদি ব্যবহার করা যাবে না।

সি ভাষায় ভুল চলকের উদাহরণ:

এখানে কিছু ভুল চলক এর উদাহরণ দেওয়া হয়েছে। এই চলকগুলো ব্যবহার করা যাবে না।

ভুল চলক ব্যাখা
2a চলকের নাম সংখ্যা দ্বারা শুরু হতে পারবে না।
x y চলকের নামে স্পেস বা ফাঁকা জায়গা থাকতে পারবে না।
x-y চলকে আন্ডারস্কোর ব্যতিত অন্য কোন চিহ্ন (যেমন: কমা, হাইফেন) ব্যবহার করা যাবে না।
int সি ভাষার কিওয়ার্ড চলকের নাম হিসেবে ব্যবহার করা যাবে না।

ধ্রুবক

প্রোগ্রামে যার মান পরিবর্তন হয় না তাকে ধ্রুবক বা কনস্ট্যান্ট বলে। যেমন: পাই একটি ধ্রবক যার মান 3.1416…

সি ভাষায় ধ্রুবকের মান ডিফাইন করার জন্য দুটি সাধারণ পদ্ধতি রয়েছে। এগুলো হচ্ছে:-

  • const কীওয়ার্ড ব্যবহার করা এবং
  • #define প্রিপ্রোসেসর ব্যবহার করা।

const কিওয়ার্ড ব্যবহার

ধ্রবক ঘোষনার জন্য প্রথমে const কিওয়ার্ডটি ব্যবহার করতে হয়। এরপর ধ্রবকের নাম লিখতে হয়। যেমন:

  const double PI = 3.14;  

এখানে PI নামে একটি ধ্রবক নেওয়া হয়েছে।

#define প্রিপ্রোসেসর ব্যবহার

সি ভাষায় #define ব্যবহার করেও ধ্রুবক নির্ধারণ করা যায়। এক্ষেত্রে সি ভাষার Definition Section এ #define ব্যবহার করতে হবে। যেমন:

  #define CNAME 10  

#define ব্যবহার করলে শেষে সেমিকোলন ব্যবহার করা যাবে না।

অপারেটর

অপারেটর হচ্ছে এক ধরণের প্রতীক যা ভ্যালু অথবা ভ্যারিয়েবলকে অপারেট করতে পারে। উদাহরণস্বরূপঃ + (যোগ) একটি অপারেটর যার মাধ্যমে যোগ করা হয়। অপারেটর গুলো যে ভ্যারিয়েবল বা যে ডেটার উপর কাজ করে, তাকে অপারেন্ড বলে। যেমন:

x = a + b;

গাণিতিক অপারেটর

সি প্রোগ্রামে গাণিতিক কাজ করার জন্য গানিতিক অপারেটর ব্যবহার করা হয়। সি ভাষায় গানিতিক অপারেটর ৫ টি।

অপারেটর বর্ণনা
+ যোগ করার জন্য + (যোগ) অপারেটর ব্যবহার করা হয়।
যেমন: 2+3=5
- বিয়োগ করার জন্য - (বিয়োগ) অপারেটর ব্যবহার করা হয়।
যেমন: 10-3=7
* গুন করার জন্য * (গুন) অপারেটর ব্যবহার করা হয়।
যেমন: 10*3=30
/ ভাগ করার জন্য / (ভাগ) অপারেটর ব্যবহার করা হয়।
যেমন: 30/3=10
% ভাগশেষ নির্ণয় করার জন্য % (মডুলাস) অপারেটর ব্যবহার করা হয়। যেমন: 20 % 3 = 2
অর্থাৎ, 20 সংখ্যাটিকে 3 দ্বারা ভাগ করা হলে ভাগশেষ হবে 2

রিলেশনাল অপারেটর

দুটি সংখ্যা তুলনা করার জন্য রিলেশনাল অপারেটর ব্যবহার করা হয়। রিলেশনাল অপারেটর বা সম্পর্কযুক্ত অপারেটর ৬ টি।

অপারেটর বর্ণনা
< ছোট চিহ্ন।
যেমন: 2<3 দ্বারা বোঝায় 2 সংখ্যাটি 3 অপেক্ষা ছোট।
> ছোট চিহ্ন।
যেমন: 3>2 দ্বারা বোঝায় 3 সংখ্যাটি 2 অপেক্ষা বড়।
== সমান চিহ্ন।
যেমন: a==b দ্বারা বোঝায় a সংখ্যাটি b এর সমান।
<= ছোট অথবা সমান চিহ্ন।
যেমন: x<=y দ্বারা বোঝায় x সংখ্যাটি y এর ছোট বা সমান।
>= বড় অথবা সমান চিহ্ন।
যেমন: x>=y দ্বারা বোঝায় x সংখ্যাটি y এর বড় বা সমান।
!= সমান নয়।
যেমন: a!=b দ্বারা বোঝায় a সংখ্যাটি b এর সমান নয়।

লজিক্যাল অপারেটর

বিভিন্ন ধরনের লজিক্যাল পরীক্ষার মাধ্যমে সিদ্ধান্ত গ্রহণের জন্য লজিক্যাল অপারেটর ব্যবহার করা হয়। লজিক্যাল অপারেটর অপারেটর ৩ টি।

অপারেটর বর্ণনা
|| এটি লজিক্যাল অর অপারেটর। যেকোনো একটি অপারেন্ড সত্য(True) হলেই আউটপুট সত্য (True) হবে।
& & এটি লজিক্যাল অ্যান্ড অপারেটর। উভয় অপারেন্ড সত্য(True) হলে আউটপুট সত্য (True) হবে।
! এটি লজিক্যাল নট অপারেটর। এক্ষেত্রে অপারেন্ড সত্য(True) হলে আউটপুট মিথ্যা (False) হবে।

ইউনারি অপারেটর

সি প্রোগ্রামিং এ যে সকল অপারেটর একটি চলকের উপর কাজ করে নতুন মান দেয় তাদের ইউনারি বলে।
প্রধান দুটি Unary Operators হচ্ছে Increment operator (++) ও Decrement operator (--) । আবার, ইনক্রিমেন্ট এবং ডিক্রিমেন্ট অপারেটর এর মধ্যে প্রিফিক্স ও পোস্টফিক্স হতে পারে।

++i: এটি একটি প্রিফিক্স অপারেটর যা চলকের মান প্রথমে ১ বৃদ্ধি করবে এরপর চলকের মান প্রদর্শন করবে। যেমন:


#include<stdio.h>
int main ()
{
  int i, j;
  i = 1;
  j = ++i;
  printf ("Results: %d %d", i, j);
}

Sample Output

Resuls: 2, 2

i++: এটি একটি পোস্টফিক্স অপারেটর যা প্রথমে চলকের মান প্রদর্শন করবে এর চলকের মান প্রথমে ১ বৃদ্ধি করবে।


#include<stdio.h>
int main ()
{
  int i, j;
  i = 1;
  j = i++;
  printf ("Results: %d %d", i, j);
}

Sample Output

Resuls: 1, 2

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

কিওয়ার্ড

প্রতিটি প্রোগ্রামিং ভাষার কিছু নিজস্ব শব্দ থাকে। এই শব্দগুলোই হচ্ছে কিওয়ার্ড বা সংরক্ষিত শব্দ। এসব কিওয়ার্ড আলাদা আলাদা অর্থ বহণ করে। যেমন: int কিওয়ার্ড দ্বারা integer বা পূর্ণসংখ্যা বুঝানো হয়। সি প্রোগ্রামে ৩২ টি কিওয়ার্ড ব্যবহার করা হয়।

সি ভাষায় কিওয়ার্ড
int float char double
if else break continue
for while do goto
auto case enum extern
short signed unsigned static
long register typedef struct
volatile union const default
switch void return sizeof

কিওয়ার্ড চলকের নাম হিসেবে ব্যবহার করা যাবে না।

ইনপুট আউটপুট স্টেটমেন্ট

সি ভাষায় আউটপুট এর জন্য printf() এবং ইনপুটের জন্য scanf() ফাংশন ব্যবহার করা হয়। এই দুটি ফাংশন সি ভাষার লাইব্রেরি ফাংশন। সি ভাষায় এরকম আরও অনেক লাইব্রেরী ফাংশন রয়েছে। যে ফাংশনগুলো পূ্র্ব থেকেই প্রোগ্রামে তৈরি করা থাকে তাদের লাইব্রেরী ফাংশন বলে। যেমন: printf() একটি লাইব্রেরী ফাংশন।

printf() ফাংশন

printf() হচ্ছে একটি লাইব্রেরী আউটপুট ফাংশন। এই ফাংশনের প্রথম বন্ধনীর ভিতরে ডাবল কোটেশন এর ভিতরে যা লিখবো তাই আউটপুট হবে। যেমন:-


  #include<stdio.h>
  int main()
  {
      printf("ICT \n Class");
      return 0;
  }

ফলাফল

ICT
Class

scanf() ফাংশন

scanf() একটি ইনপুট ফাংশন। এই ফাংশনের মাধ্যমে মান গ্রহণ করা হয়। যেমন:-

scanf("%d", &x);

এখানে %d হচ্ছে ফরমেট স্পেসিফায়ার যার দ্বারা পূর্ণসংখ্যা বোঝায় এবং x হচ্ছে চলক। এখানে &x দ্বারা Address of x বুঝানো হয়। scanf("%d", &x); এর মানে হচ্ছে প্রোগ্রামটি একটি পূর্ণসংখ্যা গ্রহণ করবে এবং সেই পূর্ণসংখ্যাটি x চলকে থাকবে।

প্রোগ্রাম – ০১: এবার আমরা এমন একটি প্রোগ্রাম লিখবো যা ব্যবহারকারীর কাছ থেকে ২ টি পূর্ণসংখ্যা গ্রহণ করে তা যোগ করে প্রদর্শন করবে। এই প্রোগ্রামটি করার জন্য আমাদের printf() এবং scanf( ) উভয়ই ফাংশন ব্যবহার করতে হবে।


#include<stdio.h>
int main()
{
    int x, y, sum;
    printf("Enter Two Numbers:");
    scanf("%d %d", &x, &y);
    sum = x+y;
    printf("Result: %d", sum);
    return 0;
}

ফলাফল

Enter two numbers: 20 30
Result: 50

কন্ডিশনাল স্টেটমেন্ট

শর্তসাপেক্ষ কাজগুলো করার জন্য প্রোগ্রামিং ভাষায় কন্ডিশনাল স্টেটমেন্ট ব্যবহার করতে হয়।

if

কোন একটি শর্ত সত্য হলে একটি নির্দিষ্ট আউটপুট আসবে - এই ধরনের কাজ করার জন্য if স্টেটমেন্ট ব্যবহার করা হয়।


if(condtion)
{
   statement
}

if...else

কোন একটি শর্ত সত্য হলে একটি নির্দিষ্ট আউটপুট আসবে এবং শর্ত সত্য না হলে অন্য একটি আউটপুট আসবে - এই ধরনের কাজ করার জন্য if else স্টেটমেন্ট ব্যবহার করা হয়।


if(condtion)
{
   statement
}
else
{
  statement
}

প্রোগ্রাম–০১: বার্ষিক ক্রীড়া প্রতিযোগীতায় একাদশ শ্রেণির শিক্ষার্থীদের A, B, C দলে বিভক্ত করা হয়। রোল নম্বর 1 থেকে 30 পর্যন্ত A দলে, রোল নম্বর 31 থেকে 60 পর্যন্ত B দলে এবং রোল নম্বর 61 থেকে 100 পর্যন্ত C দলে অন্তর্ভুক্ত হবে। সমস্যা সমাধানে নিম্নোক্ত প্রোগ্রাম লিখতে হবে:-


#include<stdio.h>
int main()
{
  int roll;
  printf("Enter Roll: ");
  scanf("%d", &roll);
  if(roll>=1 && roll<=30){
    printf("Group: A");
  }
  else if(roll>=31 && roll<=60){
    printf("Group: B");
  }
  else if(roll>=61 && roll<=100){
    printf("Group: C");
  }
  else{
    printf("Invalid Roll");
  }
  return 0;
}

ফলাফল

Enter Roll: 20
Group: A

লুপ

একই কাজের পুনরাবৃত্তি ঘটানোর জন্য লুপ ব্যবহার করা হয়। যেমন: যদি তোমাকে বলা হয় ICT লেখাটি ১০০ বার প্রিন্ট করতে তাহলে তুমি তোমাকে ১০০ বার printf() ফাংশনটি ব্যবহার করতে হবে। এই কাজটি খুব সহজেই লুপের মাধ্যমে করা যায়। সি ভাষায় ৩ ধরনের লুপ রয়েছে:- for লুপ, while লুপ এবং do while লুপ।

for loop

for লুপের ভিতরে ৩ টি অংশ থাকে। প্রতিটি অংশ সেমিকোলনের মাধ্যমে আলাদা করতে হয়। for loop এর সিনট্যাক্স হচ্ছে:-


for(intilization;condition;increasement){
	statement;
}

intilization: লুপটি কত থেকে শুরু হবে তা এখানে লিখতে হবে। এটি শুধু একবার এক্সিকিউট হয়।

condition: লুপটি কতক্ষন পর্যন্ত চলবে তা এটি নির্ধারন করে।

increasement: এখানে চলকের মান বৃদ্ধি বা হ্রাস উল্লেখ করতে হয়। প্রতিবার চলকের মান হ্রাস বা বৃদ্ধি করা হয় এবং কন্ডিশন পরীক্ষা করা হয়।

প্রোগ্রাম – ০১: মি. X ডিসেম্বর মাসে প্রতি ৪ দিন পর পর অফিসে যান। তার অফিসে যাওয়ার তারিখগুলো প্রদর্শনের জন্য একটি প্রোগ্রাম লিখ:-


#include<stdio.h>
int main()
{
  int date;
  for(date=1; date<=31; date=date+4){
    printf("%d", date);
  }
  return 0;
}

ফলাফল

1, 5, 9, 13, 17, 21, 25, 29

while loop

while loop এ দুটি অংশ রয়েছে:- কন্ডিশন এবং অ্যাকশন। যতক্ষণ কন্ডিশনটি সত্য হবে ততক্ষণই কেবল অ্যাকশন পার্ট এক্সিকিউট হতে থাকবে। while loop এর সিনট্যাক্স হচ্ছে:-


while(condition){
  statement;
}

do while loop

while loop এর মতই do while loop এ দুটি অংশ রয়েছে:- কন্ডিশন এবং অ্যাকশন। তবে, do while loop প্রথমেই একবার অ্যাকশন এক্সিকিউট হবে এরপর কন্ডিশন পরীক্ষা করা হয়। do while loop এর সিনট্যাক্স হচ্ছে:-


do{
  statement;
}while(condition)

continue এবং break এর ব্যবহার

লুপ কন্ট্রোল করার জন্য continue এবং break ব্যবহার করা হয়। continue ব্যবহারের মাধ্যমে নির্দিষ্ট একটি কন্ডিশন সাপেক্ষে অ্যাকশন স্কিপ করা যায়। অপরদিকে break এর মাধ্যমে নির্দিষ্ট শর্ত সাপেক্ষে লুপের অ্যাকশন স্থগিত করা যায়

অ্যারে

আমরা সাধারণত কোন মান রাখার জন্য চলক ব্যবহার করি। কিন্ত, কখনো যদি ১০০ টি মান রাখতে চাই তখন ১০০ টি চলক ঘোষনা করতে হবে যা একটি জটিল প্রক্রিয়া। এই কাজটির অ্যারের মাধ্যমে খুব সহজেই করা যেতে পারে।

সমপ্রকৃতির ডেটার সমাবেশকে অ্যারে বলা হয়।

অ্যারে ঘোষনা করার নিয়ম চলকের মতই। যেমন:-

  datatype arrayname[size]  

অ্যারে ঘোষনা করার জন্য প্রথমে ডেটা টাইপ (int, float, char ইত্যাদি) উল্লেখ করতে হয়। এরপর অ্যারের নাম এবং অ্যারের সাইজ দিতে হয়। এখানে অ্যারের সাইজ বলতে কতটি মান ধারণ করতে পারবে - সেটা বুঝানো হয়। যেমন:-

  int student[50]  

উপরের অ্যারেটিতে মোট ৫০ টি পূর্ণসংখ্যা রাখা যাবে।

অ্যারে ব্যবহার করা

এখন আমরা student নামে একটি অ্যারে তৈরি করবো যেখানে ৫ শিক্ষার্থীর প্রাপ্ত নম্বর থাকবে।


#include<stdio.h>
int main()
{
    int student[5]={87, 32, 53, 67, 74};
    printf("Result: %d", student[3]);
    return 0;
}

ফলাফল

Result: 670

অ্যারেতে রাখা মান মনিটরে প্রদর্শনের জন্য অ্যারের ইনডেক্স নম্বর ব্যবহার করা হয়। অ্যারে এর ইনডেক্স নম্বর ০ থেকে শুরু হয়। উপরের প্রোগ্রামের ইনডেক্স নম্বর নিম্নরূপ:-

মান 87 32 53 67 74
ইনডেক্স 0 1 2 3 4

অ্যারে একমাত্রিক, দ্বিমাত্রিক ও ত্রিমাত্রিক হতে পারে। উপরে আমরা এতক্ষণ একমাত্রিক অ্যারে নিয়ে আলোচনা করেছি। দ্বিমাত্রিক অ্যারের গঠন হচ্ছে:-

  datatype arrayname[rowsize][columnsize]  

এখন আমরা একটি দ্বিমাত্রিক অ্যারের উদাহরণ দেখবো:-

  int x[3][3];  

এখানে x একটি দ্বিমাত্রিক অ্যারে যা ৯ টি মান ধারণ করতে পারে:-

[0][0] [0][1] [0][2]
[1][0] [1][1] [1][2]
[2][0] [2][1] [2][2]

একইভাবে ত্রিমাত্রিক অ্যারে এভাবে ঘোষনা করা যায়:-

  int x[3][4][4];  

প্রোগ্রাম – ০১: অ্যারে ব্যবহার করে ১০ টি সংখ্যার মধ্যে বৃহত্তম সংখ্যা নির্ণয় করা যায়। এক্ষেত্রে ১ টি মাত্র চলকের মাধ্যমে কাজটি করা যায়।

এখন আমরা student নামে একটি অ্যারে তৈরি করবো যেখানে ৫ শিক্ষার্থীর প্রাপ্ত নম্বর থাকবে।


#include<stdio.h>
int main() {
    int i;
    int x[10];
    for (i = 0; i < 10; ++i) {
       printf("Enter number %d: ", i + 1);
       scanf("%d", &x[i]);
    }
    for (i = 1; i < 10; ++i) {
       if (x[0] < x[i])
           x[0] = x[i];
    }
    printf("Largest number is: %d", x[0]);
    return 0;
}

ফলাফল

Enter Number 1: 87

Enter Number 2: 54

Enter Number 3: 87

Enter Number 4: 99

Enter Number 5: 32

Enter Number 6: 82

Enter Number 7: 56

Enter Number 8: 83

Enter Number 9: 85

Enter Number 10: 98

Largest number is: 99

ফাংশন

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

sqrt() ফাংশন

sqrt() ফাংশনের মাধ্যমে সংখ্যার বর্গমূল নির্ণয় করা যায়। এই ফাংশনটি ব্যবহার করার জন্য math.h হেডার ফাইল ব্যবহার করতে হবে।


#include<stdio.h>
#include<math.h>
int main() {
    int x, y;
    x = 16;
    y = sqrt(x);
    printf("Result: %d", y);
    return 0;
}

ফলাফল

Result: 4

pow() ফাংশন

pow() ফাংশনের মাধ্যমে একটি সংখ্যার পাওয়ার নির্ণয় করা যায়। এই ফাংশনটি ব্যবহার করার জন্য math.h হেডার ফাইল ব্যবহার করতে হবে।


#include<stdio.h>
#include<math.h>
int main() {
    int x, y;
    x = 5;
    y = pow(5, 2);
    printf("Result: %d", y);
    return 0;
}

ফলাফল

Result: 25

strlen() ফাংশন

strlen() ফাংশনের মাধ্যমে একটি শব্দে মোট কতটি ক্যারেক্টার আছে তা নির্ণয় করা যায়। এই ফাংশনটি ব্যবহার করার জন্য string.h হেডার ফাইল ব্যবহার করতে হবে।


#include<stdio.h>
#include<string.h>
int main()
{
    char name[10]="Noyon";
    int y = strlen(name);
    printf("Length of Name: %d",y);
    return 0;
}

ফলাফল

Result: 5

সি প্রোগ্রামের লাইব্রেরী ফাংশনগুলো হেডার ফাইলে থাকে। হেডার ফাইলগুলোর এক্সটেনশন .h থাকে। যেমন: stdio.h হচ্ছে একটি হেডার ফাইল যেখানে stdio হচ্ছে ফাইলের নাম এবং .h হচ্ছে এক্সটেনশন।

হেডার ফাইল বর্ণনা
stdio.h সি প্রোগ্রামে ব্যবহৃত printf(), scanf() ইত্যাদি ফাংশনগুলো stdio.h (Standard Input and Output) হেডার ফাইলের অধীনে থাকে। সি প্রোগ্রামে এই হেডার ফাইল ব্যবহার না করলে সি প্রোগ্রাম কাজ করবে না।
conio.h সি প্রোগ্রামে ব্যবহৃত getch(), clrscr() ইত্যাদি ফাংশনগুলো conio.h (Console Input and Output) হেডার ফাইলের অধীনে থাকে। টার্বো সি ব্যবহার করলে এই হেডার ফাইল ব্যবহার করতে হয়।
math.h সি প্রোগ্রামে ব্যবহৃত sqrt(), pow() ইত্যাদি ফাংশনগুলো math.h হেডার ফাইলের অধীনে থাকে। সাধারণত, গাণিতিক কাজ করার জন্য এই হেডার ফাইল ব্যবহার করা হয়।
হেডার ফাইল অন্তর্ভুক্ত করার নিয়ম:
#include<file>

এখানে file এর স্থানে হেডার ফাইলের নাম ও এক্সটেনশন দিতে হবে।

অ্যালগরিদম, ফ্লোচার্ট ও সি প্রোগ্রামগুলো পেতে এখানে ক্লিক করুন।

কপি করা হয়েছে
প্র্যাকটিস করুন