সি প্রোগ্রামিং – রিকার্শন ফাংশন দিয়ে স্বাভাবিক সংখ্যার যোগফল নির্নয়

সি প্রোগ্রামিং – রিকার্শন ফাংশন দিয়ে স্বাভাবিক সংখ্যার যোগফল নির্নয় –
C Program to Find the Sum of Natural Numbers using Recursion

সি প্রোগ্রামিং এ রিকার্শন ফাংশন দিয়ে N সংখ্যক স্বাভাবিক সংখ্যার যোগফল নির্নয় করার জন্য,  নিম্নলিখিত সি প্রোগ্রামিং বিষয়গুলির জ্ঞান থাকতে হবে:-

১) রিকার্শন ফাংশন – প্রথম পর্ব 
২) রিকার্শন ফাংশন – দ্বিতীয় পর্ব 
৩) রিকার্শন ফাংশন – তৃতীয় পর্ব 

#include <stdio.h>

int sumnumber(int num)
{
    if(num != 0)
        return num + sumnumber(num-1);
    else
        return num;
}

int main()
{
    int numbur;
    printf("Enter a positive integer: ");
    scanf("%d", &numbur);
    printf("Sum of Natural Number is %d",sumnumber(numbur));
    return 0;
}

আউটপুট ১ –

Enter a positive integer: 10
Sum of Natural Number is 55

আউটপুট ২ –

Enter a positive integer: 100
Sum of Natural Number is 5050

আউটপুট ৩ –

Enter a positive integer: 500
Sum of Natural Number is 125250

 

সি প্রোগ্রামিং দিয়ে অধিবর্ষ যাচাই করা

সি প্রোগ্রামিং দিয়ে অধিবর্ষ যাচাই করা

C Program to Check Leap Year

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

১) সি প্রোগ্রামিং অপারেটর
২) সি প্রোগ্রামিং if…else

একটি অধিবর্ষ সম্পূর্ণভাবে 4 দ্বারা বিভাজ্য হয়, তবে 00 দিয়ে শেষ হওয়া বছর অধিবর্ষ হবে শুধুমাত্র যদি এটি 400 দ্বারা সম্পূর্ণরূপে বিভক্ত হয়।

#include <stdio.h>

int main()
{
    int x;
    printf("Enter a Year: ");
    scanf("%d",&x);

    if(x%4 == 0)
    {
        if( x%100 == 0)
        {
            if ( x%400 == 0)
                printf("%d is a leap year.", x);
            else
                printf("%d is not a leap year.", x);
        }
        else
            printf("%d is a leap year.", x );
    }
    else
        printf("%d is not a leap year.", x);
return 0;
}

আউটপুট ১ –

Enter a year: 2100
2100 is not a leap year.

আউটপুট ২ –

Enter a year: 2018
2018 is not a leap year.

আউটপুট ৩ –

Enter a year: 2020
2020 is a leap year.

 

সি প্রোগ্রামিং – ফাংশন

সি প্রোগ্রামিং – ফাংশন

সি প্রোগ্রামিং – ফাংশন

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

  1. Main function
  2. User-defined function এবং
  3. Standard library functions

প্রোগ্রামিং এ ফাংশন কতগুলো নির্দেশের সমষ্টি যা একসঙ্গে একটি কাজ সম্পাদন করে। মনে করো, এমন একটি প্রোগ্রাম লিখতে হবে যা অনেক গুলো সংখ্যার বর্গ এবং ফেক্টরিয়াল বের করবে। এ ক্ষেত্রে আমরা সংখ্যার বর্গ এবং ফেক্টরিয়াল নির্ণয় করার দুইটি ফাংশন  লিখে ফেলতে পারি, এতে প্রতিটি সংখ্যার জন্য আলাদা সংখ্যার বর্গ এবং ফেক্টরিয়াল নির্ণয় করার কোড না লিখে এই ফাংশন দুইটি করে সহজেই করতে পারি। অর্থাৎ আমাদের কোড লেখার কাজ কমে গেলো অনেক গুন।  খুশি ?? নিচের উদাহরণটি লক্ষ্য করলে আরো সহজ ভাবে বুঝতে পারবে।

একটি চকলেট প্রস্তুত করার মেশিন চিন্তা করো, এই মেশিনের মধ্যে চকলেট তৈরির উপকরণ গুলো ইনপুট দিলে মেশিনের মধ্যে ঐ উপকরণ গুলো নিয়ে নানা রকম প্রসেস এর মাধ্যমে আউটপুটে চকলেট পাওয়া যায়।

<চকলেট > মেশিন ( < চকলেট তৈরির উপকরণ > )
{
চকলেট তৈরির উপকরণ প্রসেস এর মাধ্যমে চকলেট প্রস্তুত
return চকলেট
}

প্রোগ্রামিং এ আমরা ফাংশনকে একটি চকলেট তৈরির মেশিনের সাথে কল্পনা করতে পারি। যেখানে, “< চকলেট >” হচ্ছে কেমন চকলেট মেশিন থেকে রিটার্ন হবে, “< চকলেট তৈরির উপকরণ >” বোঝায় তুমি মেশিনে কি কি ইনপুট দিবে। আমরা যেভাবে আমাদের চকলেট তৈরির মেশিন অপারেট করবো সেই অনুযায়ী নানা রকম চকলেট পাবো। অনুরূপভাবে, কি কি কাজ আমরা ফাংশন এর মধ্যে করতে চাই সে অনুযায়ী আমরা নানান লজিক প্রয়োগ করে সহজেই তা করতে পারি।

প্রতিটি সি প্রোগ্রামে এক অথবা একাধিক ফাংশন থাকে যা নিম্নোক্ত ভাবে প্রকাশ করা যায়-

return_type function_name( parameter list )
{
body of the function
return Data;
}

ফাংশন কিভাবে সি প্রোগ্রামিং এ কাজ করে?

কম্পাইলার যখন প্রধান ফাংশনের মধ্যে কোন একটি ফাংশন যেমন function_name( ) পায়, তখন কম্পাইলার লাফ দিয়ে ঐ ফাংশনে চলে যায় এবং কম্পাইলার উক্ত ফাংশনের ভিতরের কোডগুলি চালনা শুরু করে।

c-function-how-function-work

ফাংশনে আর্গুমেন্ট কিভাবে পাঠানো হয় ?

নিচের উদাহরণে, ফাংশন কল করে দুটি ভেরিয়েবল x এবং y পাঠানো হয়েছে।

Passing arguments to a function

ফাংশন কিভাবে আর্গুমেন্ট রিটার্ণ করে ?

ফাংশন কিভাবে আর্গুমেন্ট রিটার্ণ করে তা নিচের উদাহরণে দেখানো হয়েছে। মূল ফাংশন থেকে function_name() ফাংশন কল করায়, sum ভেরিয়েবলের মধ্যে z ভেরিয়েবলের মান চলে আসবে।

ফাংশন কিভাবে আর্গুমেন্ট রিটার্ণ করে ?

উদাহরন – ১ : দুইটি সংখ্যার যোফল নির্ণয় 

#include <stdio.h>

int function_name(int x, int y)
{
    int z;
    z = x + y;
    return z;
}

int main()
{
    int a,b,sum;
    printf("Enter two number : ");
    scanf("%d %d", &a,&b);
    sum = function_name(a,b);
    printf("Summation is %d\n", sum);
    return 0;
}

Sample Input: Enter a number : 5  7
Output: Summation is 12

উদাহরন – ২ : আয়তাকার বস্তুর আয়তন নির্ণয়

কোনো আয়তাকার বস্তুর আয়তন হচ্ছে ঐ বস্তুর দৈর্ঘ X প্রস্থ X উচ্চতা। এখন একটি ফাংশন লিখি যাকোন আয়তাকার বস্তুর আয়তন পরিমাপ করবে। ফাংশনটির প্রোটোটাইপ int volume (int a, int b, int c) যা কোনো আয়তাকার বস্তুর আয়তন পরিমাপ করে ঐ আয়তন রিটার্ন করবে।

