মেশিন লার্নিং

মেশিন লার্নিং

মেশিন লার্নিং হচ্ছে এমন এক বিজ্ঞান, যেখানে কম্পিউটারকে নিজ থেকে আচরন করতে পারে এবং এই স্বয়ংক্রিয় আচরণের জন্য কম্পিউটারকে কোন স্পষ্টভাবে বর্ণিত প্রোগ্রাম করে দেয়া লাগে না।

মেশিন লার্নিং এবং বর্তমান বিশ্ব

আমরা ইতোমধ্যে পূর্বের দশকে দেখেছি, মেশিন লার্নিং আমাদের দিয়েছে স্বয়ংক্রিয় এবং নিজ থেকে চলমান গাড়ি (self-driving cars), কন্ঠ উদঘাটন করা (practical speech recognition), ওয়েব সার্চ ইত্যাদি। মেশিন লার্নিং-এখন এতোই ব্যপ্তিশীল যে, আমাদের প্রতিনিয়ত কাজে শত শত মেশিন লার্নিং-কোড জড়িত। অনেক বিজ্ঞানী মনে করেন, মেশিন লার্নিং হচ্ছে সবচেয়ে নির্ভরশীল মাধ্যম যা দিয়ে মানুষের সমকক্ষ আর্টিফিশিয়াল ইন্টিলিজেন্স তৈরি করা সক্ষম। যেমন আমরা কিছুদিন আগেই আর্টিফিশিয়াল ইন্টিলিজেন্স সম্পন্ন রোবট সোফিয়া কে নিয়ে মেতেছিলাম। যা এই মেশিন লার্নিং-এরই অবদানের একটি অংশ মাত্র।

মেশিন লার্নিং শুরু করার আগে কয়েকটি কেতাবি সংজ্ঞা দেখা যাক। এই ব্যাপারে Arthur Samuel বলেন, Field of study that gives computers the ability to learn without being explicitely programmed. অর্থাৎ কিনা, কম্পিউটারের যদি এমন কোন অলৌকিক ক্ষমতা থাকে যার জন্য সে যেকোন কিছু আগে থেকে ঐ বিষয়ক প্রোগ্রাম লেখা ছাড়াই শিখতে পারে।

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

কোর্সটি সম্পূর্ণ নয়। এপ্রিলে মেশিন লার্নিং-এর পুরো টিউটোরিয়াল পাওয়া যাবে। মেশিন লার্নিং-কোড লেখার জন্য আমরা এই কোর্সে পাইথন ব্যবহার করবো। তাই পাইথন প্রোগ্রামিং না জানা থাকলে এখান থেকে শিখে নাও জলদি।

পাইথন প্রোগ্রামিং – সূচিপত্র ( টিউটোরিয়াল সমূহ ) –


ম্যাটল্যাব পরিচিতি :: Introduction to MATLAB

ম্যাটল্যাব পরিচিতি :: Introduction to MATLAB

ম্যাটল্যাব পরিচিতি :: Introduction to MATLAB

বাংলাদেশ প্রকৌশল বিশ্ববিদ্যালয়ের (বুয়েট) তড়িৎ এবং ইলেকট্রনিক কৌশল বিভাগের সহযোগী অধ্যাপক শ্রদ্ধ্যেয় ড. ফারসীম মান্নান মোহাম্মদী স্যার “ম্যাটল্যাব পরিচিতি :: Introduction to MATLAB” বইটি সম্পূর্ণ পড়ে নিম্নক্ত উক্তি দিয়েছেন –

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

ড. ফারসীম মান্নান মোহাম্মদী
সহযোগী অধ্যাপক, তড়িৎ এবং ইলেকট্রনিক কৌশল বিভাগ
বাংলাদেশ প্রকৌশল বিশ্ববিদ্যালয়ের (বুয়েট)

“ম্যাটল্যাব পরিচিতি :: Introduction to MATLAB” বইটি প্রকাশিত হচ্ছে একুশে বই মেলা ২০১৬ এ অন্বেষা প্রকাশ থেকে।

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

মো. আরিফুজ্জামান ফয়সাল
তড়িৎ ও ইলেকট্রনিক কৌশল বিভাগ (চতুর্থ বর্ষ)
বাংলাদেশ প্রকৌশল বিশ্ববিদ্যালয় (বুয়েট)
ইমেইল- stranglefaisal@gmail.com
ওয়েবসাইট – www.faisal.icchecode.com

“ম্যাটল্যাব পরিচিতি :: Introduction to MATLAB” বইটি প্রকাশিত হচ্ছে একুশে বই মেলা ২০১৬ এ অন্বেষা প্রকাশ থেকে।

সূচি
প্রথম অধ্যায়
ম্যাটল্যাব পরিচিতি
দ্বিতীয় অধ্যায়
চলক
তৃতীয় অধ্যায়
বিল্ট ইন ফাংশন
চতুর্থ অধ্যায়
ইনপুট ও আউটপুট
পঞ্চম অধ্যায়
গ্রাফ আঁকা
ষষ্ঠ অধ্যায়
অপারেটর
সপ্তম অধ্যায়
if এবং switch
অষ্টম অধ্যায়
লুপ
নবম অধ্যায়
ফাংশন
দশম অধ্যায়
সিমুলিংক
পরিশিষ্ট

Matlab Porichiti-Arifuzzaman Faisal
ম্যাটল্যাব পরিচিতি :: Introduction to MATLAB

“ম্যাটল্যাব পরিচিতি :: Introduction to MATLAB” বইটি প্রকাশিত হচ্ছে একুশে বই মেলা ২০১৬ এ অন্বেষা প্রকাশ থেকে।

এন্ড্রয়েড মোবাইলে সি প্রোগ্রাম কম্পাইল করা

এন্ড্রয়েড মোবাইলে সি প্রোগ্রাম কম্পাইল করা

কম্পিউটার নেই ?
এন্ড্রয়েড মোবাইল আছে !
এন্ড্রয়েড মোবাইলের জন্য কয়েকটি সি কম্পাইল করার এপের লিংকঃ-

1) CppDroid – C/C++ IDE

2) C Compiler

অথবা Google Play Store-এ এন্ড্রয়েড মোবাইল থেকে সি কম্পাইলার লিখে সার্চ দিলেই পেয়ে যাবে।

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

কোথায় শিখবো ?

www.icchecode.com

কোন বই পড়বো ?

“সহজে শিখি সি প্রোগ্রামিং”
– আরিফুজ্জামান ফয়সাল
– চতুর্থ বর্ষ, ইইই, বুয়েট

বইটির ফেসবুক পেজঃ-

www.facebook.com/SohojeShikhiCProgramming

সি প্রোগ্রাম দিয়ে ম্যাজিক স্কয়ার জেনারেটর

সি প্রোগ্রাম দিয়ে ম্যাজিক স্কয়ার  জেনারেটর

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

180px-Magicsquareexample.svg

                                                                                              ৩×৩ ম্যাজিক স্কয়ার

 

উপরের ছবি অনুসারে ১ম সারির যোগফল (২+৭+৬)=১৫,

২য় সারির যোগফল (৯+৫+১)=১৫

৩য় সারির যোগফল (৪+৩+৮)=১৫

আবার ১ম, ২য়,‌ ৩য় কলামের যোগফল=১৫ এবং কর্ণে অবস্থিত সংখ্যাগুলোর

যোগফল (৬+৫+৪)=১৫ এবং (২+৫+৮)=১৫

 

যেভাবে হাতে কলমে ম্যাজিক স্কয়ার তৈরী করা যায়ঃ

 

ধরা যাক ৩×৩ ম্যাজিক স্কয়ার তৈরি করব । তাহলে প্রথমে ১ বসবে ১ নম্বর সারির মাঝে । ১ এর উপরে ২ বসবে । কিন্তু উপরে আর কোনো সারি নাই। তাই ২ চলে আসবে একবারে ৩ নম্বর সারির শেষে । এরপর ৩, ২ এর উপরে যাবে। কিন্তু উপরে কোন সারি নাই। তাই ৩ তার কলাম বরাবর নিচে যাবে । এক্ষেত্রে ৩ এর স্থান হবে ২ নম্বর সারির শেষ ঘরের পরে। কিন্তু এখানে কোনো ঘর নাই। তাই ৩ এর সর্বশেষ স্থান হবে ২ নম্বর সারির প্রথমে। নিচের চিত্রটি দেখলে ভালোভাবে বোঝা যাবে।

 

Capture

 

এখন ১,২,৩ বসানো হয়ে গেলে ৪ বসবে ৩ এর নিচে । কারন ৩ এর পর ১ জায়গা দখল করে রেখেছে। এরপর আগের নিয়মে  ৫

বসবে ৪ এর উপরে আর ৬ বসবে ৫ এর উপরে। তারপর

আগের মতো ৭ বসবে ৬ এর নিচে  যেহেতু ৩ আছেই । এরপর আগের নিয়মে ৮ এবং ৯ বসবে।

 

