প্রোগ্রামিং সিরিজ: Word Count এর আগাগোড়া

পুরোটা পড়ার সময় নেই? ব্লগটি একবার শুনে নাও।

এই লেখাটি নেয়া হয়েছে “আদর্শ” থেকে প্রকাশিত এবং ঝংকার মাহবুব লিখিত “প্রোগ্রামিংয়ের চৌদ্দগোষ্ঠী” বই থেকে।

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

ভাষণের Word Count করে চাইলে ভ্যাট

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

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

সঙ্গে সঙ্গে এই ভ্যাট আদায় করার জন্য সব রাজনৈতিক সভা-সমাবেশে NBR (National Board of Revenue)-এর লোকেরা ক্যালকুলেটর নিয়ে হাজির। দাঁড়িয়ে দাঁড়িয়ে গুনছে কে কত শব্দ বক্তৃতা দিচ্ছে। কারও বক্তৃতা 500 শব্দের বেশি গেলেই গছাক করে ভ্যাটের নীল চালান ধরিয়ে নগদ ভ্যাট আদায় করে নিচ্ছে।

শুধু ভ্যাট ট্যাক্সের লোকেরা যে শব্দ গোনে তা কিন্তু না। অনেক সময় অফিশিয়াল রিপোর্ট কিংবা সামারি লেখার সময় বলে দেওয়া থাকে যে সর্বোচ্চ 500 শব্দের মধ্যে রিপোর্ট জমা দিতে হবে বা ভাবসম্প্রসারণ লেখার সময় 200 শব্দের মধ্যে লিখতে হবে।

আপাতত শব্দ গোনার চিন্তা বাদ দিয়ে চিন্তা কর যে তুই রেললাইনের পাশ দিয়ে হেঁটে যাচ্ছিস। যাইতে যাইতে দেখিস যে ট্রেন আসতেছে। এখন তুই যদি এই ট্রেনের কয়টা বগি আছে গুনতে চাস। তাহলে সেটা কীভাবে গুনবি? ধর, তুই প্রথমেই দেখবি ট্রেনের ইঞ্জিন। ইঞ্জিন যাওয়ার পরপর দেখবি একটা শিকল দিয়ে ইঞ্জিনের সাথে পরের বগি কানেক্ট করা আছে। তুই যখনই ইঞ্জিনের পরে শিকল দেখিস, তখনই বুঝে যাস একটা বগি পার হয়ে গেছে। অর্থাৎ দুইটা বগির মধ্যে গ্যাপ দেখেই বুঝে ফেলিস একটা বগি পার হয়ে গেছে। এভাবে যতবার দুইটা বগির মাঝখানের গ্যাপ দেখবি, ততবার একটা করে বগি গুনবি। তার মানে বগি কয়টা আছে, সেটা গোনার জন্য দুইটা বগির মাঝখানের গ্যাপ খেয়াল করে করে গুনতে হয়।

ধর, তুই রেললাইনের পাশে কপোত-কপোতীদের হাত ধরে বসে থাকতে দেখে নিজের অজান্তেই একটা গান গেয়ে উঠলি— ar koto rat eka thakbo. এই যে আর কত রাত একা থাকব একটা লাইন। এই লাইনের মধ্যে কয়টা শব্দ আছে, সেটা কীভাবে গুনবি? এখানেও ট্রেনের মতো প্রথম থেকে দেখা শুরু করবি। একদম প্রথমে আছে a, তারপর আছে r, তার মানে এখনো কোনো শব্দ হয় নাই। তারপর ar-এর পর যখন দেখবি একটা খালি জায়গা। তখনই তুই বুঝে ফেলবি ar একটা শব্দ। তার মানে তুই একটা শব্দ পেয়ে গেছিস। আরেকটু আগাইতে থাকলে দেখবি koto-এর পরে আরেকটা খালি জায়গা আছে। তখনই তুই বুঝে ফেলবি আরেকটা শব্দ পেয়ে গেছিস।

