Home / Bangla (বাংলা)

Bangla (বাংলা)

পাইথন(Python) ইনপুট, আউটপুট এবং ইম্পোর্ট

এই অধ্যায়ে আপনি জানবেন পাইথন বিল্ট-ইন(নিজস্ব) ফাংশন print() এবং input() ব্যবহার করে কিভাবে ইনপুট এবং আউটপুট কার্য সম্পাদন করতে হয়। এছাড়া ইম্পোর্ট মডিউল সম্বন্ধেও সংক্ষিপ্ত ধারনা পাবেন।

পাইথন নানা ধরণের বিল্ট-ইন ফাংশন সরবরাহ করে যেগুলো আমরা আমাদের প্রয়োজনে নির্দিধায় ব্যবহার করতে পারি।

স্টান্ডার্ড ইনপুট এবং আউটপুটের জন্য যথাক্রমে input() এবং  print() ফাংশন ব্যবহৃত হয়। চলুন প্রথমেই আমরা আউটপুট সেকশনটি দেখে নেই।

 

print() ফাংশনের মাধ্যমে পাইথন আউটপুট

স্টান্ডার্ড আউটপুট ডিভাইসে(যেমন-স্ক্রিনে) আউটপুট নেওয়ার জন্য আমরা print() ফাংশন ব্যবহার করি।

এছাড়া আমরা ডাটা ফাইলেও আউটপুট নিতে পারি। পরিবর্তি অধ্যায়ে এটি সম্মন্ধে বিস্তারিত আলোচনা করা হবে।

উদাহরণস্বরূপঃ

print('This sentence will be displayed on the screen')
# Output: This sentence will be displayed on the screen

num= 10

print('The value of num is', num)
# Output: The value of num is 10

দ্বিতীয় print() স্টেটমেন্টে লক্ষ্য করলে দেখবেন স্ট্রিং(string) এবং ভ্যারিয়েবল num এর মধ্যে একটি স্পেস দেওয়া আছে এবং এটি ডিফল্টভাবে ব্যবহৃত হয়, কিন্তু আমরা ইচ্ছা করলে এটি পরিবর্তন করতে পারি।

print()  ফাংশনের প্রকৃত সিনট্যাক্স (syntax ) নিম্নরূপঃ


print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

 

সিনট্যাক্স এর ব্যাখ্যা

  • এখানে objects হচ্ছে ভ্যালু যা প্রিন্ট করতে হবে।
  •   sep সেপারেটর দুটি ভ্যালুর মধ্যে ব্যবহৃত হয়। এটার ডিফল্ট ভ্যালু হচ্ছে স্পেস ক্যারেক্টার।
  • সকল ভ্যালু প্রিন্ট হওয়ার পরে end  প্রিন্ট হয় যার ডিফল্ট ভ্যালু হলো নতুন লাইন(new line)।
  • file হলো অবজেক্ট যেখানে /যাতে ভ্যালু প্রিন্ট হয় এবং এটার ডিফল্ট ভ্যালু হলো sys.stdout(স্ক্রিন)। নিচের উদাহরণের সাহায্যে ব্যাখ্যা দেওয়া হলোঃ

print(1,2,3,4,5)
# Output: 1 2 3 4

print(1,2,3,4,sep='&')
# Output: 1&2&3&4&5

print(1,2,3,4,5,sep='#',end='&')
# Output: 1*2*3*4&

আউটপুট ফরম্যাটিং(Output formatting)

আউটপুটকে অধিক আকর্ষনীয় করে তোলার জন্য মাঝে মাঝে আমাদের আউটপুট বিন্যাস/ফরম্যাটিং এর প্রয়োজন হতে পারে। str.format() মেথড ব্যবহার করে এটি সম্পন্ন করা যায়। যেকোনো স্ট্রিং অবজেক্টে এই মেথডটি প্রয়োগ করা যায়।


>>> x = 3; y = 5
>>> print('The value of x is {} and y is {}'.format(x,y))
#Output: The value of x is 3 and y is 5

এখানে কারলি ব্রাকেট{} স্থানধারক(placeholder) হিসাবে ব্যবহৃত হয়েছে। আমরা নাম্বার(টাপল ইনডেক্স) ব্যবহার করে এগুলোর অর্ডার ঠিক করে দিতে পারি।

</pre>
print('We love {0} and {1}'.format('SATT','founder of SATT'))
# Output: We love SATT and founder of SATT

print('We love {1} and {0}'.format('SATT','founder of SATT'))
# Output: We love founder of SATT and SATT
<pre>

স্ট্রিং ফরম্যাটের জন্য আমরা আর্গুমেন্টও ব্যবহার করতে পারি।

উদাহরণস্বরূপঃ


>>> print('Hello {name}, {asking}'.format(asking = 'How are you?', name = 'Tamjid'))
#Output: Hello Tamjid How are you?

সি প্রোগ্রামিং ভাষায় ব্যবহৃত পুরাতন স্টাইল   sprintf() ফাংশন ব্যবহার করেও আমরা স্ট্রিং ফরম্যাট করতে পারি।

উদাহরণস্বরূপঃ


>>> num = 10.35623906
>>> print('The value of num is %3.2f' %x)
#Output: The value of num is 10.36
>>> print('The value of num is %3.4f' %x)
#Output: The value of num is 10.3562


<h2>পাইথন ইনপুট(Python Input)</h2>
এতক্ষণ পর্যন্ত আমাদের প্রোগ্রাম ছিল স্ট্যাটিক(static)। অর্থাৎ ভ্যারিয়েবল এর ভ্যালু সোর্স কোডে ডিফাইন্ড(Defined) করা ছিল অথবা আমরা বলতে পরে এটি ছিল হার্ড কোডেড(Hard coded)।

প্রোগ্রামকে সহজ এবং ডাইনামিক করে তোলার জন্য আমাদেরকে অবশ্যই ইউজারদের কাছ থেকে ইনপুট নিতে হবে। পাইথনে এই কাজটি সম্পন্ন করতে <strong>input()</strong> ফাংশন ব্যবহৃত হয়। <strong>input()</strong>ফাংশনের সিনট্যাক্স নিম্নরূপঃ



input([prompt])

যেখানে prompt হচ্ছে স্ট্রিং যা স্ক্রিনে প্রদর্শিত হয় এবং যার মাধ্যমে ইউজারকে নির্দেশনা দেওয়া হয়। এটি ঐচ্ছিক(optional)।

উদাহরণস্বরূপঃ


>>> num = input('Enter a number: ')
Enter a number: 10
>>> num
#Output: '10'

এখানে আমরা 10 যে ভ্যালুটি দেখছি তা নাম্বার নয় বরং স্ট্রিং। এটাকে নাম্বারে রূপান্তর(convert) করার জন্য আমরা int() অথবা float() ফাংশন ব্যবহার করতে পারি।


>>> int('10')
#Output: 10
>>> float('10')
#Output: 10.0

একই কাজ আমরা eval() ফাংশনের মাধ্যমেও সম্পন্ন করতে পারি। বরং এটার সুযোগ-সুবিধা আরও বেশী। যদি ইনপুট ভ্যালু স্ট্রিং হয় তাহলে এটি এক্সপ্রেশন(expression) কেও নির্ণয়(evaluate) করতে পারে।