সি প্রোগ্রামিং করে ম্যাজিক স্কয়ার জেনারেটর তৈরী

 

আমরা এখানে ৩×৩ থেকে ৯×৯ পর্যন্ত ম্যাজিক স্কয়ার তৈরী করবো।মাত্রা

অবশ্যই বিজোড় হতে হবে।

 

এখন প্রথমে দুই মাত্রার অ্যারে নিবো । ধরা যাক অ্যারেটি হলো m[n][n]

এখন লুপ ১ থেকে শুরু করে n*n পর্যন্ত চলবে । n=৩ হলে ১ থেকে ৯

পর্যন্ত চলবে ।যেহেতু মোট ঘর n*n অথবা ৯ ।

 

এখন এই লুপ এর মধ্যে ১ থেকে ৯ এর সঠিক স্থান বের করবো ।

সঠিক স্থান বের করার সূত্রটি হলঃ

সারি a এর ক্ষেত্রে

 

a=(n-i%n+1+2*((i-1)/n))%n; . . . . . . . . . . . . . . . . . .(1)

 

কলাম b এর ক্ষেত্রে

 

b=((n-1)/2+i-1-(i-1)/n)%n; . . . . . . . . . . . . . . . . . .(2)

 

 

এখানে n= মাত্রা (ধরা যাক n=৩)

i=লুপ এর সংখ্যা

 

প্রথমে i=1 তাই আমরা (1) ও (2) হতে পাই

a=0

b=1

 

m[a][b]=i

m[0][1]=1

 

এভাবে i=2 হলে

a=0

b=1

 

m[a][b]=i

m[2][2]=2

 

এইরকম ৯ বার লুপ ঘুরা পর্যন্ত ফলাফল হবে

 

m[0][1]=1

m[2][2]=2

m[1][0]=3

m[2][0]=4

m[1][1]=5

m[0][2]=6

m[1][2]=7

m[0][0]=8

m[2][1]=9

 

এরপর দুইটি লুপ একটি (a=0 থেকে n পর্যন্ত) আর একটি

(b=0 থেকে n পর্যন্ত) চালিয়ে প্রিন্ট করলেই ৩×৩ ম্যাজিক স্কয়ার

তৈরী হয়ে যাবে ।

 

সম্পূর্ন কোড

 

#include <stdio.h>

int main()

{

int n,i,a,b;

printf(“Enter Odd Dimension number=”);

scanf(“%d”,&n);

while(1)

{

if((n%2==0||n>=25))

{

printf(“Please Enter The Odd Dimension number (Ex:3 or 5 or 7..):”);

scanf(“%d”,&n);

}

else

break;

}

int m[n][n];

for(i=1;i<=(n*n);i++)

{

a=(n-i%n+1+2*((i-1)/n))%n;

b=((n-1)/2+i-1-(i-1)/n)%n;

m[a][b]=i;

}

for(a=0;a<n;a++)

{

for(b=0;b<n;b++)

{

printf(“%dt”,m[a][b]);

}

printf(“n”);

}

return 0;

}

 

সবাইকে ধন্যবাদ ।

সি প্রোগ্রামিং দিয়ে Date Guesser

সি প্রোগ্রামিং দিয়ে Date Guesser

প্রথমে নিজেকে একটি দিন এর কথা ভেবে রাখতে হবে। এরপর এই প্রোগ্রাম আপনাকে কয়েকটি ধাপ সম্পন্ন করতে বলবে।এরপর আপনার চিন্তা করা দিন বলে দিবে।

প্রোগ্রামটি হলঃ

#include <stdio.h>
int play2(result)
{
char ch;
printf(“nn2 3 6 7n10 11 14 15n18 19 22 23n26 27 30 31n”);
printf(“nIs Your Birthdate in This List?(y/n)n”);
scanf(” %c”,&ch);
if(ch==’y’)
{
result=result+2;
play3(result);

}
else
play3(result);

}
int play3(int result)
{
char ch;
printf(“nn4 5 6 7n12 13 14 15n20 21 22 23n28 29 30 31n”);
printf(“nIs Your Birthdate in This List?(y/n)n”);
scanf(” %c”,&ch);
if(ch==’y’)
{
result=result+4;
play4(result);
}
else
play4(result);
}
int play4(int result)
{
char ch;
printf(“8 9 10 11n12 13 14 15n24 25 26 27n28 29 30 31n”);
printf(“nIs Your Birthdate in This List?(y/n)n”);
scanf(” %c”,&ch);
if(ch==’y’)
{
result=result+8;
play5(result);
}
else
play5(result);

}
int play5(int result)
{
char ch;
printf(“16 17 18 19n20 21 22 23n24 25 26 27n28 29 30 31n”);
printf(“nIs Your Birthdate in This List?(y/n)n”);
scanf(” %c”,&ch);
if(ch==’y’)
{
result=result+16;
}
date(result);
}
int date(int result)
{
int n;
printf(“YOUR BIRTHDATE IS=%dn”,result);
printf(“1. Playn”);
printf(“2. Exitn”);
scanf(“%d”,&n);
while(1)
{
switch(n)
{
case 1:
play1();
break;
case 2:
exit(0);
}
}
}

int play1()
{
int result=0;
char ch;
printf(“nn1 3 5 7n9 11 13 15n17 19 21 23n25 27 29 31n”);
printf(“nIs Your Birthdate in This List?(y/n)n”);
scanf(” %c”,&ch);
if(ch==’y’)
{
result=result+1;
play2(result);
}
else
play2(result);

}
int main()
{
int n;
printf(“1. Playn”);
printf(“2. Exitn”);
scanf(“%d”,&n);
while(1)
{
switch(n)
{
case 1:
play1();
break;
case 2:
exit(0);
}
}
return 0;

}

সি প্রোগ্রাম – বার নির্ণয়ক সফটওয়্যার

সি প্রোগ্রাম – বার নির্ণয়ক সফটওয়্যার

ইনপুট হিসেবে যা নেয়া হবেঃ
১.তারিখ
২.মাস নম্বর
৩.প্রথম দুই ডিজিট সালের
৪.বাকি ডিজিট সালের

আউটপুটঃ
বার এর নাম

ধরা যাক তারিখ নেয়া হল-১২,মাস নম্বর-৮,প্রথম দুই ডিজিট সালের-১৯
বাকি ডিজিট সালের-৯৩,তার মানে ১২-৮-১৯৯৩

এখন কিছু নির্দিষ্ট মাস এর জন্য কিছু নির্দিষ্ট নম্বর আছে। যেমনঃ
জানুয়ারী,অক্টোবর-৫
ফেব্রুয়ারী,মার্চ,নভেম্বর-১
এপ্রিল,জুলাই-৪
মে-৬
জুন-২
আগষ্ট-০
সেপ্টেম্বর,ডিসেম্বর-৩

এখানে প্রথম দুইডিজিটসালের-১৯।১৯কে ৪ দ্বারা ভাগ করলে ভাগশেষ থাকে ৩।আবার বিভিন্ন ভাগশেষ এরজন্য কিছু নির্দিষ্ট নম্বর আছে।নিচে এ র তালিকা দেয়া হলঃ
ভাগশেষ ৩ হলে নম্বর হবে ২
ভাগশেষ ২ হলে নম্বর হবে ৪
ভাগশেষ ১ হলে নম্বর হবে৬
ভাগশেষ ০ হলে নম্বর হবে ১

এখন শেষ দুই ডিজ়িট ৯৩।৯৩ কে ৪ দ্বারা ভাগ করলে ভাগফল থাকে ২৩.২৫।কিন্তূ আমরা এখানে পূর্ণ সংখ্যা নিবো। তাহলে ভাগ ফল হবে ২৩।

এরপর যোগ করুন ৯৩+২৩=১১৬।এখন এই যোগফলের সাথে নিচের মানগুলো
যোগ করুন।তাহলে সূত্র হচ্ছেঃ
তারিখ+মাসের জন্য নির্দিষ্ট নম্বর+ভাগশেষএ র জ়ন্য নির্দিষ্টনম্বর+উপরে প্রাপ্তযোগফল
তাহলে আমাদের ধার্যতারিখ উপরেরসূত্রে বসিয়ে পাই
১২+০+২+১১৬=১৩০
এটি হল মোটযোগফল।এখন মোটযোগফলকে ৭ দ্বারা ভাগ করলে যা ভাগশেষ থাকবে সেইসংখ্যানির্দিষ্ট বারকে নির্দেশকরবে।

ভাগশেষ ০ হলে বার হবে রবিবার
ভাগশেষ ১ হলে বার হবে সোম বার
ভাগশেষ ২ হলে বার হবে মঙ্গলবার
ভাগশেষ ৩ হলে বার হবে বুধবার
ভাগশেষ ৪ হলে বার হবে বৃহস্পতিবার
ভাগশেষ ৫ হলে বার হবে শুক্রবার