#include <stdio.h>

int volume (int a, int b, int c)
{
    return a*b*c;
}

int main ()
{
    int x,y,z,ans;
    x=3;
    y=4;
    z=5;
    ans = volume (x,y,z);
    printf ("Volume is %d\n", ans);
    return 0;
}

Output:
Volume is 60

উদাহরণ  – ৩ : দুইটি সংখ্যার মধ্যে বৃহত্তম সংখ্যা বের করা

#include <stdio.h>

int max(int num1, int num2);
int main ()
{
    int a,b,c;
    a = 10;
    b = 12;
    c = maximum(a, b);
    printf( "Maximum number is : %d\n", c );
    return 0;
}

/* function for finding maximum number */
int maximum(int x, int y)
{
    /* local variable */
    int z;
    if (x > y)
        z = x;
    else
        z = y;
    return z;
}

Output: Maximum number is : 12

উদাহরণ  – ৪ : মৌলিক সংখ্যা যাচাই 

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

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

#include<stdio.h>
int prime(int a);
int main()
{
      int n;
      printf("Enter a number :");
      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);
}

Sample Input: Enter a number : 7
Output: 7 is prime.

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


সি প্রোগ্রামিং শেখার বাংলা বই “সহজে শিখি সি প্রোগ্রামিং” – এর ইবুক (পিডিএফ) পেতে ক্লিক করুন। বিকাশের মাধ্যমে সর্বনিম্ন ১০০ টাকা পরিশোধ করার মাধ্যমে সংগ্রহ করে নিন এই বইটি।

সি প্রোগ্রামিং – ফর লুপ

সি প্রোগ্রামিং – ফর লুপ

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

সি প্রোগ্রামিং – ফর লুপ

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

  1. ফর লুপ
  2. হোয়াইল লুপ এবং
  3. ডু হোয়াইল লুপ

সি প্রোগ্রামিং এ ফর লুপ নিম্নক্ত ভাবে লেখা হয় –

for (1.initialization; 2.condition; 3.increment/decrement)
{
4.statement ;
}

ফর লুপ -এর প্রথম ব্রাকেটের মাঝে তিনটি অংশ থাকে, যার প্রতিটি অংশের মাঝে সেমিকোলন (;) দিতে হয়। যথা:
1) initialization expression :
যেমন: i=0;
2) loop condition :
যেমন: i<5
3) increment/decrement expression :
যেমন: i++

লুপ প্রথমে initialization থেকে শুরু হয়, তারপর কন্ডিশন যাচাই করে। যদি কন্ডিশন সত্য হয় তাহলে ফর লুপ -এর মাঝের কোড execute করে, সত্য না হলে ফর লুপ শেষ হয়ে যায়। এখন ফর লুপ -এর মাঝের কোড execute করার পর increment/decrement করে পুনরায় কন্ডিশন যাচাই করে। যদি কন্ডিশন সত্য হয় তাহলে ফর লুপ -এর মাঝের কোড execute করে, সত্য না হলে ফর লুপ শেষ হয়ে যায়। এভাবে চলতেই থাকে এবং কন্ডিশন মিথ্যা হলে থেমে যাবে।

উদাহরণ – ১

ফর লুপ  দিয়ে প্রথমেই আমরা একটি প্রোগ্রাম লিখে ফেলি যা ৫ বার Bangladesh আউটপুটে দেখাবে –

#include<stdio.h>
int main()
{
    printf("Bangladesh\n");
    printf("Bangladesh\n");
    printf("Bangladesh\n");
    printf("Bangladesh\n");
    printf("Bangladesh\n");
    printf("Bangladesh\n");
    printf("Bangladesh\n");
    printf("Bangladesh\n");
    printf("Bangladesh\n");
    printf("Bangladesh\n");
    return 0;
}

আউটপুট -

Bangladesh
Bangladesh
Bangladesh
Bangladesh
Bangladesh
Bangladesh
Bangladesh
Bangladesh
Bangladesh
Bangladesh

এখন যদি ১০০ বার Bangladesh আউটপুটে দেখাতে বলে তখন কি করবে ? ১০০ বার printf(“Bangladesh\n”); না লিখে আমরা লুপ ব্যভার করে সহজেই এই সমস্যা সমাধান করতে পারি। তো চলো উপরের প্রোগ্রামটি একটি লুপ দিয়ে লিখে ফেলি –

#include<stdio.h>
int main()
{
    int i;
    for(i=1;i<=10;i++)
    {
        printf("Bangladesh\n");
    }
    return 0;
}

আউটপুট -

Bangladesh
Bangladesh
Bangladesh
Bangladesh
Bangladesh
Bangladesh
Bangladesh
Bangladesh
Bangladesh
Bangladesh

উদাহরণ – ২ 

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

কোন n ধনাত্মক সংখ্যার ফেক্ট্ররিয়াল হচ্ছে:

n! = 1 * 2 * 3 * 4 * …. * (n-2)  *(n-1) * n

ফর লুপ দিয়ে কোন সংখ্যার ফেক্ট্ররিয়াল নির্ণয় করার প্রোগ্রাম –

#include <stdio.h>
int main()
{
    int num, i, factorial = 1;
    printf("Enter an positive integer: ");
    scanf("%d",&num);
    for(i=1; i<=num; ++i)
    {
        factorial *= i;
    }
    printf("Factorial of %d is %d", num, factorial);
    return 0;
}

উদাহরণ – ৩

প্রথম n সংখ্যক স্বাভাবিক সংখ্যার বর্গের সমষ্টি নির্ণয় –

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

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

ফর লুপ দিয়ে প্রথম n সংখ্যক স্বাভাবিক সংখ্যার বর্গের সমষ্টি নির্ণয়য়ের প্রোগ্রাম –

#include <stdio.h>
int main()
{
    int n;
    int sum=0;
    printf("Enter the values of n: ");
    scanf("%d",&n);
    sum = ( n*(n+1)*(2*n+1))/6;
    printf("Sum of the series: %d ",sum);
    return 0;
}

Sample Input: Enter the values of n: 5
Output: Sum of the series: 55

উদাহরণ – ৪

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

এখন যদি প্রথম n সংখ্যক স্বাভাবিক সংখ্যার চতুর্ঘাতের সমষ্টি নির্ণয় করতে বলা হয় তাহলে আমরা আর আগের মত ধারার সূত্র জানি না, কিন্তু প্রোগ্রাম লিখে সহজে বের করতে পারি। নিচের কোডটি দেখো। যেহেতু হ সংখ্যক স্বাভাবিক সংখ্যার চতুর্ঘাতের সমষ্টি নির্ণয় করতে হবে তাই প্রতি বার sum – এর মাঝে (i*i*i*i) যোগ করতে হবে। তাই প্রথমে sum – এর মাঝে শূন্য রাখা হয়েছে কেননা প্রথম ধাপে যদি sum – এর সাথে (i*i*i*i) যোগ করি sum – এর গার্বেজ মান [প্রোগ্রাম এ কোনো ভেরিয়েবল ডিক্লেয়ার করলে ঐ ভেরিয়েবল-এর মাঝে একটি গার্বেজ থাকে যতক্ষণ না আমরা কোনো মান ঐ ভেরিয়েবল রাখি] যোগ হয়ে যাবে।

#include<stdio.h>
int main()
{
    int n,i;
    int sum=0;
    printf("Enter the values of n: ");
    scanf("%d",&n);
    for(i =1;i <= n;i+=1)
    {
        sum=sum+(i*i*i*i);
    }
    printf("Sum of the series:%d ",sum);
    return 0;
}

Sample Input: Enter the values of n: 5
Output: Sum of the series: 979

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


