সি প্রোগ্রামিং শিখুন টেকজোনবিডি ব্লগে

19
924
সি প্রোগ্রামিং শিখুন টেকজোনবিডি ব্লগে

টেকজোন বাংলাদেশ

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

Latest posts by টেকজোন বাংলাদেশ (see all)

কেমন আছেন সবাই? সবাই dev c++ ডাউনলোড করে ইন্সটল করেন। আগেই বলে রাখি আজকের টিউটোরিয়াল টা boreing হবে। যাই হোক। তবে যারা নতুন সবাই প্রস্তুত হয়ে যান আপনাকে এখন প্রোগ্রাম নামক জাদুর, জাদুর লাঠি কম্পাইলার আপনার হাতে দেওয়া হবে। এখন আমার হ্যারি পটার এর গল্প কোথা মনে পরতিছে। যখন হ্যারি পটার তার জাদুর লাঠি কিনতে গিয়ে ছিল। যায় হোক আমি ওই দিকে না যায় এই সব নিয়ে আপনাদের সাথে গল্প হবে আর একদিন।
আপনারা সবাই আপনাদের জাদুর লাঠি মানে dev c++ কে ওপেন করুনঃ

উপরের মত উইন্ডো ওপেন হবে। ১,২,৩ পর্যায় অনুসরণ করুন অথবা clrt+N চাপুন।
আপনি একটা লেখার জায়গা পাবেন। ওখানে লিখুন
#include

Unlimited Web Hosting
Unlimited Web Hosting
Unlimited Web Hosting
Unlimited Web Hosting

<stdio.h>

 

int main()
{
printf(“This is my first program”);
return 0;
}

এখন বলি আমারা কি করলাম। main() এটাকে মেইন ফাংশন বলা হয়। যদি আমি এটাকে প্রোগ্রাম এর heart বলি। কেন বলি? বলছি
প্রতিটা সি প্রোগ্রাম main() ফাংশন থাকে। প্রোগ্রাম যখন রান করাবেন তখন আপনার কম্পাইলার মেইন ফাংশন কে খুজে নিবে।
মানে বেপার টা এ রকম।
ও বেপার বলার আগে আমি আমার ছোট বেলার একটা কথা বলতে চাই। আমি আবার গল্প বলতে অনেক ভালবাসি ।
আমার এক টিচার ছিল তার নাম ছিল লোকমান। আমরা তাকে ডাকতাম টেকো লোকমান কারন তার মাথাই বিশাল বড় একটা টাক ছিল। এমন কোন স্টুডেন্ট ছিল না যে ঐ টিচার রে পছন্দ করত। তাদের মধ্যে আমি টোপ এ ছিলাম। আমার হাতের লিখা খারাপ ছিল। একটু উল্টা পাল্টা লিখলে স্যার সব কেটে দিত। খালি ভুল খুজত লেখার মাঝে খুব ই disgusting একটা বেপার ছিল। আমার এক বন্ধু বলত যদি কোন দিন টেকো লোকমান ওদের বাসার নিচ দিয়ে যায় তবে তার টাক ফাটাই দিবে ঃপি ঃপি।
এখন আমি আপনাদের টেকো লোকমান এর অধিনে সবকিছু করাবো।
ধরি,
টেকো লোকমান = কম্পাইলার
আপনি একটা প্রোগ্রাম লিখলেন রান করালেন(মানে আপনি খাতাই একটা লেটার লিখে টেকো লোকমান এর কাছে দিলেন) তখন টেকো লোকমান তার কাজ শুরু করে দিল। সে আপনার প্রোগ্রাম কে জিজ্ঞাস করবে তোমার কি মেইন ফাংশন আছে?না থাকলে কিন্তু error দেখাই দিব। তখন আপনার প্রোগ্রাম int main() এটা দেখায় দিবে। তখন কম্পাইলার বলবে ঠিক আছে আমি এখন তোমার মেইন এর ভিতরে কি আছে চেক করবো।ভিতরে ঢুকেই কম্পাইলার এর দেখা হয়ে printf এর সাথে। কম্পাইলার কিন্তু printf কে চিনে না। তখন কম্পাইলার printf কে জিজ্ঞাস করবে who are you? জলদি বল তানাহলে error দেখাই দিব। তখন printf বলবে আমারে জিগাও আমি কে? যাও উপরে গিয়ে দেখ একটা ফাইল আছে যার নাম stdio.h ঐ ফাইল রে জিগাও আমি কে। তখন কম্পাইলার দেখবে সত্যি তো একটা ফাইল include করা আছে। আপনার include মানে জানেন তো? dictionary দেখেন না জানলে । তখন কম্পাইলার ওখান থেকে printf এর পরিচয়(definition) নিয়ে আসবে। এসে printf কে বলবে boss আমি সরি আপনাকে চিনতে পারিনি।তারপর কম্পাইলার আবার বলবে boss কোন কাজ করে দিতে হবে আপনার? তখন printf বলবে আমার (” “) ভিতরে যা লিখা আছে ওইগুলা সবাইরে দেখাই দাও। তখন out put screen এ লিখা আসবে This is my first program। ওখান থেকে টেকো লোকমান আসবে return 0; এর কাছে।
মানে আপনার প্রোগ্রাম টেকো লোকমান রে বলছে লোকমান স্কুল তো ছুটি হইয়া গেছে।” যাও বারিত জাওগা” মানে আপনার প্রোগ্রাম end হয়ে গেল। কিন্তু return 0; টা কেন । 0 টা কেন? 0 দিয়ে কি হবে? মনে আছে main ফাংশন রে? কি লিখছিলেন?
int main(). main এর আগে একটা int আছে মনে রাখুন। এর উত্তর দিব আমি যেদিন আপনাদের function পরাবো। আজ এইতুকই। আপনাদের কাজ হইল নিজ নিজ নাম লিখে পাঠাবেন। মানে একটা প্রোগ্রাম লিখবেন যে প্রোগ্রাম টা আপনার নাম ঠিকানা প্রিন্ট করাবে।
আমি জানি হয়ত আপনারা এইরকম করে লিখবেন
#include