এখানে ১৩০/৭= ভাগশেষহয় ৪ যা বৃহস্পতিবারকে নির্দেশ করে।সুতরাং নির্নেয় বার=বৃহস্পতিবার

লক্ষ্যকরুনঃ লিপইয়ার এর ক্ষেত্রে জানুয়ারীর নম্বর ৫ এর বদলে ৪ হবে।

কোডিংঅংশঃ
উপরের লজিক অনুযায়ী সি প্রোগ্রামিং দ্বারা কোডিং করা যাক ।

#include <stdio.h>
#include <conio.h>
int main()
{
int date,month,y,y1,y2,a,b,c,d,re,sum,sum1,re1,tot;
printf(“Instruction: At first give date(ex:17), then give year(ex:2014)nthen type 1st two digit of year(ex:20).Next give last two digit of year(ex:14)nAt last give month number(Ex:5)nn”);

printf(“Enter Date=a”);
scanf(“%d”,&date);
printf(“Enter Year=a”);
scanf(“%d”,&y);

printf(“Enter 1st two digits of Year=a”);
scanf(“%d”,&y1);

printf(“Enter last two digits of Year=a”);
scanf(“%d”,&y2);
printf(“Enter Month Number=a”);
scanf(“%d”,&month);

if(month==1||month==10){
a=5;
if(y%4==0 && y%100!=0||y%400==0){
if(month==1)
a=4; //লিপইয়ারহলেজানুয়ারী=৪ হবে ।
}
}
if(month==2)
a=0;
if(y%4==0 && y%100!=0||y%400==0)
{
if(month==2)
a=0;
}
if(month==3||month==11){
a=1;
}
if(month==4||month==7){
a=4;
sum=(date+a);
}
if(month==5){
a=6;
}
if(month==6){
a=2;
}
if(month==8){
a=0;
}
if(month==9||month==12){
a=3;
}

sum=date+a;

re=(y1%4);
if(re==3){
b=2;
}
if(re==2){
b=4;
}
if(re==1){
b=6;
}
if(re==0){
b=1;
}
c=(y2/4);
d=(y2+c);
sum1=(b+d);
tot=(sum+sum1);
re1=tot%7;
if(re1==0){
printf(“nDay= Sundaya”);
}
if(re1==1){
printf(“nDay= Mondaya”);
}
if(re1==2){
printf(“nDay= Tuesdaya”);
}
if(re1==3){
printf(“nDay= Wednesdaya”);
}
if(re1==4){
printf(“nDay= Thursdaya”);
}
if(re1==5){
printf(“nDay= Fridaya”);
}
if(re1==6){
printf(“nDay= Saturdaya”);
}
getch();
}

প্রোগ্রামিং প্রতিযোগিতার শুরুর গল্প

প্রোগ্রামিং প্রতিযোগিতার শুরুর গল্প
মোঃ মাহবুবুল হাসান

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

প্রোগ্রামিং প্রতিযোগিতার শুরুর গল্প
প্রোগ্রামিং প্রতিযোগিতার শুরুর গল্প

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

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

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

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

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

বইটি কাদের জন্য লেখাঃ
১) যারা প্রোগ্রামিং এ নতুন
২) স্কুল, কলেজ অথবা বিশ্ববিদ্যালয় পর্যায়ে সি প্রোগ্রামিং শিখতে চায়
৩) স্কুল-কলেজ পর্যায়ে ইনফরমেটিক্স অলেম্পিয়াডের জন্য প্রস্তুতি নিতে চায় -তাদের জন্য।

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

সূচীপত্র:
শূন্য অধ্যায়ঃ কম্পিউটার প্রোগ্রামিং(পরিগণন) ও এর গুরত্ব
প্রথম অধ্যায়ঃ ক¤পাইলার ইন্সটল করা (compiler install)
দ্বিতীয় অধ্যায়ঃ সি প্রোগ্রাম (C Program)
তৃতীয় অধ্যায়ঃ ইনপুট ও আউটপুট (Input and output)
চতুর্থ অধ্যায়ঃ ডাটা টাইপ (Data Types)
পঞ্চম অধ্যায়ঃ চলক এবং ধ্রুবক (Variable and Constant)
ষষ্ঠ অধ্যায়ঃ অপারেটর (Operator)
সপ্তম অধ্যায়ঃ কন্ট্রোল স্টেটমেন্ট (Control Statement)
অষ্টম অধ্যায়ঃ ফাংশন (Function)
নবম অধ্যায়ঃ অ্যারে এবং পয়েন্টার (Array and Pointer)
দশম অধ্যায়ঃ স্ট্রিং (String)
একাদশ অধ্যায়ঃ ফাইল – ইনপুট/আউটপুট (File – I/O)
দ্বাদশ অধ্যায়ঃ স্ট্রাকচার (Structure)

লেখক পরিচিতিঃ
আরিফুজ্জামান ফয়সাল রাজেন্দ্রপুর ক্যান্টনমেন্ট পাবলিক স্কুল এবং কলেজ থেকে এসএসসি এবং সরকারি বিজ্ঞান কলেজ থেকে এইচএসসি পাশ করে বাংলাদেশ প্রকৌশল বিশ্ববিদ্যালয় (বুয়েট) এর ইলেকট্রিক্যাল এবং ইলেক্ট্রনিক ইঞ্জিনিয়ারিং বিভাগে ভর্তি হন। বর্তমানে তিনি চতুর্থ বর্ষে অধ্যয়নরত আছেন।

প্রোগ্রামিং-এ ভালো করবে বাংলাদেশ, সেই লক্ষ্যে স্কুল কলেজের শিক্ষার্থীদের মাঝে প্রোগ্রামিং জ্ঞান ছড়িয়ে দিতে শুরু করেন ইচ্ছে কোড প্রোগ্রামিং ক্যাম্প (www.camp.icchecode.com)। বর্তমানে পড়াশোনার পাশাপাশি ইচ্ছে কোড (www.icchecode.com) এর প্রধান নির্বাহী হিসেবে দায়িত্ব রত আছেন।

এটা প্রোফাইল পিকচার না, আমার লেখা বইয়ের বিজ্ঞাপন 😛 মডেল খুঁজে পাওয়া যাচ্ছিলো না, তাই নিজেই বই নিয়ে পোজ দিয়েছিলাম একুশে…

Posted by Arifuzzaman Faisal on Saturday, March 28, 2015

 

—————#————-

বইটির মূল্য ২০০ টাকা মাত্র

—————#————-

# প্রাপ্তিস্থানঃ-
অন্বেষা প্রকাশ
বাংলা বাজার, ঢাকা

# প্রাপ্তিস্থানঃ-
ঢাকা নীল ক্ষেতের হক লাইব্রেরী
হক লাইব্রেরীতে বই এর মূল্য ২০০ টাকার পরিবর্তে ১৫০ টাকা মাত্র
ফোন নম্বরঃ- ০১৭৩৫৭৪২৯০৮


বইটির ফেসবুক পেজঃ-
(https://www.facebook.com/SohojeShikhiCProgramming)
—————#————-
#‎ঢাকার_বাইরে‬
রকমারি.কম লিংক : www.rokomari.com/book/94203
এখানে একটি একাউন্ট খুলে, অনলাইনে অর্ডার দিলে বাসায় পৌছে দেবে ওরা। যদি একাউন্ট খুলে অর্ডার দিতে সমস্যা হয় তা হলে সরাসরি Phone: 16297, 01519521971 এ কল দিলেই হবে ।

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

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

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

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

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

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

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

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

Code::blocks Environmental error Problem Solution

Code::blocks Environmental error Problem Solution

Environmental error দেখায় কেনো ?
ভাইয়া কম্পাইল হচ্ছে না কেন ?

কোডঃঃব্লক্স (Code::blocks) ইন্সটল করে প্রোগ্রাম লিখে কম্পাইল করার সময় এমন সমস্যার সম্মুখীন অনেকেই ।

সমাধান কি?
১) কোডঃঃব্লক্স (Code::blocks) ডাউনলোড কর নিচের লিঙ্ক থেকেঃ- http://sourceforge.net/projects/codeblocks/files/Binaries/13.12/Windows/codeblocks-13.12mingw-setup-TDM-GCC-481.exe/download

২) যদি কোড লেখার পর কম্পাইল করলে “Environmental error” দেখায় তাহলে Code::blocks এর settings থেকে compiler option এ ক্লিক কর। তারপর “GNU GCC” compiler সিলেক্ট করে “set as default” এ ক্লিক কর।

কোডঃঃব্লক্স (Code::blocks)
কোডঃঃব্লক্স (Code::blocks)

Code::blocks Environmental error Problem Solution

কিভাবে শুরু করবো পাইথন প্রোগ্রামিং

কিভাবে শুরু করবো পাইথন (Python) প্রোগ্রামিং ?

ধাপ -১ (Python IDE ডাউনলোড)