সি প্রোগ্রামিং শেখার বাংলা বই “সহজে শিখি সি প্রোগ্রামিং” – এর ইবুক (পিডিএফ) পেতে ক্লিক করুন। বিকাশের মাধ্যমে সর্বনিম্ন ১০০ টাকা পরিশোধ করার মাধ্যমে সংগ্রহ করে নিন এই বইটি।

সি প্রোগ্রামিং – অপারেটর

সি প্রোগ্রামিং – অপারেটর

সি প্রোগ্রামিং – অপারেটর

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

সি প্রোগ্রামিং এ ব্যবহৃত অপারেটর সমূহ হলো : –

  1. ইউনারি অপারেটর (Unary Operator)
  2. বাইনারি অপারেটর (Binary Operator)

ইউনারি অপারেটর (Unary Operator)

যে সকল অপারেটর শুধুমাত্র একটি অপারেন্ড নিয়ে কাজ করে তাদের ইউনারি অপারেটর বলে। যেমন: ধনাত্বক বোঝাতে যোগচিহ্ন (+), ঋনাত্বক বোঝাতে বিয়োগ চিহ্ন (-), বৃদ্ধি (++), হ্রাস (–) ইত্যাদি ইউনারি অপারেটর। যোগচিহ্ন (+) ও বিয়োগ চিহ্ন (-):
উদাহরণ: int age = +16; int num = -5; float num1 = -num2;

বৃদ্ধি (++), হ্রাস (- -):

উদাহরণ: i++ ; i- – ; count++;

i + + বোঝায় i = i + ১ এবং

i – – বোঝায় i = i – 1;

এখন বৃদ্ধি (++), হ্রাস (- -) অপারেটর ভেরিয়েবলের আগে বসলে আগে (যেমন: ++count) ওই ভেরিয়েবলের মান যথাক্রমে বাড়বে বা কমবে তারপর অন্য কাজ করবে। অনুরূপভাবে বৃদ্ধি (++), হ্রাস (–) অপারেটর ভেরিয়েবলের পরে বসলে (যেমন: count++) আগে অন্যান্য কাজ আগে করবে তারপর ওই ভেরিয়েবলের মান যথাক্রমে বাড়বে বা কমবে।

Pre Increment ( ++i ) Post Increment ( ++i )
i = 5 ;
a = ++i ;
আগে increment হবে
∴ i = 6 ;
a = 6 ;
i = 5 ;
a = i++ ;
পরে increment হবে
∴ i = 5 ;
a = 6 ;

এখন আমরা সি প্রোগ্রামিংদিয়ে দুইটি কোড দেখি, প্রথম কোডটিতে Pre Increment এবং দ্বিতীয় কোডটিতে আমরা Post Increment দেখানো হয়েছে।

উদাহরণ -১ : Pre Increment

#include <stdio.h>
int main()
{
    int count, number;
    count = 4;
    number = ++count;
    printf("%d\n", number);
    return 0;
}

Output: 5

উদাহরণ – ২ : Post Increment

#include <stdio.h>
int main()
{
    int count, number;
    count = 4;
    number = count++;
    printf("%d\n", number);
    return 0;
}

Output: 4

বাইনারি অপারেটর (Binary Operator)

১)  অ্যারিথ মেটিক অপারেটর
২) এসাইনমেন্ট অপারেটর
৩) রিলেশনাল অপারেটর
৪) লজিক্যাল অপারেটর
৫) বিটওয়াইজ অপারেটর

বি. দ্র.- যেহেতু উপরের অপারেটরগুলো দুইটি অপারেন্ড নিয়ে কাজ করে তাই এদের বাইনারি অপারেটর বলে।

১) অ্যারিথমেটিক অপারেটর
অ্যারিথমেটিক অপারেটর সম্পর্কে জানাতে হলে নিচের কোডটি তোমার কম্পাইলারে লিখে কম্পাইল ও রান করো তুমি নিজেই বুঝে যাবে।

যোগ করার জন্য + অপারেটর,
বিয়োগ করার জন্য – অপারেটর,
গুন করার জন্য * অপারেটর,
ভাগ করার জন্য / অপারেটর এবং
ভাগশেষ বের করার জন্য % অপারেটর ব্যবহার করা হয়। 

যোগ (+), বিয়োগ(-), গুণ(*), ভাগ(/) ইত্যাদি অ্যারিথমেটিক অপারেটর সম্পর্কে আগেই আমরা জানি। নতুন একটি অপারেটর মডুলাস (%) অপারেটর। মডুলাস কোনো সংখ্যাকে অপর একটি সংখ্যা দিয়ে ভাগ করলে যেই ভাগশেষ থাকে তার মান বোঝায়। যেমন 10 কে 3 দ্বারা ভাগ করলে ভাগশেষ 1 থাকে। অর্থাৎ 10 % 3 = 1

এই অপারেটরগুলো দিয়ে এমন আরো কিছু উদাহরণ দেখে নাও –

2+3*6/2 = 11 3*4%5 = 2
12/6+9 = 11 3*4/2%5 = 1
3%2 = 1 3+4%3 = 4
5%3 = 2 3*4-5 = 7

 

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


সি প্রোগ্রামিং শেখার বাংলা বই “সহজে শিখি সি প্রোগ্রামিং” – এর ইবুক (পিডিএফ) পেতে ক্লিক করুন। বিকাশের মাধ্যমে সর্বনিম্ন ১০০ টাকা পরিশোধ করার মাধ্যমে সংগ্রহ করে নিন এই বইটি।

সি প্রোগ্রামিং – ইনপুট এবং আউটপুট

সি প্রোগ্রামিং – ইনপুট এবং আউটপুট

সি প্রোগ্রামিং – ইনপুট এবং আউটপুট

ইনপুট

যে কোনো প্রোগ্রামিং ভাষাতে ইনপুট বোঝায় যে কোনো ডাটা প্রোগ্রামএ ইনপুট করা। C প্রোগ্রামিং লাঙ্গুয়েজ এর কতগুলো built-in functions আছে যা প্রদত্ত ইনপুট পড়ে এবং প্রোগ্রামে প্রবেশ করায়। সি প্রোগ্রামিং ভাষায় আমরা scanf() ফাংশন ব্যবহার করে থাকি ডাটা ইনপুট দেয়ার জন্য।

আউটপুট

যে কোনো প্রোগ্রামিং ভাষাতে আউটপুট বোঝায় যে কোনো ডাটা স্ক্রীন এ , প্রিন্টার এ অথবা যেকোনো ফাইল এ দেখানো। printf( ) এর মধ্যে ” ” এর ভেতর কোন কিছু লিখলে সেটা কনসোলে কি সুন্দর করে প্রিন্ট করে দেয়।

#include <stdio.h> 
int main() 
{ 
    int x; 
    printf("Enter an integer: "); 
    scanf("%d", &x); 
    if ( x>= 0) 
    { 
        printf("The number is positive.\n");
    } 
    else 
    { 
        printf("The number is negative.\n"); 
    } 
    return 0; 
}

Sample input: -12
Output: The number is negative.

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


সি প্রোগ্রামিং শেখার বাংলা বই “সহজে শিখি সি প্রোগ্রামিং” – এর ইবুক (পিডিএফ) পেতে ক্লিক করুন। বিকাশের মাধ্যমে সর্বনিম্ন ১০০ টাকা পরিশোধ করার মাধ্যমে সংগ্রহ করে নিন এই বইটি।

সি প্রোগ্রামিং double ডাটা টাইপ

সি প্রোগ্রামিং double ডাটা টাইপ

সি প্রোগ্রামিং double ডাটা টাইপ

double ডাটা টাইপ এর ময়নাতদন্ত