>>> int('3+7')
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '3+7'
>>> eval('3+7')
#Output: 10

পাইথন ইম্পোর্ট(Python Import)

যখন আমাদের প্রোগ্রাম অনেক বড় হতে থাকে তখন সবচেয়ে ভালো বুদ্ধি হলো প্রোগ্রামের বিভিন্ন অংশকে বিভিন্ন মডিউল(module)-এ বিভক্ত করা।

মডিউল হচ্ছে পাইথন এর বিভন্ন সংজ্ঞা এং স্টেটমেন্ট সম্বলিত একটি ফাইল। পাইথন মডিউলের একটি ফাইল নাম থাকে এবং এটি .py এক্সটেনশন এর মাধ্যমে শেষ হয়।

পাইথনে এক মডিউলে থাকা সংজ্ঞা(কোড) অন্য মডিউলে ইম্পোর্ট করা যায়। এটি করার জন্য আমরা import কীওয়ার্ড ব্যবহার করি।

উদাহরণস্বরূপ, import math এর মাধ্যমে আমারা math মডিউলকে ইম্পোর্ট করতে পারি।


import math
print(math.pi)

এখন math মডিউলে থাকা সমস্ত সংজ্ঞা(কোড) আমাদের স্কোপেও বিদ্যমান অর্থাৎ আমরা এর সমস্ত কোড ব্যবহার করতে পারি। এছাড়া আমরা চাইলে   from কীওয়ার্ড ব্যবহার করে কোনো মডিউলের নির্দিষ্ট কোনো সংজ্ঞাকেও ইম্পোর্ট করতে পারি।

উদাহরণস্বরূপঃ


>>> from math import pi
>>> pi
#Output: 3.141592653589793

যখন একটি মডিউলকে ইম্পোর্ট করা হয় তখন এটি sys.path এ নির্ধারিত বিভিন্ন স্থানে খোঁজ করে। নিম্নে ডিরেক্টরি লোকেশন এর তালিকা তুলে ধরা হলোঃ


>>> import sys
>>> sys.path
['',
'C:\\Python36\\Lib\\idlelib',
'C:\\Windows\\system32\\python36.zip',
'C:\\Python36\\DLLs',
'C:\\Python36\\lib',
'C:\\Python36',
'C:\\Python36\\lib\\site-packages']

আপনি চাইলে আপনার নিজস্ব লোকেশনকেও এই তালিকায় যুক্ত করতে পারেন।

সি-প্রোগ্রামিং (পর্ব ০১) – প্রাথমিক ধারনা

সি সাধারণ উদ্দেশ্যে(general-purpose) ব্যবহৃত একটি শক্তিশালী(powerfull) প্রোগ্রামিং ভাষা যা দ্রুততর(faster), বহনযোগ্য(portable) এবং সব ধরণের প্লাটফর্মেই উপযোগী।

আপনি যদি প্রোগ্রামিং এ নতুন হোন, তাহলে সি দিয়ে প্রোগ্রামিং এ যাত্রা শুরু হবে আপনার জন্য দারুণ এক পছন্দের বিষয়।

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

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

সি প্রোগ্রামিং শেখা শুরু করার পূর্বে চলুন সি প্রোগ্রামিং ভাষাটির সঙ্গে পরিচিত হয়ে নিই।

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

সি একটি অত্যন্ত কার্যকরী(highly efficient) প্রোগ্রামিং ভাষা । প্রায় ৪৪ বছরেরও বেশি সময় ধরে জনপ্রিয় থাকার এটাই হয়ত মূল কারণ।

স্টান্ডার্ড সি প্রোগ্রাম বহনযোগ্য(portable)। একটি সিস্টেমের জন্য লিখিত কোড কোনো ধরণের পরিবর্তন ছাড়াই অন্য অপারেটিং সিস্টেমে কাজ করে।

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

সি প্রোগ্রামিং এর ইতিহাস

ইউনিক্স অপারেটিং সিস্টেমের সাথে সি প্রোগ্রামিং অত্যন্ত সম্পর্কযুক্ত।

ইউনিক্স সিস্টেম ডেভেলপমেন্ট

ইউনিক্স সিস্টেমের ভার্সন-PDP-11 এসেম্বলি ল্যাঙ্গুয়েজ দিয়ে লেখা। এসেম্বলি ল্যাঙ্গুয়েজ হলো লো-লেভেল(low-level) প্রোগ্রামিং ল্যাঙ্গুয়েজ। যা শুধু নির্দিষ্ট কোনো প্লাটফর্মের জন্য লেখা হয়। ইহা লেখা এবং বুঝাও অনেক কঠিন।

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

১৯৭২ সালে ইউনিক্স সিস্টেম PDP-11-এ সি এর ডেভেলপমেন্ট শুরু হয়। তখন উনিক্স এর বিশাল অংশ পূনরায় সি দিয়ে লেখা হয়েছিল। ১৯৭৩ সালে ইউনিক্স কার্নেলে সি যথেষ্ট শক্তিশালি ভাষা হিসাবে ব্যবহৃত হয়েছিল। ডেনিশ রিচি এবং স্টেফেন সি. জনশন ভাষাটিকে ইউনিক্স অপারেটিং সিস্টেমে বহনযোগ্য করে তোলার জন্য কয়েক বছর ধরে ইহাতে আরোও কিছু পরিবর্তন এনেছিলেন।

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

১৯৭৮ সালে সি প্রোগ্রামিং এর প্রথম বই “The C Programming Language” প্রকাশিত হয়েছিল। বইটির প্রথম সংস্করণ প্রোগ্রামারদের কাছে অনেক বছর যাবৎ ভাষাটির সাধারণ বর্ণনা সর্বরাহ করেছিল। ব্রায়ান কার্নিংহাম এবং ডেনিশ রিচি কর্তৃক লেখা এই বইটি “K&R” নামে অনেক জনপ্রিয়।

আনসি(ANSI) সি

সি ল্যাঙ্গুয়েজ কয়েক বছরের মধ্যেই দ্রুত বৃদ্ধি পাওয়ায় ভাষাটির জন্য কিছু নিয়ম(standard) ঠিক করে দেওয়ার প্রয়োজন হয়েছিল।

C89: ১৯৮৯ সালে আমেরিকান ন্যাশন্যাল স্টান্ডার্ড ইন্সটিটিউট(ANSI) কর্তৃক সি এর প্রথম স্টান্ডার্ড প্রকাশিত হয়েছিল। সি এর এই ভার্সনটি প্রোগ্রামারদের কাছে C89 নামে জনপ্রিয় ছিল।

C99:   ১৯৯৯ সালে সি স্টান্ডার্ডে আরো নতুন কিছু বৈশিষ্ট্য যেমন- নতুন ইনলাইন ফাংশন, নতুন ডাটাটাইপ ইত্যাদি সংযুক্ত করা হয়েছিল। ইহা প্রোগ্রামারদের কাছে C99 নামে পরিচিত ছিল।