তার মানে শব্দ গোনার সময় তুই একটার পর একটা বর্ণ দেখলে সামনে আগাইতে থাকবি। আর যখন একটা খালি জায়গা দেখবি, তখন ধরে ফেলবি সেখানে একটা শব্দ শেষ। এই জিনিস তুই সারা জীবন ধরেই জানিস। হয়তো আগে ভালো করে খেয়াল করিস নাই। এখন একটু খেয়াল কর তাইলেই কাজ হয়ে যাবে। এই যে একটা শব্দের পর খালি জায়গা থাকে। অর্থাৎ দুইটা শব্দের মাঝখানে একটা খালি জায়গা থাকে বা গ্যাপ থাকে। যাতে দুইটা শব্দকে আলাদা করা যায়। এই খালি জায়গা বা গ্যাপকে ইংরেজিতে বলে হোয়াইট স্পেস (” “)। হোয়াইট স্পেস (white space) বা দুইটা শব্দের মধ্যে খালি জায়গা না থাকলে একটা শব্দের সাথে আরেকটা শব্দের ঘেঁষটাঘেঁষটি লেগে যেত। আর কোনো গ্যাপ না থাকলে শব্দগুলো পড়া যেত না।

এবার ফিরে আয় সেই রাজনৈতিক বক্তৃতার কথায়। যেসব নেতা ভাষণ দেয় তারা কিন্তু সব সময় একই ভাষণ দেয় না; বরং আজকে একটা ভাষণ দেয়। কালকে আরেকটা ভাষণ দেয়। অর্থাৎ ভাষণ বা বক্তৃতা চেইঞ্জ হচ্ছে বা ভ্যারি (vary) করতেছে। আর কোনো কিছু ভ্যারি করলে সেটাকে প্রোগ্রামিংয়ের ভাষায় বলে ভ্যারিয়েবল (variable)। এই ভ্যারিয়েবল লেখা খুবই সোজা। জাস্ট variable শব্দটার প্রথম তিনটা বর্ণ অর্থাৎ var লিখবি, তারপর ভ্যারিয়েবলের যে নাম দিবি সেটা লিখবি। তুই নাম দিলি বক্তৃতা (boktrita)। তারপর সমান চিহ্ন দিয়ে সেই ভ্যারিয়েবলের মান বসিয়ে দিবি। মনে রাখবি, যখন কোনো কিছুর মান বা উপাদান এক বা একাধিক বর্ণ দিয়ে প্রকাশ করা হয় তখন সেই বর্ণ বা বর্ণসমষ্টির আগে এবং পরে কোটেশন দিতে হবে। তোর বক্তৃতা যেহেতু অনেকগুলো বর্ণ বা বর্ণের সমষ্টি, তাই দুইটা কোটেশনের মধ্যে এই বক্তৃতার মান লিখবি নিচের মতো করে।

var boktrita = “Agami eid er por andolon hobe.”;

তোর মেইন টার্গেট হচ্ছে কতগুলো শব্দ আছে, সেটা গণনা করা। আর কতগুলো শব্দ হবে, সেটা কিন্তু নির্দিষ্ট থাকবে না। কোনো দিন 10টা, কোনো দিন 5টা আবার কোনো দিন 500টাও হতে পারে। তার মানে কতগুলো হবে, সেটাও ভ্যারি করতেছে। তাই সেটার জন্য তুই আরেকটা ভ্যারিয়েবল ডিক্লেয়ার করবি। আর এইটার নাম দিলি count। আর গণনা শুরু করার আগে অর্থাৎ বক্তৃতা শুরু করার আগে যেহেতু কোনো শব্দ বলে নাই। তাই count নামক ভ্যারিয়েবলের প্রাথমিক মান হবে শূন্য। সেটা নিচের মতো করে লিখবি।

var count = 0;

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

তুই যেহেতু for লুপ লিখবি তাই প্রথমেই for শব্দটা লেখবি। তারপর দুইটা প্রথম ব্র্যাকেট দিয়ে সেই ব্রাকেটের ভেতরে একটা ভ্যারিয়েবল ডিক্লেয়ার করবি। সেই ভ্যারিয়েবলের নাম i দিবি। এই i ভ্যারিয়েবলটা ডিক্লেয়ার করা হইছে লুপ চালানোর জন্য। আর এই ভ্যারিয়েবলের প্রাথমিক মান হচ্ছে 0 সে জন্যই লিখবি var i = 0 তারপর একটা সেমিকোলন দিবি।