double ডাটা টাইপ float ডাটা টাইপের মতই। একটি বড় ভগ্নাংশের(floating number) ভেরিয়েবল ডিক্লারেশন করার জন্য double ব্যবহার করা হয়। যেমন দুইটি পূর্ণসংখ্যা 12.023432 এবং 3.893213 । সংখ্যা দুইটির যোগফল 12.023432+3.893213 = 15.916645 ।
a) double ভগ্নাংশের ডাটা টাইপ বোঝায়।
b) একটি বড় ভগ্নাংশের(floating number) মান ধারণ করার জন্য double ডাটা টাইপ এর ভেরিয়েবল ব্যবহার করা হয়।
c) double এর ডাটা টাইপের জন্য মেমরিতে 8 বাইট (64 বিট) জায়গা বরাদ্দ হয়
d) double ভগ্নাংশের ডাটা টাইপ এ দশমিক এর পর 6 ঘর পর্যন্ত মান

পদার্থ বিজ্ঞান ও প্রোগ্রামিং
নিচের পানির রিজার্ভার থেকে 50 মিটার উঁচু দালানের ছাদে অবস্থিত ট্যাংকে পানি তোলার জন্য 5kW এর একটি পাম্প চালিয়ে 5 মিনিটে কতটুকু পানি তোলা সম্ভব ?
পাম্পের ক্ষমতা p = কাজ ÷ সময় = mgh ÷ t; যেখানে,
m = পানির ভর;
g = অভিকর্ষজ ত্বরণ
h = উচ্চতা;
t = সময় ।

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

#include <stdio.h>
int main()
{
    double p, m, g, h, t;
    p = 5000;
    g = 9.8;
    h = 50;
    scanf("%lf",&t);
    m = (p*t)/(g*h);
    printf("The weight of wanter is %lf kg.\n",m);
    return 0;
}
Sample Input: 5
Output:The weight of wanter is 51.020408 kg.

**double ডাটা টাইপ এর ভেরিয়েবল এর জন্য %lf ব্যবহৃত হয়।

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


সি প্রোগ্রামিং শেখার বাংলা বই “সহজে শিখি সি প্রোগ্রামিং” – এর ইবুক (পিডিএফ) পেতে ক্লিক করুন। বিকাশের মাধ্যমে সর্বনিম্ন ১০০ টাকা পরিশোধ করার মাধ্যমে সংগ্রহ করে নিন এই বইটি।

[সি প্রোগ্রামিং double ডাটা টাইপ

Tutorial on C Programming Double Data Type in Bangla]

সি প্রোগ্রামিং float ডাটা টাইপ

সি প্রোগ্রামিং float ডাটা টাইপ

সি প্রোগ্রামিং float ডাটা টাইপ

float ডাটা টাইপ এর ময়নাতদন্ত

একটি ভগ্নাংশের(floating number) ভেরিয়েবল ডিক্লারেশন করার জন্য float ব্যবহার করা হয়। যেমন দুইটি পূর্ণসংখ্যা 12.023432 এবং 3.893213, সংখ্যা দুইটির যোগফল 12.023432+3.893213 = 15.916645 ।
a) float ভগ্নাংশের ডাটা টাইপ বোঝায়।
b) একটি ভগ্নাংশের(floating number) মান ধারণ করার জন্য float ডাটা টাইপ এর ভেরিয়েবল ব্যবহার করা হয়।
c) float ডাটা টাইপ 2/4 বাইট-এ পূর্ণসংখ্যার মান সংরক্ষণ করে। আমাদের ব্যবহৃত কম্পিউটার এর CPU তে যেই প্রসেসর থাকে তার উপর নির্ভর করে পরিবর্তিত হয়। আমাদের কম্পিউটার-এ 16 বিট প্রসেসর ব্যবহার করলে float এর ডাটা টাইপের জন্য মেমরিতে 2 বাইট (16 বিট) জায়গা বরাদ্দ হয়।
d) আবার আমাদের কম্পিউটার-এ 32 বিট প্রসেসর ব্যবহার করলে float এর ডাটা টাইপের জন্য মেমরিতে 4 বাইট (32 বিট) জায়গা বরাদ্দ হয়। আমরা সচারাচর 32 বিট এর কম্পিউটার ব্যবহার করে থাকি ও কোড::ব্লকস(Code::Blocks) 32 বিট এর “Program File” এ ইন্সটল হয়, অর্থাৎ আমাদের কম্পিউটার 32/64 বিট এর হোক না কেনো,float এর ডাটা টাইপের জন্য মেমরিতে 4 বাইট জায়গা বরাদ্দ হবে।
e) float ভগ্নাংশের ডাটা টাইপ এ দশমিক এর পর ৬ ঘর পর্যন্ত মান বসে।
উপরের লেখা গুলোর কিছুই বুঝি নাই ? シ তাহলে তোমার কোড::ব্লকস(Code::Blocks) open করে আমার সাথে নিচের কোড গুলি লিখে কম্পাইল ও রান করো। シ

ভাগ করার প্রোগ্রামঃ

দুইটি পূর্ণসংখ্যা 10 এবং 3, প্রথম সংখ্যাকে দ্বিতীয় সংখ্যা দিয়ে ভাগ করলে ভাগফল 10 ÷ 3 = 3.333333, নিচের কোড আমাদের কম্পাইলারে কম্পাইল ও রান করালে আউটপুট স্ক্রিনে দেখানো হবে “10.000000 divided by 3.000000 is 3.333333 ”

#include <stdio.h>
int main()
{
   float num1,num2,num3;
   num1 = 10;
   num2 = 3;
   num3 = num1 / num2;
   printf("%f divided by %f is %f\n", num1, num2, num3);
   return 0;
}
Output: 10 divided by 3 is 3.333333.

পদার্থ বিজ্ঞান ও প্রোগ্রামিং
মনে করো তোমাকে বাংলাদেশ এর ট্রেনগুলোর যাত্রাকাল বের করার একটি প্রোগ্রাম লিখতে হবে। কোন একটি ট্রেন কমলাপুর হতে বাংলাদেশ এর যেকোনো যায়গায় যাওয়ার জন্য প্রোগ্রাম লিখতে হবে যেখানে ট্রেনের সমবেগ এবং কমলাপুর হতে যেকোনো যায়গার দূরত্ব তোমাকে প্রোগ্রাম এ ইনপুট দিতে হবে, আর আউটপুট এ আমরা ঐ স্থানে যেতে ট্রেনের যাত্রাকাল পাবো। এখানে ধরে নাও সমস্ত পথ ট্রেন সমবেগে চলে।
সমবেগে চলা কোন বস্তুর গতির সমীকরণঃ s = vt; যেখানে,
s = সরণ/ অতিক্রান্ত দূরত্ব;
v = বস্তুর সমবেগ;
t = সময়।

icchecode-float

তো চলো আমরা আমাদের প্রগ্রামটির সোর্স কোড সি প্রোগ্রামিং ভাষায় লিখে ফেলি। এর আগে আমরা printf() ফাংশন নিয়ে বলেছি, যা আউটপুট স্ক্রিনে printf() ফাংশনের মাঝের অংশ দেখায়। এখন আমাদের scanf() ফাংশন ব্যবহার করতে হবে কোন ডাটা ইনপুট দিতে।

#include <stdio.h>
int main()
{
   float s,v,t;
   printf("Enter the values of the distances(metre) and velocity(metre/sec) respectively.\n");
   scanf("%f %f",&s,&v);
   t = s / v;
   printf("Answer is %0.3f seconds.\n",t);
   return 0;
}
Sample Input: 40000   100 
Output: Answer is 400.000 seconds.

এখানে scanf() ফাংশন ব্যবহার করতে হবে কোন ডাটা ইনপুট দিতে। scanf() ফাংশন এর মাঝে “%f %f” অংশে কি টাইপ ডাটা, কতোগুলো ডাটা ইনপুট নিবো তা বলে দিতে হয়। %f দ্বারা বোঝায় float ডাটা টাইপ এর ভেরিয়েবল ইনপুট দিবো, দুইটি %f দ্বারা বোঝায় দুইটি float ডাটা টাইপ এর ভেরিয়েবল ইনপুট দিবো। কমার পরে &s,&v বোঝায় ডাটা গুলোর মান s ও v এর এড্রেসের মাঝে রাখবে।