প্রথমে Python IDE ডাউনলোড করতে হবে। উইন্ডোজ অপারেটিং সিস্টেম এর জন্য পাইথন এর অফিসিয়াল ওয়েবসাইটে বিনামূল্যে পাইথন interpreter ডাইনলোড করা যায়। পাইথন এর অফিসিয়াল ওয়েবসাইটঃ- www.python.org

 পাইথন প্রোগ্রামিং - স্বপ্ন পূরণ.কম
পাইথন প্রোগ্রামিং – স্বপ্ন পূরণ.কম

 

ধাপ -২ (Python Hello_World প্রোগ্রাম)

প্রথমে start menu তে গিয়ে Python খুঁজে বের কর। এবার Python IDLE প্রোগ্রামটি রান কর। নিচের মত একটি window open হবে।

পাইথন প্রোগ্রামিং - স্বপ্ন পূরণ.কম
পাইথন প্রোগ্রামিং – স্বপ্ন পূরণ.কম

এখন window এর মাঝে print(“Hello World!”) লিখে ইন্টার প্রেস কর। দেখবে আউটপুটে Hello World! দেখাবে:-

পাইথন প্রোগ্রামিং - স্বপ্ন পূরণ.কম
পাইথন প্রোগ্রামিং – স্বপ্ন পূরণ.কম

Python IDLE প্রোগ্রামটি রান করে একটি নতুন ফাইল তৈরি কর। Python Shell এর File থেকে New File ক্লিক করলেই নতুন ফাইল তৈরি হয়ে যাবে। এখন ফাইলটি .py নামে সেভ কর। এবার এই ফাইলের মাঝে print(“Hello World!”) লিখে Run থেকে Run Module এ ক্লিক করলে প্রোগ্রামটি রান হবে এবং একটি নতুন Python Shell এ আউটপুট তথা এক্ষেত্রে Hello World! দেখাবে

পাইথন প্রোগ্রামিং - স্বপ্ন পূরণ.কম
পাইথন প্রোগ্রামিং – স্বপ্ন পূরণ.কম
পাইথন প্রোগ্রামিং - স্বপ্ন পূরণ.কম
পাইথন প্রোগ্রামিং – স্বপ্ন পূরণ.কম

ধাপ -৩ (ক্যালকুলেটর হিসেবে পাইথন)

পাইথন(Python)এর IDLE প্রোগ্রামটি ক্যালকুলেটর হিসেবেও ব্যবহার করা যায়। তাহলে প্রথমে start menu তে গিয়ে Python খুঁজে বের কর। এবার Python IDLE প্রোগ্রামটি রান কর। নিচের মত একটি window open হবে। এখন এই Python 3.4.1 Shell এর মাঝে নম্বর এর যোগ, বিয়োগ, ভাগ, গুণ ইত্যাদি করা যাবে। নিচে একটি উদাহরণ এর সাহায্যে দেখানো হয়েছে।
প্রথমে start menu তে গিয়ে Python খুঁজে বের কর। এবার Python IDLE প্রোগ্রামটি রান কর। নিচের মত একটি window open হবে।

পাইথন প্রোগ্রামিং - স্বপ্ন পূরণ.কম
পাইথন প্রোগ্রামিং – স্বপ্ন পূরণ.কম

ধাপ -৪ (পাইথন ডাটা টাইপ)

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

  • Numbers [ যেকোনো সংখ্যার ভেরিয়েবল বোঝানোর জন্য]
  • Strings [ স্ট্রিং ভেরিয়েবল বোঝানোর জন্য]
  • Lists [ লিস্ট ভেরিয়েবল বোঝানোর জন্য]

বিস্তারিত ইচ্ছে কোড প্রোগ্রামিং স্কুল

ধাপ -৫ (পাইথন অপারেটর)

কম্পাইলারকে যেই সংকেত সমূহ গাণিতিক বা লজিকাল কোন কাজ করার জন্য নির্দেশনা দেয় তাদের কম্পিউটার প্রোগ্রামিং-এ অপারেটর বলে। মনে করো z = (x+y), এখানে x,y,z হলো অপারেন্ড এবং =, + হলো অপারেটর।

অপারেটরগুলোকে কয়েক ভাগে ভাগ করা যায়। যেমনঃ

১) অ্যারিথমেটিক অপারেটর
২) এসাইনমেন্ট অপারেটর
৩) রিলেশনাল অপারেটর
৪) লজিকাল অপারেটর
৫) বিটওয়াইজ অপারেটর
৭) টাইপ কাস্টিং
১) অ্যারিথমেটিক অপারেটরঃ
অ্যারিথমেটিক অপারেটর সম্পর্কে জানাতে হলে নিচের কোডটি তোমার কম্পাইলারে লিখে কম্পাইল ও রান করো তুমি নিজেই বুঝে যাবে।

# Welcome to www.icchecode.net
a = 10
b = 3
print( ‘a + b = ‘, a + b )
print( ‘a – b = ‘, a – b )
print( ‘a * b = ‘, a * b )
print( ‘a / b = ‘, a / b )
print( ‘a % b = ‘, a % b )
#Output:
a + b = 13
a – b = 7
a * b = 30
a / b = 3.3333333333333335
a % b = 1

বিস্তারিত ইচ্ছে কোড প্রোগ্রামিং স্কুল

 

পরবর্তীতে আরো আপডেট করা হবে পাইথন প্রোগ্রামিং শেখার এই পোস্টটি……… ততদিন পাইথন নিয়ে কিছু খেলাধুলা করতে থাকো…… তবে সাবধান এই পাইথন সেই পাইথন নয় 😛 

কিভাবে শুরু করবো পাইথন (Python) প্রোগ্রামিং ?

কিভাবে শুরু করবো পাইথন (Python) প্রোগ্রামিং ?

কিভাবে শুরু করবো পাইথন প্রোগ্রামিং ?

সি প্রোগ্রাম দিয়ে বেজ কনভার্শন

এই পোস্টে আমরা ডেসিমাল নাম্বারকে বাইনারীতে কনভার্ট করার প্রোগ্রাম করতে শিখবো। এ জন্য আমাদের আগে থেকে অ্যারে (Array) সম্পর্কে বেসিক ধারণা থাকা লাগবে।

ডেসিমাল বা দশমিক সংখ্যাকে বাইনারীতে রুপান্তরের জন্যে আমরা দশমিক সংখ্যাকে ক্রমান্বয়ে ভাগ করতে থাকি এবং প্রত্যেক ক্ষেত্রে প্রাপ্ত ভাগফলগুলোকে বিপরীত ক্রমে সাজিয়ে বসাই। ঠিক এই কাজটিই আমরা আজকের প্রোগ্রামে করবো।একটি ডেসিমাল নাম্বারকে ক্রমান্বয়ে ভাগ করে প্রাপ্ত ভাগশেষ গুলো একটি অ্যারের মধ্যে রেখে দিবো এবং অ্যারের এলিমেন্টগুলো বিপরীতক্রমে প্রিন্ট করবো।

শুরুতেই প্রোগ্রামের জন্য প্রয়োজনীয় ভেরিয়েবল ও অ্যারে ডিক্লেয়ার করে নিই।

#include <stdio.h>

int main()
{
    long int a,c;
    int i=0,count=0;
    char bol[10000];
}

 

ইন্টেজার a তে আমরা নির্ণেয় ডেসিমাল নাম্বারটি রাখবো এবং c তে তা কপি করে নিবো।কপি কেন করতেসি তা আমরা কিছুক্ষন পরেই বুঝতে পারবো।ইন্টেজার i দিয়ে আমরা লুপ চালাবো এবং count এ মোট রিমাইন্ডার বা ভাগশেষ সংখ্যা গুনে রাখবো। bol[10000] একটি ক্যারেক্টার টাইপ অ্যারে যেটার মধ্যে আমরা রিমাইন্ডার গুলোকে রেখে দিবো।

#include <stdio.h>

int main()
{
    long int a,c;
    int i=0,count=0;
    char bol[10000];
    scanf("%ld", &a);
    c = a;
}

একটি হুয়াইল লুপ চালিয়ে আমরা রিমাইন্ডারগুলি বের করে নিবো আর সেগুলোকে bol অ্যারের মধ্যে ইনসার্ট করে রাখবো।সাথে সাথে রিমাইন্ডার সংখ্যাও কাউন্ট করে রাখবো।

#include <stdio.h>

int main()
{
    long int a,c;
    int i=0,count=0;
    char bol[10000];
    scanf("%ld", &a);
    c = a;
    while(a!=0)
    {
        bol[i] = a%2;
        a = a / 2;
        count++;
        i++;
    }
}

ধরি a=12,তাহলে প্রথমবার লুপ রান পর bol[0]=12%2=0,a=12/2=6,count=1,i=1 হবে।দ্বিতীয়বার লুপ রান করার পর bol[1]=6%2=0,a=6/2=3,count=2,i=2 হবে।তৃতীয়বারে bol[2]=3%2=1,a=3/2=1,count=2,i=2 এবং শেষবারে bol[3]=1%2=1,a=1/2=0,count=3,i=3 হবে। লুপ শেষে অ্যারের ভ্যালু bol= “0011” দেখাবে।

