Java Thread এর ব্যাবহার এবং তার প্রয়োগ:Java Thread এর ব্যাবহার এবং তার প্রয়োগ:

Java Thread এর ব্যাবহার এবং তার প্রয়োগ:

 

নাম: মুতাসিম বিল্লাহ সুমন

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

Thread তৈরি করা :
একটি সুন্দর এবং নির্ভুল Thread তৈরির পূর্ব শর্ত হচ্ছে আমাদের প্রথমে এই বিষয়ের কোড সম্পর্কে জ্ঞান রাখা। আর এটি করতে হলে অবশ্যই আমাদের নিচের কোড গুলোর সাথে আগে পরিচিত হতে হবে। তাহলে আসুন আমরা Thread তৈরির কোডগুলো সম্পর্কে জানার চেষ্টা করি।
public class MyCustomThread extends Thread{//variables
int someVariable; String anotherVariable; boolean threadRunFlag;
public MyCustomThread(int parameter, String parameterString){
this.someVariable=parameter; this.anotherVariable=parameterString; }
@Override
public void run(){while(threadRunFlag){ //do somethingtry{
sleep(timeInMillis); }catch(Exception e){
//do something}}}
public void stopThread(){
threadRunFlag=false; }}

Thread ব্যবহার করা :
Thread তৈরি করার পরে আমাদের যেটি দরকার সেটি হচ্ছে এটি ব্যাবহার করা। এটি আমরা কোড ব্যবহার করে সহজেই ব্যাবহার করতে পারি। আসুন, তাহলে দেখা যাক ব্যবহারের কোডগুলো সম্পর্কে।
public class NewClass {//Class body
public static void main(String[] args){
MyCustomThread aThread=new MyCustomThread(intParameter, stringParameter);
MyCustomThread aThread2=new MyCustomThread(intParameter2, stringParameter2);
aThread.start();
aThread2.start();//do something
aThread.stopThread();
aThread.stopThread2();}}
আশাকরি আজকের আলোচনাটি আপনাদের বিশেষ উপকারে এসেছে। এবং এই দুটি বিষয়ের কোডিং সম্পর্কে প্রাথমিক ধারণা অর্জন করতে সক্ষম হয়েছেন।

PHP ক্যারিয়ার গঠন

PHP ক্যারিয়ার গঠন
নাভিদ তাসনিম

PHP অর্থাৎ Hypertext Preprocessor হলো একটি সার্ভার সাইড, একটি HTML Embedded স্ক্রিপ্টিং সাইড।একজন ভালো ওয়েব ডিজাইনার হতে PHP শেখা খুবই গুরুত্বপূর্ণ।প্রশ্ন হচ্ছে আপনি যদি অভিজ্ঞ PHP ক্যারিয়ার গঠন করতে চান তবে আপনার কি কি জানা প্রয়োজন?

টুলস এবং ফ্রেমওয়ার্ক :

1. CakePHP ফ্রেমওয়ার্ক শিখুন।
http://cakephp.org/

2. বিভিন্ন IDE যেমন Zend Studio,Aptana,Borland Delphi IDE for PHP,P4A IDE,Eclipse PDT,Dreamweaver ইত্যাদি এর ব্যবহার জানুন ।জেন্ড স্টুডিও থেকে টুলস এবং ফ্রেমওয়ার্ক সম্পর্কে ভালভাবে শিখে নিন।
http://www.zend.com/products/studio/

3. PHP বাদে আপনি কি চাকরি খুঁজছেন? অথবা আপনার পছন্দের চাকরি বেছে নিতে পারছেন না? তাহলে আপনার এ বিষয়ে আরো জানা প্রয়োজন।আর যদি আপনার নির্দিষ্ট চাকরি থাকে, তাহলে আপনি একটি IDE এর উপর মনোনিবেশ করতে পারেন।ড্রুপাল এবং জুমলার ব্যবহার শিখুন।

4. Directory Codes সম্পর্কে ভাল ধারনা রাখা প্রয়োজন।CMSes গুলোর ডাটাবেস স্ট্রাকচার সম্পর্কেও ভালভাবে জানুন।

5. PHP ক্যারিয়ারে দক্ষতা অর্জনে আপনাকে অবশ্যই HTML,CSS,JavaScript,MySQL & XHTML সম্পর্কে জানতে হবে।SITEBUILDER এর বইগুলো এ ব্যাপারে আপনাকে সাহায্য করতে পারে।

6. মনেরিস, পেপাল, অথরাইজ, মিরাসার্ভ-বিভিন্ন অনলাইন পেমেন্ট পদ্ধতি সম্পর্কে জেনে নিন।

7. Magento,OScommerce,Ubercart সাইটগুলো আপনাকে লিনাক্স/অ্যপাচী প্ল্যাটফর্মের ওয়েব হোস্টিং সম্পর্কে ধারনা দেবে।

8. PHP সম্পর্কে অনুশীলন করতে Ebay থেকে কমদামে PHP স্ক্রীপ্ট কিনে নিতে পারেন।এরপর এগুলোর উপর নানান এক্সপেরিমেন্ট চালাতে পারেন।

9. সর্বোপরি Photoshop XML Manipulation,XSS এবং বিভিন্ন PHP Applications ব্যবহার ও ডিপ্লয়িং জানুন যা আপনাকে PHP তে আরো দক্ষ করে তুলবে।

আপনার কি PHP ক্যারিয়ার গঠন করা উচিত? নিচের লিংকগুলো দেখুন-

Reference:

http://salearningschool.com/displayArticle.php?table=Articles&articleID=1147&title=How%20to%20build%20a%20career%20in%20PHP

 

বায়োম্যাট্রিক্স প্রযুক্তি এবং সনাক্তকরণ

রাশেদা ইয়াসমিন নিপা

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

Biometrics এর কাজ হল কোন ব্যক্তির বৈশিষ্ট্যকে ডিজিটাল কোডে রূপান্তর করে পূর্ব সংরক্ষিত কোডের সাথে তুলনা করে সত্যতা যাচাই করা। নিম্নে Biometrics পদ্ধতিগুলো সম্পর্কে আলোচনা করা হল-

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

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

৩। হ্যান্ড জিওম্যাট্রি- মানুষ ভেদে হাতের গঠন, পরিমাপ ভিন্ন রকমের হয়। Hand Geometry পদ্ধতিতে মানুষের হাতের আকৃতিকে পরিমাপ করার মাধ্যমে ব্যক্তিকে চিহ্নিত করা হয়। এতে হাতের দৈর্ঘ্য, প্রস্থ, পূরুতব ইত্যাদি পরিমাপ ক্রা হয়। এই পদ্ধতি ব্যবহারকারীর জন্য ব্যবহার করা  য়

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

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

৬। সিগ্নেচার ভেরিফিকেশন- এই পদ্ধতিতে কলম ও এক ধরনের ট্যাবলেট পিসিতে স্বাক্ষর করে; স্বাক্ষরের আকার, লেখার গতি, সময় কলমের চাপ মূল্যায়ণ করে ব্যবহারকারির  স্বাক্ষর সনাক্ত করা হয়।

সফটওয়্যার নির্মাণে সময় নির্ধারণ: আপনার কি কি বিবেচনা করা উচিত? (Software Time Estimation)

Translation of : http://www.salearningschool.com/displayArticle.php?table=Articles&articleID=1360

সফটওয়্যার নির্মাণে সময় নির্ধারণ: আপনার কি কি বিবেচনা করা উচিত? (Software Time Estimation)
2013-03-21, সাইদ আহমেদ

একটি টাস্ক/কাজ এর জন্য সময় নির্ধারণ করতে  নীচের সব কিছু বিবেচনার প্রয়োজন হতে পারে

একটি টাস্ক রূপায়ণ করতে গেলে, ওই টাস্ক এর সাথে সম্পর্কিত অনেক অতিরিক্ত টাস্ক ও রূপায়ণ করতে হতে পারে. অতিরিক্ত স্টাফ, প্রকৃত টাস্ক রূপায়ণ এর  তুলনায় অধিক সময় লাগতে পারে. প্রকৃত টাস্ক যদি ছোট হয়, কখনও কখনও অতিরিক্ত কর্ম, প্রকৃত টাস্ক এর তুলনায় অনেক বড় হয় কারন সফটওয়্যার এর অন্য অংশগুলোর সাথে সামঞ্জস্য রাখতে হয়

একটি টাস্ক/কাজ এর জন্য সময় নির্ধারণ করতে  নীচের সব কিছু বিবেচনার প্রয়োজন হতে পারে:

1. সামগ্রিক সিস্টেমের আর্কিটেকচারের সাথে সমন্বয় করা
2. নিরাপত্তা ও একটি বিবেচ্য বিষয়? ইনপুট বক্স সৃষ্টি করে, তাতে কত নিরাপত্তা প্রদান করতে চান? নিরাপত্তা কি শুরুতে প্রদান করবেন না শেশে করবেন?
3. ইউজার ইন্টারফেস নির্মাণ [CSS লিখা, পৃষ্ঠাতে অন্যান্য উপাদান এর সাথে সামঞ্জস্য বা একটি নতুন পৃষ্ঠা তৈরি] – সময় লাগবে . ইন্টারফেস কে ব্যবহার উপযোগী করতেই সময় লাগবে। [ব্যবহারকারী বন্ধুত্বপূর্ণ]
4. ডাটাবেসের মধ্যে প্রয়োজনীয় পরিবর্তন করতে হতে পারে. ক্যোয়ারী এর দক্ষতা বিবেচ্য বিষয় হতে পারে
5. সমাধান এর লজিক বের করতে হবে [বিভিন্ন উপায় এর  মধ্যে একটি উপায় বেছে নিতে হবে।
6. কোড লিখতে সময় লাগবে।
7. কোড ডিবাগ এর জন্য সময় লাগবে।
8. টেস্টিং, একাধিক ব্রাউজারে পরীক্ষা, একাধিক ব্রাউজার সংস্করণ-এ পরীক্ষা, একাধিক স্ক্রীন রেজোলিউশান এ পরীক্ষা, ইন্টারনেট এক্সপ্লোরার এর Quirk মোড এর জন্য টেস্টিং – সময় লাগবে।
9. লোড টেস্টিং এবং পারফরমেন্স টেস্টিং এর জন্য সময় লাগবে।
10.  সামঞ্জস্যতা – এটা অন্য সব কিছুর সাথে সামঞ্জস্য রেখে কাজ করে কিনা দেখতে হবে
11. অন্যান্য সম্পর্কিত পৃষ্ঠাগুলি এবং ফাংশন গুলি কাজ করে কিনা দেখতে হবে? আপনার টাস্ক বাস্তবায়িত হওয়ার পরেও সময় প্রয়োজন.
12. কোড অপ্টিমাইজেশান করতে সময় লাগবে? এই বাপার এ প্লান করতে সময় লাগবে।
13. কোড ভাল করে সংগঠন করতে সময় লাগবে।
14. whitebox পরীক্ষার অংশ হিসেবে ডিবাগ করতে সময় লাগবে।
15. চেক করতে হবে: এটি পরীক্ষা/টেস্টিং  সার্ভারে কাজ করে কিনা ? এটি ইন্টিগ্রেশন সার্ভার কাজ করে কিনা?
16. কি কি পরীক্ষা করতে হবে তার লিস্ট বানাতে হবে এবং ওইগুলো নির্বাহ করতে সময় লাগবে। [কোনো আবশ্যক ডকুমেন্টেশন দরকার হলে সময় লাগবে।
17. প্রকল্প বড় হলে, বড় প্রকল্প এর সাথে কাজ করার জন্য ভাল মেমরি বা ভাল দক্ষতা প্রয়োজন  [সবকিছু  ট্র্যাক রাখতে হবে]
18. ইউনিট টেস্ট করতে হলে সময় লাগবে…

কখনও কখনও ছোট কাজগুলো, এই অতিরিক্ত বিবেচ্য বিষয় এর কারনে বড় হয়ে উঠতে পারে.

.Net এ ডাটা এনক্রিপশন

.Net এ ডাটা এনক্রিপশন
——————————–

.Net ডাটা এনক্রিপশন সমর্থন করে থাকে। namespace System.Security.Cryptography এর মধ্যে এনক্রিপশন ফিচার
নিহিত রয়েছে। এনক্রিপশন সংক্রান্ত তিনটি প্রাথমিক বিষয় হল Hashing, Symmetric Encryption এবং Asymmetric
encryption.

– Hash একটি data ফিঙ্গারপ্রিন্ট , যা একটি বৃহৎ data ব্লক এর স্বতন্ত্রতা প্রকাশ করে।

– Symmetric এনক্রিপশন একটি একক key যা এনক্রিপশন ও ডিক্রিপশন উভয়ের জন্য ব্যবহৃত হয়।

– Asymmetric এনক্রিপশনে দুটি ভিন্ন key ব্যবহৃত হয়। একটি এনক্রিপশন ও অপরটি ডিক্রিপশন এর জন্য।

ব্যবহারিক কাজে প্রকৃতপক্ষে অধিকতর নিরাপত্তার জন্য তিনটি প্রক্রিয়াই সমন্বিতভাবে ব্যবহৃত হয়।

Ref:http://salearningschool.com/displayArticle.php?
table=Articles&articleID=135

ডট নেট এ XML প্রোগ্রামিং এর সংক্ষিপ্ত বিবরণ

ডট নেট এ XML প্রোগ্রামিং এর সংক্ষিপ্ত বিবরণ

Faruk Hosen
এক্সএমএল DOM ( ডকুমেন্ট অবজেক্ট মডেল )

ডট নেট এ XML ডকুমেন্ট পড়তে তিনটি উপায় আছে: XML DOM, SAX এবং XML Reader. DOM প্রক্রিয়াকরণের জন্য মেমরির মধ্যে সম্পূর্ণ XML তথ্য লোড করে, এটা উভয় পাঠ্য-লইখ্য, মানে আপনি এক্সএমএল তথ্য পরিবর্তন ও সংরক্ষণ করতে পারবেন। DOM RAM-র মধ্যে তথ্য উপস্থাপন এর জন্য ডেটা স্ট্রাকচার ব্যবহার করে।

 
SAX সব XML তথ্য মেমরিতে লোড করেনা, বরং ক্রমানুশারে প্রসেস করে।

 
SAX শুধু বড় XML ফাইল / ডাটা পড়ার জন্য ভাল কিন্তু যেহেতু এটা RAM-র মধ্যে তথ্য সংরক্ষণ করেনা এবং কোনো তথ্য কাঠামো ব্যবহার করে না, এটি কমপ্লেক্স অপারেশন( সার্চ ) সঞ্চালন করতে পারেনা।

ডট নেট ফ্রেমওয়ার্ক এর XmlReader ক্লাসও XML তথ্য পড়া ও প্রসেস এ ব্যবহার করা যায়। এটা শুধুমাত্র-পড়া এবং শুধুমাত্র-ফরওয়ার্ড করা যায়।
কিভাবে এক্সএমএল DOM কাজ করে ?

একটি XML ডকুমেন্টের রুট নোড XmlDocument প্রতিনিধিত্ব করেন। XmlDocument XmlNode ক্লাস থেকে উদ্ভূত হয়। XmlDocument বিভিন্ন পদ্ধতি প্রদান করে যেমন লোড( ফাইল থেকে লোড এক্সএমএল তথ্য ), LoadXml(লোড প্যারামিটের হিসেবে এক্সএমএল স্ট্রিং নেয়) এবং সংরক্ষণ (একটি ফাইলে এক্সএমএল তথ্য সংরক্ষণ)। উপরন্তু, আপনি XML তথ্য এবং প্রক্রিয়া/মুদ্রণ এর জন্য XmlDocument ব্যবহার করতে পারেন।
http://salearningschool.com/displayArticle.php?table=Articles&articleID=625&isCampaign=1

সি # এ একটি ASP.Net ফরম। পেমেন্ট তথ্য সংগ্রহ ফরম। A form in C#

সি # এ একটি ASP.Net ফরম। পেমেন্ট তথ্য সংগ্রহ ফরম। A form in C#

Faruk Hosen

সি # এ একটি ASP.Net ফরম। পেমেন্ট তথ্য সংগ্রহ ফরম।

অনলাইন পেমেন্ট প্রসেসিং বাস্তবায়নের সময় এই ধরনের ফর্ম টেস্ট অপারেশনে ব্যবহার করা যেতে পারে। ইনপুট ফিল্ডটি পেমেন্ট গেটওয়ে থেকে তথ্য পাঠাতে ব্যবহারিত হয়। রেসপন্স ফিল্ডটি পেমেন্ট গেটওয়ে থেকে প্রতিক্রিয়া প্রদর্শনের জন্য। Paymentech গেটওয়ে দ্বারা প্রেরিত রেসপন্স এখানে আউটপুট ফিল্ড দ্বারা বোঝানো হয়।
ফরমটি এখানে পেতে পারেনঃ http://salearningschool.com/samples/asp.net/c_sharp/form/simpleform.png

<img src=’http://salearningschool.com/samples/asp.net/c_sharp/form/simpleform.png’ />

http://salearningschool.com/displayArticle.php?table=Articles&articleID=1350

ASP.Net ভ্যালিডেশন কন্ট্রোlলের উদাহরণ

ASP.Net ভ্যালিডেশন কন্ট্রোlলের উদাহরণ ঃ

Faruk Hosen

উদাহরনের জন্য নিচের লিঙ্ক থেকে কোড ডাউনলোড করুনঃ http://salearningschool.com/samples/validate.txt

• RequiredFieldValidator : প্রতিটা ফিল্ড পুরন করা হয়েছে কিনা তা পরীক্ষা করতে ব্যবহৃত হয়
• CompareValidator : একটা ফিল্ড এর সাথে আরেকটি ফিল্ড এর সাথে তুলনা করতে ব্যবহৃত হয়
• RangeValidator : ডাটা সমূহ একটি নির্দিষ্ট সীমার মধ্যে তুলনা করার জন্য ব্যবহৃত হয়
• RegularExpressionValidator : ডোমেন নাম সিনট্যাক্স , ইমেইল অ্যাড্রেস সিনট্যাক্স এর জন্য ব্যবহৃত হয়
• ValidationSummary : সকল ভেলিডেশন এরর একটি সংক্ষিপ্ত বাক্সে প্রদর্শন এর জন্য ব্যবহৃত হয়
• CompareValidator : আপনার নিজস্ব ভ্যালিডেশন রুল রাইট এবং এর ফলাফল প্রদর্শন এর জন্য ব্যবহৃত হয়

• মনে রাখতে হবেঃ
 আপনি কন্ট্রল প্যানেলের পাশে এরর প্রদর্শন করতে পারেন
 আপনি কন্ট্রল প্যানেলের নিচে এরর প্রদর্শন করতে পারেন
 টেক্সট প্রপারটি হল আউটপুট যা আসে যেখানে ভ্যালিডেশন কন্ট্রল স্থাপন করা হয় সেখান থেকে। এরর ম্যাসেজ রিপোর্ট হয় ভ্যালিডেশন সামারির জন্য।
 আপনি যদি শুধু ভ্যালিডেশন সামারি আউটপুট চান, তবে ভ্যালিডেশন কন্ট্রল এর জন্য Display=”none” ব্যবহার করুণ (সামারিকন্ট্রল নয়)।

http://salearningschool.com/displayArticle.php?table=Articles&articleID=1325

C – Strings . সি প্রোগ্রামিং এ স্ট্রিং

C – Strings
মোঃ আব্দুল্লাহ
সি প্রোগ্রামিং এ স্ট্রিং হল মুলত এক ডাইমেনশনের array যা কিনা শেষ হয় ‘\0’ বা null character দিয়ে ।
নিম্নের বিবৃতি এবং উদ্ধৃতিটি এমন একটি স্ট্রিং তৈরী করে যা “Hello” স্ট্রিংটি ধারণ করে। array র শেষে null character কে ধারণ করার জন্য array র ধারণক্রিত পদের স্ট্রিং একের মত বড় যেন তা “Hello.” স্ট্রিংটি ধারণ করতে পারে।
char greeting[6] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’};

তুমি যদি array শুরু করার নিয়ম অনুসরণ করতে চাও তবে তুমি উপরের বিবৃতিটি নিম্নরুপে লিখতে পার।
char greeting[] = “Hello”;
উপরের স্ট্রিংটি মেমোরিরে কিভাবে থাকবে তার জন্য নীচের ছবিটি দেখতে পারোঃ

বস্তুত তুমি স্ট্রিং কন্সটান্টের শেষে null characte টিকে স্থাপন কর না। সি কম্পাইলর নিজে থেকে ‘\0’ কে স্ট্রিং এর শেষে স্থাপন করে যখন এটি array initialize করে। চলো উপরের স্ট্রিং কে প্রিন্ট করিঃ
#include <stdio.h>
int main ()
{
char greeting[6] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’};
printf(“Greeting message: %s\n”, greeting );
return 0;
}

যখন উপরের কোডটি কম্পাইল করে রান করা হয় তখন এটি নিম্নোক্ত ফলাফল দেয়ঃ
Greeting message: Hello

সি স্ট্রিং এর জন্য অনেক ফাংসন এর অবলম্বন করে থাকে । নিম্নে তার একটি তালিকা দেওয়া হলঃ
S.N. Function & Purpose
1 strcpy(s1, s2);
স্ট্রিং s2 কে s1 এ কপি করে।
2 strcat(s1, s2);
স্ট্রিং s1 এর শেষে স্ট্রিং s2 কে যুক্ত করে।
3 strlen(s1);
স্ট্রিং s1 এর দৈর্ঘ্য ফেরত পাঠায় ।
4 strcmp(s1, s2);
যদি s1 এবং s2 সমান হয় তবে 0; যদি s1s2 হলে 0 থেকে বেশি ফেরত দেয়।
5 strchr(s1, ch);
ch এর পয়েন্টার ফেরত পাঠায় যখন ch প্রথম স্ট্রিং s1 এ দেখা যায় ।
6 strstr(s1, s2);
স্ট্রিং s1 এর মধ্যে স্ট্রিং s2 প্রথম দেখা যায় তার পয়েন্টেরকে ফেরত দেয়।
নিম্নের উদাহরণটি উপরে দেখানো কিছু ফাংসনের ব্যবহার দেখায়ঃ
#include <stdio.h>
#include <string.h>

int main ()
{
char str1[12] = “Hello”;
char str2[12] = “World”;
char str3[12];
int len ;

/* copy str1 into str3 */
strcpy(str3, str1);
printf(“strcpy( str3, str1) : %s\n”, str3 );

/* concatenates str1 and str2 */
strcat( str1, str2);
printf(“strcat( str1, str2): %s\n”, str1 );

/* total lenghth of str1 after concatenation */
len = strlen(str1);
printf(“strlen(str1) : %d\n”, len );
return 0;
}

যখন উপরের কোডটি কম্পাইল করে এবং রান করা হয়, এটি নিম্নোক্ত ফলাফল দেয়ঃ
strcpy( str3, str1) : Hello
strcat( str1, str2): HelloWorld
strlen(str1) : 10

C – Loops

C – Loops
মোঃ আব্দুল্লাহ

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

সি প্রোগ্রামিং ভাষা লুপিং চাহিদা পরিপূরণের জন্য নিম্নের ধরনের লুপ দিয়ে থাকে। নিম্নের লিংকগুলি ক্লিক করে এর সম্পর্কে বিস্তারিত জানো।
Loop Type Description
while loop
হওয়াইল লুপ যখন প্রদত্ত যুক্তিটি সত্য তখন এটি একটি বিবৃতি বা এক গুচ্ছ বিবৃতিকে পুনরাবৃত্তি করে। এটি লুপটিকে পরিচালনার আগে বিবৃতিকে পরীক্ষা করে।
for loop
ফর লুপ বিবৃতির ধারা্টিকে একাধিকবার পরিচালনা করে এবং কোডটিকে সংক্ষেপে প্রকাশ করে যা লুপ চলকের ব্যবস্থাপনা করে।
do…while loop
ডু… হওয়াইল লুপ এটি হওয়াইল বিবৃতির মত, শুধু এটি লুপের শেষে যুক্তি পরীক্ষা করে।
nested loops
ডু… হওয়াইল লুপের জন্য তুমি এক বা একাধিক লুপকে যেকোন হওয়াইল লুপের ভিতরে ব্যবহার করতে পার।

Loop Control Statements:

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

The Infinite Loop:
যদি কোন যুক্তি কখনও মিথ্যা না হয় তবে লুপটি ইনফিনিট লুপ হয়। এর জন্য ফর লুপটি ব্যবহৃত হয়। যদিও এই তিনটি এক্সপ্রেশনের একটিও ফর লুপের জন্য প্রয়োজন হয় না, তবুও তুমি একটি স্থায়ী লুপ বানাতে পার নির্ভরশীল এক্সপ্রেশনকে খালি রেখে।
#include <stdio.h>
int main ()
{
for( ; ; )
{
printf(“This loop will run forever.\n”);
}
return 0;
}

যখন নির্ভরশীল এক্সপ্রেসন অনুপস্থিত থাকে, তখন একে সত্যি ধরে নেয়া হয়। তোমার একটি প্রস্তুতিমূলক বা ক্রমবৃদ্ধি এক্সপ্রেশন থাকতে পারে , কিন্তু সি প্রোগ্রাম বেশিরভাগ ক্ষেত্রে ফর (;;) বানানোর জন্য ইনফিনিট লুপকে প্রকাশ করে।