তোর লুপের কাজ হচ্ছে শব্দ গণনা করা, তাই বক্তৃতা যতক্ষণ চলবে, শব্দ গণনা ততক্ষণ চলবে। এইটাকে প্রোগ্রামিংয়ের ভাষায় বলা যায় তোর লুপ ভ্যারিয়েবল i ততক্ষণ পর্যন্ত চলবে, যতক্ষণ পর্যন্ত boktrita ভ্যারিয়েবলের দৈর্ঘ্য আছে। অর্থাৎ i-এর মান বক্তৃতার দৈর্ঘ্যের চাইতে ছোট হলেই লুপ চলতে থাকবে। বক্তৃতার দৈর্ঘ্য বের করা খুবই সোজা। জাস্ট boktrita লিখবি। তারপর ডট চিহ্ন দিয়ে length লিখে দিবি। তাই তোর boktrita নামক ভ্যারিয়েবলের দৈর্ঘ্য হচ্ছে boktrita.length। এই i-এর মান যতক্ষণ পর্যন্ত boktrita.length-এর মানের চাইতে ছোট হবে, ততক্ষণ পর্যন্ত লুপ চলবে। আর ছোট বুঝতে less than চিহ্ন (<) দেওয়া হয়। তাই তুই i < boktrita.length লিখবি। এখন for লুপের ভেতরে i < boktrita.length লিখে তারপর একটা সেমিকোলন দিয়ে দিবি।

for লুপের ব্র্যাকেটের ভেতরে আরেকটা জিনিস লিখতে হবে, সেটা হচ্ছে i-এর মান প্রতিবার এক এক করে বাড়াতে হবে। লুপ চলে i দিয়ে। তাই i-এর মান এক করে বাড়ানোর জন্য i-এর পরে দুইটা যোগ চিহ্ন দিয়ে দিবি। i++ লিখে। আর মনে রাখবি যেকোনো ভ্যারিয়েবলের পরে দুইটা প্লাস চিহ্ন (++) থাকলে সেই ভ্যারিয়েবলের মান এক এক করে বাড়ানো হবে।

সবশেষে তোকে দুইটা সেকেন্ড ব্র্যাকেট দিতে হবে। লুপ চালানোর পর যেসব কাজ করতে হবে, সেগুলো এই সেকেন্ড ব্র্যাকেটের ভেতরে করতে হবে। তোর অস্থির for লুপটা দেখতে নিচের মতো হবে—

for(var i = 0; i < boktrita.length; i++){

}

যখন লুপ চালাবি, তখন লুপের ভেতর থেকে একটা বর্ণ নিয়ে দেখতে হবে সেটা হোয়াইট স্পেস কি না। অর্থাৎ তুই বক্তৃতার এক পাশ থেকে দেখা শুরু করবি। একটু একটু করে আগাইতে থাকবি আর চেক করবি কোনো হোয়াইট স্পেস পাওয়া যায় কি না। যদি হোয়াইট স্পেস হয় তাহলে শব্দ গণনার মান (count ভ্যারিয়েবলের মান) এক করে বাড়াবি। আর যদি হোয়াইট স্পেস না হয়, তাহলে কিছু করবি না।

কোনো একটা শব্দ বা বাক্য থেকে কোনো একটা বর্ণ বের করার জন্য জাস্ট সেটার ভ্যারিয়েবলের নাম লিখে থার্ড ব্র্যাকেট দিয়ে দিবি। তারপর সেটার ভেতরে যদি কোনো একটা সংখ্যা লিখে দিস, তাহলে সেই পজিশনে কোন বর্ণ আছে, সেটা বলে দিবে। বিশ্বাস না হলে মোবাইল বা ল্যাপটপ দিয়ে www.jhankarmahbub.com/console-এ চলে যা। সেখানে নিচের মতো করে বক্তৃতা ভ্যারিয়েবল ডিক্লেয়ার করবি। তারপর প্রথম বর্ণটাকে আউটপুট হিসেবে দেখার জন্য console.log লিখে প্রথম ব্র্যাকেটের ভেতরে boktrita[ 0 ] লিখে দিবি। এরপর নিচের Run লেখা বাটনে চাপ দিবি। তাহলেই তুই আউটপুট হিসেবে A দেখতে পাবি।

