আগের পর্বগুলোতে আমরা প্রিন্ট করা,স্ক্যান
করা, টুকটাক ম্যাথ করা শিখছি । যদি ওটাকে ওয়ানডে ম্যাচ মনে করি,তাহলে
প্রথম দশ ওভার খেলে ফেলেছেন আপনি । আর ওগুলাতে ভালো করা মানে আপনি খুব ভালো
একজন ওপেনার 8|
আজকে আলোচনা হবে লজিক এপ্লাই করে কিভাবে
প্রোগ্রামের স্টেটমেন্ট কন্ট্রোল করা যায় সেটা নিয়ে । এইটার জন্য কিছু
কি-ওয়ার্ড জেনে নেওয়া দরকার আমাদের । আর সেগুলা হলো If,Else If,Switch ।
উপরোক্ত কিওয়ার্ডগুলো আমাদেরকে শর্তসাপেক্ষে প্রোগ্রাম লেখার সুবিধা দিবে ।
আচ্ছা,তাহলে শুরু করা যাকঃ
সাধারণ If স্টেটমেন্টের গঠনঃ
|
if (test expression)
{
statement(s) to be executed if test expression is true;
}
|
সাধারণ Else If স্টেটমেন্টের গঠনঃ
|
if (test expression) {
statements to be executed if test expression is true;
}
else {
statements to be executed if test expression is false;
}
|
নিচের ছবিটি দেখুনঃ
দুটি স্টেটমেন্ট প্রায় একইরকম…প্রথমটাতে স্টেটমেন্টের শর্ত সত্য হলে
স্টেটমেন্ট কাজ করবে,নাহলে করবে না…কিন্তু Else If এ সিস্টেম এমন যে If
স্টেটমেন্ট কাজ না করলে Else If এর স্টেটমেন্ট কাজ করবে…উদাহরণ এ দেখিঃ
উদাহরণ ৪.১ঃ
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <stdio.h>
int main(){
int num;
printf("Enter a number to check.\n");
scanf("%d",&num);
if(num<0) { /* নাম্বারটি শূন্য অপেক্ষা কম কিনা তা চেক করবে. */
printf("Number = %d\n",num);
}
/*যদি স্টেটমেন্টটি সত্য হয় তাহলে প্রিন্ট করবে,নাহলে করবে নাহ */
printf("The if statement in C programming is easy.");
return 0;
}
|
উদাহরণ ৪.২ঃ আমরা একটা কোড লিখবো যেইটা একটা সংখ্যা ইনপুট দিলে সেটা জোড় না বিজোড় তা বলে দিবে

আচ্ছা…এইটার গঠন আমরা অনুমান করে ফেলতেই পারি…কিন্তু শর্ত কিভাবে লিখবো?
আসলে শর্ত হবে “সংখ্যাকে ২ দিয়ে ভাগ করলে যদি ভাগশেষ না থাকে তাহলে
জোড়,আর থাকলে বিজোড়” সেটিকে আমরা লিখবো এইভাবে
n%2==0 ।
ব্যাখ্যা হলো n একটি সংখ্যা…যেটির ভাগশেষ শূন্য । ভাগশেষ বুঝাইতে “%”
চিহ্ন আর সমান বুঝাইতে দুইটা = = চিহ্ন । আচ্ছা…এখন লিখে ফেলা যাক
প্রোগ্রামটাঃ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include<stdio.h>
main()
{
int n;
printf("Enter an integer\n");//একটি ইন্টিজার নাম্বার চাচ্ছি
scanf("%d",&n);
if ( n%2 ==0); //শর্ত লিখলাম...
printf("Even\n");//শর্ত সত্য হলে জোড়
else
printf("Odd\n");//শর্ত মিথ্যা হলে বিজোড়
return 0;
}
|
উদাহরণ ৪.৩ঃ এটি হবে Vowel & Consonent চেক করার প্রোগ্রাম ।
প্রথমে আমরা ইউজারের কাছে একটা ক্যারেক্টার চাইবো,ইউজার ওইটা প্রেস করবে ।
আমরা ওইটা স্ক্যান করে নিয়ে দেখবো তা ( a,e,i,o,u ) এর সাথে মেলে
কিনা…মিলে গেলে Vowel,আর না,মিল্লে কনসোনেন্ট