C11: C11 এ নতুন কিছু বৈশিষ্ট্য যেমন- টাইপ জেনেরিক ম্যাক্রো,অটোমিক অপারেশন এবং এনোনিমাস স্ট্রাকচার যোগ করা হয়েছে যেগুলো C99 এ ছিল না।

এই সবগুলো স্টান্ডার্ড আনসি সি নামেও পরিচিত।

“স্টান্ডার্ড সি প্রোগ্রাম বহযোগ্য”. ইহার অর্থ হচ্ছে, আনসি সি অনুসরণ করে লেখা প্রোগ্রাম অপারেটিং সিস্টেম গুলোর মধ্যে স্থানান্তরযোগ্য।

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

সি প্রোগ্রামিং ল্যাঙ্গুয়েজের বৈশিষ্ট্যসমুহ

একটি প্রোসিডিউরাল ল্যাঙ্গুয়েজ

সি এর মত প্রোসিডিউরাল(procedural) ল্যাঙ্গুয়েজে পূর্বনির্ধারিত কিছু ইন্সট্রাকশন ধাপে ধাপে সম্পন্ন হয়। একটি কাজ সম্পন্ন করার জন্য একটি আদর্শ সি প্রোগ্রামে এক বা একের অধিক প্রোসিডিউর বা ফাংশন থাকতে পারে। আপনি যদি প্রোগ্রামিং এ নতুন হয়ে থাকেন, তাহলে আপনি ভাবতে পারেন যে, এটাই একমাত্র পদ্ধতি যে পদ্ধতিতে সকল প্রোগ্রামিং ল্যাঙ্গুয়েজ কাজ করে।

যাইহোক, এছাড়া প্রোগ্রামিং এর অন্যান্য কৌশলও(paradigm) রয়েছে। এদের মধ্যে সচারচর ব্যবহৃত একটি কৌশল হলো অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং(OOP) যা কোনো কার্য সম্পাদনের জন্য ডেভেলপারদেরকে অবজেক্ট তৈরিতে অনুমতি দেয়।

সি প্রোগ্রাম দ্রুততর

সি এর তুলনায় নতুন ল্যাঙ্গুয়েজ জাভা এবং পাইথন অনেক ধরণের বৈশিষ্ট্য যেমন- গার্বেজ কালেকশন(garbage collection) এবং ডাইনামিক টাইপিং(dynamic typing) অফার করে। ইহা প্রোগ্রামারদের জন্য প্রোগ্রাম লেখাও সহজ করে দেয়। যাইহোক, অতিরিক্ত প্রোসেসিং এর কারণে সি এর তুলনায় এদের পারফর্মেন্স কম।

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

স্টান্ডার্ড সি প্রোগ্রাম বহনযোগ্য

“একবার লিখে সকল প্লাটফর্মে কম্পাইল করা যায়”। আনসি স্টান্ডার্ডে ভালভাবে লেখা সি প্রোগ্রাম বহনযোগ্য(portable), এই কথার অর্থ হলো, এক সিস্টেম(যেমন- উইন্ডোজ)-এর জন্য লেখা প্রোগ্রাম কোনো ধরণের পরিবর্তন ছাড়াই অন্য প্লাটফর্ম(যেমন- লিন্যাক্স)-এ কম্পাইল করা যায়।

মডিউলার(Modular)-এর ব্যবহার

আপনি সি প্রোগ্রামকে ভিন্ন ভিন্ন সেকশন বা ফাংশনে ভাগ করে লাইব্রেরীর মধ্যে রাখতে পারেন। প্রোগ্রামিং এর এই ধারনা মডিউলারিটি(modularity) নামে পরিচিত।

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

স্টাটিক্যালি টাইপ ল্যাঙ্গুয়েজ

সি একটি স্টাটিক্যালি টাইপ ল্যাঙ্গুয়েজ(statically typed language)। এর অর্থ হলো, ভ্যারিয়েবলের টাইপ রান টাইমে নয় বরং কম্পাইল টাইমে চেক হয়। ইহা সফটওয়্যার ডেভেলপমেন্ট সাইকেলের সময় error খুঁজতে সহায়তা করে। এছাড়া ডাইনামিক্যালি টাইপ ল্যাঙ্গুয়েজের তুলনায় স্টাটিক্যালি টাইপ ল্যাঙ্গুয়েজ সাধারণত দ্রুততর হয়।

সাধারণ উদ্দেশ্যে(General purpose)

পূর্ববর্তী বিষয়সমূহ ছাড়াও বিভিন্ন ধরণের এপ্লিকেশন যেমন- সিস্টেম সফটওয়্যার থেকে শুরু করে ফটো এডিটিং সফটওয়ারেও সি ল্যাঙ্গুয়েজ ব্যবহৃত হয়। সি ল্যাঙ্গুয়েজ ব্যবহৃত কিছু এপ্লিকেশন নিম্নে তুলে ধরা হলোঃ

  • এমবেডেড সিস্টেম(Embedded System)
  • অপারেটিং সিস্টেম – উইন্ডোজ, লিন্যাক্স, ওএস এক্স, এন্ড্রোয়েড, আইওএস
  • ডাটাবেজ – মাইএসকিউএল, অরাকল, এমএস এসকিউএল সার্ভার, পোস্টগ্রিএসকিউউএল
  • অন্যান্য ব্যবহার -নেটওয়ার্ক ড্রাইভার, কম্পাইলার, প্রিন্ট স্পুলার

কেন সি প্রোগ্রামিং শিখবেন?

যদি শুধুমাত্র হ্যাঁ অথবা না দ্বারা এই প্রশ্নের উত্তর দেওয়া সম্ভব হত! দুর্ভাগ্যবশত, এই প্রশ্নের উত্তর দেওয়া খুব সহজ নয় কারণ ইহা ব্যক্তি থেকে ব্যক্তিতে ভিন্ন হয়।

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

সি শেখার মাধ্যমে আপনি কি অর্জন করবেন?

আপনি যদি সি প্রোগ্রামিং না জানেন, তাহলে প্রোগ্রামার হিসাবে আপনি কি করছেন তাই জানবেন না। । আপনার এপ্লিকেশন খুব সুন্দরভাবে এবং সব ধরণের কাজ করবে ঠিকই। কিন্তু আপনি যদি বলতে না পারেন কেন ইহা

(*s++ = *p++);

স্ট্রিং কপি করে, তাহলে আপনি অন্ধবিশ্বাসে প্রোগ্রামিং করেন।

১ । কম্পিউটার কিভাবে কাজ করে আপনি তা জানবেন

আপনি যদি সি জানেন, তাহলে আপনি শুধুমাত্র প্রোগ্রাম কিভাবে কাজ করে তাই জানবেন না। বরং আপনি মেমোরি ম্যানেজমেন্ট এবং বরাদ্দ(allotment)সহ কম্পিউটার কিভাবে কাজ করে তার একটি মানসিক মডেল তৈরি করতে পারবেন। প্রোগ্রামিং এ সি যে স্বাধীনতা দিয়ে থাকে আপনি তার তারিফ করবেন। কেননা অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ যেমন- পাইথন এবং জাভা এই সুবিধা দেয় না।

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

২। সি হলো প্রোগ্রামিং এর মিশ্র ভাষা(lingua franca)

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