var boktrita = “Agami Eid er por andolon hobe”;

console.log(boktrita[0]);

এখন তুই যদি 0 পজিশনের বর্ণ না খুঁজে লুপের ভেতরে বর্ণকে আউটপুট হিসেবে দেখতে চাস তাহলে লুপের ভেতরে boktrita[ i ] লিখে দিবি। লুপ যতবার চলবে i-এর মান তত বাড়তে থাকবে। তাই 0 থেকে শুরু করে শেষ পর্যন্ত সবগুলো বর্ণকে দেখতে পাবি।

তবে বর্ণ দেখতে পাইলেই সব কাজ হবে না। তোকে এখন হারিকেন জ্বালিয়ে খুঁজতে হবে। চেক করতে হবে সেই বর্ণটা হোয়াইট স্পেস বা খালি জায়গা কি না। আর কোনো জিনিস চেক করার জন্য if লিখে দুইটা প্রথম ব্র্যাকেট দিয়ে তার ভেতরে চেক করবি খালি জায়গা বা হোয়াইট স্পেস আছে কি না। সেই চেক করার জন্য boktrita[ i ] == ” ” লিখবি। কারণ খালি জায়গা বলতে দুইটা কোটেশনের ভেতরে একটা হোয়াইট স্পেস বোঝানো হয়। অর্থাৎ দুইটা কোটেশন লিখে তারপর কিবোর্ডের স্পেসবারে চাপ দিয়ে দিলেই হবে।

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

আর এই জিনিসটা if-এর শর্ত দিয়ে চেক করবি। তাই তুই if লিখে প্রথম ব্র্যাকেটের ভেতরে boktrita[ i ] == ” ” লিখবি। তারপর দুইটা সেকেন্ড ব্র্যাকেট দিবি। কারণ যদি if-এর শর্ত সত্যি হয় তাহলে if-এর ভেতরে যাবে এবং সেখানে যে কোড আছে, সেটাকে চালাবে। তাই তোর for লুপ দেখতে নিচের মতো হবে।

for(var i = 0; i < boktritKa.length; i++){

   if(boktrita [ i ]  ==  ”  “){

   }

}

if-এর পরের শর্ত যদি সত্য হয়। তাহলে তুই একটা খালি জায়গা বা হোয়াইট স্পেস পেয়ে যাবি। আর খালি জায়গা পাওয়ার মানে একটা শব্দ পেয়ে যাওয়া। তখন তোর কাউন্ট ভ্যারিয়েবলের মান এক বাড়াতে হবে। আর একটু আগেই বলেছি কোনো একটা ভ্যারিয়েবলের মান এক বাড়ানোর জন্য তার নামের পরে দুইটা প্লাস চিহ্ন দিলেই কাজ হয়ে যায়। তাই কোড দেখতে নিচের মতো। এবং for লুপ শেষ হওয়ার পর কয়টা শব্দ হইছে, সেটা আউটপুট হিসেবে দেখার জন্য একটা console.log দিয়ে সেটার ভেতরে count লিখে দে।

var boktrita = “Agami eid er por andolon hobe.”;

var count = 0;

for(var i = 0; i < boktrita.length; i++){

   if(boktrita [ i ]  ==  ”  “){

      count++;

   }

}

console.log(count);

