ধাপে ধাপে সি ল্যাঙ্গুয়েজ শিখুন (Part 1)
ধাপে ধাপে সি ল্যাঙ্গুয়েজ শিখুন (Part 2)
ধাপে ধাপে সি ল্যাঙ্গুয়েজ শিখুন (Part 3)
Control Statement: Looping (continued):
আগের দিন আমরা while loop ও তার ব্যবহার, সাথে array এর ধারনা পেয়েছিলাম।আজ শুরুতে do-while loop, for loop এবং লুপ এর মধ্যবর্তী পার্থক্য আলোচনা করব।
do-while loop: General form
do{
statement;
statement;
statement;
……;
}while(condition);
চিত্রটি দেখুন।
নিচের উদাহরনটি দেখুন।
গত টিউন এর প্রবলেমটি আজ আবার করলাম do-while ব্যবহার করে।আউটপুট আগের প্রোগ্রাম এর মত হবে।
প্রোগ্রাম এ দেখুন্ i=sum=0;
একাধিক variable এ একই মান জমা করার জন্য এভাবে লিখা হয়।যেমনঃ i=j=k=sum=0; এই লাইন এ সবগুলো variable এর মান শুন্য দিয়ে replace হবে।
sum += arr[i]; এর মানে হল sum = sum + arr[i];
এ ধরনের আরও কিছু short form রয়েছে।
A += B; --> A = A + B;
A -= B; --> A = A – B;
A *= B-C; --> A = A * (B-C);
etc;
আর i++ হল i=i+1; ++ হল increment operator যা আমরা unary operator বলার সময় পড়েছিলাম।
While এবং do-while এর একটি গুরুত্বপূর্ন পার্থক্য হল, যেখানে while একবার ও execute করে না, সেখানেও do-while একবার execute করে।
লিখে দেখুনঃ
while(0) //zero
{
printf(“This line will not printed\n”);
}
এবং
do{
printf(“this line will printed\n”);
}while(0);
কারন হল do-while এ condition check হয় লুপ এর শেষে।
for loop: General form:
for( initialization ; condition ; increment/decrement)
{
Statements;
}
নিচের ছবিটা দেখুন।
আগের প্রোগ্রামটি আবার for loop use করে করলাম।
Nested loop: nested if-else এর মতই একটি loop এর ভেতরে আরেকটি loop ই হচ্ছে nested loop.
k=0;
for( i=0;i<10;i++)
for(j=0;j<10;j++)
{
k++;
}
printf(“k=%d\n”,k);
Output আসবে k=100.
Library Function: Library function হল সি ল্যাঙ্গুয়েজ এ দেয়া default function’s. Library function । সক্ল ফাংশন্ এর corresponding header file আছে। যেমন আমরা যখন printf(), scanf() function ব্যবহার করেছি, তখন আমাদের “stdio.h” header file declare করতে হয়েছে। যেকোন default function প্রোগ্রাম এ ব্যবহার করা হলে তার header file অবশ্যই প্রথমে declare করা লাগবে।
কিছু গুরুত্বপূর্ন লাইব্রেরী ফাংশন।
Function name | Header file | Work |
scanf(…) | stdio.h | Input নেয়া |
printf(…) | stdio.h | Output দেয়া |
abs(i) | stdlib.h | Return the absolute value of i |
acos(d) | math.h | Return cos-1(d) (মান radian এ return করে, not degree) |
asin(d) | math.h | Return sin-1(d) |
atan(d) | math.h | Return tan-1(d) |
Sin(i) | math.h | Return sin(d) (d এর মান radian এ, degree এর জন্য function টা use করলে degree কে radian এ convert করতে হবে) |
cos(i) | math.h | Return cos(d) |
tan(i) | math.h | Return tan(d) |
floor(d) | math.h | Return only the integer part of a fractional number. |
ceil(d) | math.h | Return the integer_part+1 of a fractional number |
getchar() | stdio.h | Take a single character input |
isalnum(c) | ctype.h | Return true if character c is either A-Z,a-z,0-9 |
isalpha(c) | ctype.h | Return true if character c is either A-Z,a-z |
isdigit(c) | ctype.h | Return true if character c is either 0-9 |
isupper(c) | ctype.h | Return true if character c is either A-Z |
islower(c) | ctype.h | Return true if character c is either a-z |
log(c) | math.h | Return ln(c) |
log10(c) | math.h | Return log(c) |
pow(base,p) | math.h | Return basep |
sqrt(d) | math.h | Return d (square root of d) |
toupper(c) | ctype.h or stdlib.h | Return capital letter of a letter. |
tolower(c) | ctype.h or stdlib.h | Return small letter of a letter. |
strlen(name) | string.h | Return the length of a character array |
strcpy(name1,name2) | string.h | Copy name2 to name1 |
strcmp(name1,name2) | string.h | Return true if name1 and name2 are exactly same |
gets(name) | stdio.h | Take charater array or string as input |
এবার কিছু প্রবলেম করার চেষ্টা করুন। এগুলো আমি কাল example এ করে দেখাব।
2. একটি character array বা string ইনপুট নিয়ে তা reverse order(last character থেকে first character) এ প্রিন্ট করুন।
3. দুইটি string ইনপুট নিয়ে তা সমান হলে equal আর না হলে not equal প্রিন্ট করুন।
4. একটি string ইনপুট নিয়ে তার সকল character, capital letter এ প্রিন্ট করুন।
5. একটি integer ইনপুট নিয়ে তা বর্গসংখ্যা কিনা পরিক্ষা করুন।
আগামীকাল লুপিং এর কিছু special কীওয়ার্ড নিয়ে কথা বলব, বিভিন্ন function ব্যবহার করব, আর সাথে থাকবে অনেক অনেক example যা আপনার কাছে লুপিং কে করে তুলবে পানির মত পরিষ্কার। সকলকে ধন্যবাদ।
আমি বাকের। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 14 বছর 10 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 12 টি টিউন ও 81 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
ভাইজান অনেক ধন্যবাদ এত সুন্দর টিউন করার জন্য।