কিছু লোক ট্যাবুলেশন এবং ইনডেন্টেশনের জন্য স্পেস ব্যবহার করার জন্য জোর দেয়।
ট্যাবুলেশনের জন্য, এটি নির্বিচারে ভুল। সংজ্ঞা অনুসারে, ট্যাবুলেটরগুলি অবশ্যই টেবুলেশনের জন্য ব্যবহার করা উচিত।
এমনকি ইন্ডেন্টেশন করার জন্য, ট্যাবলেটরগুলি উদ্দেশ্যমূলকভাবে উচ্চতর:
আছে স্পষ্ট ঐক্যমত্য স্ট্যাক এক্সচেঞ্জ কমিউনিটি।
ইন্ডেন্টেশনের জন্য একটি একক স্থান ব্যবহার করা দৃশ্যত অপ্রীতিকর; একাধিক ব্যবহার করা অপচয়জনক।
সমস্ত কড
ই গল্ফএরস হিসাবে, প্রোগ্রামগুলি যতটা সম্ভব সংক্ষিপ্ত হওয়া উচিত। এটি কেবল হার্ড ডিস্কের স্থান সংরক্ষণ করে না, কম বাইটগুলি প্রক্রিয়া করতে হলে সংকলনের সময়গুলিও হ্রাস পেয়েছে।ট্যাব প্রস্থ 1 সামঞ্জস্য করে , প্রতিটি কম্পিউটারে একই ফাইল আলাদা দেখায়, তাই প্রত্যেকে আসল ফাইলটি পরিবর্তন না করেই তার প্রিয় ইনডেন্ট প্রস্থটি ব্যবহার করতে পারে।
সমস্ত ভাল পাঠ্য সম্পাদকরা ডিফল্টরূপে (এবং সংজ্ঞা) ট্যাবলেটর ব্যবহার করেন।
আমি তাই বলি এবং আমি সবসময় ঠিক!
দুঃখের বিষয়, সবাই যুক্তি শোনেন না। কেউ আপনাকে একটি ফাইল পাঠিয়েছে যা এটি ভুল টিএম করছে এবং আপনাকে এটি ঠিক করতে হবে। আপনি কেবল এটি ম্যানুয়ালি করতে পারতেন, তবে অন্যরাও থাকবেন।
এটি যথেষ্ট খারাপ যে স্পেসাররা আপনার মূল্যবান সময় নষ্ট করছে, তাই আপনি সমস্যার যত্ন নেওয়ার জন্য সংক্ষিপ্ততম প্রোগ্রামটি লেখার সিদ্ধান্ত নিয়েছেন।
কার্য
একটি প্রোগ্রাম বা একটি ফাংশন লিখুন যা নিম্নলিখিতগুলি করে:
STDIN থেকে অথবা কমান্ড-লাইন বা ফাংশন আর্গুমেন্ট হিসাবে একটি স্ট্রিং পড়ুন।
ট্যাবুলেশন বা ইনডেন্টেশনের জন্য স্পেস ব্যবহার করা হয়েছে এমন সমস্ত অবস্থান সনাক্ত করুন।
শূন্যস্থানগুলির একটি রান ইন্ডেন্টেশন হয় যদি এটি কোনও লাইনের শুরুতে ঘটে থাকে।
দুটি বা ততোধিক স্পেসের একটি রান টেবিলেশন যদি তা ইন্ডেন্টেশন না হয়।
একটি একক স্থান যা ইন্ডেন্টেশন নয় তা ট্যাবুলেশনের জন্য ব্যবহৃত হতে পারে বা নাও হতে পারে। প্রত্যাশিত হিসাবে যখন আপনি একই উদ্দেশ্যে বিভিন্ন চরিত্রের জন্য ব্যবহার করেন, তখন বলার সহজ উপায় নেই। অতএব, আমরা বলব যে স্থানটি বিভ্রান্তির জন্য ব্যবহৃত হয়েছে ।
দীর্ঘতম সম্ভাব্য ট্যাব প্রস্থ 1 নির্ধারণ করুন যার জন্য ফাইলের উপস্থিতি পরিবর্তন না করে ট্যাবুলেটরগুলির সাহায্যে ট্যাবুলেটর বা ইনডেন্টেশনের জন্য ব্যবহৃত সমস্ত জায়গাগুলি ট্যাবুলেটরগুলির সাথে প্রতিস্থাপন করা যেতে পারে।
যদি ইনপুটটিতে ট্যাবুলেশন বা ইনডেন্টেশন না থাকে তবে ট্যাবটির প্রস্থ নির্ধারণ করা অসম্ভব। এই ক্ষেত্রে, পরবর্তী পদক্ষেপটি এড়িয়ে যান।
পূর্বে নির্ধারিত ট্যাব প্রস্থ ব্যবহার করে ট্যাবুলেটরগুলির সাহায্যে ট্যাবুলেশন বা ইনডেন্টেশনের জন্য ব্যবহৃত সমস্ত জায়গাগুলি প্রতিস্থাপন করুন।
এছাড়াও, যখনই ফাইলের উপস্থিতি পরিবর্তন না করেই সম্ভব হয়, সারণীর সাথে বিভ্রান্তির জন্য ব্যবহৃত সমস্ত স্থান প্রতিস্থাপন করুন। (যদি সন্দেহ হয় তবে স্পেসগুলি থেকে মুক্তি দিন))
আপনার ফাংশন থেকে পরিবর্তিত স্ট্রিংটি ফিরিয়ে দিন বা এটি মুদ্রণ করুন STDOUT এ।
উদাহরণ
সমস্ত স্থান
a bc def ghij
সারণী হয়।
স্পেস প্যাডগুলির প্রতিটি রান অ-স্পেস অক্ষরের পূর্ববর্তী স্ট্রিং 5 প্রস্থে প্যাড করে, তাই সঠিক ট্যাবের প্রস্থ 5 এবং সঠিক আউটপুট 2 হবে
a--->bc-->def->ghij
প্রথম দুটি স্পেস
ab cde f ghi jk lm
সারণী, অন্যদের বিভ্রান্তি।
সঠিক ট্যাব প্রস্থ, 4, তাই সঠিক আউটপুট 2 হয়
ab->cde>f ghi>jk lm
শেষ স্থানটি অচ্ছুত রয়ে গেছে, যেহেতু এটি কোনও টেবুলেটর দ্বারা প্রতিস্থাপন করা হলে এটি দুটি স্পেস হিসাবে রেন্ডার করা হবে :
ab->cde>f ghi>jk->lm
সমস্ত এক স্থান ছাড়া
int main( ) { puts("TABS!"); }
ইন্ডেন্টেশন, অন্যটি বিভ্রান্তি।
ইন্ডেন্টেশন স্তর 0, 4 এবং 8 স্পেস হয় তাই সঠিক ট্যাব প্রস্থ 4 এবং সঠিক আউটপুট 2 হয়
int --->main( ) --->{ --->--->puts("TABS!"); --->}
মহাকাশে
( )
, যদি একটি সারণীকর্তা দ্বারা প্রতিস্থাপিত তিন স্পেস হিসাবে রেন্ডার করা হবে তাই এটা অক্ষত রয়ে যায়।প্রথম দুটি স্পেস
x yz w
ইন্ডেন্টেশন, অন্যদের বিভ্রান্তি।
সঠিক ট্যাব প্রস্থ 2 এবং সঠিক আউটপুট 2 হয়
->x>yz w
কোনও ট্যাবুলেটর দ্বারা প্রতিস্থাপন করা হলে শেষ স্থানটি দুটি স্পেস হিসাবে রেন্ডার করা হবে, সুতরাং এটি অচ্ছুত থেকে যায়।
প্রথম দুটি স্পেস
xy zw
ইন্ডেন্টেশন, অন্য তিনটি হ'ল সারণী।
মাত্র 1 পারমিট একটি ট্যাব প্রস্থ, সব শূণ্যস্থান নিষ্কাশন তাই সঠিক আউটপুট 2 হয়
>>xy>>>zw
সমস্ত স্থান
a b c d
বিভ্রান্তি হয়।
কোন দীর্ঘতম সম্ভব ট্যাব প্রস্থ, নেই তাই সঠিক আউটপুট 2 হয়
a b c d
অতিরিক্ত বিধি
ইনপুটটি পুরোপুরি মুদ্রণযোগ্য এএসসিআইআই অক্ষর এবং লাইনফিডের সমন্বয়ে গঠিত।
আপনি ধরে নিতে পারেন যে পাঠ্যটির সর্বাধিক 100 লাইন এবং প্রতি লাইনে সর্বাধিক 100 টি অক্ষর রয়েছে।
যদি আপনি আউটপুট জন্য STDOUT চয়ন করেন, আপনি একটি একক ট্রেলিং লাইনফিড মুদ্রণ করতে পারেন।
স্ট্যান্ডার্ড কোড-গল্ফ বিধি প্রযোজ্য।
1 একটি মনসোপাসেড ফন্ট ব্যবহার করে টানা দুটি ট্যাব স্টপগুলির মধ্যে অক্ষরের দূরত্ব হিসাবে ট্যাবের প্রস্থকে সংজ্ঞায়িত করা হয় ।
2 এএসসিআইআই শিল্প তীরগুলি ট্যাবলেটরদের উপস্থাপন করে স্ট্যাক এক্সচেঞ্জ সঠিকভাবে রেন্ডার করতে অস্বীকার করে, যার জন্য আমি একটি বাগ রিপোর্ট জমা দিয়েছি। আসল আউটপুটটিতে প্রকৃত ট্যাবলেটর থাকতে হয়।
programs should be as short as possible
আমি বিশ্বাস করি আর্থার হুইটনির দীর্ঘ হারিয়ে যাওয়া ভাইকে আমি পেয়েছি !!