<stdio.h>
int main()
{
printf(“eta amar nam”);
printf(” eta amar thikana”);
return 0;
}
তাতে output আসবে এমন
eta amar nameta amar thikana
দেখুন তো দেখতে কি ভাল লাগছে জিনিস টা?
আপনি বুদ্ধি করে এই কাজ টা করলেন
#include
int main()
{
printf(“eta amar nam “);
printf(” eta amar thikana”);

return 0;
}
মানে ১ম প্রিন্ট করার পর ইচ্ছা করে স্পেস রেখে দিলেন তাতে out put আসবে এমন
eta amar nam eta amar thikana
তাও দেখতে ভাল লাগছে না। যদি eta amar thikana নিচের লাইনে চলে আসত তাহলে অনেক মজা হত
তখন আপনি google এ খুজতে শুরু করলেন। দেখেলেন \n লিখে দিলে ওখান থেকে একটা নতুন লাইন সৃষ্টি হয় মানে বেপার টা এমন
#include

<stdio.h>
int main()
{
printf(“eta amar nam\n”);
printf(“eta amar thikana”);

return 0;
}
তাতে output আসবে এমন
eta amar nam
eta amar thikana
wow মজা লাগছে দেখতে। আপনাদের ও হইত দেখতে মজা লাগবে। কিন্তু হায় দেখতে পারবেন আউট পুট দেখার আগেই প্রোগ্রাম ভাগে। মানে out put screen চলে যায়। আপনাকে দেখতে দিবে না আউট পুট। মানে বেপার টা এমন যে আপনি লোকমান রে বলছিলেন আমার (” “) মাঝে যা আছে সবাই কে দেখাও। কিন্তু হারামি লোকমান কি করলো জানেন? খাতা টা নিয়ে মানুষের চোখের সামনের ১sec ও ধরে রাখে না। খাতা টা just চোখের সামনে ধরে সরাই নেই। uff খুব পাজি মানুষ । তখন আপনি বললেন আচ্ছা দেখচ্ছি মজা। আপনি লিখে দিলেন

#include