আমাদের শেষ কাজ হবে অ্যারের এলিমেন্টগুলো বিপরীতক্রমে প্রিন্ট করা। a=0 হলে বাইনারী হিসেবে প্রোগ্রাম শুধু 0 প্রিন্ট করবে।while লুপ চলাকালে a এর ভ্যালু বার বার চেঞ্জ হয়।তাই c তে আমরা a এর ইনিশিয়াল ভ্যালু অ্যাসাইন করে রাখা হইসে। শুন্য ছাড়া অন্য যেকোন ধনাত্মক মানের জন্য আমরা ফরলুপের সাহায্যে অ্যারে প্রিন্ট করবো।

#include <stdio.h>

int main()
{
    long int a,c;
    int i=0,count=0;
    char bol[10000];
    scanf("%ld", &a);
    c = a;
    while(a!=0)
    {
        bol[i] = a%2;
        a = a / 2;
        count++;
        i++;
    }
    if(c==0)
    {
        printf("0");
    }
    else
    {
        for(i=count-1; i>=0; i--)
        {
            printf("%d", bol[i]);
        }
    }
    printf("n");
    return 0;
}

23 তম লাইনের ফরলুপ বিপরীতক্রমে অ্যারে এলিমেন্টগুলি প্রিন্ট করবে।এখন সমস্ত প্রোগ্রামটি কম্পাইল করে আমরা অনেক বড় ডেসিমাল সংখ্যারও বাইনারী কনভার্শন করতে পারবো।

সি প্রোগ্রাম দিয়ে বেজ কনভার্শন

বাংলা ভাষায় প্রোগ্রামিং বই “সহজে শিখি সি প্রোগ্রামিং – আরিফুজ্জামান ফয়সাল”

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

সি প্রোগ্রামিং – বই

সি প্রোগ্রামিং – টিউটোরিয়াল

বাংলা ভাষায় প্রোগ্রামিং বই “সহজে শিখি সি প্রোগ্রামিং – আরিফুজ্জামান ফয়সাল”

সহজে শিখি সি প্রোগ্রামিং
সহজে শিখি সি প্রোগ্রামিং

এই রকম অনেক ডায়াগ্রাম এর মাধ্যমে সহজে প্রতিটি টপিক এর ব্যাখ্যা দেয়া হয়েছে “সহজে শিখি সি প্রোগ্রামিং” বইটিতে।

“সহজে শিখি সি প্রোগ্রামিং” বইটি প্রকাশিত হচ্ছে আগামী বই মেলায় Annesha Prokashon – অন্বেষা প্রকাশন থেকে । ইচ্ছে কোড থেকে প্রকাশিত প্রথম বই। প্রোগ্রামিং কে আরো সহজ করে তোলার জন্য বইটি লেখা। বইটি লিখেছেন Arifuzzaman Faisal

বই টিতে পাবেন প্রতিটি কোডের বাংলা ব্যাখ্যা এবং পাঠ্যবই এর অনেক সমস্যা প্রোগ্রামিং এর সাহায্যে কিভাবে সমাধান করতে হয় তাও দেখানো হয়েছে। পাশাপাশি প্রোগ্রামিং কিভাবে ভবিষ্যত কর্মক্ষেত্রে সহায়তা করবে তা বর্ননা করা হয়েছে বইটিতে।

“সহজে শিখি সি প্রোগ্রামিং”

সূচীপত্র
শূন্য অধ্যায়ঃ কম্পিউটার প্রোগ্রামিং(পরিগণন) ও এর গুরত্ব
প্রথম অধ্যায়ঃ কম্পাইলার ইন্সটল করা (compiler install)
দ্বিতীয় অধ্যায়ঃ সি প্রোগ্রাম (C Program)
তৃতীয় অধ্যায়ঃ ইনপুট ও আউটপুট (Input and output)
চতুর্থ অধ্যায়ঃ ডাটা টাইপ (Data Types)
পঞ্চম অধ্যায়ঃ চলক এবং ধ্রবক (Variable and Constant)
ষষ্ঠ অধ্যায়ঃ অপারেটর (Operator)
সপ্তম অধ্যায়ঃ কন্ট্রোল স্টেটমেন্ট (Control Statement)
অষ্টম অধ্যায়ঃ ফাংশন (Function)
নবম অধ্যায়ঃ অ্যারে এবং পয়েন্টার (Array and Pointer)
দশম অধ্যায়ঃ স্ট্রিং (String)
একাদশ অধ্যায়ঃ ফাইল – ইনপুট/আউটপুট (File – I/O)
দ্বাদশ অধ্যায়ঃ স্ট্রাকচার (Structure)

বইটি কাদের জন্য লেখাঃ
১) যারা প্রোগ্রামিং এ নতুন
২) স্কুল, কলেজ অথবা বিশ্ববিদ্যালয় পর্যায়ে সি প্রোগ্রামিং শিখতে চায়
৩) স্কুল-কলেজ পর্যায়ে ইনফরমেটিক্স অলেম্পিয়াডের জন্য প্রস্তুতি নিতে চায় -তাদের জন্য।

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

“সহজে শিখি সি প্রোগ্রামিং”
– আরিফুজ্জামান ফয়সাল
– ৪র্থ বর্ষ, তড়িৎ কৌশল বিভাগ, বুয়েট।
—————#————-

বইটির মূল্য ২০০ টাকা মাত্র

—————#————-

# প্রাপ্তিস্থানঃ-
অন্বেষা প্রকাশ
বাংলা বাজার, ঢাকা

# প্রাপ্তিস্থানঃ-
ঢাকা নীল ক্ষেতের হক লাইব্রেরী
হক লাইব্রেরীতে বই এর মূল্য ২০০ টাকার পরিবর্তে ১৫০ টাকা মাত্র
ফোন নম্বরঃ- ০১৭৩৫৭৪২৯০৮