৩। ওপেন সোর্স প্রোজেক্টে কাজ করার সুযোগ পাবেন যা লক্ষ লক্ষ মানুষকে প্রভাবিত করে।

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

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

কিছু বড় বড় ওপেন সোর্স প্রোজেক্ট (যেমন- এসকিউলাইট ডাটাবেজ, লিনাক্স কার্নেল, পাইথন ইন্টারপ্রেটার) রয়েছে যেগুলোতে সি প্রোগ্রামিং ব্যবহৃত হয়।

অন্য আরেকটি ভাষা আছে যা বড় বড় ওপেন সোর্স প্রোজেক্টে ব্যবহৃত হয় তা হলো সি++। আপনি যদি সি এবং সি++ জানেন, তাহলে আপনি অনেক ওপেন সোর্স প্রোজেক্টে অবদান রাখতে পারবেন যা লক্ষ লক্ষ মানুষকে প্রভাবিত করবে।

৪। আপনি সেরা প্রোগ্রাম লিখতে পারবেন

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

৫। অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ শেখা সহজ হয়ে যাবে।

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

সি# এবং জাভা প্রোগ্রামিং সি এবং সি++ এর সাথে সম্পর্কযুক্ত। জাভাস্ক্রিপ্ট এবং পিএইচপি এর সিনট্যাক্স সি এর মতই।

আপনি যদি সি এবং সি++ প্রোগ্রামিং জানেন তাহলে অন্যন্য ভাষায় স্যুইচ করতে আপনাকে কোনো ধরণের বেগ পেতে হবে না।

সি প্রোগ্রামিং না শেখার কারণ

আপনি সি প্রোগ্রামিং না শিখেই অসাধারণ অসাধারণ সফটওয়্যার তৈরি করতে পারবেন। Stackoverflow.com এর প্রতিষ্ঠাতা জেফ আটওয়ার্ড মোটেও সি প্রোগ্রামিং জানতেন না। কিন্তু স্টেক অভারফ্লো নিঃসন্দেহে অনেক ভাল একটি ওয়েব এপ্লিকেশন।

আপনি যদি ব্যস্ত মানুষ হোন এবং ঐ সকল ক্ষেত্রে আপনি সময় বিনিয়োগ করতে না চান যার মাধ্যমে আপনার দৈনন্দিন কাজে প্রত্যক্ষ্য কোনো প্রভাব নেই। তাহলে সি প্রোগ্রামিং আপনার জন্য নয়।

আপনি যদি প্রোগ্রামিং এ একেবারেই নতুন হয়ে থাকেন এবং প্রোগ্রামিং শেখার জন্য খুব সহজ ভাষা খুঁজছেন তাহলে সি আপনার জন্য খুব সহজ হবে না। বরং আপনি পাইথন দিয়ে শুরু করতে পারেন।

সি প্রোগ্রামিং শিখবেন কি না সিদ্ধান্ত নিন!!

নতুনদের জন্যঃ

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

অভিজ্ঞ প্রোগ্রামারদের জন্যঃ

সি প্রোগ্রামিং শেখার অত্যন্ত প্রয়োজন নাই কিন্তু সি শেখার কিছু ভাল দিকও রয়েছে।

সি শেখার জন্য আপনি আপনার চলমান প্রোজেক্ট বন্ধ করে দিয়েন না। আমার বিশ্বাস, আপনি এটা করবেনও না। যদি আপনার ফ্রি সময় থাকে এবং প্রোগ্রামিং দক্ষতাকে সমৃদ্ধ করতে চান তাহলে আপনি সি শিখতে পারেন।

আমি বিশ্বাস করি, তাৎক্ষনিকভেবে এটা শেখার প্রয়োজন নাই। তবে কোনো না কোনোভাবে এটা আপনার শেখা উচিৎ।

ধন্যবাদ 🙂

জাভা ক্লাস(Class) এবং অবজেক্ট (Object)

জাভা ক্লাস :

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

  1. ফিল্ডস (fields)
  2. মেথডস (methods)
  3. কনস্ট্রাক্টরস (constructors)
  4. ব্লকস (blocks)
  5. নেস্টেড ক্লাস এবং ইন্টারফেস (nested class and interface)

ক্লাস ডিক্লেয়ার করার সিনটেক্সঃ

 
Access Modifier class ClassName {

    fields
    methods
}
public class ExampleClass {
 
}

জাভা ইন্সটেন্স ভেরিয়েবল:

একটি ভেরিয়েবল যা ক্লাসের ভিতর এবং মেথডের বাহিরে তৈরী বা ডিক্লেয়ার করা হয় তাকে ইন্সটেন্স ভেরিয়েবল বলে । ইন্সটেন্স ভেরিয়েবল, কম্পাইল টাইমে মেমরি পাওয়া যায় না । এই মেমোরি পাওয়া যায় রান-টাইমে যখন অবজেক্ট তৈরি করা হয় । এই কারণে একে ইন্সটেন্স ভেরিয়েবল বলে ।
জাভা অবজেক্ট:

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

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

সুতরাং আমরা জানলাম, অবজেক্ট এর দুইটা জিনিস থাকে, স্টেট ( অর্থাৎ নিজের সম্পর্কে ধারণা) এবং মেথড (সে কি কি কাজ করতে পারে)।
একটি অবজেক্টের ৩টি বৈশিষ্ট্য থাকে :

  1. স্টেট
  2. বিহেভিয়ার
  3. আইডেন্টিটি

স্টেট :

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

বিহেভিয়ার :

একটি অবজেক্ট দিয়ে নির্দিষ্ট কিছু কাজ করানো যায় । এটাই হচ্ছে অবজেক্ট বিহেভিয়ার । একে মেথডও বলা হয় ।
৩ টি উপায়ে অবজেক্ট ইনিশিলায়াইজ করা যায় :

  • রেফারেন্স ভেরিয়াবল দ্বারা
  • মেথড দ্বারা
  • কনস্ট্রাক্টর দ্বারা

জাভা new কিওয়ার্ড :

রান টাইমে মেমোরি বরাদ্দ করার জন্য new কিওয়ার্ড ব্যবহার করা হয় । সব অবজেক্ট এর মেমোরি হ্যাপ মেমরি (Heap Memory ) এলাকা থেকে পাই ।

অবজেক্ট তৈরী করা :

নতুন অবজেক্ট তৈরী করার জন্য জাভাতে new কিওয়ার্ড ব্যবহার করা হয় । একটি ক্লাস থেকে একটি অবজেক্ট তৈরি করার তিনটি ধাপ আছে ঃ

  1. ডিক্লারেশন (Declaration )
  2. ইনস্ট্যান্স (Instantiation )
  3. ইনিশিয়ালিজেশন (Initialization )

ডিক্লারেশন :

A variable declaration with a variable name with an object type.

ইনস্ট্যান্স :

The ‘new’ keyword is used to create the object

ইনিশিয়ালিজেশন:

The ‘new’ keyword is followed by a call to a constructor. This call initializes the new object
সিনট্যাক্স :

 className objectName = new className();
 MyClass object = new MyClass()

