Sunday, November 3, 2013

প্রোগ্রামিং এর শুরু তে যে ভুল গুলা আমরা বেশী করে করি (PART 3)

কোডিং করতে গিয়ে আমরা সাধারন যে ভুল গুলো করি, আজকে থাকছে সে গুলো নিয়ে আলোচনা এবং ভুল গুলো না করে কিভাবে কোড বা প্রোগ্রাম করা যায় তার বিস্তারিত বর্ননা......


i) "stdio.h" নিয়ে কিছু কথাঃ

1
<stdio.h>
এর জায়গায়
1
<studio.h>


কিছু বুঝেছো? সাধারনত আমরা প্রাথমিক অবস্থায় এই ভুল টা ই বেশী করে থাকি। কারন, আমরা সচরাচর Studio শব্দটা সম্পর্কে ই জানি। 'stdio' সম্পর্কে জানি না, বা আগে কখনো হয় শোনা ই হয়নি কারো কারো।
Studio মানে কি সেটা তো আমরা সবাই জানি। কিন্তু 'stdio' মানে কি জানো ?
'stdio' মানে Standard Output Input আর এটি একটি Header File তাই এর এক্সটেনশন হিসেবে 
আছে .h । অর্থাৎ এর থেকে কি বুঝা যায় না যে Header ফাইল গুলো ইনপুট এবং আউটপুট এর সাথে সম্পর্কিত? হ্যা তাই, এই Header File গুলো আউটপুট এবং ইনপুট এর সাথে সম্পর্কিত। এরা সাধারনত Printf, Scanf, classes, variables, Subroutines চিন্হিত করতে এবং Standard আউটপুট পেতে ব্যবহৃত হয়।

ii) Statement শেষে ";"(সেমিকোলন) না দিলে কি হয়ঃ
সাধারনত Statement বলতে মেইন ফাংশনের ভেতর (  int main() এর ভেতরে  ) প্রতিটা লাইন ই একেকটা Statement।
নিচের কোড টি দেখোঃ(কোডঃ ২.১)
1
2
3
4
5
6
7
8
9
#include <stdio.h>
int main()
{
      printf("Hello World!\n") ;
      printf("I Love My Country\n");
      printf("Pi = 3.14159...........\n");
      return 0;
}
উপরের কোড এ int main() এর ভেতর চারটি লাইন আছে যেখানে printf এর ৩ টি ফাংসন আর return 0 আরো একটি ফাংসন।
এদের প্রত্যেকটি একেকটা Statement । আশা করি বুঝতে পেরেছো।
এখন তোমার কাজ হল উপরের কোড টিতে int main() ফাংশনের প্রথম লাইনের শেষে ";" সেমিকোলন না দিয়ে কোডব্লকস এ লিখে রান করানো। কোড টা হবে নিচের কোড এর মতঃ(কোড ২.২)
1
2
3
4
5
6
7
8
9
#include <stdio.h>
int main()
{
      printf("Hello World!\n")
      printf("I Love My Country\n");
      printf("Pi = 3.14159...........\n");
      return 0;
}
ছবিতে দেখতে পারোঃ
এখন কোড টা রান করাও। কি, রান করাতে পেরেছো?? নাকি পারোনি? এর কারন কি?

হ্যা, Error আছে , কারন আমরা একটা লাইনে সেমিকোলন দেইনি।
দেখো, সেমিকোলন দেইনি বলে এর কারনে কি হয়েছেঃ
উপরের চিত্রে দেখতে পাচ্ছো, ৬ নাম্বার লাইনে একটি লাল দাগ দেখা গেছে। এর কারন কি? এখন কোডব্লকস এর নিচের অংশে দেখো তো এই রকম কিছু পাও কিনা?
কি লেখা আছে দেখোতো।

error: expected ';' before 'printf'
কি বুঝলে এই লাইন থেকে? ওরা বলছে যে ৬ নাম্বার লাইনের আগে মানে ৫ নাম্বার লাইনের পরে একটি ";" (সেমিকোলন) থাকার কথা, কিন্তু তা তো আমরা নিজেরা ই দেই নাই। তাহলে বুঝেছো? সেমিকোলন না দিলে বা একটা Statement শেষ না করলে Error রিপোর্ট আসবে। তাহলে এখন থেকে একটা কোড এ যেন এই ধরনের এরর বা ভুল না আসে সে দিকে খেয়াল রেখো।
তাহলে কোড টা ঠিক করে রান করাও। নিচের মত আউটপুট আসবে।



iii) Return 0 
1
return 0;
এর জায়গায় return আর 0 একসাথে
1
return0;



Return 0 না দিলে কি হয়ঃ
1
return 0;
এটি ও একটি Statement । সাধারনত এটি একটি প্রোগ্রামে না লিখলেও কিন্তু প্রোগ্রাম রান করানো সম্ভব।
1
2
3
4
5
6
7
8
#include <stdio.h>
int main()
{
        printf("Hello World!\n");
        printf("I Love My Country\n");
        printf("Pi = 3.14159..........");
}
তাহলে উপরের কোড টি লিখে দেখো।
প্রোগ্রামটি কি রান করাতে পেরেছো? কোথাও কি কিছু পরিবর্তন খুজে পাচ্ছো??
না পেলে দেখো। নিচে দুটো ছবিতে লাল চিন্হিত অংশ দেখলে ই বুঝতে পারবে কি পরিবর্তন হয়েছেঃ

Pic-1: রিটার্ন ০; সহ

Pic-2: রিটার্ন ০; ছাড়া
উপরের প্রথম ছবিতে প্রোগ্রাম টি return 0; সহ আর লাল চিন্হিত অংশে 0(0x0) দেখা যাচ্ছে, মানে এই প্রোগ্রামটি কোন প্রকার এরর বা বাগ ছাড়া ই রান করেছে। আর দ্বিতীয় ছবিতে লাল চিন্হিত অংশে ২২(0x১৬) দেখা যাচ্ছে। এইটা Run Time Error নামে পরিচিত। কিন্তু এটি থাকলে ও একটা প্রোগ্রাম রান করবে। তাই এই প্রোগ্রাম টা যদি কোন প্রোগ্রামিং কনটেষ্ট এর প্রোগ্রাম হত, তা হলে এই প্রোগ্রাম টি ঠিক হওয়া সত্তে ও ওরা Run Time Error হিসেবে এই প্রোগ্রামটিকে গ্রহন করত না।
তাই আশা করি এই এরর বা ভুল গুলা এড়িয়ে চলার বা না করার চেষ্টা করবে।
আজ এতটুকুই। পরের পর্বে থাকছে নতুন কিছু।কোন কিছু বুঝতে সমস্যা হলে কমেন্ট করাটাই শ্রেয়।


iv ) মেইন ফাংশন এর নিচে শুরুতে "{" দিলে ও পরে শেষাংশে "}" দিতে ভুলে যাই।

v )   scanf এর সময় যেটা scanf করব সেটার আগে & চিনহ দিতে ভুলে যাই...*

No comments:

Post a Comment