বইটির ফেসবুক পেজঃ-
(https://www.facebook.com/SohojeShikhiCProgramming)
—————#————-
#‎ঢাকার_বাইরে‬
রকমারি.কম লিংক : www.rokomari.com/book/94203
এখানে একটি একাউন্ট খুলে, অনলাইনে অর্ডার দিলে বাসায় পৌছে দেবে ওরা। যদি একাউন্ট খুলে অর্ডার দিতে সমস্যা হয় তা হলে সরাসরি Phone: 16297, 01519521971 এ কল দিলেই হবে ।

সি প্রোগ্রাম দিয়ে সিরিজ সমাধান

সি প্রোগ্রাম দিয়ে সিরিজ সমাধান

আমাদেরকে বলা হল এমন একটি সি প্রোগ্রাম লিখ যা নিন্মোক্ত সিরিজের প্রথম n সংখ্যক পদের যোগফল দেখাবে

1 2+ 32 + 52+…. + n2  যেখানে n হচ্ছে যেকোন ইনপুট।

সিরিজটি আমরা লক্ষ করি।সিরিজটি কে এভাবে লেখা যায়-

1 2+ 32 + 52+ 72+…. + n2

(1) 2+ (3)2+ (5)2+ (5+2)2+…. + n2

(1) 2+ (3)2+ (3+2)2+ (5+2)2+…. + n2

(1) 2+ (1+2)2+ (3+2)2+ (5+2)2+…. + n2

সিরিজটির প্রদগুলোকে স্কয়ার বিহীন সিকোয়েন্স কল্পনা করলে তা হবে নিন্মরূপ

(1), (1+2),(3+2) ,(5+2),…. ,n

প্রত্যেকটি পদ তার আগের পদ এবং 2 এর সমস্টির সমান। তার মানে যদি আমরা একটি সংখ্যা (এই অনুক্রমে তা 1) নিয়ে তার সাথে পর্যায়ক্রমে 2 যোগ করতে থাকি তাহলে প্রত্যেকবার আমরা বর্তমান সংখ্যার পরবর্তি সংখ্যাটি পাবো। যেহেতু আমরা একই কাজ বারবার করবো-এই আমরা এইখানে লুপ (for loop) ব্যবহার করবো । অর্থ্যাৎ লুপ হচ্ছে যা একই কাজ বার বার করে। আমরা আমাদের কোড লিখা শুরু করি।

#include
int main()

 

সিরিজটি পাওয়ার জন্য আমাদেরকে তিনটি ভেরিয়েবল নিতে হবে যেগুলি যথাক্রমে n এর মান (যা আমরা ইনপুট হিসেবে নিবো), ধারার যোগফল এবং তৃতীয় টি লুপ ভেরিয়েবল। লুপ ভেরিয়েবল কি তা আমরা একটু পরেই জানব।

int n,i;
int sum=0;
printf("Enter the n i.e. max values of series: ");
scanf("%d",&n);

সিরিজটি শুরু হয়েছে 1 থেকে । তাই আমাদের লুপ শুরু হবে 1 থেকে।এই 1 কে একটি ভেরিয়েবলের মধ্যে রাখা হয়।এটিই লুপ ভেরিয়েবল। সিরিজটিতে পদের মান n এর সমান না হওয়া পর্যন্ত পদের মান 2 করে বাড়তে থাকে।তাই আমাদের লুপটি চলতে থাকবে যতক্ষন না পর্যন্ত লুপ ভেরিয়েবলের মান (আমাদের কোডে i) n এর সমান না হয়। লুপ ডিক্লেয়ার করার সিন্টেক্স নিন্মরুপঃ

for(i =1;i <= n;i+=2)

{

}

এখানে লুপ শুরু হবে i =1 মান টি দিয়ে। i+=2 এর মানে হচ্ছে i এর মান 2 করে বাড়বে। i <= n হচ্ছে লুপের শর্ত বা কন্ডিশন । এটি সত্য হলে লুপ তার কাজ(লুপের মধ্যে যা অ্যাসাইন করা হয় ) চালিয়ে যাবে। এখানে i এর মান n এর চেয়ে কম বা সমান হলেই লুপ চলবে, নতুবা লুপ তার কাজ শেষ করে দিবে।

আমরা বার বার যে কাজ টি করতে যাচ্ছি তা হচ্ছে বারবার বর্গ করে যোগ করা। শুরুতে আমরা ধরে নিয়েছি আমাদের ধারার যোগফল 0 । কাজ টি করার জন্য নিচের লুপের মধ্যে Sum=sum+(i*i) অ্যাসাইন করি।

for(i =1;i <= n;i+=2)

{
Sum=sum+(i*i);
}

i =1 হলে লুপের ভিতর থাকা Sum=sum+(i*i) কমান্ড কম্পাইলার একবার রীড করবে। অর্থ্যৎ Sum মান হবে Sum=0+(1*1)=1 । তারপর i এর মান 2 বৃদ্ধি পেয়ে 3 হবে। কম্পাইলার Sum=1+(2*2)=5 করে দিবে। এভাবে বারবার i এবং sum এর মান বাড়তে থাকবে। যখন i = n হবে তখনও লুপের ভিতরের কমান্ড রীড হবে। ইনপুট হিসেবে n=100 নিলে লুপের সর্বশেষ কাজ হবে
Sum= 328350+(100*100)=338350 করা।

এখন শুধুমাত্র printf(“Sum of the series:%d “,sum); লিখেই আমরা আলোচ্য সিরিজের যোগফল পেতে পারি। তাহলে আমাদের সম্পুর্ন কোড হবে নিন্মরূপ-

#include
int main()

{
int n,i;
int sum=0;
printf("Enter the n i.e. max values of series: ");
scanf("%d",&n);
for(i =1;i <= n;i+=2)
{
Sum=sum+(i*i);
}

printf("Sum of the series:%d ",sum);

return 0;
}

মনে করো আমরা লুপ ব্যবহার করতে চাই না সেক্ষেত্রে আমাদের ধারার যোগফল বের করার সূত্র জানতে হবে।

n সংখ্যক বিজোড় স্বাভাবিক সংখ্যার বর্গের সমষ্টি:

1

2

3

4

5

6

1 2+ 32 + 52+ 72+…. + n2 = (n * (2n + 1)*(2n – 1)) / 3 খুব সহজেই (n * (2n + 1)*(2n – 1)) / 3 সূত্র ব্যবহার করে আমরা উপরের ধারার সমষ্টি নির্ণয় করে ফেলতে পারি ( যদিও দেখলে এভাবে সূত্র বের করা কত কঠিন )। কিন্তু সকল ক্ষেত্রে ধারার সমষ্টি এভাবে বের করা সম্ভব নাও হতে পারে।

#include<stdio.h>
int main()

{ 
   int n,i;
   int sum=0;
   printf("Enter the n i.e. max values of series: ");
   scanf("%d",&n);
   sum=(n * (2n + 1)*(2n - 1)) / 3; 
   printf("Sum of the series:%d ",sum);
   return 0; 
} 

প্রথম n সংখ্যক স্বাভাবিক সংখ্যার বর্গের সমষ্টি:

1 2+ 22 + 32+ 42+…. + n2  = { n(n+1)(2n+1)}/6

খুব সহজেই { n(n+1)(2n+1)}/6 সূত্র ব্যবহার করে আমরা n সংখ্যক স্বাভাবিক সংখ্যার বর্গের সমষ্টি নির্ণয় করে ফেলতে পারি।

#include
int main()
{
    int n;
    int sum=0;
    printf("Enter the n i.e. max values of series:");
    scanf("%d",n);
    sum = { n(n+1)(2n+1)}/6;
    printf("Sum of the series:%d ",sum);
    return 0;
}

আবার আমরা জানি প্রথম n সংখ্যক স্বাভাবিক সংখ্যার ঘনের সমষ্টি:

1 3+ 23 + 33+ 43+…. + n3 = {n(n+1)/2}^2

খুব সহজেই {n(n+1)/2}^2 সূত্র ব্যবহার করে আমরা n সংখ্যক স্বাভাবিক সংখ্যার ঘনের সমষ্টি নির্ণয় করে ফেলতে পারি।

এখন যদি প্রথম n সংখ্যক স্বাভাবিক সংখ্যার চতুর্ঘাতের সমষ্টি নির্ণয় করতে বলা হয়:

1 4+ 24 + 34+ 44+…. + n4  = ? ?

খুব সহজেই হয়তো সূত্র বের করে আমরা n সংখ্যক স্বাভাবিক সংখ্যার চতুর্ঘাতের সমষ্টি নির্ণয় করে ফেলতে পারি।

এখন যদি প্রথম n সংখ্যক স্বাভাবিক সংখ্যার পঞ্চ ঘাত বা ষষ্ঠ ঘাত এর সমষ্টি নির্ণয় করতে বলা হয় কি করবো ?

খুব সহজেই এবার হয়তো সূত্র বের করা যাবে না। তাই আমরা যদি লুপ দিয়ে একটি কম্পিউটার প্রোগ্রাম লিখে ফেলি তাহলেই আমাদের এই সমস্যা সমাধান হয়ে যায়।

যেমন নিচের প্রোগ্রাম এ প্রথম n সংখ্যক স্বাভাবিক সংখ্যার চতুর্ঘাতের সমষ্টি নির্ণয় করতে বলা হয়: 1 5+ 25 + 35+ 45+…. + n5 

#include<stdio.h>
int main()

{ 
   int n,i;
   int sum=0;
   printf("Enter the n i.e. max values of series: ");
   scanf("%d",&n);
   for(i =1;i <= n;i+=1)
   {  
      Sum=sum+(i*i*i*i*i);
   } 
   
   printf("Sum of the series:%d ",sum);

   return 0; 
} 

রিকার্শন ফাংশন – ফেক্টোরিয়াল নির্নয়

রিকার্শন ফাংশন – ফেক্টোরিয়াল নির্নয়

In this lecture we determine factorial of any integer number using recursion function.

কোনো সংখ্যার ফেক্টোরিয়াল নির্নয়।

উদাহরণঃ

0! = 1
1! = 1
2! = 2 x 1 = 2
3! = 3 x 2 x 1 = 6
4! = 4 x 3 x 2 x 1 = 24
5! = 5 x 4 x 3 x 2 x 1 = 120
……………………………………..
……………………………………………
n! = n x (n-1) x (n-2) x (n-3) x ………. 4 x 3 x 2 x 1

কোনো সংখ্যার ফেক্টোরিয়াল নির্নয়ঃ

রিকার্শন ফাংশন – ফেক্টোরিয়াল নির্নয়

f(n) = n x f(n -1) ; যেখানে, f(1) = 1
এখন f(1)= 1 কেনো ?
1! = 1
∴ f(1)= 1

5 এর ফেক্টোরিয়াল নির্নয় গাণিতিক ফাংশন f(n) = n x f(n -1) ; যেখানে, f(1) = 1 এর মাধ্যমে

f(5) = 5 x f(5-1)
f(5) = 5 x f(4)
f(5) = 5 x 4 x f(4-1)
f(5) = 5 x 4 x f(3)
f(5) = 5 x 4 x 3 x f(3-1)
f(5) = 5 x 4 x 3 x f(2)
f(5) = 5 x 4 x 3 x 2 x f(2-1)
f(5) = 5 x 4 x 3 x 2 x f(1)
f(5) = 5 x 4 x 3 x 2 x 1
f(5) = 120

∴ 5! = 5 x 4 x 3 x 2 x 1 = 120

রিকার্শন ফাংশন (লেকচার ০১)

রিকার্শন ফাংশন

ফাংশন কিভাবে call করে আমরা জানি। রিকারশন ফাংশন হলো এমন একটি ফাংশন যা নিজেকে নিজেই call করে ।

উদাহরণঃ

ধরা যাক একটি রিকারশন ফাংশন f(x) = f(x-1)+2 ; যেখানে, f(0) = 1 [ ফাংশনটির একটি Pre Defined Value ] এখন , f(3) এর মান নির্নয় করতে হবে।

এখন
বা, f(3) = f(3-1) + 2 , যেহেতু f(x) = f(x-1)+2
বা, f(3) = f(2) + 2
বা, f(3) = {f(2-1) + 2} + 2 , যেহেতু f(x) = f(x-1)+2
বা, f(3) = {f(1) + 2} + 2
বা, f(3) = [{f(1-1) + 2 } + 2 ] + 2 , যেহেতু f(x) = f(x-1)+2
বা, f(3) = [{f(0) + 2 } + 2 ] + 2
বা, f(3) = [{1+ 2 } + 2 ] + 2 , যেহেতু f(0) = 1
বা, f(3) = [ 5 ] + 2
বা, f(3) = 7

উপরে, f(3) নির্ণয় করার সময় f(x) = f(x-1)+2 ; ফাংশনটি একবার 3,2,1,0 দ্বারা করা হয়েছে। রিকারশন ফাংশন সংজ্ঞা অনুযায়ী রিকারশন ফাংশন হল এমন একটি ফাংশন যা নিজেকে নিজেই call করে । সুতরাং আমাদের উপরের f(x) একটি রিকারশন ফাংশন ।

Important C programming Example

Important C programming Example

প্রয়োজনীয় কিছু সি পরিগণন উদাহরণ

কেউ কি জানো প্রোগ্রামিং এর বাংলা কি ? প্রোগ্রামিং এর বাংলা হচ্ছে পরিগণন।

আমরা সি (C) প্রোগ্রামিং ভাষাকে ক্লাসিক্যাল মিউজিক (classical music) এর সাথে তুলনা করতে পারি। Classical music জানলে যেমন অন্যান্য গান সহজেই আয়ত্ত করা যায়, তেমনি সি জানা থাকলে যে কোনো প্রোগ্রামিং ভাষা সহজেই শেখা যায়।
সি শিখা হয়ে গেলে তারপর পাইথন, সি++, জাভা, পিএইচপি, সি-সার্প শেখা যেতে পারে।

যে কোন সি প্রোগ্রামিং(পরিগণন) [ Important C programming Example ] এর উপর কোন প্রোগ্রাম লিখলে তার লিঙ্ক এখানে থাকবে। আমরা যখন সি প্রোগ্রামিং করি তখন কিছু প্রয়োজনীয় প্রোগ্রাম সর্বাদা প্রয়োজন হয়, তাই কিছু প্রয়োজনীয় সি প্রোগ্রাম এর সংকলন এখানে থাকবে।

১) সি প্রোগ্রামিং- মৌলিক সংখ্যা (C Programming – Prime Number)