এখন চোখ বন্ধ করে www.Jhankarmahbub.com/console-এ চলে যা। সেখানে ওপরের কোড লিখে নিচের Run লেখা বাটনে চাপ দিলে আউটপুট হিসেবে 5 দেখাবে। যদিও তুই নিজে যদি Agami eid er por andolon hobe.-কে গুনস তাহলে দেখবি 6টা শব্দ আছে। আর এমনটা হওয়ার কারণ হচ্ছে লাস্ট যে শব্দ আছে তারপরে কিন্তু আর কোনো হোয়াইট স্পেস বা খালি জায়গা নাই। তাই count ভ্যারিয়েবলকে আউটপুট হিসেবে দেখানোর আগে count-এর মান এক বাড়ানোর জন্য for লুপের বাইরে আরেকবার count++; লিখে দে। count++ জিনিসটা প্রথম প্রথম একটু কঠিন মনে হতে পারে। আসলে সেটা তেমন কঠিন কিছু না। জাস্ট count++-এর মধ্যে কোড যতবার যাবে, ততবার count ভ্যারিয়েবলের মান এক বাড়ানো হবে। লুপ যেহেতু বারবার ঘুরে ঘুরে চলে। তাই লুপের ভেতরে যতবার count++-এর কাছে যাবে। ততবার count ভ্যারিয়েবলের মান এক বাড়বে।

আর লুপ ছাড়া কখনো count++ লেখা থাকলে, সেটার কাছে একবার যাবে, তাই count ভ্যারিয়েবলের মান এক বাড়বে। এখন www.Jhankarmahbub.com/console-এ চলে গিয়ে পুরা কোড লিখে Run বাটনে চাপ দে। তখন আউটপুট হিসেবে 6 দেখতে পাবি।

var boktrita = “Agami eid er por andolon hobe.”;

var count = 0;

for(var i = 0; i < boktrita.length; i++){

     if(boktrita [ i ]  ==  ”  “){

         count++;

     }

}

count++;

console.log(count);

এই যে Word count করার একটা কোড তুই লেখছস, সেই কোড তুই কিন্তু একবার ইউজ করে ফালাই দিবি না; বরং বারবার ইউজ করবি। হয়তো বিভিন্ন সময় বিভিন্ন সমাবেশে গিয়ে গুনবি কে কয়টা শব্দ বলতেছে। তাই এ কাজটা বারবার করার জন্য তুই একটা ফাংশন লিখবি। ফাংশন লেখা খুবই সোজা। জাস্ট প্রথমেই function শব্দটা লিখবি। সেই ফাংশনের নাম দিলি শব্দ গণনা (word Count)। কারণ তুই কতগুলো শব্দ আছে সেটা গুনতে চাস। তারপর দুইটা প্রথম ব্র্যাকেট দিয়ে একটা ইনপুট প্যারামিটার নিবি।

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

function wordCount(boktrita){

}

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

function wordCount(boktrita){

    var count = 0;

    for(var i = 0; i < boktrita.length; i++){

         if(boktrita [ i ]  ==  ”  “){

            count++;

        }

     }

    count++;

   return count;

}

এখন তুই যদি ওপরের ফাংশনকে কল করতে চাস, তাহলে এই ফাংশনের নাম ধরে ডাক দিবি। ওপরের ফাংশন লেখার সময় সেটার নাম দিছস wordCount তাই wordCount নাম ধরে ডাক দিবি আর ডাক দেওয়ার সময় সেই ফাংশনকে একটা ইনপুট প্যারামিটার দিয়ে দিবি। ধর, তুই যদি “Agami Eid er por andolon hobe.”-এর মধ্যে কয়টা শব্দ আছে, সেটা জানতে চাস তাহলে ওপরের ফাংশনটা পুরা লিখবি তার নিচে wordCount (“Agami Eid er por andolon hobe.”) লিখবি। এরপর Run বাটনে চাপ দিবি। তখন আউটপুট হিসেবে 6 পাবি। আর তুই যদি অন্য কোনো ইনপুট প্যারামিটার দিতে চাস। যেমন “Bondu tui local bus.”এর মধ্যে কয়টা শব্দ আছে জানতে চাস তোকে আর নতুন করে ফাংশন লিখতে হবে না। জাস্ট wordCount ফাংশনকে আরেকবার কল করে দিবি নিচের মতো করে।

wordCount (“Bondu tui local bus.”);    

