আপনার বসের জন্য ইংরেজি সংকলন


16

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

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

চ্যালেঞ্জটি হ'ল একটি প্রোগ্রাম লিখুন যা টার্মিনাল থেকে চালানো যেতে পারে এবং একটি ফাইল পাথকে আর্গুমেন্ট হিসাবে গ্রহণ করে। প্রোগ্রামটি করতে হবে:

  1. একটি টাইপো প্রবর্তন করে ফাইল ইনপুট পরিবর্তন করুন।
  2. আপনার পরিচিত টাইপোর মুখোমুখি হওয়ার কারণে সংকলন ব্যর্থ হওয়ার ভান করুন।
  3. একই ফাইলের অনুলিপিগুলিতে প্রোগ্রামটি চালানোর জন্য একই টাইপটিকে পরপর দু'বার প্রবর্তন করা উচিত নয়।

চ্যালেঞ্জটি চিত্রিত করার জন্য, এই ফাইলটিতে আপনার প্রোগ্রামটি চালানো:

Take an array as input.
Sort the array.
Output the array.

এর লাইন বরাবর কিছু আউটপুট করা উচিত

Error on line 1:
'Take an arqay as input.'
         ^
arqay is not a valid identifier.

এবং আপনি যে ফাইলটি সংকলন করতে প্রোগ্রামটিকে বলেছিলেন সেটি এখন দেখতে পাওয়া উচিত:

Take an arqay as input.
Sort the array.
Output the array.

প্রোগ্রামটির চশমা সম্পর্কিত আরও কিছু বিবরণ এখানে:

আপনার প্রোগ্রামটিকে ধরে নিতে অনুমতি দেওয়া হয়েছে যে প্রোগ্রামের যে কোনও অক্ষর অদলবদল করা আপনার বসের ভিন্ন ভিন্ন এলোমেলো চরিত্রের ইনপুটগুলি ব্যাকরণ ত্রুটির কারণ হতে পারে। আপনার প্রোগ্রামগুলিতে আপনার বস কোডগুলিতে ত্রুটি তৈরি করতে অ বর্ণানুক্রমিক অক্ষর ব্যবহার করা উচিত নয়। আপনার বস কখনই কোনও নম্বর বা চিহ্ন ব্যবহার করবেন না এবং তিনি খুঁজে পাবেন যে কিছু আগে রয়েছে। আপনার প্রোগ্রামটি কেবল আপনার বসের প্রোগ্রামের শব্দের সাথে ত্রুটিগুলি প্রবর্তন করে। বাক্যগুলিতে বা বিরামচিহ্নগুলিতে স্থান পরিবর্তন করবেন না। আপনার বস প্রোগ্রামটি যেভাবে আপনার বসের সংকলন করার চেষ্টা করে সেটির ক্ষেত্রে পরিবর্তন করা উচিত নয়, অর্থাত ত্রুটিগুলি যেমন arQayঅবৈধ। বাধা দেয় ত্রুটি পছন্দ takeপরিবর্তে Takeঘটছে, অথবা Arrayপরিবর্তে array। আপনার প্রোগ্রামটি প্রথমে ত্রুটিটি কোন লাইনে রয়েছে তা উল্লেখ করে ত্রুটিটি আউটপুট করা উচিত:

Error on line <insert line number here>:

এর পরে 'চিহ্নগুলির অভ্যন্তরে ত্রুটি সহ লাইনটি মুদ্রণ করা উচিত । পরবর্তী লাইনে এটি ত্রুটির সাথে শব্দের^ নীচে একটি চিহ্ন স্থাপন করা উচিত , এবং শেষ পর্যন্ত এতে ত্রুটি বর্ণনা করার কিছু পাঠ্য থাকা উচিত (এই অংশটি আপনার উপর নির্ভর করবে, যতক্ষণ আপনি ত্রুটি বর্ণনা করেছেন ততক্ষণ আপনি যা চান সেখানে বলতে পারেন)।

আপনি ধরে নিতে পারেন যে ইনপুট ফাইলটি বিদ্যমান এবং এটি খালি নয়। আপনি ধরে নিতে পারেন ইনপুট ফাইলটি কোনও যোগ করার আগে কোনও ব্যাকরণগত ত্রুটি নেই।

বোনাসেস:

-60 বাইটগুলি যদি আপনার কোডটি প্রবর্তন করে ত্রুটিগুলি সম্পূর্ণরূপে এলোমেলো নয়, তবে এই প্রশ্নের মতো টাইপ-ভিত্তিক ।