বিভিন্ন উপায়ে জাভার অবজেক্ট তৈরী করা যায় :

৪টি উপায়ে জাভার অবজেক্ট তৈরী করা যায়

1. new কিওয়ার্ড ব্যবহার করে
This is the most common way to create an object in java. I read somewhere that almost 99% of objects are created in this way.

MyObject object = new MyObject();

2. Class.forName() ব্যবহার করে
If we know the name of the class & if it has a public default constructor we can create an object in this way.

Employee emp2 = (Employee) Class.forName("org.Employee")
.newInstance();

3. clone() ব্যবহার করে
The clone() can be used to create a copy of an existing object.

Employee emp4 = (Employee) emp3.clone();

4. object deserialization ব্যবহার করে
Object deserialization is nothing but creating an object from its serialized form.

ObjectInputStream inStream = new ObjectInputStream(anInputStream ); 
MyObject object = (MyObject) inStream.readObject();

Now you know how to create an object. But its advised to create objects only when it is necessary to do so.
ক্লাস এবং অবজেক্ট ব্যবহার করে একটি জাভা প্রোগ্রাম :



    public class SimpleClass {

    // this is constructor

    public SimpleClass() { }

    // this is method

    public void printMessage() {

    System.out.println(“Java Object Oriented Programming”);

    }

    public void printState() {

    int n=2;

    System.out.println(n*n);

    }

    public static void main(String[] args) {

    // create object

    SimpleClass object=new SimpleClass();

    object.printMessage();

    object.printState();

    }
    }

যেভাবে CLIFFS TOEFL পড়তে হবে

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

প্রথম অংশঃ

আপনি সরাসরি ৩৯-২৩৭ পেজের গ্রামার টা আগে শেষ করুন। প্রতিটি exercise হাতে কলমে বুঝে বুঝে শেষ করবেন। এগুলোর উত্তর দেয়া আছে ২৩৮-২৬২ পেজে।

তবে অনেকেই প্রশ্ন করে থাকেন কি ভাবে পড়ব? একেবারে ইংরেজি বই তো দাদা। চিন্তা করবেন না, আমি একটি পদ্ধটি দেখাচ্ছি। ধরুন আপনি ৮৪ পেজে আছে। দেখুন দুইটা টেবিল আছে। প্রথম টেবিল টি দেখুন বেশ কিছু শব্দ দেয়া আছে। এগুলো ছড়া বানিয়ে মুখস্ত করে নিন। মুলত দেখবেন এই টেবিলের নিচে বেশ কিছু উদাহরন দেয়া আছে। খেয়াল করুন আপনি যে শব্দ গুলো মুখস্ত করেছেন, সেগুলোর পড়ে to+ verb এর base form ব্যাবহার করা হচ্ছে। তার মানে হল আপনি যে টেবিল টি মুখস্ত করলেন এই শব্দের পর যদি কোন verb আসে, তবে তার base form ব্যাবহার করতে হবে। এবারে কাজ চালিয়ে যান। দেখবেন কাজ হয়ে যাবে।

দ্বিতীয় অংশঃ

এবার ২৬৪-২৭৬ পেজে কিছু problem and confusing word নিয়ে বেশ কিছু জিনিস দেয়া আছে, এগুলো মুখস্ত করে ফেলুন। এবং এদের যে exercise দেয়া আছে সমাধান করে ফেলুন। ২৭৬-২৮৪ পেজের প্রতিটি preposition মুখস্ত করে ফেলতে হবে। প্রশ্ন এখান থেকে কমন আসে। ২৮৪-২৮৯ এর verbal idiom গুলো গিলে ফেলতে হবে। দেখবেন কমন পাবেন। ২৮৯-২৯২ এ যা আছে তা একবার দেখে নেবেন, অনেক সময় কমন আসতে পারে।

এরপর দেখবে mini test 5 and mini test 6 আছে। সমাধান করে ফেলতে হবে। এখান থেকে প্রতি বছর এখান থেকে প্রশ্ন কমন এসছে।

আর এসবের উত্তর দেয়া আছে ২৬৭-২৯৯ পেজে।

তৃতীয় অংশঃ

এবার table of contents এ যাও। এবার তোমার কাজ হলো, এখানে দেখবে, ৩১৫ পেজ থেকে শুরু করে ৪৯১ পেজ পর্যন্ত মোট ৬ টি টেস্ট দেয়া আছে। এই টেস্ট গুলোর

প্রতিটি টেস্টে ৩ টি করে সেকশন আছে। সেকশন ১ বাদ দিন, লাগবে না। আপনাকে মুলত পড়তে হবে সেকশন ২ যেখানে ৪০ টি করে প্রশ্ন দেয়া আছে যেগুলো কিনা গ্রামার বেসড, আর সেকশন ৩ যেখানে ৫ টি করে রিডিং প্যাসেজ দেয়া আছে। প্রতিটি টেস্ট এর সেকশন ২ ও ৩ শেষ করেলেই কাজ শেষ। এই প্রশ্ন গুলোর উত্তর দেয়া আছে ৪৯৮ পেজ থেকে শুরু করে বইয়ের শেষ পর্যন্ত। একটু খেয়াল করলেই দেখবেন প্রথমে উত্তর ও এরপর এদের ব্যাখ্যা দেয়া আছে।

এর বাইরে এই বই থেকে আর কিছু পড়তে হবে না। মতামত জানাবেন।

বিসিএস পরীক্ষা দিবেন- প্রস্তুতি নিন এখন থেকেই

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

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

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

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

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

আপনি যে বিষয় নিয়ে অনার্স বা মাস্টার্স করছেন সে বিষয়টি ভালোভাবে পড়ুন। কারণ এটি আপনার ভবিষ্যত নির্ধারণ করবে। আপনার বিষয়টি ভালোভাবে জানা থাকলে আপনি লিখিত পরীক্ষার পাশাপাশি মৌখিক পরীক্ষায় ভালো করবেন। লিখিত পরীক্ষায় আপনার পছন্দমতো ২/৩টি বিষয় নিতে হবে। সবচেয়ে বেশি নাম্বার ওঠে এরকম বিষয়গুলো ভালোভাবে আত্মস্থ করুন।

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

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

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

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

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

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

আপনাদের জন্য শুভকামনা।

পিএইচপি অ্যারে