এখানে %0.3f থাকার কারনে দশমিকের পরে তিন ঘর পর্যন্ত আউটপুট এ প্রিন্ট হয়েছে। %0.2f থাকলে দশমিকের পর দুই ঘর পর্যন্ত আউটপুট এ প্রিন্ট হবে।

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


সি প্রোগ্রামিং শেখার বাংলা বই “সহজে শিখি সি প্রোগ্রামিং” – এর ইবুক (পিডিএফ) পেতে ক্লিক করুন। বিকাশের মাধ্যমে সর্বনিম্ন ১০০ টাকা পরিশোধ করার মাধ্যমে সংগ্রহ করে নিন এই বইটি।

[সি float ডাটা টাইপ

Tutorial on C Programming Float Data Type in Bangla]

সি প্রোগ্রামিং – রিটার্ণ শূন্য নিয়ে কিছু কথা

সি প্রোগ্রামিং – রিটার্ণ শূন্য নিয়ে কিছু কথা

সি প্রোগ্রামিং – রিটার্ণ শূন্য নিয়ে কিছু কথা

কোন ফাংশন “return 0;” পাওয়া মাত্র ওই ফাংশন এর কাজ শেষ হয়। অর্থাৎ ফাংশন যদি “return 0;” প্রথমেই মেইন ফাংশন এর মাঝে থাকতো তাহলে কম্পাইলার ওইখানেই কম্পাইল করা থামিয়ে দিতো। বলে রাখি কম্পাইলার লাইন বাই লাইন পড়ে কম্পাইল করে। নিচের কোডটি দেখো।

#include <stdio.h>
int main()
{
   return 0;
   int num1,num2,num3;
   num1 = 12;
   num2 = 3;
   num3 = num1 + num2;
   printf("Sum of two numbers is %d.\n", num3);
}
Output: কোনো কিছুই আউটপুট স্ক্রিনে দেখাবে না।

main() ফাংশন এর মাঝে প্রথমেই "return 0;" পাওয়ায় কম্পাইলার ওইখানেই কম্পাইল করা থামিয়ে দি্বে।তাই পরের অংশ আর কম্পাইলার পড়বে না। যেহেতু নিচের অংশগুলো কম্পাইলার পড়েনি তাই আউটপুট এ কিছুই দেখবে না।

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


সি প্রোগ্রামিং শেখার বাংলা বই “সহজে শিখি সি প্রোগ্রামিং” – এর ইবুক (পিডিএফ) পেতে ক্লিক করুন। বিকাশের মাধ্যমে সর্বনিম্ন ১০০ টাকা পরিশোধ করার মাধ্যমে সংগ্রহ করে নিন এই বইটি।

সি প্রোগ্রামিং – পূর্ণসংখ্যার ডাটা টাইপ – দ্বিতীয় পর্ব

সি প্রোগ্রামিং – পূর্ণসংখ্যার ডাটা টাইপ – দ্বিতীয় পর্ব

সি প্রোগ্রামিং – পূর্ণসংখ্যার ডাটা টাইপ – দ্বিতীয় পর্ব

যোগ করার জন্য + অপারেটর
বিয়োগ করার জন্য – অপারেটর
গুন করার জন্য * অপারেটর
ভাগ করার জন্য / অপারেটর ব্যবহার করা হয়।

গুন করার প্রোগ্রামঃ

দুইটি পূর্ণসংখ্যা 10 এবং 3, প্রথম সংখ্যাকে দ্বিতীয় সংখ্যা দিয়ে গুন করলে গুনফল 10 * 3 = 30 হবে।

#include <stdio.h> 
int main() 
{ 
    int num1,num2,num3; 
    num1 = 10; num2 = 3; 
    num3 = num1 * num2; 
    printf("%d multiplied by %f is %d .\n", num1, num2, num3); 
    return 0; 
}
Output: 10 multiplied by 3 is 30.

ভাগ করার প্রোগ্রামঃ

দুইটি পূর্ণসংখ্যা 10 এবং 3, প্রথম সংখ্যাকে দ্বিতীয় সংখ্যা দিয়ে ভাগ করলে ভাগফল 10 ÷ 3 = 3.333, কিন্তু আমরা যখন 10 এবং 3 কে int ডাটা টাইপ এর ভেরিয়েবল এ রাখবো তখন দশমিক সংরক্ষণ করতে পারবো না। তাই নিচের কোড আমাদের কম্পাইলারে কম্পাইল ও রান করালে আউটপুট স্ক্রিনে দেখানো হবে “10 divided by 3 is 3” এই সমস্যা সমাধানের জন্য আমাদের নতুন একটি ডাটা টাইপ float অথবা double ব্যবহার করা হয়।

#include <stdio.h> 
int main() 
{ 
    int num1,num2,num3; 
    num1 = 10; num2 = 3; 
    num3 = num1 / num2; 
    printf("%d divided by %d is %d \n", num1, num2, num3); 
    return 0; 
}
Output: 10 divided by 3 is 3

Float ডাটা টাইপ ব্যবহার করে প্রোগ্রাম লিখলে আগের ভুল দেখাবে না, অর্থাৎ এবার আউটপুট স্ক্রিনে “10 divided by 3 is 3.333333” দেখাবে।  পরের লেকচারে Float ডাটা টাইপ নিয়ে বিস্তারিত বলা হয়েছে উদাহরণের মাধ্যমে –

#include <stdio.h> 
int main() 
{ 
    float num1,num2,num3; 
    num1 = 10; num2 = 3; 
    num3 = num1 / num2; 
    printf("%f divided by %f is %f \n", num1, num2, num3); 
    return 0; 
}
Output: 10 divided by 3 is 3.333333

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


সি প্রোগ্রামিং শেখার বাংলা বই “সহজে শিখি সি প্রোগ্রামিং” – এর ইবুক (পিডিএফ) পেতে ক্লিক করুন। বিকাশের মাধ্যমে সর্বনিম্ন ১০০ টাকা পরিশোধ করার মাধ্যমে সংগ্রহ করে নিন এই বইটি।

সি প্রোগ্রামিং – পূর্ণসংখ্যার ডাটা টাইপ – প্রথম পর্ব

সি প্রোগ্রামিং – পূর্ণসংখ্যার ডাটা টাইপ – প্রথম পর্ব

সি প্রোগ্রামিং – পূর্ণসংখ্যার ডাটা টাইপ – প্রথম পর্ব

পূর্ণসংখ্যার (Integer) ডাটা টাইপ এর ময়নাতদন্ত