২) সি প্রোগ্রাম দিয়ে সিরিজ সমাধান

৩) সি প্রোগ্রাম দিয়ে বেজ কনভার্শন

C Programming – Prime Number

C Programming – Prime Number

সি প্রোগ্রামিংঃ মৌলিক সংখ্যা

মৌলিক সংখ্যা যাচাই করার একটি প্রোগ্রাম নিচের কোড (code) এ দেখানো হয়েছে।

যে সকল স্বাভাবিক সংখ্যাকে ১ এবং সে সংখ্যা ছাড়া অন্য কোন সংখ্যা দ্বারা ভাগ যায় না, তাকে মৌলিক সংখ্যা বলে। ১ থেকে ১০০ এর মাঝের ২৫টি মৌলিক সংখ্যা গুলো হচ্ছে ২, ৩, ৫, ৭, ১১, ১৩, ১৭, ১৯, ২৩, ২৯, ৩১, ৩৭, ৪১, ৪৩, ৪৭, ৫৩, ৫৯, ৬১, ৬৭, ৭১, ৭৩, ৭৯, ৮৩, ৮৯, ৯৭।

কোন একটি সংখ্যা মূল ফাংশনে পূর্ণ সংখ্যার চলক n এর মাঝে ইনপুট(input) নেয়া হয়েছে। তারপর ঐ n চলক দিয়ে prime(n); ফাংশন কল(call) করা হয়েছে। prime(n); ফাংশনে ঐ সংখ্যাটিকে 2 থেকে শুরু করে ঐ সংখ্যার চেয়ে এক কম সকল সংখ্যা দিয়ে ভাগ করা হয়েছে। এর মাঝের যে কোন একটি সংখ্যা দিয়ে ভাগ করলে যদি ভাগশেষ শূন্য হয় তাহলে সংখ্যাটি মৌলিক সংখ্যা নয়। আর যদি একবারও ভাগ না যায় তাহলে i এর মান বেড়ে ঐ সংখ্যার সমান হবে এবং ফলাফলে সংখ্যাটি মৌলিক সংখ্যা দেখাবে।

#include<stdio.h>

int main()
{
   int n;
   printf("Enter a number to check prime or not :");
   scanf("%d",&n);
   prime(n);

   return 0;
}

int prime(int a)
{
    int i;
    for ( i = 2 ; i <= a - 1 ; i++ )
    {
    if ( a%i == 0 )
    {
        printf("%d is not prime.n", a);
        break;
    }
    }
    if ( i == a )
      printf("%d is prime.n", a);
}

OutPut:
Enter a number to check prime or not : 8
8 is not prime.

কোন রেঞ্জ এর মাঝের মৌলিক সংখ্যা গুলো নির্নয় করার প্রোগ্রামঃ

#include
#include <stdio.h>
int main()
{
    int num1, num2, i, j, flag;
    printf("Enter Two Numbers: ");
    scanf("%d %d", &num1, &num2);
    printf("Prime numbers between %d and %d are: ", num1, num2);
    for(i=num1+1; i<num2; ++i)
    {
        flag=0;
        for(j=2; j<=i/2; ++j)
        {
            if(i%j==0)
            {
            flag=1;
            break;
            }
        }
        if(flag==0)
        printf("%d ",i);
    }
    return 0;
}

OutPut:
Enter two numbers: 1 10
Prime numbers between 1 and 10 are: 2 3 5 7

তড়িৎ বর্তনী সমাধান (পর্ব-০২)

তড়িৎ বর্তনী সমাধান (পর্ব-০২)

Short Circuit & Open Circuit এর জন্য তড়িৎ বর্তনী সমাধান করাঃ

Short Circuit:  সর্ট সার্কিট হচ্ছে খুবই নিম্ন রোধ বিশিষ্ট ( রোধ প্রায় শুন্যের কাছাকাছি ) বৈদ্যুতিক তার। কোন তড়িৎ বর্তনীর কোন অংশের দুই প্রান্তে সর্ট সার্কিট থাকলে ঐ দুই প্রান্তের মধ্যবর্তী বিভব পার্থক্য শূন্য হবে।

Open Circuit: ওপেন সার্কিট হচ্ছে কোন তড়িৎ বর্তনীর দুইটি অসংযুক্ত প্রান্ত। ওপেন সার্কিটে বিদ্যুৎ প্রবাহ শূন্য।

Short Circuit & Open Circuit এর জন্য তড়িৎ বর্তনী সমাধান করা
Short Circuit এর জন্য তড়িৎ বর্তনী সমাধান করা

উপরের সার্কিট টি লক্ষ করো, আমাদের R1 এবং R2 এর মধ্য দিয়ে কি পরিমাণ বিদ্যুৎ কোন দিকে প্রবাহিত হচ্ছে তা বের করতে হবে।

যেহেতু R2 এর দুই প্রান্তে একটি সর্ট সার্কিট যুক্ত তাই বিদ্যুৎ R2 এর মধ্য দিয়ে বিদ্যুৎ প্রবাহিত না হয়ে সর্ট সার্কিট এর মধ্য দিয়ে প্রবাহিত হবে। অর্থাৎ  R2 এর মধ্য দিয়ে প্রবাহিত বিদ্যুৎ শূন্য। তাই আমরা সার্কিট টিকে নিম্ন রূপে আঁকতে পারি।

Short Circuit & Open Circuit এর জন্য তড়িৎ বর্তনী সমাধান করা
Short Circuit এর জন্য তড়িৎ বর্তনী সমাধান করা

এখন সার্কিট কার্শফের ভোল্টেজ সূত্র প্রয়োগ করে সমাধান করতে পারি, এই জন্য নিচের চিত্রের মত একটি লুপ নেই।

Short Circuit এর জন্য তড়িৎ বর্তনী সমাধান করা
Short Circuit এর জন্য তড়িৎ বর্তনী সমাধান করা

[ লুপ এর দিক যদি কোন রোধ এর মধ্য দিয়ে বিদ্যুৎ প্রবাহের দিকের সাথে মিলে যায় তাহলে ঐ বিদ্যুৎ প্রবাহ রোধ ধনাত্মক হবে অন্যথায় ঋণাত্মক হবে। আর তড়িৎ কোষের ক্ষেত্রে লুপের দিক তড়িৎ কোষের এর যেই প্রান্ত দিয়ে প্রবেশ করবে ঐ প্রান্তের চিহ্ন তড়িৎ কোষের মানের পূর্বে বসবে। ]