পিএইচপি অ্যারে

  • একটা ভেরিয়েবল একটা single value এর পাত্র(container).কিন্তু অ্যারে একাধিক value’র container বা পাত্র।
  • একটা অ্যারে হল কিছু উপাদান নিয়ে গঠিত যেখানে প্রত্যেকটি উপাদানের নির্দিষ্ট value আছে-key বা index বলে যেটা দিয়ে উপাদানটিকে রেফার করা হয়।
  • ধরুন আপনার কাছে কিছু শহরের নামের লিস্ট আছে এখন যদি এগুলোকে কোনো single variable এ store করে রাখতে চান তাহলে এমন হবে-

    $city1= “Dhaka”
    $city2= “Chittagong”
    $city3= “Rajshahi”
    $city4= “Sylet”
    $city5= “Khulna”
    $city6= “Barishal”

  • কিন্তু একটা অ্যারে এসবগুলোকে একটা ভ্যারিয়েবল এ ধরে রাখতে পারে।
  • অ্যারের সাধারন গঠন পদ্ধতি হচ্ছে কিছু উপাদানের ক্রম (series of element) যার উপাদানগুলির index ০ থেকে শুরু হয়ে ক্রমানুসারে বাড়তে থাকবে।
  • বেশ কয়েকভাবে অ্যারে লেখা যায় সবচেয়ে সহজটি হচ্ছে-

    <?php
    
    $city = array("Dhaka", "Chittagong", "Rajshahi","Sylet", "Khulna", "Barishal");
    
    ?>
    

    ব্যাস একটা variable এ সব শহরের নাম store হয়ে গেছে,প্রতিটি শহরের নাম এক একটি উপাদান এবং প্রতিটি উপাদানে একটি index নির্দিষ্ট হয়ে গিয়েছে।
    array’র ১ম উপাদান এর index/key হচ্ছে ০ তাহলে এখানে Dhaka[0], Chittagong[1]… এভাবে বাকিগুলো।
    এখন আপনি যেকোন উপাদান এর index number উল্লেখ করে সে উপাদানটি পেতে পারেন।যেমন

    <?php
    
    Print "$city[3]";
    
    ?>
    

    তবে যদি আমরা চাই তাহলে অ্যারের এই ডিফল্ট ভ্যালু পরিবর্তন করে দিতে পারি,=> এই অপারেটরটি দিয়ে। ধরি আমি চাচ্ছি এই উপরের অ্যারেটির starting index 2 দিয়ে শুরু হোক তাহলে এভাবে লিখতে হবে

    <?php
    
    $city=array(2=>"Dhaka", "Chittagong", "Rajshahi",
    "Sylet", "Khulna", "Barishal", "Barishal");
    
    ?>
    

    এই অপারেটর যেকোন উপাদানের পূর্বে ব্যাবহৃত হতে পারে তার index নির্দিষ্ট করার জন্য।

    অ্যাসোসিয়েটিভ অ্যারে (Associative array)

    এতক্ষনতো পূর্ন সংখ্যার index/key দেখলাম আপনি চাইলে string ও ব্যাবহার করতে পারেন।এটাকেই associative array বলে।যেমন:

    <?php
    
    $ages = array("adnan"=>32, "rezwan"=>30, "refat"=>34);
    
    ?>
    

    মাল্টিডাইমেনশনাল অ্যারে (Multidimensional array)

    এখানে একটা অ্যারের ভিতর প্রতিটি উপাদান একটি অ্যারে হতে পারে আবার এই সব অ্যারের প্রতিটি উপাদানও একটি অ্যারে হতে পারে এবং এভাবে আরও।

    <?php
    
    $continents=array("Asia"=>array("Bangladesh",
    "India","Pakistan"),"Europe"=>array("England",
    "France"),"Africa"=>array("Kenya","Libya","Somalia"));
    
    ?>
    

    আরও মাল্টিডাইমেনশনাল অ্যারে (Multidimensional array others)

    foreach() লুপ

  • foreach লুপ শুধুমাত্র অ্যারে ম্যানিপুলেট করার জন্য তৈরী করা হয়েছে। তাই এই লুপিং সিস্টেম শুধুমাত্র অ্যারের উপরে কাজ করবে।
  • foreach লুপে as শব্দের পরে যে ভেরিয়েবল থাকে (আপনার ইচ্ছেমত এই ভেরিয়েবলের নাম দিতে পারেন) সেই ভেরিয়েবলে অ্যারের এলিমেন্টগুলি একটা একটা করে আসবে।
  • অন্যান্য লুপিং এ আমরা ঠিক করে দেই যে লুপিং কত থেকে শুরু হবে এবং কত পর্যন্ত চলবে।
  • আর এখানে অ্যারের প্রথম এলিমেন্ট থেকে লুপিং শুরু হবে এবং অ্যারের শেষ এলিমেন্ট আসলে তখন লুপিং শেষ হবে।
  • <?php
    
    $city=array("Dhaka", "Chittagong", "Rajshahi",
    
    "Sylet","Khulna", "Barishal", "Barishal");
    
    foreach ($city as $value)
    
    {
    
    echo "$value.<br>";
    
    }
    
    ?> 
    

    Output

    Dhaka
    Chittagong
    Rajshahi
    Sylet
    Khulna
    Barishal
    Barishal

    range() ফাংশন দিয়ে অ্যারে তৈরী করা যায়।যেমন

    <?php
    
    $numeric1 = range(10,15);
    
    //This is similar to
    
    $numeric1 = array(10,11,12,13,14,15);
    
    //array with optional parameter (even array)
    
    
    $numeric2 = range(10,20,2);
    
    //This is similar to
    $numeric2 = array(10,12,14,16,18,20);
    
    
    //array odd
    
    $numeric3 = range(11,21,2);
    
    //This is similar to
    
    $numeric3 = array(11,13,15,17,19,21);
    
    //letter array
    
    $letter = range("C","K");
    
    //This is similar to
    
    $letter = array("C","D","E","F","G","H","I","J","K");
    
    ?>
    

    এভাবে range() ফাংশন দিয়ে অ্যারে লেখার সুবিধা হচ্ছে বড় অ্যারেকে কত ছোট করে লেখা যাচ্ছে কিন্তু কাজ একই অ্যারে চেক করা।

    is_array() ফাংশন দ্বারা একটা ভেরিয়েবল অ্যারে কিনা তা চেক করা যায়।যেমন

    <?php
    
    //letter array
    $letter = range("C","K");
    
    if(is_array($letter)){
     echo "this is an array and its 3rd value is $letter[2]";
    }else{
     echo "this is not an array";
    }
    
    ?>
    

    আউটপুট

    this is an array and its 3rd value is E

    অ্যারে উঠিয়ে দিয়ে কোন স্ট্রিং বা অন্যকিছু বসিয়ে দেখুন আউটপুট আসবে

    this is not an array

    print_r() দিয়ে অ্যারের সব কনটেন্ট দেখা কোড ডিবাগিং এর সময় এটা কাজে লাগে। ধরুন উপরের letter অ্যারেটির সব কনটেন্ট দেখতে চান তাহলে

    print_r($letter);
    

    আউটপুট

    Array ( [0] => C [1] => D [2] => E [3] => F [4] => G [5] => H [6] => K )
    

    পিএইচপি লুপঃ While লুপ, ফর লুপ

    আসলে এককাজ বারবার করতে আমাদের সকলেরই খারাপ লাগে যেমন একই সিল ৫০টা ইনভেলপ এর মধ্যে মারা বা ধরুন একই কথা ১০০টা পেজের মধ্যে লেখা ইত্যাদি।প্রোগ্রামিং এ মজার ব্যাপারটা হচ্ছে একটু চিন্তা করলেই এইসব পূনরাবৃত্তির কাজ কয়েক লাইন লিখেই করা যায়।লুপ দিয়ে এগুলো করা যায়।

    লুপ হচ্ছে এমন একটা statement যেটা দিয়ে একটা কোডের ব্লক কে নির্দিষ্ট কয়েকবার execute করা যায় যতক্ষন না আমাদের কাজটা শেষ হয়।

    ৪ ধরনের লুপ আছে-

  • While Loop
  • Do…while Loop
  • For Loop
  • Foreach Loop
  • পিএইচপি While লুপ

    যখন একটা condition true হয় তখন while লুপ টি একটা কোড ব্লক কে execute করে।

    সংকেত

    while (condition)
    {
    code to be executed;
    }
    

    যদি condition false হয় তখন ব্রাকেটের ভিতর কোডটি এড়িয়ে যায়।যখন শেষের ব্রাকেটটি আসবে তখন condition আবার চেক করবে,true হলে কোড আবার execute করবে।condition এ যতবার দেয়া আছে ততবার এভাবে চলবেই।যেমন:

    <html>
    <body>
    <?php
    $i=1;
    while($i<=5)
    {
    echo "The number is " . $i . "<br />";
     $i++;
    }
    ?>
    </body>
    </html>
    

    প্রথমে i=1. এরপর while($i<=5) অর্থ্যাৎ লুপটি ততক্ষন চলবে যতক্ষন I এর মান ৫ থেকে ছোট বা সমান হবে।আর লুপটি প্রতিবার ১ করে বাড়বে।কোডটি রান করলে আউটপুট আসবে এমন- The number is 1 The number is 2 The number is 3 The number is 4 The number is 5 এবার এর মান ৬ দিলে কি আউটপুট আসবে? কিছুই আসবেনা কারন তখন এটি while loop এর সাথে মিলবেনা তাই কোড execute হবেনা। Do…while loop

    এটা while loop এর মতই শুধু পার্থক্য এটুকু যে condition টি শেষে test করা হয়,শুরুতে করার পরিবর্তে,যেটা হয় while লুপ এ। অর্থাৎ কমপক্ষে একবার লুপ টি execute হবেই।

    সংকেত

    Do
    {
    Code to be executed
    }
    While(condition);
    

    যেমন নিচের উদাহরনটির কোডটিও উপরের মত একই আউটপুট দেবে শুধু কাজ করবে ভিন্নভাবে।

    <?php
    $i=1;
    do
    {
    $i++;
    echo "The number is " . $i . "<br />";
    }
    while ($i<=5);
    ?>
    

    কিন্তু এখানে যদি i=6 দেই তাহলে কি হবে?নিচের মত
    This is line 6
    This line is outside while loop.so it will not repeat.
    দেখুন লুপ টি প্রথমবার চেকিং ছাড়াই একবার কোড execute হয়েছে।প্রথমবার execution এর পর চেক করেছে যে লুপটি repeat হবে কিনা?কিন্তু while loop এ প্রথমবারই এই চেক হয়।

    ফর লুপ

    এই লুপ টি একটু জটিল।ফর লুপ এর কাজ while লুপ দিয়েও হয়,তবে কিছু সুবিধার কারনে এটি ব্যাহৃত হয়।

    সংকেত

    for (init; condition; increment)
    {
    code to be executed;
    } 
    
  • for loop statement ব্রাকেটের ভিতর ৩টি expression নেয় যেগুলো সেমিক্লোন দ্বারা বিভক্ত হয়।
    ১ম টি assignment statement(loop control variable),প্রথমবার লুপটি পূনরাবৃত্তির আগেই এটা একবার execution হয়।
  • ২য় টি Boolean expression যেটা প্রতিবার পূনরাবৃত্তির আগেই একবার এর মান নির্নীত(evaluate)হয়,এই মান true হলে পূনরাবৃত্তি চলবে আর false return করে তাহলে পূনরাবৃত্তি বন্ধ হয়ে যাবে।
  • ৩য় টি দিয়ে loop control variable এর মান বাড়াতে বা কমাতে ব্যাবহৃত হয়।
  • নিচের উদাহরনটি দেখুন লুপটি শুরু হয়েছে i=1 দিয়ে এবং এটি চলবে যতক্ষন I এর মান ৫ এর চেয়ে ছোট বা সমান হয়।আর I এর মান ১ করে বাড়বে।

    <?php
    for ($i=1; $i<=5; $i++)
    {
    echo "The number is " . $i . "<br />";
    }
    ?>
    

    Output

    The number is 1
    The number is 2
    The number is 3
    The number is 4
    The number is 5

    যেকোন expression ফাকা বা একটিতে একাধিক expression থাকতে পারে,যেগুলো কমা দ্বারা বিভক্ত হবে। যদি Boolean expression ফাকা থাকে তাহলে এর default মান true হয়। এই উদাহরনে সবগুলির আউটপুট ১-১০ হবে।
    আরেকটা লুপ আছে নাম foreach loop এটি array এর সাথে ব্যাবহৃত হয় তাই পরে আসছি।

    পিএইচপি কন্ডিশনাল স্টেটমেন্ট

    কোনো শর্তের উপর কোনো action নেয়ার জন্য কন্ডিশনাল স্টেটমেন্ট ব্যাবহৃত হয়। ধরুন আমি আমার ওয়েবসাইটে এমন একটা feature যোগ করতে চাই যাতে যদি কেউ আমার সাইটে দুপুর ১২ টার আগে ঢুকে তাহলে দেখাবে “Good Morning” আর যদি কেউ বিকেল ৫ টার পর ঢুকে তাহলে দেখাবে “Good evening” এই ধরনের বরং এর চেয়েও মজাদার ও অ্যাডভান্সড কাজগুলো করতে Conditional statement এর দরকার,condition এর উপর ভিত্তি করে পিএইচপি স্বয়ংক্রিয়ভাবে কাজগুলো করতেই থাকে।

    পিএইচপি তে কয়েক ধরনের Conditional statement আছে-

  • if statement
  • if…else statement
  • if…elseif…else statement
  • Switch statement
  • if statement

    if statement টি দিয়ে কিছু কোড execute করা হয় যখন আমাদের দেয়া condition টি true হয়।
    নিচে উদাহরনের আউটপুট হবে Have a nice day যদি ঐ দিন Saturday হয় যেদিন কোডটা লিখে রান করাবেন।

    <?php
    $d=date("D");
    if ($d=="Sat")
    echo "Have a nice Day";
    ?>
    

    if…else statement

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

    <?php
    $d=date("D");
    if ($d=="Sat") echo "Have a nice Day";
    else
    echo “Today is not saturday”;
    ?>
    

    দেখুন condition যেটা দিয়েছি যদি সেটা true হয় অর্থ্যাৎ কোডটা যেদিন রান করাবেন সেদিন যদি Saturday হয় তাহলে আউটপুট হবে Have a nice day আর তা নাহলে Today is not Saturday.

    If…elseif…else statement

    এই statement দ্বারা এক বা একাধিক কোডের ব্লক execute করা যায়।

    <html>
      <body>
    <?php
    if ($number>=60)
      echo "First Division";
    elseif ($number>=45 and $number<60)
      echo “Second Division”;
    elseif($number>=33 and $number<45)
      echo "Third Division";
    else
      echo “Failed”;
    ?>
    </body>
    </html> 
    

    পিএইচপি অপারেটর

    অপারেটরস

    • ভ্যালু বা ভ্যারিয়েবলকে manipulate করতে ব্যাবহৃত হয়।

    ৩ ধরনের অপারেটর আছে ১.Unary – একটা ভ্যালু বা ভ্যারিয়েবলকে(operand) নিয়ে কাজ করে। ২.Binary-দুটি ভ্যালু বা ভ্যারিয়েবলকে নেয়। ৩.Ternary- ৩টি ভ্যালু বা ভ্যারিয়েবলকে নিয়ে থাকে।

    • এর পাশাপাশি আমরা Operator গুলোকে অনেকভাবে শ্রেনীবদ্ধ করতে পারি যেমন-Arithmetic, Assignment, Comparison Operator etc.

    অ্যাসাইনমেন্ট অপারেটর (Assignment Operator) এ অপারেটর গুলো একটা ভ্যালু বা ভ্যারিয়েবলকে অন্য একটা ভ্যালু বা ভ্যারিয়েবলের সমান করতে ব্যাহৃত হয়। $my_var = 4; $another_var = $my_var; এখন $my_var ও $another_var উভয়েরই মান হল ৪.

    <!--?php 
    $addition = 2 + 4;
    $subtraction = 6 - 2;
    $multiplication = 5 * 3;
    $division = 15 / 3;
    $modulus = 5 % 2;
    echo &quot;Perform addition: 2 + 4 = &quot;.$addition.&quot;<br ?-->";
    echo "Perform subtraction: 6 - 2 = ".$subtraction."
    ";
    echo "Perform multiplication:  5 * 3 = ".$multiplication."
    ";
    echo "Perform division: 15 / 3 = ".$division."
    ";
    echo "Perform modulus: 5 % 2 = " . $modulus ?>
    

    সেভ করে রান করান এমন দেখাবে

    Perform addition: 2 + 4 = 6
    Perform subtraction: 6 - 2 = 4
    Perform multiplication: 5 * 3 = 15
    Perform division: 15 / 3 = 5
    Perform modulus: 5 % 2 = 1

     স্ট্রিং অপারেটর (String Operator)

    • এটাতো আগেই আমরা দেখেছি আর ব্যাবহারও করেছি-“”, ‘’
    • Arithmetic এবং Assignment Operator এর Combination
    • Programming এ একটা পরিচিত কাজ হচ্ছে একটা ভ্যারিয়েবলকে নির্দিষ্ট হারে বাড়ানো,যেমন গননার ক্ষেত্রে

    আমি যদি ১ করে বাড়াতে চাই তাহলে $counter=$counter+1; যাহোক সংক্ষেপে এভাবে লেখে $counter+=1; Pre/Post-Increment এবং Pre/Post-Decrement: উপরেরটা একটু অদ্ভুত মনে হতে পারে,এটার আরেকটা সর্টকাট মেথড আছে কোন ভ্যরিয়েবল থেকে ১ করে বাড়ানো বা কমানোর $x++ যেটা $x += 1; অথবা $x = $x + 1 এর সমান। আর কমানোর ক্ষেত্রে শুধু “-” অপারেটরটা ব্যাবহৃত হবে।

    পিএইচপি (PHP) স্ট্রিং

    পিএইচপি স্ট্রিং এতক্ষন ব্যাবহার করলেও গভীর আলোচনা করা হয়নি। পিএইচপি Career এ এই স্ট্রিং একটা গুরত্বপূর্ন ভূমিকা পালন করে। তাই এ ব্যাপারে পরিষ্কার ধারনা থাকা আবশ্যক। স্ট্রিং ব্যাবহারের আগে এটাকে তৈরী করে নিতে হবে। একটা স্ট্রিং সরাসরি একটা ফাংশনে ব্যাবহার হতে পারে অথবা একটা ভ্যারিয়েবলে store থাকতে পারে। নিচে দেখুন একই স্ট্রিং দুবার তৈরী করেছি,একবার ভ্যারিয়েবলে store করা হয়েছে আরেকবার সরাসরি echo করা হয়েছে।

    <?php
    
    $my_string = "o merciful make me bold and brave!";
    echo " o merciful make me bold and brave!";
    echo $my_string;
    ?> 

    উপরের উদাহরনে প্রথম স্ট্রিং কে $my_string ভ্যারিয়েবলে ঢুকিয়ে দেয়া হয়েছে আর দ্বিতীয়বার আরেকটা স্ট্রিং কে echo করা হয়েছে,কোনো ভ্যারিয়েবলে না store করেই। একটা জিনিস মাথায় রাখতে হবে যে যখনই কোন স্ট্রিং কে আমরা একাধিকবার ব্যাবহারের প্লান করব শুধু তখনই এটাকে কোনো ভ্যারিয়েবলে ঢুকিয়ে store করে রাখব।
    আচ্ছা এবার উপরের কোডটুকু লিখে সেভ করে রান করান। ব্রাউজারে নিচের মত আউটপুট পাবেন।

    এতক্ষনতো Double quotes দ্বারা স্ট্রিং তৈরী করা হয়েছে এখন Single quotes দ্বারা স্ট্রিং তৈরী করতে পারেন বরং এটাই ঠিক,তা নাহলে আসলেতো ওটা apostrophes নামে পরিচিত।

    <?php
    $my_string = ‘o merciful make me bold and brave!’;
    echo ‘o merciful make me bold and brave!’;
    echo $my_string;
    ?>
    

    যদি স্ট্রিং এর ভিতর single quotes ব্যাবহার দরকার হয় তাহলে এভাবে করুন- echo ‘PHP it’s neat’ আমরা এখানে আপাতত double quotes ব্যাবহার করব এতে কিছু সুবিধা আছে যেটা single quotes এ নাই। পিএইচপি লেখার যে পদ্ধতিদুটি আলোচনা করা হল এ দুটি সাধারনত সব প্রোগ্রামিং ল্যাংগুয়েজ এর ক্ষেত্রে ব্যাবহৃত হয়,কিন্তু পিএইচপি তে একটা পাওয়ারফুল টুল আছে যেটা দিয়ে বহুলাইনের স্ট্রিং লেখা যায় কোনো quotation ব্যাবহার করা ছাড়াই।সেটা হল heredoc,একটু সতর্কতার সাথে স্ট্রিং কোডিং করতে হবে নাহলে ঝামেলা হবে।নিচে দেখুন কিভাবে এটা করতে হয়-

    এভাবে যদি স্ট্রিং লেখেন তাহলে কয়েকটি জিনিস অবশ্যই খেয়াল রাখতে হবে-

  • <<< বা কিছু identifier আছে যা আপনাকে ব্যাবহার করতে হবে heredoc শুরু করার আগে যেমন আমি TESTব্যাবহার করেছি। শেষেও এটি ব্যাবহার করেছি এবং সেমিক্লোন দিয়ে শেষ হবে।
  • এটা নিজেই একটা লাইন হবে,(indent) ফাকা রেখে লাইনটি শুরু করা যাবেনা।
  • আউটপুট নিচের মত আসবে যেহেতু আমরা
    (লাইনের ব্রেক দেয়ার জন্য ব্যাবহৃত হয়)ট্যাগ স্ট্রিং এর ভিতর ব্যাবহার করিনি।