একটি পূর্ণসংখ্যার (integer number) ভেরিয়েবল ডিক্লারেশন করার জন্য int ব্যবহার করা হয়। যেমন দুইটি পূর্ণসংখ্যা 12 এবং 3 , সংখ্যা দুইটির যোগফল 12+3 = 15 ।

  1. int পূর্ণসংখ্যার ডাটা টাইপ বোঝায়।
    একটি পূর্ণসংখ্যার (integer) মান ধারণ করার জন্য int ভেরিয়েবল ব্যবহার করা হয়।
  2. পূর্ণসংখ্যার ডাটা টাইপ 2/4 বাইট-এ পূর্ণসংখ্যার মান সংরক্ষণ করে। আমাদের ব্যবহৃত কম্পিউটার এর CPU তে যেই প্রসেসর থাকে তার উপর নির্ভর করে পরিবর্তিত হয়।
    আমাদের কম্পিউটার-এ 16 বিট প্রসেসর ব্যবহার করলে int এর ডাটা টাইপের জন্য মেমরিতে 2 বাইট (16 বিট) জায়গা বরাদ্দ হয়।
  3. আবার আমাদের কম্পিউটার-এ 32 বিট প্রসেসর ব্যবহার করলে int এর ডাটা টাইপের জন্য মেমরিতে 4 বাইট (32 বিট) জায়গা বরাদ্দ হয়।
    আমরা সচারাচর 32 বিট এর কম্পিউটার ব্যবহার করে থাকি ও কোড::ব্লকস(Code::Blocks) 32 বিট এর “Program File” এ ইন্সটল হয়, অর্থাৎ আমাদের কম্পিউটার 32/64 বিট এর হোক না কেনো,int এর ডাটা টাইপের জন্য মেমরিতে 4 বাইট জায়গা বরাদ্দ হবে।
  4. int ভেরিয়েবল যদি 2 বাইট এর হয় তাহলে -32,768 থেকে +32,767 পর্যন্ত মান সংরক্ষণ করতে পারে।
  5. int ভেরিয়েবল যদি 4 বাইট এর হয় তাহলে -2,147,483,648 থেকে +2,147,483,647 পর্যন্ত মান সংরক্ষণ করতে পারে।

দুইটি পূর্ণসংখ্যা 12 এবং 3, এখন 12 কে 3 দ্বারা ভাগ করলে ভাগফল হবে 4, কিন্তু যদি দুইটি পূর্ণসংখ্যা 10 এবং 3 হয়, তাহলে 10 কে 3 দ্বারা ভাগ করলে ভাগফল হবে 3.3333, ভাগফলএ দশমিক বিদ্যমান। পূর্ণসংখ্যার (Integer) ডাটা টাইপ int এর ভেরিয়েবল ভগ্নাংশ সংরক্ষণ করতে পারে না। এক্ষেত্রে নতুন একটি ডাটা টাইপ float অথবা double ব্যবহার করা হয়।

  • int পূর্ণসংখ্যার ডাটা টাইপ দশমিক মান সংরক্ষণ করতে পারে না।
  • int পূর্ণসংখ্যার ডাটা টাইপ এ দশমিক এর পরের অংশ বাদ যায়। যেমনঃ 10 ÷ 3 = 3.3333 না হয়ে 3 হবে, দশমিক এর পরের অংশ বাদ যায়।

উপরের লেখা গুলোর কিছুই বুঝি নাই ? シ তাহলে তোমার কোড::ব্লকস(Code::Blocks) open করে আমার সাথে নিচের কোড গুলি লিখে কম্পাইল ও রান করো। সাথে নিচের ভিডিওটিও দেখে দেলতে পারো –

int ডাটা টাইপ এর ময়নাতদন্তের মূল অংশ (কোড লিখা)

যোগ করার প্রোগ্রামঃ

দুইটি পূর্ণসংখ্যা 12 এবং 3, সংখ্যা দুইটির যোগফল 12+3 = 15 , এখন মনে করো আমি যোগ করতে পারি না। シ কিন্তু আমি কিন্তু সি++ প্রোগ্রামিং ভাষায় কোড লিখতে পারি। তো এখন দুইটি সংখ্যা যোগ করার জন্য আমার কাছে একটা উপায় হল সি++ দিয়ে যোগ করার একটি কোড লিখে ফেলা। চলো লিখে ফেলি। তুমি হয়তো ভাবছো তুমি যোগ করতে পারো তাহলে তোমার তো সি++ দিয়ে যোগ করার কোড লেখার কোনো দরকার নেই। না দরকার আছে, বলছি কেনো দরকার। প্রথম প্রথম যতো বেশি কোড লিখবে ততোবেশি ভালো ভাবে সি++ দিয়ে কোড লেখা আয়ত্ত করতে পারবে।

#include <stdio.h>
int main()
{
    int num1,num2,num3;
    num1 = 12; num2 = 3;
    num3 = num1 + num2;
    printf("Sum of two numbers is %d.\n", num3);
    return 0;
}
Output: Sum of two numbers is 15.

কোডের ব্যাখ্যা: এখানে তিনটি int ডাটা টাইপ এর ভেরিয়েবল বিদ্যমান যথাক্রমে num1, num2 ও num3, যা মেমরিতে এই তিনটি ভেরিয়েবল এর জন্য 4 বাইট করে তিনটি জায়গা নিয়ে নিবে। এখন num1 = 12 ও num2 = 3 মানে num1 এর মা 12 এবং num2 এর মান 3 করলাম। এটাকে assign করা বলে। এখন num3 = num1 + num2; অর্থাৎ num3 এর মাঝে num1 ও num2 এর যোগফল রাখলাম।

গাণিতিক অপারেটর –

যোগ করার জন্য + অপারেটর
বিয়োগ করার জন্য – অপারেটর
গুন করার জন্য * অপারেটর
ভাগ করার জন্য / অপারেটর ব্যবহার করা হয়।
ভাগশেষ বের করার জন্য % অপারেটর ব্যবহার করা হয়।

প্রোগ্রাম এ ব্যবহৃত কিছু গাণিত –

2+3*6/2 = 11 3*4%5 = 2
12/6+9 = 11 3*4/2%5 = 1
3%2 = 1 3+4%3 = 4
5%3 = 2 3*4-5 = 7

printf() ফাংশন “Sum of two numbers is %d.\n” এই লেখাটা আউটপুট স্ক্রিন এ দেখানোর জন্য ব্যবহৃত হয়। যেখানে %d, int ডাটা টাইপ এর ভেরিয়েবল এর মান প্রিন্ট করার জন্য, অর্থাৎ %d এর জায়গায় কমার পরের num3 এর মান বসবে। \n নতুন একটি লাইন প্রিন্ট করার জন্য ব্যবহৃত হয়। তাহলে আউটপুট স্ক্রিনে দেখানো হবে “Sum of two numbers is 15.”।

বিয়োগ করার প্রোগ্রামঃ

দুইটি পূর্ণসংখ্যা 12 এবং 3, প্রথম সংখ্যা দ্বিতীয় সংখ্যার বিয়োগফল 12-3 = 9 । এখন মনে করো আমি বিয়োগও করতে পারি না। シ কিন্তু তাতে কি ! আমি তো কিন্তু সি প্রোগ্রামিং ভাষায় কোড লিখতে পারি। তো এখন প্রথম সংখ্যা হতে দ্বিতীয় সংখ্যার বিয়োগফল বের করার জন্য আমার কাছে একটা উপায় হল সি দিয়ে বিয়োগ করার একটি কোড লিখে ফেলা। চলো লিখে ফেলি। তুমি হয়তো ভাবছো তুমি বিয়োগ করতে পারো তাহলে তোমার তো সি দিয়ে বিয়োগ করার কোড লেখার কোনো দরকার নেই। আগেই বলেছি দরকার আছে, প্রথম প্রথম যতো বেশি কোড লিখবে ততোবেশি ভালো ভাবে সি দিয়ে কোড লেখা আয়ত্ত করতে পারবে।

#include <stdio.h>
int main()
{
    int num1,num2,num3;
    num1 = 12;
    num2 = 3;
    num3 = num1 - num2;
    printf("Difference of two numbers is %d.\n", num3);
    return 0;
}
Output: Difference of two numbers is 9.

এখানে তিনটি int ডাটা টাইপ এর ভেরিয়েবল বিদ্যমান যথাক্রমে num1, num2 ও num3, যা মেমরিতে এই তিনটি ভেরিয়েবল এর জন্য 4 বাইট করে তিনটি জায়গা নিয়ে নিবে। এখন num1 = 12 ও num2 = 3 মানে num1 এর মা 12 এবং num2 এর মান 3 করলাম। এটাকে assign করা বলে। এখন num3 = num1 – num2; অর্থাৎ num3 এর মাঝে প্রথম সংখ্যা (num1) হতে দ্বিতীয় সংখ্যার( num2) বিয়োগফল রাখলাম।