<stdio.h>
int main()
{
printf(“eta amar nam\n”);
printf(“eta amar thikana”);
getch();
return 0;
}
আরে getch() কি? হাহাহা।।এইতাই তো লোকমান রে control করার মন্ত্র। আপনি যখন ই বলবেন লোকমান getch(). লোকমান আর নড়াচড়া করবে না। মানে খাতা টা লোকমান আপনার সামনে ধরে রেখে দিছে। সরাই নিচ্ছে না। আপনি একটু পর বললেন আচ্ছা সারাই ফেল খাতা। ও সরাই নিল। wow… আপনি খুব ভাল ভাবে লোকমান রে control করতে পারছেন। তবে মনে রাখবেন লোকমান কিন্তু আপনার অপমান ভুলে যাবে না। একদিন ঠিক এ আপনাকে বিপদে ফেলবে।। তাই সব কিছু ঠিকঠাক মত করবেন।
আচ্ছা আজ এখানেই শেষ…।

নাআআআআআআআ
আর আছে getch() কি বলি নি তো।।
getch(); আপানার output screen কে ধরে রাখে, ততক্ষণ পর্যন্ত ধরে রাখবে যতক্ষণ পর্যন্ত না আপনি keyboard এ কোন কিছু press করছেন। আসলে ভুল শিখাইলাম। আমি জানি না getch() কি কাজ করে। পরে যেদিন আমি আপনাদের string শেখাব সেদিন getch() এর মেইন মানে বুঝাই দিব। আপাতত এইটুক মাথাই রাখেন।। আপনি যদি আপানর আউট পুট স্ক্রিন কে ধরে রাখতে চান তবে আপনাকে getch() ব্যবহার করতে হবে।আর getch() এর জন্য আপনাকে নতুন একটি header file include করতে হবে তার নাম
conio.h । stdio.h,conio.h এইগুলাকে header ফাইল বলে। তাহলে ফাইনাল প্রোগ্রাম কি দাঁড়ালো?
#include<stdio.h>
#include<conio.h>
int main()
{
printf(“eta amar nam\n”);
printf(“eta amar thikana”);
getch();
return 0;
}
লিখতে লিখতে tried হয়ে গেছি। (কপি কোড করতে পারবেন না নিজে কোড লিখেন )
… আচ্ছা আপনাদের বাড়ির কাজ দেই
প্পোগ্রাম লিখেবন আউট পুট এইরকম ভাবে প্রিন্ট করাবেন
1.
eta amar nam
eta amar thikana

2.
eta
amar
nam
eta
ama
thikana

3.
eta amar
nam
eta amar
thikana
(বানান ভুল থাকলে ক্ষমা করবেন)

এটি আমাদের ব্লগে প্রকামিত প্রতম সি প্রোগ্রামিং পোষ্ট এরকম নিয়মিত পোষ্ট করা হয় তাই আপনারা চোখ রাখুন টেকজোনবিডি ব্লগে

টিউনারপেজের নতুন টিউন আপনাকে ইমেইল করব?
Unlimited Web Hosting
Unlimited Web Hosting
Unlimited Web Hosting
Unlimited Web Hosting

