সি প্রোগ্রামিং – লেকচার ৩: মেমোরিতে ভেরিয়েবলের অ্যাড্রেস, printf ফাংশন, প্রথম প্রোগ্রাম

সি প্রোগ্রামিং – লেকচার ৩: মেমোরিতে ভেরিয়েবলের অ্যাড্রেস, printf ফাংশন, প্রথম প্রোগ্রাম





মেমোরিতে ভেরিয়েবলের অ্যাড্রেস

সি ল্যাংগুয়েজে আমরা যেসব ভেরিয়েবল ব্যবহার করি সেগুলো মেমোরির কোন লোকেশনে আছে তা বেশিরভাগ সময়ে জানার দরকার হয় না। তবে কিছু কিছু সময়ে সঠিক address জানার সরকার হয় না। তবে কিছু কিছু সময়ে দরকার হয়। যেমন scanf ফাংশনটা ব্যবহার করার সময় ভেরিয়েবলের address ব্যবহার করা হয়।
ধরা যাক আমাদের একটা ভেরিয়েবল আছে-
int prime;
এখন এটা থেকে বলার উপায় নেই যখর প্রোগ্রাম রান করবে তখন এটা মেমোরির কোন লোকেশনে থাকবে। আমরা একটা সংখ্যা ধরে নেই এখানে।
ধরা যাক address হচ্ছে 100.
এখন এই address পাওয়ার জন্য আমরা ভেরিয়েবলের নামের আগে অ্যামপারসেন্ড সাইন (&) ব্যবহার করি- যেমন &prime লিখলে আমরা পাব prime ভেরিয়েবলের লোকেশন।
এটা আমরা যখন pointer ব্যবহার করব তখন আরও ভালভাবে দেখব।

printf ফাংশন

আমরা জানি কম্পিউটার প্রোগ্রাম রেখার জন্য ৩ টি বিষয় জানতে হয়। ইনপুট, আউটপুট এবং প্রসেসিং। এখন আমরা আউটপুট দেখব।
আউটপুটের জন্য সি ল্যাংগুয়েজে আমরা printf ফাংশন ব্যবহার করি।
ফাংশনের একটা বা এর অধিক প‌্যারামিটার থাকে। প্রথমটা একটা স্ট্রিং যেটা আবশ্যিক। কোটেশন মার্ক দিয়ে স্ট্রিংটা লিখব।
printf(" ....write something here ...");
এর পরে কমা দিয়ে এক বা একাধিক expresssion লিখতে পারি। Expresssion এর মান কোথায় বসবে সেটা আমরা টাইপ অনুযায়ী প্রথম স্ট্রিং প‌্যারামিটারের মধ্যে লিখে দেব।
printf(" ....write something %d and %d and %d ...", a, 20, p+q-r);
এখানে আমরা তিনটা %d ব্যবহার করেছি যেটা নম্বর বুঝাতে ব্যবহার হয়- আমরা কম্পিউটারকে বলছি এই তিন যায়গায় আমরা তিনটা মান বসাতে চাই এবং পরে কমা দিয়ে তিনটা expresssion লিখেছি সেই মানগুলো কম্পিউটারকে দেয়ার জন্য।
এখন আমরা কিছু উদাহরণ দেখি-
ধরা যাক আমরা “Bangladesh” এই স্টিংটা প্রিন্ট করব। তাহলে আমাদের লিখতে হবে-
printf("Bangladesh");
আমরা যদি কোন একটা সংখ্যা লিখতে চাই যেটা একটা ভেরিয়েবলে সংরক্ষিত আছে তাহলে আমরা লিখতে পারি-
int x;
x=45;

printf("%d", x);
তাহলে কনোসোলে (কাল যে উইন্ডো আমরা মনিটরে দেখি সেটা করসোল) আমরা 45 লেখা হতে দেখব। এখানে %d দিয়ে আমরা বোঝাচ্ছি আমাদের একটা সংখা লিখতে হবে যেটা x ভেরিয়েবলের মধ্যে আছে।
সংখ্যা আমরা স্ট্রিং এর মধ্যেও লিখতে পারি। ধরা যাক আমরা লিখতে চাই Price = 475 যেখানে 475 মানটা আমাদের p ভেরিয়েবলে আছে, তহলে লিখব এভাবে
int p;
p=475;

printf("Price= %d", p);
আমরা যদি দুইটা সংখ্যার যোগফল লিখতে চাই তাহলে এভাবে লিখতে পারি-
int a,b;

a=10;
b=20;

printf("Sum of %d and %d is %d", a, b, a+b);
তাহলে মনিটরে দেখাবে
Sum of 10 and 20 is 30
এখানে আমাদের তিনটা %d আছে এবং সেগুলো কনসোলে দেখানোর সময়ে তিনটা মান দিয়ে রিপ্লেস হবে যেগুলো আরা পরপর কমা দিয়ে লিখেছি- a, b, a+b.
এখানে একটা বিষয় বুঝতে হবে আমরা যদি সঠিক মান কমা দিয়ে না দেই তাহলে ভুল জিনিসই কম্পিউটার দেখাবে।
যেমন
printf("Sum of %d and %d is %d", a+b, b, a);
এর আউটপুট হবে-
Sum of 30 and 20 is 10
প্রথম %d এর যায়গায় প্রথম মান (a+b), দ্বিতীয় %d এর যায়গায় দ্বিতীয় মান (b) এবং তৃতীয় %d এর যায়গায় তৃতীয় মান (a) বসবে। কারণ আমরা সেভাবেই বলে দিয়েছি।

প্রোগ্রাম

এখন আসুন আমরা একটা প্রোগ্রাম লিখি-
#include <stdio.h>

int main()
{
    printf("Hello, world!n");

    return 0;
}
এই প্রোগ্রামের প্রথম লাইনে আছে একটা include স্টেটমেনট। এটা কম্পাইলারকে বলে দিচ্ছে আমারা stdio লাইব্রেরি টা ব্যবহার করব। এই লাইবেরি এর মধ্যে printf ফাংশনটা আছে। এরপর আমরা একটা ব্লক লিখেছি। যেটা একটা ফাংশন এবং এর নাম সাধারণত main হতে হয় এবং () চিহ্ন দিতে হবে। এরপরে { } চিহ্ন দুটি আমাদের ব্লকের সীমানা নির্দেশ করবে। এই ব্লকের মধ্যে আমরা আমাদের printf ফাংশনটা লিখেছি। এরপরে শেষ লাইন হিসাবে return 0; লিখতে হবে। কেন সেটা আমরা ফাংশন শেখার সময় জানব। main এর আগে int কেন দিতে হবে সেটাও তখন জানব।
সি ল্যাংগুয়েজে small/capital letter গুরুত্বপূর্ণ। main এর যায়গায় Main লেখা যাবে না।
আপনারা এটা রান করে দেখুন।

0 মন্তব্য(গুলি):