কমপক্ষে 5 টি পৃথক ত্রুটি বার্তার জন্য -60 বাইট, এলোমেলোভাবে পর্যায়ক্রমে।

যদি আপনার প্রোগ্রামের 100 টির মধ্যে 1 সুযোগ থাকে বা আপনার বসকে কিছু ডেমোটাইভেশনাল বার্তা আউটপুট দেওয়ার সুযোগ রয়েছে।

সম্পাদনা: বার্তাগুলির বাইট গণনাটি আপনার স্কোরের দিকে গণনা করে না। (এই ভাল ধারণার জন্য মার্টিন বাটনারকে ধন্যবাদ)

এটি কোড-গল্ফ, সংক্ষিপ্ততম বাইট গণনা জয়। দয়া করে ত্রুটি বার্তার সামগ্রীটি গল্ফ করবেন না, যদি তিনি ত্রুটি বার্তাগুলি বুঝতে না পারেন তবে আপনার বস খুশী হবেন না এবং আপনাকে তার জন্য এটি ঠিক করতে বলবেন।


আমাকে কী লাইনগুলিতে ডিল করতে হবে যাতে অক্ষর নেই?
Οurous

আপনি কেবলমাত্র বর্ণমালার অক্ষরগুলিতে একটি টাইপো তৈরি করতে পারেন এবং আপনি ধরে নিতে পারেন ইনপুট ফাইলটি একটি বৈধ অ-খালি ফাইল যা বিদ্যমান exists
রডলফিটো

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

টিপটির জন্য ধন্যবাদ, আমি পূর্বনির্ধারিত বার্তাগুলি থাকার বিষয়ে ভেবেছিলাম, তবে আমি এটি দিয়ে আরও কিছুটা স্বাধীনতা দিতে চাই। স্কোর থেকে বার্তা বাইট গণনা বিয়োগ একটি দুর্দান্ত ধারণা।
রডলফিটো

উত্তর:


3

টিআই-বেসিক, 77 - 34 (ত্রুটির পাঠ্য) = 43

যদি সে তার টিআই -৩ / / ৮৪ ক্যালকুলেটরটি করতে চায়;)

ফাংশনগুলির মান হিসাবে, ফাইল স্ট্রিংটি এমন হওয়া উচিত Ansযাতে এটি আউটপুটটি প্রদর্শন এবং প্রদর্শন করতে পারে।

Ans->Str1:If 1=inString(Ans,"A
Then:"B
Else:"A
End:Disp "ERROR ON LINE 1","'"+Ans+sub(Str1,2,-1+length(Str1))+"'"," ^ INVALID

নোট করুন যে অনেকগুলি টোকেন একটি বাইট।


আমি এই কোডটি কোথায় চালাতে পারি?
রডলফিটো

TI-83/84 ক্যালকুলেটর বা একটির জন্য একটি এমুলেটর।
টিমটেক

inString, Ans, sub, Else, Then, End, Disp , Str1... নয় এমন ক্যালকুলেটর জন্য সব 1 বাইট হয়?
ইসমাইল মিগুয়েল

4
কি????????????????? এটি বলার মতো 8 টি বিট 1 বাইট নয় !!!!!!!!! আমি যদি বাইনারি ফর্ম ব্যবহার করে সমাবেশে কোনও কোড উপস্থাপন করি তবে তারা কি বাইটগুলি 5+ বাইটের 1 ম্যাক্রো হিসাবে গণনা করবে? এ তো স্পষ্টতই বোকা! (দুঃখিত দৃ strong় শব্দ, কিন্তু এটি সত্যিই বোকা!) এটি আপনার কোডকে উপস্থাপন করে না। আমি বলতে চাইছি Ansপ্রতিনিধিত্ব করা বাইট একই নয় Ans। একটি হ'ল A*n*sযা ক্যালকুলেটরটি যে কোনও ফলাফল তৈরি করে, অন্যটি সর্বশেষ গাণিতিক এক্সপ্রেশনটির মান প্রদান করে। এটিকে আমলে নিলে , আমি মনে করি যে সত্যিকারের গণনা গ্রহণ না করা এটি কোডের একটি ভুল উপস্থাপনা করে।
ইসমাইল মিগুয়েল 21

5
এটি এলোমেলোভাবে ফাইলটি সংশোধন করে বলে মনে হচ্ছে না, দেখে মনে হচ্ছে এটি সর্বদা 1 লাইনটিতে পরিবর্তন প্রদর্শন করে এবং প্রথম অক্ষরটিকে যদি এর A এর সাথে বি, বা না করে A তে পরিবর্তন করে।
রডলফিটো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.