printf() ফাংশন “Difference of two numbers is %d\n” এই লেখাটা আউটপুট স্ক্রিন এ দেখানোর জন্য ব্যবহৃত হয়। যেখানে %d, int ডাটা টাইপ এর ভেরিয়েবল এর মান প্রিন্ট করার জন্য, অর্থাৎ %d এর জায়গায় কমার পরের num3 এর মান বসবে। n নতুন একটি লাইন প্রিন্ট করার জন্য ব্যবহৃত হয়। তাহলে আউটপুট স্ক্রিনে দেখানো হবে “Difference of two numbers is 9.”।

এভাবে যোগ, বিয়োগ, গুণ, ভাগ এর সহজ প্রোগ্রাম তুমি লিখে ফেলতে পারো। তবে int ডাটা টাইপ এর ভেরিয়েবল এ সর্বদা পূর্ণসংখ্যা ব্যবহৃত হবে।

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


সি প্রোগ্রামিং ডাটা টাইপ

সি প্রোগ্রামিং ডাটা টাইপ

সি প্রোগ্রামিং ডাটা টাইপ

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

১. int [পূর্ণসংখ্যা (integer) ভেরিয়েবল বোঝানোর জন্য]

২. float [ভগ্নাংশ (floating) ভেরিয়েবল বোঝানোর জন্য]

৩. double [বড় ভগ্নাংশ (big floating) ভেরিয়েবল বোঝানোর জন্য]

৪. char [character ভেরিয়েবল বোঝানোর জন্য]

Type Storage size Value range
char 1 byte -128 to 127
int 2 or 4 bytes -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647
unsigned int 2 or 4 bytes 0 to 65,535 or 0 to 4,294,967,295
float 4 byte 1.2E-38 to 3.4E+38
double 8 byte 2.3E-308 to 1.7E+308

 

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


সি প্রোগ্রামিং শেখার বাংলা বই “সহজে শিখি সি প্রোগ্রামিং” – এর ইবুক (পিডিএফ) পেতে ক্লিক করুন। বিকাশের মাধ্যমে সর্বনিম্ন ১০০ টাকা পরিশোধ করার মাধ্যমে সংগ্রহ করে নিন এই বইটি।

কম্পাইলারে সি প্রোগ্রাম লেখা এবং কম্পাইল করা

কম্পাইলারে সি প্রোগ্রাম লেখা এবং কম্পাইল করা

কম্পাইলারে সি প্রোগ্রাম লেখা এবং কম্পাইল করা

কোড::ব্লকস(Code::Blocks) এ প্রোগ্রাম লেখা

আগেই বলা হয়েছে কোড::ব্লকস(Code::Blocks) কম্পাইলার নয়, আইডিই। অর্থাৎ কোড::ব্লকস(Code::Blocks) এর মধ্যে কম্পাইলার, ইডিটর ইত্যাদি সংযুক্ত আছে।  কোড::ব্লকস(Code::Blocks) এ প্রোগ্রাম লেখার জন্য নিচের ধাপ গুলো অনুসরণ করোঃ-

ক) কোড::ব্লকস(Code::Blocks) সফটওয়্যারটি Open করো।

codeblocks_4

খ) এবার একটি নতুন একটি Empty File খুলতে হবে। File >>New >>Empty File

codeblocks_5

গ) এখন ফাইলটি save করো। খেয়াল রাখবে যেখানে save করছো ওই খানেই তোমার সকল সি প্রোগ্রামগুলো রাখতে, তাহলে পরবর্তীতে খুঁজে পেতে সুবিধা হবে। ফাইলের নাম তোমার ইচ্ছা মতো দিলেই হবে, তবে পরবর্তীতে যাতে বোঝা যায় এটা কিসের কোড সেইভাবেই নাম দেয়া ভালো। save করার সময় অবশ্যই ফাইলের নামের শেষে .c রাখতে হবে। আমি আমার সি প্রোগ্রাম এর নাম দিয়েছি HelloWorld.c

codeblocks_6

ঘ) এবার সি প্রোগ্রামটি লিখে ফেলি।

#include <stdio.h>   
int main()
{
    printf("Hello World.\n");
    return 0;
}

codeblocks_7

ঙ) কোড::ব্লকস(Code::Blocks)-এ Build and run এ ক্লিক করলে আমাদের প্রগ্রামটি প্রথমে কম্পাইল হবে ও পরে run করবে।

codeblocks_8

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


সি প্রোগ্রামিং শেখার বাংলা বই “সহজে শিখি সি প্রোগ্রামিং” – এর ইবুক (পিডিএফ) পেতে ক্লিক করুন। বিকাশের মাধ্যমে সর্বনিম্ন ১০০ টাকা পরিশোধ করার মাধ্যমে সংগ্রহ করে নিন এই বইটি।

সি প্রোগ্রাম এর গঠন ও একটি একটি সরল সি প্রোগ্রাম

সি প্রোগ্রাম এর গঠন ও একটি একটি সরল সি প্রোগ্রাম

সি প্রোগ্রাম এর গঠন ও একটি একটি সরল সি প্রোগ্রাম

একটি সরল সি প্রোগ্রাম

যেহেতু সকল C প্রোগ্রাম এর common syntax একই রকম তাই প্রথমে আমরা এমন একটা খুবই সাধারণ C প্রোগ্রাম দেখি যা run করলে Hello World print করবে। এই প্রোগ্রামটি বুঝতে পারলে C এর অন্যান্য প্রোগ্রাম গুলো বুঝতে সুবিধা হবে।

#include <stdio.h>   
int main()
{
    printf("Hello World.\n");
    return 0;
}

>> উপরের প্রোগ্রামটিতে প্রথম লাইনে #include হল Preprocessor Commands। stdio.h হেডার ফাইল printf() এর তথ্য ধারণ করে।
>> দ্বিতীয় লাইনেint main() বিদ্যমান। প্রতিটি সি প্রোগ্রামএ main() ফাংশন থাকবেই।int হচ্ছে main() ফাংসন এর return type অর্থাত integer টাইপ value return করবে।
>> উপরের প্রোগ্রামটিতে

{
    printf("Hello World.\n");
    return 0;
}

প্রোগ্রাম এর এই অংশকে প্রোগ্রাম এর body বলে।
>> এখানে printf () হচ্ছে নিজে আর একটা ফাংসন যা কোনো কিছু print করে এবং ইহা stdio.h এর সম্পর্কিত। অর্থাত এই ফাংসনটা stdio.h এর মাঝে সঙ্গায়িত আছে।এখানে return 0 ; বোঝায় যে main () ফাংসন 0(zero) return করবে।

সি প্রোগ্রাম লেখার পূর্বে

সি প্রোগ্রামিং ভাষায় যেকোনো কোড লেখার পূর্বেই নিচের অংশটুকু লিখে ফেলবে। কেননা সব সি প্রোগ্রাম এ নিচের অংশটুকু থাকবেই।

#include <stdio.h>   
int main()
{
    /*কোড এখানে লিখতে হবে।*/
    return 0;
}

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


সি প্রোগ্রামিং শেখার বাংলা বই “সহজে শিখি সি প্রোগ্রামিং” – এর ইবুক (পিডিএফ) পেতে ক্লিক করুন। বিকাশের মাধ্যমে সর্বনিম্ন ১০০ টাকা পরিশোধ করার মাধ্যমে সংগ্রহ করে নিন এই বইটি।

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

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

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

কম্পাইলার