এটাই ফাংশন লেখার কেরাসমাতি। তুই একবার ফাংশন লিখলে সেটাকে বারবার কল করা যায়। ইচ্ছেমতো ইনপুট প্যারামিটার দেওয়া যায়। ওপরের ফাংশনে ধরে নেওয়া হচ্ছে যে সবাই ভদ্রভাবে লিখবে। অর্থাৎ কখনোই দুইটা শব্দের মাঝখানে একটার পরিবর্তে দুইটা বা তিনটা হোয়াইট স্পেস দিবে না।

নিজে নিজে কর

১.১: যদি কেউ লেখার সময় দুইটা শব্দের মধ্যে একটা হোয়াইট স্পেস না দিয়ে মাঝেমধ্যে একটা হোয়াইট স্পেস দেয়। আবার কখনো কখনো একটার চাইতে বেশি অর্থাৎ দুইটা বা তিনটা হোয়াইট স্পেস দিয়ে দেয়, তাহলে তুই কীভাবে word count করবি। সেই রকম একটা কোড লিখে ফেল।

১.২: সারা বছর বাক্যের মধ্যে কয়টা শব্দ আছে, সেটা প্র্যাকটিস করে যাওয়ার পর ইন্টারভিউতে প্রশ্ন করছে যে কোনো একটা প্যারাগ্রাফের মধ্যে কয়টা বাক্য আছে। তুই যদি রিয়েল হাবলু হস তাহলে মাথা গরম করে দৌড় দিবি? আর একটু নন-হাবলু হলে চিন্তা করে বুদ্ধি বের করবি। আগে যেখানে হোয়াইট স্পেস আছে কি না, চেক করতি; এখন সেখানে ডট চিহ্ন (“.”) চেক করলেই তো কাজ হয়ে যাবে।

১.৩: বাক্য সব সময় ডট চিহ্ন (“.”) দিয়ে শেষ হয় না। মাঝে মধ্যে প্রশ্নবোধক চিহ্ন (“?”) বা আশ্চর্যবোধক চিহ্ন (“!”) দিয়ে শেষ হয়। তখন কীভাবে প্রোগ্রাম লিখবি?

১.৪: একটা বাক্যের মধ্যে কয়টা ভাওয়েল (vowel) আছে, সেটা বের করার কোডিং কীভাবে করবি?

ওপরের প্রশ্নগুলো নিজে নিজে করার চেষ্টা করবি। না পারলে গুগলে সার্চ দিবি। তারপরেও না পারলে ww.habluderadda.com/gosti/count.html-এ যাবি। সেখানে যে উত্তর দেওয়া আছে, সেটা দেখে দেখে বোঝার চেষ্টা করবি। এরপর নিজে নিজে উত্তর লিখবি।

 

ঝংকার মাহবুবের অন্যান্য লেখা সম্পর্কে জানতে চলে যাও এই লিংকে!
ঝংকার মাহবুবকে ফলো করতে পারো ফেসবুক পেইজেও!


১০ মিনিট স্কুলের লাইভ এডমিশন কোচিং ক্লাসগুলো অনুসরণ করতে সরাসরি চলে যেতে পারো এই লিঙ্কে: www.10minuteschool.com/admissions/live/

১০ মিনিট স্কুলের ব্লগের জন্য কোনো লেখা পাঠাতে চাইলে, সরাসরি তোমার লেখাটি ই-মেইল কর এই ঠিকানায়: write@10minuteschool.com

Author

Jhankar Mahbub

খুব অল্প বয়সেই লেখালেখি শুরু করেন ঝংকার মাহবুব। শুরুটা ছিল বাসার দেয়ালে, বোনদের বইয়ের পাতাতে, কিংবা ঘুমন্ত অবস্থায় বাবার শরীরে আঁকাআঁকি করে। তারপর থেকে তিন দশক ধরে উনার লেখালেখির পুরোটাই গেছে পরীক্ষার খাতায়, পাশ নম্বরের আশায়।
Jhankar Mahbub
এই লেখকের অন্যান্য লেখাগুলো পড়তে এখানে ক্লিক করুন
What are you thinking?