প্রোগ্রামিংয়ের মৌলিক ধারণা/অনুশীলন: স্ট্রিং এবং ফাইল
অধ্যায়ের সারাংশ
[সম্পাদনা]- স্ট্রিংস – স্ট্রিং হল একটি একক অক্ষর বা একক ক্যারেক্টার ডেটা টাইপ দ্বারা সজ্জিত ধারাবাহিক অ্যারে যা দরকারী তথ্য সংরক্ষণ ও প্রদর্শনের জন্য ব্যবহৃত হয়।
- অ্যারে – অ্যারে হল একই ধরনের একাধিক ডেটা একত্রে ধারাবাহিকভাবে সজ্জিত করে সংরক্ষণ করার জন্য ব্যবহৃত একটি ডেটা স্ট্রাকচার।
- স্ট্রিং ফাংশন – প্রোগ্রামিং ভাষায় স্ট্রিং নিয়ে কাজ করার জন্য ব্যবহৃত ফাংশন যার মাধ্যমে স্ট্রিং-এর অন্তর্গত তথ্যের অনুসন্ধান অথবা পরিবর্তন ইত্যাদি কাজ করা যায়।
- স্ট্রিং ফরম্যাটিং – স্ট্রিং ফরম্যাটিং হল এমন একটি প্রক্রিয়া, যেখানে স্ট্রিংয়ের অন্তরবর্তী কোন উপাদানের অবস্থান নির্নয়কারী ইনডেক্স বা সূচকের মাধ্যমে করে সেই নির্দিষ্ট সূচকে অবস্থিত উপাদানটির মান পরিবর্তন করে একটি পূর্ণাঙ্গ স্ট্রিং তৈরি করা যায়।
- ফাইল ইনপুট ও আউটপুট – একটি কম্পিউটার ফাইল হল এমন একটি তথ্য সংরক্ষণের স্থান, যেখানে আলাদাভাবে একাধিক তথ্য সংরক্ষন করে রাখা যায়। প্রোগ্রামে নির্দিষ্ট প্রয়োজনে এই ফাইলগুলি খুলে তার মধ্যে সংরক্ষিত তথ্যের বিশ্লেষণ ও পরিবর্তন করা যায় এবং প্রয়োজন শেষ হলে এই ফাইলগুলি বন্ধও করা যায়, যাতে ফাইলের মধ্যে সকল তথ্য সংরক্ষিত থাকে। ফাইল একাধিকবার খোলা, সম্পাদনা এবং কপি করা যায়।
- টেক্সট ফাইল থেকে তথ্য অ্যারেতে সংরক্ষন– এর জন্য বেশ কয়েকটি ধাপ অনুসরন করা হয়: প্রথমে ফাইল খুলতে হয়, তারপর ফাইলের তথ্য বিশ্লেষণ ও যাচাই করা হয়, এরপর ফাইলের তথ্য বিভাজন করে ফাইলের তথ্য অ্যারের বিভিন্ন সূচক সম্বলিত স্থানে প্রতিস্থাপিত করা হয়। ফাইলের সমস্ত তথ্য অ্যারের মধ্যে প্রতিস্থাপিত হলে ফাইল বন্ধ করা।
- ত্রুটি বিশ্লেষন এবং সংশোধন – প্রোগ্রাম চলাকালীন অপারেটিং সিস্টেমে কোন সম্ভাব্য ত্রুটি ধরা পরলে যাতে তার প্রকৃতি অনুধাবন করে জরুরী ব্যাবস্থা নেওয়া যায় তার জন্য আগে থেকে প্রস্তুতি নেওয়া।
- ডায়নামিক/স্ট্যাটিক মেমোরি – যথাক্রমে স্থানীয় (লোকাল) ও গ্লোবাল স্কোপের সঙ্গে সংশ্লিষ্ট মেমোরি। স্ট্যাটিক মেমোরি প্রোগ্রাম কম্পাইল হওয়ার (প্রোগ্রামে লিখিত কোড বা নিরদেশনাকে কম্পিউটারের বোধগম্য ভাষায় প্রতিস্থাপন) সময় বরাদ্দ হয় আর ডায়নামিক মেমোরি প্রোগ্রাম চলাকালীন প্রয়োজন অনুযায়ী মেমোরি বরাদ্দ ও মুক্ত করা যায়।
পুনরালোচনা প্রশ্নাবলী
[সম্পাদনা]সত্য-মিথ্যা নির্বাচন
[সম্পাদনা]- সি++-এ ক্যারেক্টার ডেটা টাইপ চিহ্নিত করতে ডাবল কোট চিহ্ন("") ব্যবহার করা হয়, যেমন:
char grade = “A”; Sizeofহল একটি অপারেটর যা আপনাকে বলে যে একটি ডেটা টাইপ মেমরির কতটা স্থান বা বাইট দখল করে থাকে।- টাইপডেফ প্রতিবন্ধী ব্যক্তিদের জন্য একটি প্রোগ্রামিং ভাষার আদর্শ সুবিধাগুলির মধ্যে একটি।
- কম্পিউটারের মেমরির স্থান বাঁচাতে প্রোগ্রামে কোন ভেরিয়েবলকে সংজ্ঞায়িত করার সময় সিকোয়েন্স অপারেটর ব্যবহার করা উচিত।
- ফাইলস্পেক বলতে খুব ছোট আকারের (যেমন স্পেক ডাস্ট) ফাইল বোঝায়।
- একটি ডিভাইস টোকেন হল একটি বিশেষ শূন্য-বহির্ভূত মান যা অপারেটিং সিস্টেম আপনার প্রোগ্রামকে প্রদান করে এবং এটি সেই ফাইলের সঙ্গে সংযুক্ত থাকে যা আপনি খোলার অনুরোধ করেছেন।
- স্ট্রিংয়ের দৈর্ঘ্য এবং সংরক্ষণের দায়িত্ব ব্যবহারকারী বা প্রোগ্রামারের নয়, বরং কম্পাইলার বা ইন্টারপ্রেটার দ্বারা নিয়ন্ত্রিত হয়।
- একটি স্ট্রিং আক্ষরিক অর্থে ধ্রুবক এবং চলক উভয় শ্রেনীর অন্তর্গত হতে পারে।
- স্ট্রিং ডেটা টাইপ সংরক্ষনকারী একটি অ্যারেকে একটি একক স্ট্রিংয়ের মতো একইভাবে সম্পাদনা করা যেতে পারে।
- একটি প্রোগ্রাম শুধুমাত্র একটি ফাইল লাইনের পর লাইন পড়তে পারে এবং এক সময়ে একটি তথ্য প্রক্রিয়াকরণ করতে পারে।
উত্তর:
- মিথ্যা
- সত্য
- মিথ্যা –
typedefবিদ্যমান ডেটাটাইপকে বিকল্প নাম দেওয়ার জন্য ব্যবহৃত হয়, যা সাধারণত ব্যবহারকারী-নির্ধারিত ডেটাটাইপের সঙ্গে ব্যবহৃত হয়। - মিথ্যা
- মিথ্যা
- সত্য
- সত্য
- সত্য – একটি আক্ষরিক ধ্রুবক হল একটি মান, যা একটি স্ট্রিং হতে পারে।
- সত্য
- মিথ্যা
সংক্ষিপ্ত উত্তর
[সম্পাদনা]- স্ট্রিং ডেটা টাইপের স্বাভাবিক কার্যক্রম ব্যাখ্যা করুন।
- ইউনারি পজিটিভ[১] কেন অর্থহীন তা ব্যাখ্যা করুন।
- ইউনারি নেগেটিভ[২] কীভাবে কাজ করে তা ব্যাখ্যা করুন।
- আপনার পছন্দমতো প্রোগ্রামিং ভাষা ব্যাবহার করে নিম্নলিখিত প্রশ্নগুলির সমাধান লিখুন:
- একটি টেক্সট বা বাক্যের সকল অক্ষর বড় হাতের হরফে পরিবর্তন করুন।
- নিম্নলিখিত স্ট্রিং থেকে b অক্ষরটি সরিয়ে ফেলুন;
string = "Hey buddy!"
- একটি কম্পিউটার ফাইলের বিষয়বস্তু পড়ার বিভিন্ন উপায় ব্যাখ্যা করুন।
- স্ট্রিং -এর একটি উপাদানের মান পরিবর্তন বা স্ট্রিং ম্যানিপুলেশন কিভাবে ভেরিয়েবলের মান পরিবর্তন বা ভেরিয়েবল ম্যানিপুলেশন থেকে আলাদা তা ব্যাখ্যা করুন।
ক্রিয়াকলাপ
[সম্পাদনা]নিচের কাজগুলো স্যুডোকোড, ফ্লোচার্টিং টুল, অথবা আপনার পছন্দের প্রোগ্রামিং ভাষা ব্যবহার করে সম্পন্ন করুন। ব্যাবহারকারীর কাছ থেকে ইনপুট তথ্য গ্রহন, সেই তথ্যকে কম্পিউটারের বোধগম্য ভাষায় পরিবর্তন (প্রসেসিং) এবং প্রোগ্রাম থেকে আউটপুটের ফলাফল প্রদর্শনের জন্য আলাদা ফাংশন ব্যবহার করুন। কোন ফাংশনে ডেটা আদান-প্রদানের জন্য গ্লোবাল ভেরিয়েবলের ব্যাবহার এড়িয়ে চলুন। তার পরিবর্তে ফাংশনে তথ্য ইনপুট তথ্য প্রেরনের জন্য প্যারামিটার পাসিং এবং ফাংশন থেকে আউটপুট ফলাফল গ্রহনের জন্য রিটার্ন স্টেটমেন্ট ব্যাবহার করুন। প্রতিটি প্রোগ্রামের নির্ভুলতা যাচাইয়ের জন্য পরীক্ষামূলক তথ্য তৈরি করুন। প্রোগ্রামের শুরুতে মন্তব্য বা কমেন্ট যোগ করুন এবং সমস্যার সমাধানের জন্য যেসব উৎসের সাহায্য আপনি নিয়েছেন তার উল্লেখ করুন।
স্ট্রিং সম্পর্কিত অনুশীলন
[সম্পাদনা]- একটি প্রোগ্রাম তৈরি করুন যা ব্যবহারকারীর কাছ থেকে দুটি ইংরেজি অক্ষর সম্বলিত টেক্সট ইনপুট গ্রহন করবে যাতে কোন ব্যাক্তির প্রথম নাম ও শেষ নাম অন্তর্ভুক্ত থাকবে থাকবে, যেমন:
Firstname Lastname। স্ট্রিং ফাংশন বা পদ্ধতি ব্যবহার করে এই ইনপুট টেক্সটটি সংরক্ষিত করুন এবং প্রোগ্রামের ফলাফল একটি আউটপুট স্ট্রিং হিসাবে প্রকাশ করুন যাতে ব্যাক্তির শেষ নাম এবং প্রথম নামের আদ্যক্ষরটি থাকবে এবং এই দুটি নামের শেষ একটি ফুলস্টপ থাকবে। উদাহরন হিসাবে কোন ব্যাক্তির পুরো নাম যদি হয়Max Rayতাহলে আউটপুটে তার নামটি ঠিক এইভাবে থাকবে :Ray, M.। আউটপুট অতিরিক্ত স্পেস বা নামের অংশ অনুপস্থিত থাকলে তা ভুল হিসেবে ধরে নিন এবং ত্রুটি পরিচালনা করুন। - একটি প্রোগ্রাম তৈরি করুন যা ব্যবহারকারীর কাছ থেকে একটি বাক্য টেক্সট ইনপুট নেবে। তারপর স্ট্রিং ফাংশন ব্যবহার করে সেই টেক্সতের শুরু, শেষে ও মধ্যবর্তী স্থানগুলো অপসারন করবে। এছাড়াও বাক্যের দুটি অক্ষরের মধযে একের অধিক ফাঁকা স্পেশ থাকলে সেটিও অপসারন করবে আর শেষে ইনপুট বাক্যটি উল্টো করে আউটপুট হিসাবে প্রদর্শন করবে। উদাহরণ হিসাবে যদি ইনপুট হয়,
the cat in the hatতাহলে প্রোগ্রামের আউটপুট হবে,tah eht ni tac eht - একটি প্রোগ্রাম তৈরি করুন যা ব্যবহারকারীর কাছ থেকে এক-একটি সিএসভি ফাইলের এক-একটি লাইনকে ইনপুট হিসাবে নেবে।(সেটি নামের তালিকা, নম্বর, ইত্যাদি যা খুশি হতে পারে)। এবার স্ট্রিং ফাংশন ব্যবহার করে গৃহীত ইনপুটের প্রতিটি মান আলাদা করবে এবং আলাদা লাইনে মুদ্রিত করে। সি এস ভি ফাইলের প্রতিটি লাইনের এক-একটি উপাদানের আগে-পরে থাকা স্পেস এবং কমাও অপসারন করতে হবে।
- একটি প্রোগ্রাম তৈরি করুন যা ব্যবহারকারীর কাছ থেকে একটি টেক্সট ইনপুট নেবে। এরপর ব্যবহারকারীর কাছ থেকে নিচের তথ্যগুলো ইনপুট নিন:
প্রতি লাইনে কতটি অক্ষর প্রিন্ট করতে হবে,
কতটি লাইন প্রিন্ট করতে হবে
মাউসের স্ক্রল নির্দেশনা: বাম না ডান।
প্রদত্ত টেক্সট ব্যবহার করে, প্রতি লাইনে নির্ধারিত সংখ্যক অক্ষর প্রিন্ট করুন।(প্রয়োজনে টেক্সট ডুপ্লিকেট করে নিন) তারপর প্রতিবার ইনপুট বাক্যের এক অক্ষর করে বামে বা ডানে স্ক্রল করে পরবর্তী লাইন প্রিন্ট করুন। প্রথম বা শেষ অক্ষরটি স্ট্রিং-এর অপর প্রান্তে যোগ হবে। উদাহরন;Repeat this. Repeat this.epeat this. Repeat this. Rpeat this. Repeat this. Re
উপরের উদাহরনের প্রথম লাইনে সম্পূর্ন বাক্যটি আছে।
দ্বিতীয় লাইনে দেখুন বাক্যের প্রথম শব্দ R তার স্থানে নেই, সেটি বাক্যের শেষ প্রতিস্থাপিত হয়েছে।
তৃতীয় লাইনে দেখুন বাক্যের প্রথম দেই শব্দ R এবং e নেই। সেই দুটি বাক্যের শেষ প্রতিস্থাপিত হয়েছে।
এইভাবে যাতে ফলাফল পাওয়া যায়, সেভাবে প্রোগ্রামটি তৈরি করুন।
ফাইল কার্যকলাপ
[সম্পাদনা]টেক্সট এডিটর বা আইডিই ব্যবহার করে নিচের নাম ও নম্বরসহ তালিকাটি কপি করে একটি টেক্সট ফাইলে সংরক্ষণ করুন যার নাম হবে scores.txt এবিং সেই ফাইলে সংরক্ষিত তথ্যের কাঠামো নিম্নরূপ:
Name,Score
Joe Besser,70
Curly Joe DeRita,0
Larry Fine,80
Curly Howard,65
Moe Howard,100
Shemp Howard,85-এই টেক্সট ফাইলটিতে কিছু ব্যাক্তির নাম এবং তাদের প্রাপ্ত নাম্বার বা স্কোর সংরক্ষিত করা আছে। এবার এই ফাইলের উপর ভিত্তি করে নিম্নলিখিত প্রোগ্রামগুলি লিখুন;
- একটি প্রোগ্রাম তৈরি করুন যা
scores.txtফাইল থেকে ডেটা পড়ে সমগ্র ব্যাক্তিদের প্রাপ্ত নাম্বারের পর্যালোচনা করে সর্বোচ্চ, সর্বনিম্ন এবং গড় নাম্বার প্রদর্শন করবে। প্রথমে নিশ্চিত করুন যে উল্লিখিত ফাইলটি আপনার কম্পিউটার মেমরিতে বিদ্যমান। তারপর উপযুক্ত স্ট্রিং ফাংশন/মেথড ব্যবহার করে প্রতি ব্যাক্তির প্রাপ্ত নাম্বার আলাদা করে একটি অ্যারেতে যোগ করুন। অ্যারের সব উপাদান আউটপুটে প্রদর্শন করুন এবং তারপর তাদের মধ্যে সর্বোচ্চ, সর্বনিম্ন ও গড় নাম্বার চিহ্নিত করে দেখান। গড় নাম্বার দুই দশমিক স্থান পর্যন্ত লিখুন। মনে রাখবেন, এই প্রোগ্রাম যেকোনো সংখ্যক ব্যাক্তি ও তাদের প্রাপ্ত নাম্বারের পর্যালোচনা করতে সক্ষম হওয়া উচিত। কেবলমাত্র ফাইলে উল্লিখিত ছয়জন ব্যাক্তির মধ্যেই যেন সীমাবদ্ধ না থাকে। - একইভাবে একটি প্রোগ্রাম তৈরি করুন যা
scores.txtফাইল থেকে তথ্যের পর্যালোচনা করে সর্বোচ্চ, সর্বনিম্ন ও গড় নাম্বার নির্ণয় করবে। ফাইলটির অস্তিত্ব যাচাই করুন এবং স্ট্রিং মেথড দিয়ে ফাইল থেকে তথ্য নিয়ে অ্যারেতে সংরক্ষন করুন। অ্যারের উপাদানগুলো আউটপুটে প্রদর্শন করুন এবং তারপর সর্বোচ্চ, সর্বনিম্ন ও গড় নাম্বার বের করে দেখান। গড় নাম্বার দুই দশমিক পর্যন্ত লিখুন। অতিরিক্তভাবে, যদি ফাইল থেকে তথ্য সংগ্রহের সময় কোন ভুল হয়, তাহলে ত্রুটি পর্যালোচনা করুন। প্রোগ্রামটি এমনভাবে তৈরি করুন যাতে যেকোনো সংখ্যক ব্যাক্তি ও তাদের প্রাপ্ত নাম্বারের পর্যালোচনা করতে সক্ষম হয়। কেবলমাত্র ফাইলে উল্লিখিত ছয়জন ব্যাক্তির মধ্যেই যেন সীমাবদ্ধ না থাকে। - একটি প্রোগ্রাম তৈরি করুন যা ব্যবহারকারীর কাছ থেকে একটি এইচটিএমএল বা টেক্সট ফাইলের নাম ইনপুট হিসেবে চায় যাতে এইচটিএমএল ট্যাগযুক্ত কিছু তথ্যের উল্লেখ আছে, যেমন:ফাইলটি মেমরিতে বিদ্যমান কিনা যাচাই করুন। তারপর স্ট্রিং মেথড ব্যবহার করে ফাইলে উপস্থিত সমস্ত এইচটিএমএল ট্যাগ খুঁজে বের করুন ও সরিয়ে ফেলুন। প্রতিটি সরানো ট্যাগ একটি অ্যারেতে সংরক্ষণ করুন। শেষে ট্যাগহীন টেক্সটটি এবং সরানো ট্যাগগুলোর অ্যারে হিসাবে এভাবে প্রদর্শন করুন:
<p><strong>This is a bold paragraph.</strong></p>
This is a bold paragraph. <p> <strong> </strong> </p>
- একটি টেক্সট ফাইল তৈরি করুন যাতে নাম ও ঠিকানা নিচের উদাহরনের মতো সাজানো থাকবে:প্রতিটি ব্যাক্তি এবং তাদের ঠিকানার মধ্যে একটি ফাঁকা লাইন রাখুব এবং ফাইলে অন্তত তিনটি ঠিকানা অন্তর্ভুক্ত করুন। এবার একটি প্রোগ্রাম তৈরি করুন যাতে ফাইলটি বিদ্যমান কিনা তা যাচাই করা যায় এবং তারপর প্রতিটি ঠিকানাকে পরিবর্তিত করে নিম্নলিখিত সিএসভি আকারের একটি লাইনে রূপান্তর করে প্রদর্শন করবে:
Firstname Lastname 123 Any Street City, State/Province/Region PostalCode
Lastname, Firstname, Address, City, State/Province/Region, PostalCode