বর্তমানের প্রোগ্রামিং ভাষাগুলো মানুষের বোধগোম্য করে তৈরি করা হয় যাতে সহজেই কোড লেখা যায়। আমরা যেই প্রোগ্রাম লিখি সি/সি++/জাভা ইত্যাদি প্রোগ্রামিং ভাষায় আমাদের কম্পিউটার তা বুঝতে পারে না। কম্পিউটারের মাইক্রোপ্রসেসর নির্দিষ্ট একটা ভাষা বোঝে, তা হলো মেশিনকোড। মেশিনকোড 0 ও 1 এর সমন্বয়ে গঠিত। কম্পিউটারের মাইক্রোপ্রসেসর এই মেশিনকোড বুঝতে পারে এবং সেই অনুযায়ী কর্মসম্পাদন করে।
কোন প্রোগ্রামের সোর্সকোড কে কম্পাইলার অ্যাসেম্বলি কোডে পরিনত করে, পরবর্তীকালে অ্যাসেম্বলার অ্যাসেম্বলি কোডকে মেশিনকোড এ পরিনত করে।

কম্পাইলার এক ধরনের কম্পিউটার প্রোগ্রাম বা প্রোগ্রাম-সমষ্টি যা কোন কম্পিউটার ভাষায় লেখা প্রোগ্রামকে অপর একটি কম্পিউটার ভাষার প্রোগ্রামে (যা সাধারণত বাইনারি সংখ্যা দিয়ে গঠিত) পরিণত করে।

সি প্রোগ্রামিং এর জন্য প্রয়োজনীয় সি কম্পাইলার

সি প্রোগ্রামিং ভাষায় লেখা প্রোগ্রাম কে কম্পাইল করার জন্য আমারা অনেক রকম কম্পাইলার ব্যবহার করে থাকি। আমরা এখানে Code::Blocks ব্যবহার করবো। কোড::ব্লকস(Code::Blocks) একটি ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট(Integrated Development Environment) ওরফে হয় (IDE) । অর্থাৎ কোড::ব্লকস(Code::Blocks) কম্পাইলার কিংবা linker নয়, কোড :: ব্লকস একটি কম্পাইলার সংকলন যাতে (MinGW / GCC) অন্তর্ভুক্ত থাকে।

কয়েকটি সি/সি প্লাস প্লাস কম্পাইলারের নাম

  1. ANSI C++
  2. Turbo C++
  3. Borland C++
  4. Code::Blocks
  5. Microsoft C++

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


সি প্রোগ্রামিং শেখার বাংলা বই “সহজে শিখি সি প্রোগ্রামিং” – এর ইবুক (পিডিএফ) পেতে ক্লিক করুন। বিকাশের মাধ্যমে সর্বনিম্ন ১০০ টাকা পরিশোধ করার মাধ্যমে সংগ্রহ করে নিন এই বইটি।

[সি প্রোগ্রামিং – সি কম্পাইলার]

কোড::ব্লকস (Code::Blocks) ইন্সটল করা

কোড::ব্লকস (Code::Blocks) ইন্সটল করা

কোড::ব্লকস (Code::Blocks) ডাউনলোড করা

কোড::ব্লকস (Code::Blocks) ডাউনলোড করা  অনেক সহজ। কোড::ব্লকস (Code::Blocks) একটি ফ্রি সফটওয়্যার।কোড::ব্লকস (Code::Blocks) ডাউনলোড করা র জন্য নিচের ধাপ গুলো অনুসরণ কর –
(১) কোড::ব্লকস (Code::Blocks) ডাউনলোড করার জন্য প্রথমে www.codeblocks.org এই ওয়েব সাইটে যেতে হবে অথবা এখানে ক্লিক করো।

(২) www.codeblocks.org এই ওয়েব সাইটের ডাউনলোড এ ক্লিক করুন বা www.codeblocks.org/downloads এই লিঙ্ক এ যেতে হবে অথবা এখানে ক্লিক করো।

(৩) www.codeblocks.org/downloads এই ওয়েব সাইটের download the binary release এ ক্লিক করুন অথবা এখানে ক্লিক করুন। নিচের মতো একটি পেজ আসবে। উইন্ডোজ বা লিনাক্স এর জন্য যেকোনো একটি ডাউনলোড করে নিলেই হবে। তবে লিনাক্স এ ৩২/৬৪ বিট এর জন্য আলাদা ভার্সন বিদ্যমান তা দেখে নিতে হবে। (অবশ্যই >১০০ মেগাবাইটের ফাইল ডাউনলোড করতে হবে)

codeblocks_3

কোড::ব্লকস (Code::Blocks) ইন্সটল করা

কোড::ব্লকস (Code::Blocks) ইন্সটল করা করা অনেক সহজ। নিচের ধাপ গুলো অনুসরণ করলেই হবে-

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

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

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

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

সি প্রোগ্রামিং নিয়ে আলোচনা করার পূর্বে আমরা উচ্চ স্তরের প্রোগ্রামিং ভাষা কি জেনে নেই।

উচ্চ স্তরের ভাষা

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

বেশীরভাগ প্রোগ্রামিং ভাষা, উচ্চ স্তরের ভাষা বলে মনে করা হয়। উদাহরণ –

  • সি
  • সি ++
  • সি শার্প
  • পাইথন
  • পি এইচ পি
  • জাভা
  • জাভাস্ক্রিপ্ট

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

সি প্রোগ্রামিং ভাষার আবিষ্কার

সি প্রোগ্রামিং ভাষা এর নির্মাতা ডেনিস রিচি। ডেনিস রিচি বেল ল্যাবে ৭০এর দশকে সি প্রোগ্রামিং ভাষাটি তৈরি করেন। বর্তমানে পাইথন, সি++, জাভা, পার্ল সহ অনেক প্রোগ্রামিং ভাষার প্রচলিত আছে, যদিও এদের বেশির ভাগের উপর সি এর প্রভাব লক্ষ্য করা যায়। ১৯৮৯ সালে আমেরিকান মাননিয়ন্ত্রক সংস্থা  সি (আনসি সি (ANSI C)) নামে সি এর ১টি আদর্শ ভার্সন তৈরির করে যা পৃথিবীর সর্বত্র প্রচলিত আছে।

সফটওয়্যার তৈরির জন্য Java, C#, PHP, Python শিখা জরুরি। আবার ওয়েব অ্যাপ্লিকেশান তৈরির জন্য HTML, PHP, Python ইত্যাদি জানতে হয়। অ্যান্ডয়েড এ অ্যাপ্লিকেশান তৈরির জন্য Java, xml এবং আই ফোন এর অ্যাপ্লিকেশান তৈরির জন্য অব্জেক্টিভ সি জানা জরুরি। আর এসব প্রোগ্রামিং ভাষা শিখার জন্য সবার আগে সি জানা থাকলে অনেক সুবিধা।

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

সি প্রোগ্রামিং ভাষার ব্যবহার

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

  1. Operating Systems
  2. Language Compilers
  3. Text Editors
  4. Network Drivers
  5. Language Interpreters

রোবটিক্সে সি প্রোগ্রামিং

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

নিচের কুইজে অংশ গ্রহণ করার পূর্বে উপরের লেকচারটি পুনরায় দেখে নাও -

Email
1.

সি প্রোগ্রামিং ভাষা এর নির্মাতা কে ?

2.

উচ্চস্তরের ভাষায় লেখা প্রোগ্রামকে কীভাবে কম্পিউটারকে বুঝিয়ে দিতে হয়?

3.

‘সি’ হচ্ছে - 

4.

যান্ত্রিক ভাষাকে কোন স্তরের ভাষা বলা হয়?

5.

কম্পিউটারের যান্ত্রিক ভাষার বর্ণগুলো কী কী?

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


সি প্রোগ্রামিং শেখার বাংলা বই “সহজে শিখি সি প্রোগ্রামিং” – এর ইবুক (পিডিএফ) পেতে ক্লিক করুন। বিকাশের মাধ্যমে সর্বনিম্ন ১০০ টাকা পরিশোধ করার মাধ্যমে সংগ্রহ করে নিন এই বইটি।

 

[সি টিউটোরিয়াল

Tutorial on C Programming in Bangla ]