19 মন্তব্য

  1. আজ ভাগ্য অনেক খারাপ।অনেক কষ্ট করে লিখেছিলাম। কিন্তু পিসি রিস্টার্ট নিল । কি আর করা এবার সংক্ষেপে
    লিখি। আপনার if(a=b=c) এই এখানে সমস্যা আছে। আপনার ব্যাবহার করতে হবে if(a==b&&b==c). আর character ও string এর সমস্যা আছে। আপনি লিখেছেন ch is a character but পরে আপনি চেক করছেন ch==’ab’ কিনা। character মানে only one letter .আপনি একাধিক letter ব্যাবহার করতে পারবেন না। আপনার অন্য কোন সমস্যা থাকলে গ্রুপ এ আসুন। ওখানে পোস্ট দিবেন।http://www.facebook.com/groups/414805128561248/

  2. #include
    #include
    int main()
    {
    char ch;
    double a,b,c,s;

    printf(“we need the area of “);
    ch=getchar();

    printf(“the values are \n”);
    scanf_s(“%lf%lf%lf”,&a,&b,&c);

    s=(a+b+c)/2;

    if(a=b=c)
    {
    if(ch==’C’) printf(“area of circle is:%lf\n”, 3.1416*a*b);
    else if(ch==’T’) printf(“area of triangle is:%lf\n”,(1.7320*a*b)/2);
    else if(ch==’R’) printf(“these values will not make a rectangle\n”);
    }

    else
    {
    if(ch==’T’) printf(“area of triangle is :%lf\n”, sqrt(s*(s-a)*(s-b)*(s-c)));
    else if(ch==’C’) printf(“this value will not make circle\n”);
    else if(ch==’R’)
    {
    if(ch==’ab’) printf(“rectangle with a and b is:%lf\n”, a*b);
    else if(ch==’bc’) printf(“rectangle with b and c is:%lf\n”, b*c);
    else if(ch==’ac’) printf(“rectangle with a and c is:%d\n”, a*c);
    }
    }
    return 0;
    }
    এই প্রোগ্রাম এর else part টা কাজ করছেনা কেন ? error list এ কোন error দেখাচ্ছেনা . কিন্তু প্রোগ্রাম run করার সময় else ঠিকঠাক কাজ করছেনা. আমি microsoft visual studio 2008 ব্যবহার করি .

    with respect

  3. I am too much weak in C programming . At present ,I am in a great trouble with C programming. I want to print different type of patterns with nested for loops,but I am unable to understand the condition part of the nested for loop..I am in crying need of help…may I have help please??

    with respect

    • নিশাত আমি বুঝতে পারতেছি না আপনার সমস্যা টা কি। তবে আমি আপনাকে for loop সম্পর্কে ধারণা পরিষ্কার করার চেষ্টা করছি.
      for loop এ তিনটি পার্ট থাকে ১. initialization 2. condition 3.increment/decrement
      মানে for loop এমন হয় for(initialization;condition;increment/decrement)
      একটি for loop নেই
      for(i=0;i<10;i++)
      এখানে i=0 কে বলে initialization. i<10 হল condition, i++ হল increment .
      লক্ষ্য করুন। সব কাজের একাটা শুরু থাকে। আমাদের for লুপ কেও তাই বলে দিতে হয় ফর লুপ তুমি কোথা থেকে কাজ শুরু করবা। তাই আপনি বলে দিয়েছেন যে ফর লুপ তুমি i=0 নিয়ে কাজ শুরু কর। তারপর ফর লুপ আপনাকে প্রশ্ন করছে ঠিক আছে আমি আপনার কাজ i=0 থেকেই করব। কিন্তু কাজ টা কতক্ষণ করব? তখন আপনি বলে দিলেন যতক্ষণ তোমার i এর মান ১০ থেকে ছোট থাকবে তুমি কাজ করবা… তখন for লুপ অবাক হয়ে যাবে মান ১০ পর্যন্ত উঠতে তো i কে বারতে হবে। তো আমার i কেন বৃদ্ধি পাবে? তখন আপনি বলে দিলেন i++. মানে প্রতিবার তুমি কাজ করে এসে i এর মান ১ বৃদ্ধি করবে।
      তখন for লুপ এভাবে কাজ করবেঃ
      ১. i=0 নিয়ে কাজ শুরু করবে।
      ২. condition check করবে এবং ফর যে কাজ টা দিয়েছেন সেই কাজ টা করবে।
      ৩. i++ করবে। অর্থাৎ i এরমান ১ বারাবে…
      লক্ষ্য করুন ১ নাম্বার ধাপ টি শুধু মাত্র ১বার ই ব্যবহার হয়।
      আবার বলি
      ফর লুপ i=0 নিয়ে কাজ শুরু করল
      তারপর condition check করল।
      লুপের ভিতরে যে কাজ টা ছিল করল।
      i এর মান এক বৃধি করলো।
      আবার condition check করল।
      আবার লুপের ভিতরে যে কাজ টা ছিল করল।
      i এর মান এক বৃধি করলো।

      আবার condition check করল।
      আবার লুপের ভিতরে যে কাজ টা ছিল করল।
      i এর মান এক বৃধি করলো।

      আবার condition check করল।
      আবার লুপের ভিতরে যে কাজ টা ছিল করল।
      i এর মান এক বৃধি করলো।

      আবার condition check করল।
      আবার লুপের ভিতরে যে কাজ টা ছিল করল।
      i এর মান এক বৃধি করলো।

      আবার condition check করল।
      আবার লুপের ভিতরে যে কাজ টা ছিল করল।
      i এর মান এক বৃধি করলো।

      আবার condition check করল।
      আবার লুপের ভিতরে যে কাজ টা ছিল করল।
      i এর মান এক বৃধি করলো।

      আবার condition check করল।
      আবার লুপের ভিতরে যে কাজ টা ছিল করল।
      i এর মান এক বৃধি করলো।

      আবার condition check করল।
      আবার লুপের ভিতরে যে কাজ টা ছিল করল।
      i এর মান এক বৃধি করলো।

      আবার condition check করল।
      আবার লুপের ভিতরে যে কাজ টা ছিল করল।
      i এর মান এক বৃধি করলো।

      আবার condition check করল।
      আবার লুপের ভিতরে যে কাজ টা ছিল করল।
      i এর মান এক বৃধি করলো।

      আবার condition check করল।
      আবার লুপের ভিতরে যে কাজ টা ছিল করল।
      i এর মান এক বৃধি করলো।
      opps………… আমি লুপ এর মধ্যে পরে গিয়ে ছিলাম।
      এই হলো for loop . এখন বুঝতে হবে nested for loop কি?
      এটা আসলে ফর লুপ এর ভিতরে এক বা একাধিক লুপ.
      একটা nested for loop নেই.
      for(i=0;i<5;i++)
      {
      for(j=0;j<5;j++)
      {
      printf("%d ",j);
      }
      printf("\n");
      }
      আমার দুইটি ফর লুপ আছে. একটা i এর লুপ। আর একটা j এর লুপ। j এর লুপ টা i এর লুপ এর ভিতরে আছে।
      এখন ফর লুপ কাজ শুরু করবে। প্রথমে শুরু হবে i লুপ এর কাজ।
      i=0 থেকে কাজ শুরু হবে। তারপর কন্ডিশন দেখবে i<5 কিনা i এর মান 0 তাই অবশ্যয় i<5 মানে কন্ডিশন satisfy হল এখন i loop এর ভিতরে কাজ শুরু হবে।
      i লুপ এর ভিতরে ঢুকেই পাওয়া যাবে আর একটা লুপ তার নাম j এর লুপ।একটা কথা মাথায় খুব ভাল ভাবে ঢুকিয়ে নিন j loop কিন্তু i কে চিনে না। j একটা individual for loop.
      আচ্ছা এখন j loop কাজ শুরু করবে। j=0 থেকে কাজ শুরু করবে।তারপর কন্ডিশন j<5 কিনা। হুম আমরা দেখতে পাচ্ছি j<5 ok আমাদের কন্ডিশন satisfy হয়ে গেল। এখন j লুপ এর ভিতরের কাজ শুরু হবে। j লুপ এর ভিতরে কে আছে? printf("%d ",j); এইটা তো বুঝতেই পারছেন j এর মান দেখায় দিবে এবং একটা স্পেস নিয়ে রাখবে। তারপর কি? তার পর আপনারা জানি কোন for loop এর ভিতরের কাজ হয়ে গেলে সে increment or decrement করতে যাবে। আমাদের আছে j++ তাই j এর মান ১ বৃদ্ধি পাবে।তার মানে j=1 হয়ে গেল। তারপর কন্ডিশন j<5 এখনও এখনও,তাহলে j লুপ এর ভিতরের কাজ আবার হোক। printf("%d ",j); এবার প্রিন্ট করাল ১ এবং একটা স্পেস। তারপর আবার increment or decrement।
      j++ এর জন্য j এর মান ১ বৃদ্ধি পাবে।তার মানে j=২ হয়ে গেল। তারপর কন্ডিশন j<5 এখনও ঠিক আছে,তাহলে j লুপ এর ভিতরের কাজ আবার হোক। printf("%d ",j); এবার প্রিন্ট করাল ২ এবং একটা স্পেস।
      তারপর আবার increment or decrement।
      j++ এর জন্য j এর মান ১ বৃদ্ধি পাবে।তার মানে j=৩ হয়ে গেল। তারপর কন্ডিশন j<5 এখনও ঠিক আছে,তাহলে j লুপ এর ভিতরের কাজ আবার হোক। printf("%d ",j); এবার প্রিন্ট করাল ৩ এবং একটা স্পেস।
      তারপর আবার increment or decrement।
      j++ এর জন্য j এর মান ১ বৃদ্ধি পাবে।তার মানে j=৪ হয়ে গেল। তারপর কন্ডিশন j<5 এখনও ঠিক আছে,তাহলে j লুপ এর ভিতরের কাজ আবার হোক। printf("%d ",j); এবার প্রিন্ট করাল ৪ এবং একটা স্পেস।
      তারপর আবার increment or decrement।
      j++ এর জন্য j এর মান ১ বৃদ্ধি পাবে।তার মানে j=৫ হয়ে গেল। তারপর কন্ডিশন j<5 এখনও ঠিক নেই,তাহলে j লুপ এর ভিতরের কাজ এবার হল না।
      তারপর কি ছিল? printf("\n");তাহলে ওখান থেকে একটা নিউ লাইন সৃষ্টি হয়ে গেল।
      তারপর ? ? ? এখন ই আসল মজা। আমরা কিন্তু এখন ও i এর ফর লুপ এর ভিতরে আছি। তাই আমরা জানি একটি ফর লুপ কাজ এর শেষে increment /decrement করে। আমাদের ছিল i++ তাই i এর মান বৃদ্ধি পেয়ে ১ হল। তারপর কন্ডিশন i<5 ঠিক আছে। তাহলে i লুপ এর ভিতরের কাজ আবার হোক।i loop এর ভিতরে ছিল j এর লুপ। তাই j loop এর কাজ আবার নতুন করে শুরু হবে। j লুপ এর কাজ শেষ হলে আবার printf("\n"); একটা নতুন লাইন নিবে। এভাবে i এর মান যতক্ষণ পর্যন্ত ৫ থেকে ছোট থাকবে ততক্ষণ কাজ চলতে থাকবে এভাবে আমরা শেষ আউট পুট পাব এমন
      0 1 2 3 4
      0 1 2 3 4
      0 1 2 3 4
      0 1 2 3 4
      0 1 2 3 4
      আশা করছি nested ফর লুপ বুঝতে পেরেছেন। আরও জানতে নিয়মিত visit করুন http://www.techzonebd.com join করুন http://www.facebook.com/groups/414805128561248/ । ধন্যবাদ আপনাকে… :)

      • Thanks for your kind reply.. now ,,the problem with which I am troubled , I want to form different type of shapes like “triangle” ,”pyramid” , “diamond” etc.how can I do this with a nested for loop?

        with respect

    • অভি আপনি আগে কোড লিখে সেভ করুন। তারপর Clrt +F9 চাপুন . তাহলে আপনার প্রোগ্রাম কম্পাইল হবে এবং দেখেবে কোন erorr আছে কিনা প্রোগ্রাম এ. যদি কোন error না দেখায় তবে এবার প্রেস করুন Clrt +F10 . তাহলে আপনার সামনে একটি সুন্দর কালো window হাজির হবে. আপনি যা দেখাতে চেয়েছেন ওখানে তে দেখানো হবে.

  4. গুরুজি, আজকে থেকে আমি আপনার স্টুডেন , আমার অনেক দিনের শখ সি প্রগ্রামিং শিখমু , আজকে থেইকা শিখা শুরু ব-)

  5. জাতীয় জীবনে আপনার মত প্রশিক্ষক এর গুরুত্ব অপরিসীম। দয়া করে শেষ অবধি (যদিও এর শেষ নাই) লিখবেন যাতে আমরা কিছু একটা করে খেতে পারি। ধন্যবাদ সুন্দর টিউটোরিয়াল লেখার জন্য।

একটি উত্তর ত্যাগ

Please enter your comment!
Please enter your name here

ten + twelve =