প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ নামে একটি স্ট্যাক এক্সচেঞ্জ সাইট রয়েছে । প্রোগ্রামিং পাজল যে সাইট উপর এই সংজ্ঞা মাপসই ধাঁধা :
একটি খেলনা, সমস্যা, বা দক্ষতা বা রোগীর প্রচেষ্টার দ্বারা সমাধান করা অসুবিধা উপস্থাপন করে আনন্দিত করার জন্য ডিজাইন করা অন্য মতবিরোধ।
এগুলি পরিতোষের জন্য ডিজাইন করা হয়েছে, এবং কোনও কর্মক্ষম প্রোগ্রামারকে তাদের দৈনন্দিন কাজকর্মের মধ্যে আসা কোনও আসল-জগত সমস্যার কারণে বিস্মিত করার উপায় নয়।
কোড গল্ফ "এক ধরণের বিনোদনমূলক কম্পিউটার প্রোগ্রামিং প্রতিযোগিতা যা অংশগ্রহণকারীরা একটি নির্দিষ্ট অ্যালগরিদম প্রয়োগ করে সংক্ষিপ্ততম উত্স কোড অর্জনের জন্য প্রচেষ্টা করে।" পিপি ও সিজি সাইটে দেওয়া উত্তরে আপনি দেখতে পাবেন লোকেরা তাদের উত্তরে বাইটের সংখ্যা নির্দিষ্ট করে। যখন তারা কয়েকটি বাইট ছাঁটাই করার কোনও উপায় খুঁজে পান, তারা আসল নম্বরটি বের করে নতুন নম্বরটি রেকর্ড করবেন।
আপনি যেমনটি আশা করতে পারেন, কোড গল্ফিং চূড়ান্ত প্রোগ্রামিং ভাষার অপব্যবহারের পুরষ্কার দেয়। এক-বর্ণের পরিবর্তনশীল নাম। কোনও সাদা জায়গা নেই। গ্রন্থাগার ফাংশন সৃজনশীল ব্যবহার। Undocumented বৈশিষ্ট্য। নন স্ট্যান্ডার্ড প্রোগ্রামিং অনুশীলন। হ্যাক আপলিং।
কোনও প্রোগ্রামার যদি গল্ফ-স্টাইল কোডযুক্ত কাজের জন্য একটি পুল অনুরোধ জমা দেয় তবে তা প্রত্যাখ্যান করা হবে। তাদের সহকর্মীরা তাদের দেখে হাসবে। তাদের ম্যানেজার চ্যাট করার জন্য তাদের ডেস্কে নামিয়ে দিত। তবুও, প্রোগ্রামাররা পিপিএন্ডসিজির উত্তর জমা দিয়ে নিজেকে আনন্দিত করে।
এর সাথে কী করার আছে stdc++.h
? অন্যরা যেমন উল্লেখ করেছে, এটি ব্যবহার অলস। এটি বহনযোগ্য নয়, সুতরাং এটি আপনার সংকলক বা আপনার সংকলকের পরবর্তী সংস্করণে কাজ করবে কিনা আপনি জানেন না। এটি খারাপ অভ্যাসকে উত্সাহ দেয়। এটি মানহীন, সুতরাং আপনার প্রোগ্রামের আচরণটি আপনি যা আশা করেন তার থেকে আলাদা হতে পারে। এটি সংকলন সময় এবং নির্বাহযোগ্য আকার বৃদ্ধি করতে পারে।
এগুলি সমস্ত বৈধ এবং সঠিক আপত্তি। তাহলে কেন কেউ এই বিদ্বেষ ব্যবহার করবেন?
দেখা যাচ্ছে যে কিছু লোক কোড গল্ফ ছাড়াই প্রোগ্রামিং ধাঁধা পছন্দ করে । তারা একত্রিত হয়ে এসিএম-আইসিপিসি, গুগল কোড জ্যাম এবং ফেসবুক হ্যাকার কাপের মতো ইভেন্টে বা টপকোডার এবং কোডফোর্সের মতো সাইটে প্রতিযোগিতা করে। তাদের র্যাঙ্ক প্রোগ্রামের সঠিকতা, কার্যকরকরণের গতি এবং কত দ্রুত তারা সমাধান জমা দেয় তার উপর ভিত্তি করে। কার্যকরকরণের গতি সর্বাধিক করতে, অনেক অংশগ্রহণকারী সি ++ ব্যবহার করেন। কোডিংয়ের গতি বাড়ানোর জন্য, তাদের মধ্যে কিছু ব্যবহার করে ।stdc++.h
এটি কি ভাল ধারণা? আসুন অসুবিধাগুলির তালিকাটি পরীক্ষা করে দেখুন। পোর্টেবিলিটি? এই কোডিং ইভেন্টগুলি একটি নির্দিষ্ট সংকলক সংস্করণ ব্যবহার করে, যা প্রতিযোগীরা আগাম জানেন matter মান সম্মতি? এমন কোডের ব্লকের জন্য প্রাসঙ্গিক নয় যার দরকারী জীবন এক ঘণ্টারও কম। সময় এবং নির্বাহযোগ্য আকার সংকলন? এগুলি প্রতিযোগিতার স্কোরিং রব্রিকের অংশ নয়।
সুতরাং আমরা খারাপ অভ্যাসের সাথে রেখে এসেছি। এটি একটি বৈধ আপত্তি। এই শিরোলেখ ফাইলটি ব্যবহার করে, প্রতিযোগীরা তাদের প্রোগ্রামে কোন স্ট্যান্ডার্ড শিরোনাম ফাইলটির কার্যকারিতাটি সংজ্ঞায়িত করে তা শিখার সুযোগ এড়িয়ে চলেছে। যখন তারা রিয়েল-ওয়ার্ল্ড কোড লিখছেন (এবং ব্যবহার করছেন না stdc++.h
) তখন তাদের এই তথ্যটি সন্ধান করতে সময় দিতে হবে, যার অর্থ তারা কম উত্পাদনশীল হবেন। এটি অনুশীলনের খারাপ দিক stdc++.h
।
এটি যদি stdc++.h
অন্য কোডিংয়ের মানদণ্ড ব্যবহার ও লঙ্ঘনের মতো খারাপ অভ্যাসকে উত্সাহ দেয় তবে কেন প্রতিযোগিতামূলক প্রোগ্রামিংয়ে অংশ নেওয়া উপযুক্ত তা নিয়ে প্রশ্ন উত্থাপন করে । একটি উত্তর হ'ল পিপি ও সিজি-তে প্রোগ্রামগুলি পোস্ট করার কারণে লোকেরা একই কারণে এটি করে: কিছু প্রোগ্রামাররা তাদের কোডিং দক্ষতা গেমের মতো প্রসঙ্গে ব্যবহার করতে উপভোগ করেন।
সুতরাং stdc++.h
কোন প্রোগ্রামিং প্রতিযোগিতায় কোডিং স্পিড বেনিফিটগুলি ব্যবহার করে যেগুলি খারাপ অভ্যাসগুলি বাড়িয়ে তুলতে পারে তার চেয়ে বেশি ব্যবহার করতে হবে কিনা তা নিয়ে প্রশ্ন আসে।
এই প্রশ্নটি জিজ্ঞাসা করে: "কেন আমি # অন্তর্ভুক্ত করব না <bits/stdc++.h>
?" আমি বুঝতে পারি যে এটি জিজ্ঞাসা করা হয়েছিল এবং একটি বক্তব্য দেওয়ার জন্য উত্তর দেওয়া হয়েছিল, এবং গৃহীত উত্তরই এই প্রশ্নের একমাত্র সত্য উত্তর হতে পারে। তবে প্রশ্নটি "আমার কেন <bits/stdc++.h>
প্রযোজনা কোডে অন্তর্ভুক্ত করা উচিত নয় ?" অতএব, আমি মনে করি যে উত্তরগুলি ভিন্ন হতে পারে এমন অন্যান্য পরিস্থিতিতে বিবেচনা করা যুক্তিসঙ্গত।
using namespace std;
ছিল সেখানে কোথাও একটি অন্তর্ভুক্ত সংস্করণ থাকবে।