ধাপে ধাপে সি ল্যাঙ্গুয়েজ শিখুন(Part 4)

ধাপে ধাপে সি ল্যাঙ্গুয়েজ শিখুন (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 nameHeader fileWork
scanf(…)stdio.hInput নেয়া
printf(…)stdio.hOutput দেয়া
abs(i)stdlib.hReturn the absolute value of i
acos(d)math.hReturn cos-1(d) (মান radian এ return করে, not degree)
asin(d)math.hReturn sin-1(d)
atan(d)math.hReturn tan-1(d)
Sin(i)math.hReturn sin(d) (d এর মান radian এ, degree এর জন্য function টা use করলে degree কে radian এ convert করতে হবে)
cos(i)math.hReturn cos(d)
tan(i)math.hReturn tan(d)
floor(d)math.hReturn only the integer part of a fractional number.
ceil(d)math.hReturn the integer_part+1 of a fractional number
getchar()stdio.hTake a single character input
isalnum(c)ctype.hReturn true if character c is either A-Z,a-z,0-9
isalpha(c)ctype.hReturn true if character c is either A-Z,a-z
isdigit(c)ctype.hReturn true if character c is either 0-9
isupper(c)ctype.hReturn true if character c is either A-Z
islower(c)ctype.hReturn true if character c is either a-z
log(c)math.hReturn ln(c)
log10(c)math.hReturn log(c)
pow(base,p)math.hReturn basep
sqrt(d)math.hReturn 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.hReturn the length of a character array
strcpy(name1,name2)string.hCopy name2 to name1
strcmp(name1,name2)string.hReturn true if name1 and name2 are exactly same
gets(name)stdio.hTake charater array or string as input

এবার কিছু প্রবলেম করার চেষ্টা করুন। এগুলো আমি কাল example এ করে দেখাব।

  1. একটি integer ইনপুট নিয়ে তা মৌলিক সংখ্যা(prime) কিনা পরিক্ষা করুন।

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 যা আপনার কাছে লুপিং কে করে তুলবে পানির মত পরিষ্কার। সকলকে ধন্যবাদ।

Level 0

আমি বাকের। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 14 বছর 10 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 12 টি টিউন ও 81 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

ভাইজান অনেক ধন্যবাদ এত সুন্দর টিউন করার জন্য।

ধন্যবাদ নিয়মিত পর্বটি সামনে এগিয়ে নেয়ার জন্য।
আমি codeblocks-10.05 নামিয়ে নিয়েছি, মনে হল এটাই ভাল হবে, আপনাকে প্রশ্ন করতে সুবিধা হবে।
প্রাকটিস করতেছি।

    প্রবলেমগুলো কি করতে পেরেছেন? ফাইনাল পরীক্ষার কারনে পরবর্তী লিখা আসতে কিছু সময় লাগবে।
    ধন্যবাদ সবাইকে

    প্রবলেমগুলো এখনও করে দেখিনি উদাহরনগুলো করেছি প্রবলেমগুলো পারবো মনে হচ্ছে।
    switch statement নিয়ে প্রশ্ন করতে চেয়ে ছিলাম। পরে দেখি সহজ আছে।
    সামনেতো Function নিয়ে লেখবেন তখন Return Function টা টাচ দিয়েন।
    এ পর্যন্ত প্রশ্ন নেই।
    আপনি ভালভাবে পরিক্ষা দিয়েই তারপর আসুন।
    সে পর্যন্ত অপেক্ষায় থাকলাম।

codeblocks-10.05 দিয়ে কাজ করতে পারি নাই। (কম্পেইলার সহ নামাতে হবে ৭৬মেগা)
পরে ছবিতে দেখলাম আপনি ব্যবহার করেন codeblocks-8.02 (১৯মেগা)
ডাউনলোড দিলাম এটা দিয়ে কাজ করতে পারছি।
codeblocks এ সুন্দর কাজ করা যায়। তাই codeblocks- এর জন্য অসংখ্য ধন্যবাদ।