অধ্যায় শুরুর আগে একটু খোশগল্প করা যাক । এইযে মিস্টার বাবুসোনা খোশগল্পের কথা শুনে আবার চলে যাচ্ছ নাকি ? আচ্ছা , তুমি কি জান ভেরিয়েবল , কনস্ট্যান্ট এসব কি ? ভেরিয়েবল হলো এতে কোনো কিছু রাখা যায় ( যেমন 5, 3, তোমার নাম ) আবার পরিবর্তনও করা যায়, মানে আগেরটাকে খেদায়ে দিয়ে অন্য কিছু রাখা যায় । ঠিক এ যুগের প্রেমিক - প্রেমিকাদের মত । একটা ছেলের দশটা গার্লফ্রেন্ড থাকলে সবাই তার গার্লফ্রেন্ড । কিন্তু যখন যার সাথে সম্পর্ক থাখে তখন সে গার্লফ্রেন্ড, অন্য সময় অন্যজন । আর constant হলো আমাদের বাপ-দাদার আমলের প্রেমিক-প্রেমিকার মত, তারা একজনকে নিয়েই সন্তুষ্ট থাকে । অর্থাৎ কনস্ট্যান্ট এর মান বদলানো যায় না ।
আর ডাটা কি বলার থেকে কয়েক টা ডাটার উদাহরণ দিই :
numeric data : ( 1, 5, 4.2, -3, etc. )
character data : ( single words, names, addresses, etc. )
graphic data : ( drawings, photographs, etc. )
ইত্যাদি ।
তাহলে চলো আমরা ছোট ছোট কয়েকটা প্রোগ্রাম লিখে ফেলি । তোমরা সবগুলো প্রোগ্রাম চালিয়ে দেখবে । পারলে কোডগুলো একটু পরিবর্তন করে লিখে আবার কম্পাইল ও রান করে দেখবে ।
নিচের কোডগুলো এডিটরে লিখে রান করাও ।
প্রোগ্রামটি রান করালে স্ক্রিনে 13171 সংখ্যাটি দেখতে পাবে ।
এখানে num হলো একটি ভেরিয়েবল ।
আমরা num এর মান 13171 বসালাম (num = 13;) । এখানে 13171 একটি ইন্টিজার ( integer, পূর্ণসংখ্যা, -n...,-2,-1,0,1,2,3,....,+n , ভগ্নাংশ নেই )
আমরা যে num ভেরিয়েবলে ইন্টিজার টাইপ ডাটা রাখব তা কিন্তু আগেই বলে দিয়েছি : int num; ( নাহলে কম্পিউটার বুঝবে কেমন করে যে এতে ইন্টিজার টাইপ ডাটা থাকবে?! )
তারপর printf() ফাংশন দিয়ে num ভেরিয়েবলের মান প্রিন্ট করেছি । তোমরা দেখো printf() ফাংশনে ডবল কোটেশানের ভেতর যে %d লিখলাম সেটি কিন্তু আউটপুটে আসে নি । আসলে %d আউটপুটে না এসে এর জায়গায় একটি ইন্টিজার টাইপ ডাটা আসে । আর কোন ডাটাটি %d এর জায়গায় বসবে তা ডবল কোটেশনের পর একটি কমা দিয়ে লিখে দিতে হয় printf("%d", num);
এখানে মোর্দা কথাটি হলো :
আর ডাটা কি বলার থেকে কয়েক টা ডাটার উদাহরণ দিই :
numeric data : ( 1, 5, 4.2, -3, etc. )
character data : ( single words, names, addresses, etc. )
graphic data : ( drawings, photographs, etc. )
ইত্যাদি ।
তাহলে চলো আমরা ছোট ছোট কয়েকটা প্রোগ্রাম লিখে ফেলি । তোমরা সবগুলো প্রোগ্রাম চালিয়ে দেখবে । পারলে কোডগুলো একটু পরিবর্তন করে লিখে আবার কম্পাইল ও রান করে দেখবে ।
নিচের কোডগুলো এডিটরে লিখে রান করাও ।
#include <stdio.h>
int main()
{
int num;
num = 13171;
printf("%d", num);
return 0;
}
প্রোগ্রাম : ২.১
প্রোগ্রামটি রান করালে স্ক্রিনে 13171 সংখ্যাটি দেখতে পাবে ।
এখানে num হলো একটি ভেরিয়েবল ।
আমরা num এর মান 13171 বসালাম (num = 13;) । এখানে 13171 একটি ইন্টিজার ( integer, পূর্ণসংখ্যা, -n...,-2,-1,0,1,2,3,....,+n , ভগ্নাংশ নেই )
আমরা যে num ভেরিয়েবলে ইন্টিজার টাইপ ডাটা রাখব তা কিন্তু আগেই বলে দিয়েছি : int num; ( নাহলে কম্পিউটার বুঝবে কেমন করে যে এতে ইন্টিজার টাইপ ডাটা থাকবে?! )
তারপর printf() ফাংশন দিয়ে num ভেরিয়েবলের মান প্রিন্ট করেছি । তোমরা দেখো printf() ফাংশনে ডবল কোটেশানের ভেতর যে %d লিখলাম সেটি কিন্তু আউটপুটে আসে নি । আসলে %d আউটপুটে না এসে এর জায়গায় একটি ইন্টিজার টাইপ ডাটা আসে । আর কোন ডাটাটি %d এর জায়গায় বসবে তা ডবল কোটেশনের পর একটি কমা দিয়ে লিখে দিতে হয় printf("%d", num);
এখানে মোর্দা কথাটি হলো :
- num নামের একটি ভেরিয়েবল যে প্রোগ্রামে আছে সেটি আগেই বলে দিতে হবে এবং তার ডাটা টাইপও উল্লেখ করতে হবে ( int num; ) । একে ভেরিয়েবল ডিক্লারেশন বলে । শুধু ভেরিয়েবল ডিক্লারেশনের সময়ই তার ডাটা টাইপ বলে দিতে হয় , পরবর্তীতে শুধু ভেরিয়েবলটির নাম লিখলেই হবে । ভেরিয়েবল ডিক্লারেশনের পর সেমিকোলন দিতে হয় ।
- আমরা ভেরিয়েবলের মান লিখে দিলাম ( num = 13171; ) । একে বলে অ্যাসাইন ( assign ) করা । প্রোগ্রামে ভেরিয়েবল অ্যাসাইনের সাথে গাণিতিক সমীকরণের কোনো সম্পর্ক নেই । অর্থাৎ, a = b হলে b = a হবে না ।
- ইন্টিজার টাইপ ভেরিয়েবলের মান প্রিন্ট করার জন্য printf() ফাংশনে %d ব্যবহৃত হয় । %d এর জায়গায় কোন ইন্টিজার ভেরিয়েবলের মান প্রিন্ট হবে তা ডবল কোটেশনের পর কমা (,) দিয়ে বলে দিতে হবে ( printf("%d", num); ) । %d কিন্তু আউটপুটে দেখা যাবে না । তোমরা লক্ষ করো, কমার পর আমি একটি স্পেস দিয়েছি । এটি করেছি কোড পড়ার সুবিধার জন্য । স্পেস না দিলেও চলবে । আর একটি কথা, ইন্টিজার টাইপ ডাটা প্রিন্ট করার জন্য %i ও ব্যবহার করা যায় । তবে আমি %d ই ব্যবহার করব ।
#include <stdio.h>
int main()
{
int num1;
int num2;
int sum;
num1 = 17;
num2 = 28;
sum = num1 + num2;
printf("Sum is %d", sum);
return 0;
}
প্রোগ্রাম : ২.২
প্রোগামটির আউটপুট হবে : Sum is 45
এখানে %d এর জায়গায় sum এর মান প্রিন্ট হয়েছে । আর sum এর মান হচ্ছে num1 ও num2 এর যোগফল ।
আমরা চাইলে প্রোগ্রামটি এভাবেও লিখতে পারতাম :
#include <stdio.h>
int main()
{
int num1, num2, sum;
num1 = 17;
num2 = 28;
sum = num1 + num2;
printf("Sum is %d", sum);
return 0;
}
প্রোগ্রাম : ২.৩
আবার এভাবেও :
#include <stdio.h>
int main()
{
int num1 = 17, num2 = 28, sum;
sum = num1 + num2;
printf("Sum is %d", sum);
return 0;
}
প্রোগ্রাম : ২.৪
আরেকটু ভালোভাবে করতে চাইলে এভাবে :
#include <stdio.h>
int main()
{
int num1 = 17, num2 = 28, sum;
sum = num1 + num2;
printf("%d + %d = %d", num1, num2,
sum);
return 0;
}
প্রোগ্রাম : ২.৫
কিংবা এভাবে :
#include <stdio.h>
int main()
{
int num1 = 17, num2 = 28, sum;
sum = num1 + num2;
printf("%d = %d + %d", sum, num1,
num2);
return 0;
}
প্রোগ্রাম : ২.৬
আবার যদি মনে করো sum ভেরিয়েবলটিই ব্যবহার করবে না তবে এভাবে :
#include <stdio.h>
int main()
{
int num1 = 17, num2 = 28;
printf("%d + %d = %d", num1, num2,
num1 + num2);
return 0;
}
প্রোগ্রাম : ২.৭
কী আনন্দ ! তাই না ?
এখন তুমি গুন (*) , ভাগ (/) , বিয়োগ (-) করার জন্য প্রোগ্রাম লিখার চেষ্টা করতে পারো ।
আচ্ছা , আমরা যদি ২.৭ নম্বর প্রোগ্রামে num1 -এর মান 17 না দিয়ে 17.5 দিতাম তাহলে কি হতো বলো তো ? ২.৭ নম্বর প্রোগ্রামে num1 -এর মান 17.5 দিয়ে কম্পাইল ও রান করো ।
আউটপুট কি ? আউটপুট : 17 + 28 = 45
তার মানে দশমিক বিন্দু সহ তারপরের অংশ বাদ পড়েছে । বাদ তো পড়বেই । কেননা num1 হচ্ছে ইন্টিজার টাইপের ভেরিয়েবল যাতে কেবল পূর্ণসংখ্যা রাখা যায় । এতে দশমিকযুক্ত সংখ্যা রাখলে এটি কেবল দশমিকের আগের অংশটুকু গ্রহণ করবে । মানে তুমি যদি int num = 10.99; দাও তবে num -এর মান হবে শুধু 10 ।
এখন তুমি যদি তোমার যোগের প্রোগ্রামে বাস্তব সংখ্যা ( real number, ভগ্নাংশ সহ সকল সংখ্যা , যেমন 2, 4.2, -3 ইত্যাদি , সংখ্যারেখার ওপর সকল সংখ্যাই কিন্তু বাস্তব সংখ্যা ) রাখতে চাও তবে তোমাকে আরেক ধরনের ডাটা টাইপ ব্যবহার করতে হবে । সেটি হচ্ছে ডবল ( double ) টাইপ । এজন্য ভেরিয়েবল ডিক্লারেশনের সময় int এর পরিবর্তে double লিখতে হবে ।
#include <stdio.h>
int main()
{
double num1 = 17.5, num2 = 28.9;
printf("%lf + %lf = %lf\n", num1,
num2, num1 + num2);
printf("%0.2lf + %0.0lf = %0.3lf",
num1, num2, num1 + num2\n);
return 0;
}
প্রোগ্রাম : ২.৮
আউটপুট :
17.500000 + 28.900000 = 46.400000
17.50 + 29 = 46.400
বুঝতেই পারছ ডাবল টাইপ ডাটা প্রিন্ট করার জন্য %lf ( ছোট হাতের এল, L ) ব্যবহার করতে হয় ।
আর %0.2lf , %0.0lf ইত্যাদি দিলে কি হয় তা তো আউটপুট দেখেই বুঝতে পারছ ।
\n ( ব্যাকশ্লাস n ) দিলে কি হয় বুঝতে না পারলে \n বাদ দিয়ে প্রোগ্রামটি চালাও ।
তুমি দেখো, আমাদের প্রোগ্রামে দুই printf() ফাংশনের ভেতরে num1 ও num2 দুইবার যোগ করতে হয়েছে । যোগের কাজটি একবার করেই করা যেত । কাজটি তোমরা করতে পারো ।
এখন তোমরা যদি চাও তবে ডবল টাইপ ভেরিয়েবলের মান ইন্টিজার টাইপ ভেরিয়েবলে নিয়ে কাজ করতে পারো । নিচের উদাহরণটি দেখো :
#include <stdio.h>
int main()
{
double num1 = 17.5;
int num2 = num1;
printf("Value of num2 is %d\n",
num2);
printf("Value of num1 is %lf\n",
num1);
return 0;
}
প্রোগ্রাম : ২.৯
তোমরা দেখো num2 এর মান 17 আসবে যদিও num2 = num1 । এই ব্যাপারটিকে বলে টাইপ কাস্ট । টাইপ কাস্ট করে ডাবল টাইপ সংখ্যাকে ইন্টিজার টাইপ সংখ্যাই পরিনত করা হয়েছে । আর একটি ব্যাপার খেয়াল করো, টাইপ কাস্ট করার পরও num1 এর মানের কোনো পরিবর্তন হয়নি ।
আচ্ছা , আমরা তো যোগ - বিয়োগ , গুন - ভাগ এসব করা শিখে ফেললাম , তাই না ? আমরা আমাদের প্রোগ্রামে কোন সংখ্যাগুলো যোগ করব তা আমাদেরকে কোডের ভেতর বলে দিতে হচ্ছে । কিন্তু আমরা যদি চাই তবে সংখ্যাগুলো কোডের ভেতরে না রেখে যে প্রোগ্রামটি চালাবে তার কাছ থেকে ইনপুট নিয়ে জেনে নিতে পারি !
ইনপুট নেওয়ার জন্য আমরা scanf() ফাংশন ব্যবহার করব ।
#include <stdio.h>
int main()
{
int num1, num2, sum;
printf("Enter a number : ");
scanf("%d", &num1);
printf("Enter another number : ");
scanf("%d", &num2);
sum = num1 + num2;
printf("Sum is : %d\n", sum);
return 0;
}
প্রোগ্রাম : ২.১০
আউটপুটে তোমার কাছে একটি সংখ্যা চাওয়া হবে । তুমি একটি সংখ্যা লিখে এন্টার বোতামে চাপ দাও । এরপর তোমার কাছে আরেকটি সংখ্যা চাওয়া হবে । তুমি আরো একটি সংখ্যা লিখে এন্টার চাপলে সংখ্যা দুটির যোগফল দেখতে পাবে ।
কোডের ব্যাখ্যা : scanf("%d", &num1); এখানে ডবল কোটেশানের ভেতর %d দিয়ে scanf() ফাংশনকে বলা হচ্ছে একটি ইন্টিজার টাইপ ডাটা ব্যবহারকারীর কাছ থেকে ইনপুট নিতে হবে । আর &num1 ( & -এর উচ্চারণ - এমপারসেন্ড ) দিয়ে বলা হচ্ছে যে ডাটাটি ইনপুট নেওয়া হবে তা num1 ভেরিয়েবলের মাঝে অ্যাসাইন করে দিতে হবে ।
আমরা একটি scanf() ফাংশন দিয়েও প্রোগ্রামটি করতে পারি :
#include <stdio.h>
int main()
{
int num1, num2, sum;
printf("Enter two integers : ");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("Sum is : %d\n", sum);
return 0;
}
প্রোগ্রাম : ২.১১
এই প্রোগ্রামটি দিয়ে আমরা কেবল পূর্ণসংখ্যা যোগ করতে পারব । এখন তোমরা বাস্তব সংখ্যা যোগ করার জন্য একটি প্রোগাম লিখে ফেলো ।
এখন আমরা আরেক ধরণের ডাটা টাইপ দেখব । আর সেটি হচ্ছে char ( character ) টাইপ । char টাইপ ভেরিয়েবলে শুধুমাত্র ইংরেজি বর্ণমালার অক্ষর , চিহ্ন , সংখ্যা এসব রাখা যায় । তবে রাখা যাবে কেবল একটি । মানে এতে একাধিক অক্ষর, চিহ্ন বা সংখ্যা রাখা যাবে না এবং অন্য ভাষার কোনো কিছুও এতে রাখা যাবে না । নিচের প্রোগ্রামটি কম্পিউটারে রান করাও :
#include <stdio.h>
int main()
{
char name = 'A';
printf("%c", name);
return 0;
}
প্রোগ্রাম : ২.১২
প্রোগ্রামটি চালালে স্ক্রিনে দেখবে A বর্ণটি প্রদর্শিত হচ্ছে । বুঝতেই পারছ char টাইপ ভেরিয়েবলে কোনো কিছু সরাসরি রাখতে হলে তার দুইপাশে সিঙ্গেল কোটেশন দিতে হয় । আর একে প্রিন্ট কিংবা ইনপুট নেওয়ার জন্য %c ব্যবহার করতে হয় ।
এখন তোমাদের কাজ হচ্ছে একটি scanf() ফাংশন ব্যবহার করে প্রোগ্রামটি লেখা ।
আশা করি তোমরা প্রোগ্রামটি লিখে ফেলেছ । আর যদি না পারো তবে প্রথম অধ্যায় থেকে আবার শুরু করো ।
তোমরা যে scanf() ফাংশন দিয়ে ব্যবহারকারীর কাছ থেকে char টাইপ ডাটা ইনপুট নিলে সেই কাজটি আমরা আরেকটি ফাংশন দিয়েও করতে পারি । সেটি হচ্ছে getchar() ( get + character ) । নিচের উদাহরণটি দেখো :
#include <stdio.h>
int main()
{
char first_letter;
printf("Enter the first letter of
your name : ");
first_letter = getchar();
printf("The first letter of your
name is %c\n", first_letter);
return 0;
}
প্রোগ্রাম : ২.১৩
দেখো getchar() ফাংশনটি scanf() ফাংশনের মতোই কাজ করবে ।
এখন নিচের প্রোগ্রামটি দেখো :
#include <stdio.h>
int main()
{
int num1 = 11, num2 = 5;
printf("%d / %d = %d\n", num1,
num2, num1 / num2);
num2 = 0;
int qoutient = num1 / num2;
printf("%d / %d = %d\n", num1,
num2, qoutient);
return 0;
}
প্রোগ্রাম : ২.১৪
এখন তোমাদের কাজ হচ্ছে প্রোগ্রামে যে ভাগচিহ্ন ব্যবহার করে ভাগ করা হয়েছে তা সরাসরি ব্যবহার না করে একটি char টাইপ ভেরিয়েবলে রেখে তারপর করা ।
[ কিছু কথা : আমরা এতক্ষন তিন ধরণের ডাটা টাইপ দেখলাম । কিন্তু এদের মেমোরি সম্পর্কে কিছু জানা হলো না ।
ইন্টিজার টাইপ ডাটার জন্য মেমোরিতে চার বাইট ( 4 byte ) জায়গা লাগে । 1 byte = 8 bit । তাহলে চার বাইট সমান বত্রিশ বিট । সুতরাং এতে সংখ্যা রাখা যাবে 2³² টি ( বাইনারি সংখ্যার ভিত্তি 2 ) । 2³² = 4294967296 । সুতরাং ইন্টিজার টাইপ ডাটার রেঞ্জ হলো -2146473648 থেকে 2146473647 মোট 4294967296 টি সংখ্যা । যার মানে হলো তুমি ইন্টিজার টাইপ ভেরিয়েবলে 2146473647 -এর চেয়ে বড় কোনো সংখ্যা রাখতে পারবে না । যদি রাখো তবে তোমার প্রোগ্রামের আউটপুট ভুলভাল আসবে । ব্যাপারটি তোমরা পরীক্ষা করে দেখতে পারো ।
অন্যদিকে double টাইপ ডাটার জন্য মেমোরিতে আট বাইট জায়গা লাগে । char টাইপ ডাটার জন্য লাগে মাত্র এক বাইট । তবে মেমোরির এই ধারনক্ষমতা ডিভাইসের ভিন্নতার কারনে ভিন্ন হতে পারে ।
এই তিন ডাটা টাইপ ছাড়াও সি প্রোগ্রামে _Bool নামে আরেক ধরনের ডাটা টাইপ রয়েছে । এতে কেবল 0 আর 1 এই দুটি সংখ্যা রাখা যায় । এর ইনপুট - আউটপুটের জন্য %i ব্যবহৃত হয় ।
আবার তোমরা কিছু কিছু বইতে দেখতে পাবে যে double টাইপের ডাটা float দিয়ে প্রকাশ করা হয়েছে । float -এর জন্য %f ব্যবহার করা হয় । ]
তোমরা তো অনেকগুলো ডাটা টাইপ শিখে গেলে ! সি ল্যাঙ্গুয়েজে আরোও বেশকিছু ডাটা টাইপ রয়েছে । আবার ইনপুট - আউটপুটেরও রয়েছে নানা পদ্ধতি । তবে আপাতত যা শিখেছ তা দিয়েই অনেক প্রোগ্রাম লিখে ফেলতে পারবে । যেমন নিচের প্রোগ্রামটি :
#include <stdio.h>
int main()
{
int my cash = 23;
int 5pen@tk = 25;
return 0;
}
প্রোগ্রাম : ২.১৫
উপরের প্রোগ্রামটি কম্পাইল করলে একটি এরর মেসেস পাবে । তোমরা কি বলতে পারবে ভুলটি কোথায় ?
আসলে আমরা ভেরিয়েবল ডিক্লারেশন করতে ভুল করে ফেলেছি । ভেরিয়েবল ডিক্লারেশনের কিছু নিয়ম - কানুন আছে যা মেনে না চললে কম্পাইলার এরর দেখাবে ।
ভেরিয়েবলের নাম এক বা একাধিক অক্ষরের হতে পারে । অক্ষরগুলো হতে পারে a-z , A-Z , 0-9 এবং আন্ডারস্কোর বা আন্ডারবার ( _ ) । তবে একাধিক অক্ষরের ক্ষেত্রে প্রথম অক্ষরটা অঙ্ক বা ডিজিট হতে পারবে না । আর ভেরিয়েবলের নামগুলো অর্থপূর্ণ হলে ভালো হয় । যেমন , যোগফল রাখার জন্য ভেরিয়েবলের নাম sum দিলেই ভালো হয় , যদিও y বা হাত্তি - ঘোড়া নাম দিলেও কম্পাইলার আপত্তি করবে না , বরং লক্ষীসোনার মত খুশিমনে তা করবে । অর্থপূর্ণ নাম দিলে বুঝতে সুবিধা হয় ভেরিয়েবলটি কি উদ্দেশ্যে ব্যবহার করা হয়েছে । বুঝতে পেরেছ কি ?
এখন তোমরা ২.১৫ প্রোগ্রামটি ঠিক করে লেখো । প্রোগ্রামটি চালালে কি দেখবে ? কিছুই দেখবে না । কেননা তুমি তোমার প্রোগ্রামে ভেরিয়েবলে কিছু মান অ্যাসাইন করা ছাড়া কম্পিউটারকে কিছু করতে বলো নি । তোমরা এখন কাজের কিছু প্রোগ্রাম লিখতে পারো ।
আচ্ছা , কেউ যদি তোমাকে একটা প্রোগ্রাম লিখে দিয়ে জিজ্ঞেস করে প্রোগ্রামটি কি কাজ করবে তা বলতে তাহলে তুমি কি করবে বলো তো ? এজন্য তোমাকে পুরো কোডটি পড়তে হবে । প্রোগ্রামটি কি কাজ করবে তা যদি প্রোগ্রামের শুরুতেই লিখে রাখা হত তবে তোমাকে পুরো কোডটি পড়তে হত না । ব্যাপার টা মজার হতো না, বলো? এই মজার আর দরকারি জিনিসটি আমরা করতে পারি ! প্রোগ্রামের কোডের ভেতরে তুমি তোমার নিজের ভাষা ব্যবহার করতে পারো । একে বলে কমেন্ট করা । কম্পাইলার কমেন্টগুলো কে প্রোগ্রামের অংশ ধরবে না ।
এক লাইনের কমেন্ট হলে // চিহ্ন দিয়ে কমেন্ট শুরু করতে পারো । আর একাধিক লাইন থাকলে /* দিয়ে শুরু ও */ দিয়ে শেষ করতে হবে ।
/*This program adds two integer values
and displays the result.
Note that this is a multi-line
comment*/
#include <stdio.h>
int main()
{
//Declare varibles
int num1, num2, sum;
//Assign values and calculate their
sum
num1 = 80;
num2 = 72;
sum = num1 + num2;
//Display the result
printf("The sum of %d and %d is
%d\n", num1, num2, sum);
return 0;
}
প্রোগ্রাম : ২.১৬
প্রোগ্রামে কমেন্ট দেওয়ার অভ্যাস একটি সুন্দর অভ্যাস । প্রোগ্রামের গুরুত্বপূর্ন লজিক গুলো কমেন্ট আকারে ব্যাখ্যা করলে যেই তোমার কোড পড়বে তার বুঝতে সুবিধে হবে । কাজটি না করলে পরবর্তীতে তুমি যখন কোড টি পড়বে তখন লজিকগুলো নিয়ে নতুন করে ভাবতে হবে -সেগুলো কি কাজ করবে । কি দরকার অত্ত ঝামেলায় যাওয়ার ?
অনুশীলন
- নিচের প্রোগ্রামটি কম্পিউটারে না চালিয়ে বলো তো আউটপুট কি হবে ? তারপর কম্পাইল ও রান করে উত্তর মিলিয়ে নাও ।
#include <stdio.h>
int main()
{
int num1, num2;
num1 = 5;
num2 = num1;
num1 = 7;
printf("%d", num2);
return 0;
}
-
নিচের প্রোগ্রামটি সঠিক করে লিখে কম্পিউটারে চালিয়ে দেখো :
#include <stdio.h>
int main()
{
int a = 50;
b = 80;
sum = a + b;
int sum;
printf("%d", sum);
return 0;
}
পরবর্তী অংশ -
পেজে প্রবেশের সময় : Thu Apr 24 2025 14:15:49 GMT+0000 (Coordinated Universal Time)
No comments:
Post a Comment