এখানে একটা সমস্যা আছে,আর তা হলো ইউজার আপারকেস ক্যারেক্টার চাপবে না
লোয়ারকেজ…আমরা আমাদের সুবিধার জন্য শর্ত লিখার সময় আপারকেজ ও লোয়ারকেজ
দুইটাই এড করে দিবো …আর আগেরটাতে আমরা সমান বুঝাতে “==” চিহ্ন ব্যবহার
করেছি,এইটাতেও করবার অতিরিক্ত চিহ্ন থাকবে Or/বা বুঝাতে || চিহ্ন…আর কোন
ক্যারেক্টার মেনশন করে দিতে ‘ ‘ চিহ্ন…মানে ch == ‘A’ লিখলে A
ক্যারেক্টারটা মেনশন হয়ে যাবে । আচ্ছা…তাহলে আমাদের শর্ত হলোঃ
(ch == ‘a’ || ch == ‘A’ || ch == ‘e’ || ch == ‘E’ || ch == ‘i’ || ch ==
‘I’ || ch ==’o’ || ch==’O’ || ch == ‘u’ || ch == ‘U’) //মানে হইলো এগুলো
চিহ্ন টাইপ করলে Vowel শো করবার না করলে বুঝ যাবো উনি কনসোনেন্ট টাইপ
করেছেন 8|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include <stdio.h>
int main()
{
char ch;
printf("Enter a character\n");
scanf("%c", &ch);
if (ch == 'a' || ch == 'A' || ch == 'e' || ch == 'E' || ch == 'i' || ch == 'I' || ch =='o' || ch=='O' || ch == 'u' || ch == 'U')
printf("%c is a vowel.\n", ch);
else
printf("%c is not a vowel.\n", ch);
return 0;
}
|
উদাহরণ ৪.৪ঃ লিপ ইয়ারের কোড…নিজে লেখার চেষ্ঠা করুন…তারপর নিচের কোডের সাথে মিলিয়ে নিন
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include <stdio.h>
int main()
{
int year;
printf("Enter a year to check if it is a leap year\n");
scanf("%d", &year);
if ( year%400 == 0)
printf("%d is a leap year.\n", year);
else if ( year%100 == 0)
printf("%d is not a leap year.\n", year);
else if ( year%4 == 0 )
printf("%d is a leap year.\n", year);
else
printf("%d is not a leap year.\n", year);
return 0;
}
|
উদাহরন ৪.৫ঃ আমরা একটি প্রোগ্রাম বানাবো যা দুটি নাম্বার চাইবে,পরে সেই দুইটি নাম্বারের রিলেশন আউটপুট দিবে?
আমরা এটার জন্য if statement এর ভিতরে আরেকটা if statement ইউজ
করবো…এরকম স্টেটমেন্টকে বলে nested if else statement …উদাহরণটা দেখা যাকঃ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#include <stdio.h>
int main(){
int numb1, numb2;
printf("Enter two integers to check\n");
scanf("%d %d",&numb1,&numb2);
if(numb1==numb2) //checking whether two integers are equal.
printf("Result: %d = %d",numb1,numb2);
else
if(numb1>numb2) //checking whether numb1 is greater than numb2.
printf("Result: %d > %d",numb1,numb2);
else
printf("Result: %d > %d",numb2,numb1);
return 0;
}
|
উদাহরণ ৪.৬ একটি প্রোগ্রাম লিখবো যা আপারকেজ ও লোয়ারকেজ ইংরেজি অক্ষর আউটপুট দিবে…
কিভাবে লিখবো? ২৬ টি ক্যারেক্টার,আপারকেজ লোয়ারকেজ মিলিয়ে ৫২টা
ক্যারেক্টারের জন্য আলাদা আলাদা প্রিন্ট স্ক্যান ফাংশন ইউজ করবো? :-/
উত্তর হলো ,না,করতে হবে না…if স্টেটমেন্ট দিয়ে খুব সহজেই করা যায়
এইটা…কিন্তু,সমস্য হইলো শর্ত লেখা…শর্ত কিরকম হবে?
শর্ত হবে এইরকম…যা,a to z সব প্রিন্ট করে ফেলবে… && চিহ্ন ইউজ
করছি “লজিকাল এবং” বুঝাতে…প্রোগ্রামে দুইটা শর্ত একসাথে বুঝাতে এটা ইউজ
করবো…যেমনঃ 2<x<7 বুঝাতে শর্ত লিখবো এইভাবে 2<x &&
x<7 …তাহলে লিখে ফেলি প্রোগ্রামটাঃ
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <stdio.h>
int main()
{
char ch = 'W';
if(ch >= 'a' && ch <= 'z') {
printf("%c is lower case\n", ch);
}
if(ch >= 'A' && ch <= 'Z') {
printf("%c is upper case\n", ch);
}
return 0;
}
|
অনেকতো হলো উদাহরণ,এইবার কিছু প্রাকটিস প্রব্লেম দেওয়া যাকঃ
অনুশীলনী ৪.১ঃ পজিটিভ নেগেটিভ নাম্বার চেক করার প্রোগ্রাম তৈরি করুন?
অনুশীলনী ৪.২ঃ ১-১০০ এর মাঝে কতগুলো সংখ্যা একইসাথে ৪ এবং ৫ দিয়ে ভাগ যায় নির্নয় করুন?
No comments:
Post a Comment