এই লুপে কার্শফের ভোল্টেজ সূত্র প্রয়োগ করে পাই।
I
 R1 – E = 0
বা, 5000 I – 18 = 0
বা, I = 0.0036 Amp

সুতরাং R1 এর মধ্য দিয়ে প্রবাহিত বিদ্যুৎ 0.0036 Amp এবং R2 এর মধ্য দিয়ে প্রবাহিত বিদ্যুৎ শূন্য।

তড়িৎ বর্তনী সমাধান (পর্ব-০৩) এ আমরা দেখবো Mesh Analysis এর মাধ্যমে তড়িৎ বর্তনী কিভাবে আরো সহজে সমাধান করা যায়।

তড়িৎ বর্তনী সমাধান (পর্ব-০৪) এ আমরা দেখবো Nodal Analysis এর মাধ্যমে তড়িৎ বর্তনী কিভাবে আরো সহজে সমাধান করা যায়।

তড়িৎ বর্তনী সমাধান (পর্ব-০২)

তড়িৎ বর্তনী সমাধান (পর্ব-০২)

তড়িৎ বর্তনী সমাধান (পর্ব-০১)

তড়িৎ বর্তনী সমাধান (পর্ব-০১)

আজ আমরা ইলেকট্রিক্যাল বর্তনী(সার্কিট) সমাধান করার জন্য Kirchhoff’s Current law এবং Kirchhoff’s Voltage law ব্যাবহার করবো।
Kirchhoff’s Current law: তড়িৎ বর্তনীর কোন সংযোগ বিন্দুতে তড়িৎ প্রবাহ গুলোর মিলিত প্রবাহ শূন্য হবে।
Kirchhoff’s Voltage law: কোন বদ্ধ তড়িৎ বর্তনীর প্রতিটি রোধ এবং তাদের আনুষঙ্গিক প্রবাহ গুলোর গুণফলের সমষ্টি ঐ বদ্ধ তড়িৎ বর্তনীর মোট তড়িৎচালক শক্তির সমান হবে।

তড়িৎ বর্তনী সমাধান (পর্ব-০১)
তড়িৎ বর্তনী সমাধান (পর্ব-০১)

উপরের সার্কিট টি লক্ষ করো, আমাদের R1 এবং R2 এর মধ্য দিয়ে কি পরিমাণ বিদ্যুৎ কোন দিকে প্রবাহিত হচ্ছে তা বের করতে হবে।

যেহেতু এই বর্তনী(সার্কিট) এ আমাদের অজানা রাশি দুইটি R1 এবং R2 তাই আমাদের কমপক্ষে দুইটি সমীকরণ দরকার।
আমরা এই বর্তনী(সার্কিট) এর মাঝে দুইটি লুপ এ Kirchhoff’s Voltage law ব্যবহার করলেই দুইটি সমীকরণ পাবো।

আগেই বলে নেই, কোন বর্তনী(সার্কিট) এ বিদ্যুৎ(কারেন্ট) এর দিক পুরো বর্তনী(সার্কিট) সমাধান করার আগে নির্নয় করা সর্বদা সম্ভব হয় না, তাই আমরা যেকোন একদিকে বিদ্যুৎ(কারেন্ট) এর দিক দিয়ে দেবো, বর্তনী(সার্কিট) সমাধান করার পর যদি ঐ বিদ্যুৎ(কারেন্ট) এর মান ধনাত্মক হয় তাহলে আমরা প্রথমে বিদ্যুৎ(কারেন্ট)এর যেই দিক ধরে নিয়েছিলাম তা ঠিক আছে, আর বিদ্যুৎ(কারেন্ট)মান যদি ঋণাত্মক হয় তাহলে বিদ্যুৎ(কারেন্ট) এর মান ঠিক থাকবে কিন্তু বিদ্যুৎ(কারেন্ট)এর দিক আমরা প্রথমে যেই দিক ধরেছিলাম তার বিপরীত দিকে হবে।

তো আমরা বিদ্যুৎ(কারেন্ট) এর একটা দিক ধরে নিলাম, নিচের চিত্রে দেখানো হয়েছে।

তড়িৎ বর্তনী সমাধান (পর্ব-০১)
তড়িৎ বর্তনী সমাধান (পর্ব-০১)

এখন দুইটি লুপ নির্ধারন করতে হবে। ঘড়ির কাটার দিকে বা ঘড়ির কাটার বিপরীত দিকে লুপ নেয়া যাবে। নিচের চিত্রে আমরা লুপ নির্ধারণ করেছি।

তড়িৎ বর্তনী সমাধান (পর্ব-০১)
তড়িৎ বর্তনী সমাধান (পর্ব-০১)

 

এখন প্রথম লুপে কার্শফের ভোল্টেজ সূত্র প্রয়োগ করে পাই।
I2R2 – V2 – I1R1 = 0
বা, 100I2 – 10 – 100I1 = 0 —————————-(i)

[ লুপ এর দিক যদি কোন রোধ এর মধ্য দিয়ে বিদ্যুৎ প্রবাহের দিকের সাথে মিলে যায় তাহলে ঐ বিদ্যুৎ প্রবাহ রোধ ধনাত্মক হবে অন্যথায় ঋণাত্মক হবে। আর তড়িৎ কোষের ক্ষেত্রে লুপের দিক তড়িৎ কোষের এর যেই প্রান্ত দিয়ে প্রবেশ করবে ঐ প্রান্তের চিহ্ন তড়িৎ কোষের মানের পূর্বে বসবে। ]

দ্বিতীয় লুপে কার্শফের ভোল্টেজ সূত্র প্রয়োগ করে পাই।
I1R1 – V1 = 0
বা, 100I1 – 10 = 0
বা, 100I1 = 0.1 Amp
(i) নং সমীকরণে I1 = 0.1 বসিয়ে পাই,
100I2 – 10 – 100 × 0.1 = 0
বা, 100I2 = 0.2 Amp
Kirchhoff’s Current law অনুযায়ী
I = I1 + I2 = 0.1 + 0.2 = 0.3 Amp

তড়িৎ বর্তনী সমাধান (পর্ব-০২) এ আমরা দেখবো Short Circuit & Open Circuit এর জন্য তড়িৎ বর্তনী কিভাবে সমাধান করতে হয়।

তড়িৎ বর্তনী সমাধান (পর্ব-০৩) এ আমরা দেখবো Mesh Analysis এর মাধ্যমে তড়িৎ বর্তনী কিভাবে আরো সহজে সমাধান করা যায়।

তড়িৎ বর্তনী সমাধান (পর্ব-০৪) এ আমরা দেখবো Nodal Analysis এর মাধ্যমে তড়িৎ বর্তনী কিভাবে আরো সহজে সমাধান করা যায়।

লজিক গেট (প্রথম পাঠ)

লজিক গেট (প্রথম পাঠ)
Basic Logic gate:

প্রথমেই আমরা আজ এন্ড(AND), অর(OR) এবং নট(NOT) লজিক গেট নিয়ে আলোচলা করবো। তো চলো দেখি এন্ড গেট।

l1

এখানে x1 এবং x2 দুইটি সুইচ। সুইচ দুইটি একত্রে বন্ধ থাকলে কেবল লাইট জ্বলবে। দুইটি লাইটের যে কোনো একটি খোলা থাকলে লাইট জ্বলবে না। নিচে এন্ড(AND) গেটের সার্কিট রিপেজেন্টেশন দেয়া হলো।

and

মনে করি, দুইটি ভেরিয়েবল x, y যাদের মাঝে এন্ড লজিক এপ্লাই করলে আমরা নিচের Truth Table (সত্য সারণী) লক্ষ্য পাবো। অর্থাৎ x এবং y উভয়ের মান 1 হলে আউটপুট-এ 1 পাবো, অন্যথায় ফলাফল শূন্য হবে।

x y x.y
0 0 0
0 1 0
1 0 0
1 1 1

এখানে x1 এবং x2 দুইটি সুইচ। দুইটি সুইচের যেকোনো একটি বন্ধ থাকলে লাইট জ্বলবে। দুইটি লাইট খোলা থাকলে লাইট জ্বলবে না। নিচে এন্ড(OR) গেটের সার্কিট রিপেজেন্টেশন দেয়া হলো।

l3

মনে করি, দুইটি ভেরিয়েবল x, y যাদের মাঝে অর লজিক এপ্লাই করলে আমরা নিচের Truth Table (সত্য সারণী) লক্ষ্য পাবো। অর্থাৎ x এবং y যেকোনো একটির মান 1 হলে আউটপুট-এ 1 পাবো।

or

x y x+y
0 0 0
0 1 1
1 0 1
1 1 1