প্রস্থান কোড গল্ফিং


55

আইও-র জন্য এই ডিফল্ট দ্বারা অনুপ্রাণিত ।

কাজটি

একটি প্রোগ্রাম লিখুন xযা 0 এবং 255 এর মধ্যে একটি ইনপুট পূর্ণসংখ্যা দেওয়া হয় , প্রস্থান কোড সহ ক্র্যাশ হয় x

বিধিনিষেধ

  • আপনি প্রস্থান কোড আউটপুট ( System.exit(x), থেকে ফিরে আসা main, ইত্যাদি) জন্য সরাসরি উদ্দেশ্যে যা কিছু কল করতে পারেন না । পরিবর্তে, আপনার প্রোগ্রামটি অবশ্যই ত্রুটি বা ক্রাশের কারণ হতে পারে যা 1 এর সম্ভাব্যতা সহ প্রোগ্রামটি ইনপুট পূর্ণসংখ্যার সাথে প্রস্থান করতে পারে।
    • এই ক্ষেত্রে, "ত্রুটি" এবং "ক্রাশ" শব্দের অর্থ হল যে প্রোগ্রামটি কিছু মারাত্মক অনিচ্ছাকৃত ব্যতিক্রম ঘটায়, যার মধ্যে কোনও পদ্ধতি, ক্রিয়া বা অন্যথায় ভুলভাবে ব্যবহৃত হয়েছিল যা একটি অপরিবর্তনীয় ব্যর্থতার কারণ হয়েছিল।
    • আপনি সরাসরি এটি নিক্ষেপ করে সরাসরি ত্রুটির কারণ নাও তৈরি করতে পারেন। আপনার অবশ্যই এটি কোনও পদ্ধতি, ফাংশন বা অন্যথায় যার উদ্দেশ্যটি ভিন্ন ফাংশনটি ব্যবহার করে (যেমন পঠনযোগ্য ডিরেক্টরিতে একটি ফাইল রাইটিং চালানোর চেষ্টা করা) ব্যবহার করে তা তৈরি করতে হবে।
  • আপনার প্রোগ্রামটিতে অবশ্যই আপনার অন্তত দুটি প্রস্থান কোডের অ্যাকাউন্ট হতে হবে।
  • সংকেত ব্যবহারের সাথে প্রক্রিয়াটি সমাপ্তি নিষিদ্ধ। ( এই আলোচনায় যুক্তি খুঁজে পাওয়া যেতে পারে )

স্কোরিং

আপনার প্রোগ্রামের স্কোর সমর্থিত বহির্গমন কোডের সংখ্যা দ্বারা নির্ধারিত হয়, যেখানে কোড সংক্ষিপ্তকরণ টাইব্রেকার। সমর্থিত বহির্গমন কোডের সর্বাধিক সংখ্যক জয়!


শুধু স্পষ্ট করে বলার জন্য, আমি যদি কোনও ত্রুটি বাড়িয়ে তুলি তবে এটি কি অবৈধ?
অ্যান্টনি ফ্যাম

@ অ্যান্থনিফ্যাম আপনি যদি সরাসরি এটি ( throw new Exception()স্টাইল) উত্থাপন করেন তবে এটি অবৈধ। এটি যদি কোনও বিদ্যমান ফাংশনের অপব্যবহারের উপ-উত্পাদন হয় তবে তা ঠিক।
অ্যাডিসন ক্রম্প

@ ভোটটোক্লোস আমি অনুমান করি যে আমি যথেষ্ট পরিষ্কার ছিলাম না। আমি আপনার সাথে একমত, কিন্তু প্রস্তাবিত ছিল, ফ্যাকটোরিয়াল পরিবর্তে স্কোয়ার বলুন। তবে যাই হোক না কেন, এটি আসলে কোনও ব্যাপার নয়, এটি ছিল কেবল একটি পরামর্শ
মালটিসেন

8
বানানযুক্ত ইংরেজি অঙ্ক হিসাবে ইনপুট গ্রহণ করা (উদাহরণস্বরূপ one zero zero100 এর জন্য) গ্রহণযোগ্য? এই চ্যালেঞ্জের জন্য আমার কাছে একটি ধারণা রয়েছে তবে ভাষাতে আই / ও সম্পর্কে কিছুটা অস্বাভাবিক ধারণা রয়েছে এবং এটি সর্বাধিক প্রাকৃতিক ইনপুট ফর্ম্যাট।

5
আমি প্রস্থান কোডটিকে ক্লিকবাট শিরোনামের গল্ফিং বিবেচনা করব , তবে এটি সঠিক। <(° _ ° <)
রাইজিংএজেন্ট

উত্তর:


48

ইউনিক্স শেল (+ এনক্রাস + বিএসডি ইউটিলিটিস), 36, 26 বাইট, 256 প্রস্থান কোড

Golfed

jot -bu0 $[252+$1]|tput -S

যদি -S বিকল্পটি ব্যবহার করা হয় তবে প্রতিটি লাইন থেকে ত্রুটির জন্য টিপুট চেক করে, এবং যদি কোনও ত্রুটি পাওয়া যায়, তবে প্রস্থান কোডটি 4 এ ত্রুটিযুক্ত লাইনের সংখ্যাকে সেট করবে। যদি কোনও ত্রুটি না পাওয়া যায় তবে প্রস্থান কোডটি 0 হয় কোন লাইনটি ব্যর্থ হয়েছে তার কোনও ইঙ্গিত দেওয়া হয়নি যাতে প্রস্থান কোড 1 কখনই উপস্থিত হবে না। 2, 3 এবং 4 কোডগুলি প্রস্থান করুন তাদের স্বাভাবিক ব্যাখ্যা ধরে রাখে।

একবার টিপুট প্রস্থান কোডটি 255 এর উপরে চলে গেলে, এটি কেবল উপচে পড়ে যায়, সুতরাং 253 ( ইনপুটটিতে ত্রুটি) 1 এর প্রস্থান কোডের ফলে ঘটতে পারে, ফলে সম্পূর্ণ ইনপুটগুলির জন্য পছন্দসই প্রস্থান স্থিতি পাওয়া যায়।

দ্রষ্টব্য : যদি কোনও নির্দিষ্ট ক্ষমতা নির্ধারণ / পাওয়ার সময় টিপুটটি ব্যর্থ না হয় তবে টার্মিনালের ধরণের উপর নির্ভর করে, আমি ব্যবহার করেছি:xterm with 256 colors

জট একটি বিএসডি ইউটিলিটি, যা অনুক্রমিক বা এলোমেলো তথ্য মুদ্রণ করে এবং ওএসএক্স সিস্টেমে বাক্সের বাইরেও (এএফএআইকি) উপলব্ধ।

যদি আপনার সিস্টেমে jotউপলব্ধ না থাকে তবে আপনি কিছুটা দীর্ঘ (29 বাইট) সংস্করণ ব্যবহার করতে পারেন:

yes u0|sed $[252+$1]q|tput -S

এটি অনলাইন চেষ্টা করুন! (29 বাইট সংস্করণ)


বাহ, এটা বেশ ভাল। +1
অ্যাডিসন ক্রম্প 12

45

4.2 + অতিরিক্ত, 24 প্রস্থান কোডগুলিতে বাশ করুন

grep \#$1$ $0|sed 's:#.*::;s:T:tcc -run -<<<main=:;s:C:curl -L x.org/! :'|sh;exit
man#1
C-#2
C/#3
sed#4
C-x/#5
C_#6
C0#7
man /#16
C-f#22
C-o/#23
C-L3#35
C--capath /#60
C--max-filesize 1#63
C--cacert /#77
timeout 1e-9 w#124
/#126
-#127
T6\;#132
T204\;#133
$[2**63%-1]#136
{0..1000000000}#137
T0\;#139
exit _#255

3 বহির্গমন কোডের জন্য @ কেনওয়াই-এনকে ধন্যবাদ। 1 বহির্গমন কোডের জন্য @ এল.পেসক্যাডোকে ধন্যবাদ।

প্রতিপাদন

সমস্ত পরীক্ষা ওপেনসুএস 13.2 এ করা হয়েছে।

$ for n in {0..255}; do bash exit.sh $n; (($? == $n)) && echo $n >&0; done &> /dev/null
0
1
2
3
4
6
7
16
22
23
35
60
63
77
124
126
127
132
133
136
137
139
255

1
5 http_proxy=fafa curl http://example.org
নম্বরের

1
@ el.pescado এটি আমার এক বছরেরও বেশি সময় লেগেছে, তবে শেষ পর্যন্ত আমি আপনার পরামর্শটি কার্যকর করেছি। ধন্যবাদ!
ডেনিস

30

ইন্টারকল (সি-ইন্টারকল), 15 কোড, 313 + 2 = 315 বাইট

        PLEASE WRITE IN .1
(8)     PLEASE CREATE .1 A
        PLEASE A
        PLEASE COME FROM #2$!1/#1'

        DO X
(123)   DO (123) NEXT
        DO COME FROM (222)
(222)   DO STASH .2
(240)   DO ,1 <- #0
(241)   DO ,1 SUB #0 <- #1
(19)    DO .2 <- #256 $ #0
(21)    DO .1 <- #2
(148)   DO GO BACK
(180)   DO RETRIEVE .2
        DO COME FROM (50)
(50)    DO WRITE IN .2
(109)   DO RESUME #0
(120)   DO RESUME #9
        MAYBE COME FROM (223)
(223)   DO COME FROM (223)
(121)   PLEASE NOT X

এটি অনলাইন চেষ্টা করুন!

এখানে সমস্ত সাদা স্থান অপ্রাসঙ্গিক। (মূল প্রোগ্রামটিতে ট্যাব রয়েছে তবে আমি সেগুলিকে স্পেসে রূপান্তরিত করেছি যাতে এটি এসই তে সঠিকভাবে লাইন পেতে পারে; ইন্টারকলের জন্য এটি 8 এর ট্যাব প্রস্থ ব্যবহার করা প্রচলিত। আমি সমস্ত ট্যাব, স্পেস সহ প্রোগ্রামটির একটি সংস্করণ পরীক্ষা করেছি I've , এবং নতুনলাইনগুলি মুছে ফেলা হয়েছে, যদিও এবং এটি দুর্দান্ত কাজ করে))

সঙ্গে কম্পাইল -abm(2 বাইট কারণে শাস্তি -bকম্পাইলার নিয়ন্ত্রণবাদী হতে হবে প্রয়োজন হয়)।

INTERCAL জন্য স্বাভাবিক হিসাবে, এই বিন্যাসে সাংখ্যিক ইনপুট নেয়, যেমন, ONE TWO THREEজন্য 123

ব্যাখ্যা

যখন কোনও সি-ইন্টার্কাল প্রোগ্রাম ত্রুটিযুক্ত হয়ে যায়, প্রস্থান স্থিতিটি ত্রুটি কোড মডুলো 256 হয় a ফলস্বরূপ, আমরা এমন একটি প্রোগ্রাম লিখতে লক্ষ্য রাখতে পারি যা যতটা সম্ভব রান-টাইম ত্রুটি তৈরি করতে সক্ষম। এই প্রোগ্রামটি কেবল দুটি রানটাইম ত্রুটি বাদ দেয় যা অভ্যন্তরীণ সংকলক সমস্যাগুলি ইঙ্গিত করে না: আইসিএল ২০০200, কারণ এটি পুনরুত্পাদন করার জন্য বাহ্যিক লাইব্রেরিগুলি প্রয়োজন যা কেবলমাত্র একক থ্রেডযুক্ত প্রোগ্রামের সাথে সামঞ্জস্যপূর্ণ (এবং মাল্টিথ্রেডেড প্রোগ্রামগুলিতে আরও ত্রুটি উপলব্ধ রয়েছে); এবং আইসিএল ৩৩I আই, কারণ 3৩৩ এর ২ value7 এর মতো একই মান 256 রয়েছে এবং প্রোগ্রামটি আইসিএল 277 আই উত্পাদন করতে সক্ষম।

প্রোগ্রামটি সর্বদা একই ভাবে শুরু হয়। প্রথমত, আমরা WRITE INভেরিয়েবলের জন্য একটি মান ইনপুট করি .1। তারপরে, আমরা CREATEনতুন সিনট্যাক্স তৈরি করতে একটি গণিত বিবৃতি ব্যবহার করি (এখানে, A); তবে এটি গণনা করা হয়েছে বলে সিনট্যাক্সের সংজ্ঞা মানের ভিত্তিতে পরিবর্তিত হয় .1। অবশেষে, বেশিরভাগ ক্ষেত্রে আমরা আমাদের নতুন Aবিবৃতিটি চালিত করি , যা ত্রুটি তৈরির সংজ্ঞা দেওয়া হয়েছে; আমাদের কাছে সম্ভাব্য সংজ্ঞাগুলির সারণীতে প্রতিটি সম্ভাব্য রানটাইম ত্রুটির (উপরে উল্লিখিত ব্যতিক্রম ব্যতীত) সংজ্ঞা রয়েছে contains

প্রথমত, এই সাধারণ স্কিমের দুটি ব্যতিক্রম রয়েছে। (0)একটি বৈধ লাইন নম্বর নয়, সুতরাং যদি ব্যবহারকারী ইনপুট করে ZERO, আমরা (8)একটি গণিত COME FROMবিবৃতি দিয়ে দ্বিতীয় লাইন (সংখ্যাযুক্ত ) থেকে চতুর্থ লাইনে লাফাই । এটি তখন একটি সিনট্যাক্স ত্রুটির মধ্যে পড়ে DO X, যা ত্রুটি তৈরি করে ICL000I। (ইন্টারকল এ, সিনট্যাক্স ত্রুটিগুলি রানটাইমের সময় ঘটে থাকে, আদেশগুলি অক্ষম করার প্রবণতার কারণে, আপনার অধীনে সিনট্যাক্স পুনরায় সংজ্ঞায়িত করা হবে ইত্যাদি)। COME FROMবিবৃতি আরো একটি পার্শ্ব প্রতিক্রিয়া এমনকি যদি কোন প্রকৃত আছে, COME FROM, এরকম থেকে অপেরান্ড জমিদার তৈরি .1করতে #1যখনই একটি লাইন নম্বর দিয়ে একটি লাইন মৃত্যুদন্ড কার্যকর করা হয়; 21 পরে আউটপুট উত্পাদন করার সময় এটি ব্যবহার করা হয় ((এলোমেলোভাবে বিশ্বব্যাপী পার্শ্ব প্রতিক্রিয়াগুলি ইন্টারকালে মোটামুটি মূর্তিমানিক))

অন্য ব্যতিক্রম ইনপুট সহ ONE TWO NINE(129)প্রোগ্রামটিতে কোনও লাইন নম্বর নেই , সুতরাং আমরা অনুপস্থিত লাইন নম্বরটির জন্য একটি ত্রুটি পাই যা এটি ICL129I। সুতরাং এই মামলাটি কভার করার জন্য আমাকে কোনও কোড লিখতে হয়নি।

এখানে অন্যান্য ত্রুটি রয়েছে এবং কী কারণে সেগুলি ঘটে:

  • 123 হ'ল একটি NEXTস্ট্যাক ওভারফ্লো ( DO (123) NEXT)। NEXTবিবৃতি অন্যান্য সংশোধনকারীদের (প্রয়োজন FORGETবা RESUME) অর্ডার ব্যাপকভাবে কোনটি নিয়ন্ত্রণ বিবৃতি সাজানোর এটা ছিল না। 80 টি অমীমাংসিত `নেক্সট স্টেটমেন্ট একবার আসার পরে ত্রুটি আইসিএল 123 আই না হওয়া।
  • 222 হ'ল স্ট্যাশ ওভারফ্লো ( DO STASH .2একটি COME FROMলুপে)। স্ট্যাশগুলি কেবল উপলভ্য মেমরি দ্বারা সীমাবদ্ধ থাকে তবে এটি শেষ পর্যন্ত চলে যাবে, আইসিএল 222 আইয়ের ফলে ত্রুটি ঘটবে।
  • 240 হল পরিমান শূন্যের একটি অ্যারে sions ঠিক এর DO ,1 <- #0অর্থ এটি এবং এটি আইসিএল 240 আইয়ের ত্রুটি ঘটায়।
  • 241 অ্যারের গণ্ডির বাইরে বরাদ্দকরণের ফলে ঘটে। এই ক্ষেত্রে, ,1বরাদ্দ করা হয়নি ( ,ইন্টারকালে অ্যারে-টাইপ ভেরিয়েবলের জন্য ব্যবহৃত হয়), সুতরাং এটি সূচীকরণ ত্রুটি আইসিএল 241 আইয়ের কারণ হয়ে থাকে।
  • 19#256 $ #0 একটি 16-বিট ভেরিয়েবলকে 65536 ( ) বরাদ্দ করে .2। এটি মানানসই নয়, আইসিএল 275 আইয়ের ত্রুটি ঘটায়।
  • 21 নির্ধারণ #2করতে .1। এটি একটি সাধারণ পর্যাপ্ত অ্যাসাইনমেন্টের মতো দেখতে পারে তবে আমরা আগে .1বোঝাতে ওভারলোড করেছি #1এবং -vকমান্ড লাইনে কোনও বিকল্প ছাড়াই 1 এর মান পরিবর্তন করার চেষ্টা করায় আইসিএল 277 আই ত্রুটি ঘটায়।
  • 148 চয়েসপয়েন্ট স্ট্যাকের শীর্ষ এন্ট্রিটিতে ফিরে যাওয়ার চেষ্টা করে ( GO BACK), যা প্রোগ্রামে এই মুহুর্তে বিদ্যমান নেই (আমরা পছন্দ পয়েন্ট স্ট্যাকটি পরিচালনা করার জন্য কোনও কমান্ড চালাইনি, সুতরাং এটি খালি)। এর ফলে ত্রুটি আইসিএল 404 আই হয়।
  • RETRIEVE .2অস্তিত্বহীন স্ট্যাশ থেকে 180 টি চেষ্টা করা হয়েছে (কারণ আমরা প্রোগ্রামের এই শাখায় সেখানে কোনও কিছুই স্ট্যাশ করি নি), আইসিএল 436 আই ত্রুটি ঘটায়।
  • 50 টি অনুরোধ ইনপুট ( WRITE IN) চিরকাল একটি COME FROMলুপে। অবশেষে আমরা বিগত ইওএফটি পড়ে শেষ করব, আইসিএল 562 আইয়ের ত্রুটি ঘটায়।
  • 109 স্টেটমেন্টটি চালায় DO RESUME #0, যা অর্থহীন এবং বিশেষত একটি ত্রুটির কারণ হিসাবে চিহ্নিত করা হয়েছে (আইসিএল 621 আই)।
  • 120 স্টেটমেন্ট রান DO RESUME #9। আমরা NEXTএখনও এতগুলি স্টেটমেন্ট চালাইনি, এবং এভাবেই আমরা ত্রুটি পেয়েছি আইসিএল 120 ​​আই। (অদ্ভুতভাবে, এই নির্দিষ্ট ত্রুটিটি ইন্টারকাল ডকুমেন্টেশনে সংজ্ঞায়িত করা হয় যে প্রোগ্রামটি সাধারণত স্বাভাবিকভাবে প্রস্থান করা হয় এবং তারপরে ত্রুটিটি ঘটে, ত্রুটিযুক্ত করে প্রোগ্রামটি বেরিয়ে আসার পরিবর্তে। তবে আমি বিশ্বাস করি না যে এই দুটি ক্ষেত্রে অবশ্যই আলাদা আলাদা) are
  • 223 মূলত মাল্টিথ্রেডিং আদিমগুলির একটি জটিল জট যা সবগুলি 223 লাইনের দিকে নির্দেশ করে, স্মৃতিটিকে প্রবাহিত করে এমন একটি অসীম লুপ তৈরি করে। শেষ পর্যন্ত, মাল্টিথ্রেডিং সাবসিস্টেমটিতে স্মৃতিশক্তি ক্লান্তি রয়েছে যা আইসিএল 991 আই ত্রুটির দিকে পরিচালিত করে।
  • 121 আসলে একটি বৈধ বিবৃতি (এটি একটি মন্তব্য), তবে এটি প্রোগ্রামের শেষে উপস্থিত হয়। যেমনটি কার্যকর করা কার্যকর হওয়ার সাথে সাথেই প্রোগ্রামের শেষের দিকে কার্যকর হয়ে যায়, যার ফলে ত্রুটি আইসিএল 633 আই ঘটে।

প্রতিপাদন

কিছু ত্রুটিগুলির মধ্যে ইচ্ছাকৃতভাবে প্রোগ্রামটি মেমোরির বাইরে চলে যাওয়ার সাথে জড়িত, তাই আমি মোটামুটি ছোট স্মৃতি সীমা নির্ধারণ করার পরামর্শ দিই। প্রোগ্রামটি পরীক্ষা করার জন্য আমি যে শেল কমান্ডটি ব্যবহার করেছি তা এখানে রয়েছে (পঠনযোগ্যতার জন্য নতুন লাইনের সাথে যুক্ত; আপনি যদি এটি নিজে চালান তবে সেগুলি মুছুন):

for x in "ZERO" "ONE NINE" "TWO ONE" "FIVE ZERO" "ONE ZERO NINE"
         "ONE TWO ZERO" "ONE TWO ONE" "ONE TWO THREE" "ONE TWO NINE"
         "ONE FOUR EIGHT" "ONE EIGHT ZERO" "TWO TWO TWO"
         "TWO TWO THREE" "TWO FOUR ZERO" "TWO FOUR ONE";
do  echo;
    echo $x;
    echo $x | (ulimit -Sd 40000; ulimit -Sv 40000; ulimit -Ss 40000;
               ./errors; echo $?);
done

এবং আউটপুটটি এখানে রয়েছে (স্থান বাঁচাতে লাইন নম্বর এবং "দয়া করে সঠিক উত্স" বার্তাগুলি মুছে ফেলা হয়েছে), যা আমি আংশিকভাবে প্রোগ্রামটি কাজ করে দেখানোর জন্য যুক্ত করেছি তবে বেশিরভাগই ইন্টারকলের নির্বোধ ত্রুটি বার্তাগুলি প্রদর্শন করার জন্য:

ZERO
ICL000I PLEASEWRITEIN.1(8)PLEASECREATE.1APLEASEAPLEASECOMEFROM#2$!1/#1'DOX(123)DO(123)NEXTDOCOMEFROM(222)(222)DOSTASH.2(240)DO,1<-#0(241)DO,1SUB#0<-#1(19)DO.2<-#256$#0(21)DO.1<-#2(148)DOGOBACK(180)DORETRIEVE.2DOCOMEFROM(50)(50)DOWRITEIN.2(109)DORESUME#0(120)DORESUME#9MAYBECOMEFROM(223)(223)DOCOMEFROM(223)(121)PLEASENOTX
0

ONE NINE
ICL275I DON'T BYTE OFF MORE THAN YOU CAN CHEW
19

TWO ONE
ICL277I YOU CAN ONLY DISTORT THE LAWS OF MATHEMATICS SO FAR
21

FIVE ZERO
ICL562I I DO NOT COMPUTE
50

ONE ZERO NINE
ICL621I ERROR TYPE 621 ENCOUNTERED
109

ONE TWO ZERO
ICL632I THE NEXT STACK RUPTURES.  ALL DIE.  OH, THE EMBARRASSMENT!
120

ONE TWO ONE
ICL633I PROGRAM FELL OFF THE EDGE
121

ONE TWO THREE
ICL123I PROGRAM HAS DISAPPEARED INTO THE BLACK LAGOON
123

ONE TWO NINE
ICL129I PROGRAM HAS GOTTEN LOST
129

ONE FOUR EIGHT
ICL404I I'M ALL OUT OF CHOICES!
148

ONE EIGHT ZERO
ICL436I THROW STICK BEFORE RETRIEVING!
180

TWO TWO TWO
ICL222I BUMMER, DUDE!
222

TWO TWO THREE
ICL991I YOU HAVE TOO MUCH ROPE TO HANG YOURSELF
223

TWO FOUR ZERO
ICL240I ERROR HANDLER PRINTED SNIDE REMARK
240

TWO FOUR ONE
ICL241I VARIABLES MAY NOT BE STORED IN WEST HYPERSPACE
241

4
এটি সম্ভবত আমি এখন পর্যন্ত দেখা সবচেয়ে বড় ইন্টারকাল প্রোগ্রাম।
স্কাইলার

27

পার্ল, 108 বাইট, 256 প্রস্থান কোড

এই প্রোগ্রামটি (আব) টেস্ট :: আরও মডিউল ব্যবহার করে। এটি "" n বার নামক ফাইলটি খোলার চেষ্টা করে যেখানে n কমান্ড লাইন আর্গুমেন্ট হিসাবে দেওয়া হয়। এটি প্রতিবার ব্যর্থ হয় এবং প্রতিটি অনুরোধকে পরীক্ষা হিসাবে বিবেচনা করা হয়। পরীক্ষা :: প্রস্থান কোড হিসাবে ব্যর্থ পরীক্ষার আরও রিটার্ন সংখ্যা। plan tests => $ARGV[0]%255প্রস্থান কোড 255 পাওয়ার জন্য প্রয়োজনীয়।

#!/usr/bin/perl
use Test::More;
plan tests => $ARGV[0]%255 if($ARGV[0]>0);
ok(open(F,"")) for (1..$ARGV[0])

গল্ফড:, perl -MTest::More -e'plan tests,$%%255if$%=<>;ok 0for 1..$%'51 বাইট (38 বাইট + 13 বাইটের জন্য -MTest::More<space>)। স্টিডিনে ইনপুট নেয়।
এইসুইটসস ব্ল্যাকনট

27

C90 (gcc), 256 প্রস্থান কোড, 28 27 18 বাইট

main(){getchar();}

আমি নিশ্চিত এই চালাক বা cheaty হয় নই, কিন্তু আমি এটা নিয়ম লিখিত যেমন লঙ্ঘন করে তা মনে করি না: এটা টেকনিক্যালি ব্যবহার করে না exit, returnবা কোনো ত্রুটি প্রক্রিয়া নিক্ষেপ, কিন্তু কেবল অনির্ধারিত আচরণ এবং সত্য যে জিসিসি উপর নির্ভর এই চ্যালেঞ্জ হিসাবে যতটা না সুবিধাজনক কিছু করে।

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

এটি কেবল getcharএসটিডিআইএন থেকে একটি বাইট পড়তে ব্যবহার করে। নিজেই, এটি কিছুই করে না।

যাইহোক, একটি আনুগত্যকারী C90 প্রোগ্রাম অবশ্যই একটি returnবিবৃতি বা সমতুল্য কিছু দিয়ে শেষ হবে ; অন্য সব কিছুই নির্ধারিত আচরণ। জিসিসি retযেকোনো উপায়ে উত্পন্ন সমাবেশটি শেষ করে , সুতরাং রেজিস্টার ইএএক্স-তে যা কিছু মূল্য ছিল তা প্রোগ্রামের মাধ্যমে ফিরে আসবে। ভাগ্যক্রমে, getcharগ্লিবসি এর বাইটটি এটিএডিএন-এর এসএডিআইএন থেকে পাঠায়, তাই সেই বাইটের মান হ'ল আমাদের প্রোগ্রামের প্রস্থান কোড।


এটি দেখতে এই 8 বিট বাধা মাধ্যমে বিরতি রুপান্তরিত করা যাবে যদি, মত শেল ব্যবহার আকর্ষণীয় হবে jsh , যা সমর্থন set -o fullexitcode
জেপেলিন

1
যে চালাক। তবে প্রোগ্রামটি আসলে ক্রাশ হয় না, তখন। এটা সাধারণত ফেরৎ, বৈশিষ্ট "একটি মারাত্মক ব্যতিক্রম / অপরিবর্তনীয় ব্যর্থতা / ক্র্যাশ কারণ" এ কিনা
অস্পষ্ট

যেভাবেই হোক, এটি দুর্দান্ত।
কোয়ান্টিন

4
@ ডিম আমি অনুমান করি যে এটি আপনার ক্র্যাশের সংজ্ঞা উপর নির্ভর করে। C90 স্ট্যান্ডার্ড যতদূর যায় ততক্ষণে প্রধান returnবা শেষ না হওয়া exitত্রুটি এবং এর ফলে একটি প্রস্থান কোড পাওয়া যায় যা ব্যর্থতা নির্দেশ করে। এটাই ক্রাশ হৃদয়কে ঘুরিয়ে দেয়।
ডেনিস

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

19

X86, 230 বাইট, 8 প্রস্থান কোডগুলিতে ব্যাশ শেলের অধীনে সি (জিসিসি)

নিউডলাইনগুলি পাঠযোগ্যতার সহায়তাতে যুক্ত হয়েছে। স্কোরগুলিতে মন্তব্যগুলি উপেক্ষা করা হয়েছে।

main(int c, char **v){
int p[2];
switch(atoi(v[1])-128){
case 2:__asm("UD2");        /* SIGILL: x86 undefined instruction */
case 5:__asm("int $3");     /* SIGTRAP: x86 breakpoint instruction */
case 6:abort();             /* SIGABRT: raise() is called under the covers */
case 8:c/=c-2;              /* SIGFPE: divide by 0 (c-2) */
case 11:c=*(int *)c;        /* SIGSEGV: dereference of invalid pointer */
                            /* SIGPIPE: write() to a pipe closed at the other end */
case 13:socketpair(1,1,0,p);close(p[1]);write(p[0],v,1);
case 14:alarm(1);sleep(2);  /* SIGALRM: kernel will send alarm signal after 1 sec */
}
}

ব্যাশ শেলের একটি বৈশিষ্ট্য:

যখন কোনও কমান্ড মারাত্মক সিগন্যাল এন-তে সমাপ্ত হয়, তখন ব্যাশ 128 + এন এর মান প্রস্থান স্থিতি হিসাবে ব্যবহার করে।

সুতরাং আমাদের যা করতে হবে তা হ'ল এসি প্রোগ্রামের মধ্যে থেকে বিভিন্ন সংকেতকে ট্রিগার করতে। এই মুহুর্তে, আমি ধরে নিই যে কেবল kill(n-128);করা নিষিদ্ধ। সুতরাং পরিবর্তে আমরা কোড প্রয়োগ করি যা বিভিন্ন সংকেতকে ট্রিগার করে, যার ফলে সংশ্লিষ্ট ত্রুটি কোডগুলি কলিং শেলটিতে উপলভ্য করা হয়।

প্রস্থান কোডগুলি 0, 130, 133, 134, 136, 139, 141, 142।

এটি অনলাইনে চেষ্টা করুন । রিটার্ন কোডটি দেখতে "ডিবাগ" বিভাগটি প্রসারিত করুন।

এটি অবশ্যই গভীরতর গল্ফ করা যেতে পারে। তবে আমি আরও সংকেত যুক্ত করতে আরও আগ্রহী হব।


আমি কি ধরে নিতে পারি যে সিগন্যালগুলি আপনার কোডের বাইরে প্রাক-বিদ্যমান ফাংশন বা ক্রিয়াকলাপের কারণে ঘটেছে?
অ্যাডিসন

1
@ ভোটটোক্লোজ হ্যাঁ, এটা ঠিক। উদাহরণস্বরূপ, __asm("UD2")x86 "অপরিজ্ঞাত নির্দেশ" চালায় যা একটি সিপিইউ ব্যতিক্রম ঘটায় যা কার্নেল দ্বারা একটি সিগিল সংকেত আকারে প্রোগ্রামে রিলে করা হবে। জন্য socketpairউদাহরণস্বরূপ, SIGPIPE কার্নেল বা glibc দ্বারা পাঠানো হবে হিসাবে আমরা করার চেষ্টা করছেন write()একটি নল হয় যে close()অন্য প্রান্তে ঘ।
ডিজিটাল ট্রমা

1
তাহলে এ নিয়ে আমার কোনও সমস্যা নেই। : পি
অ্যাডিসন ক্র্যাম্প

1
আপনি 1) দুটি অক্ষর গল্ফ আউট করতে পারেন যদি আপনি ব্যবহার করেন int3এবং না int $32) একটি চরিত্র আপনি যদি ঘোষণা vকরেন int**যে আপনি মৌলিকভাবে charআপনার পয়েন্টার গাণিতিকের ডেটাটাইপের উপর নির্ভর না করে , 3) দুটি অক্ষর আপনি যদি ব্যবহার করেন বা 4) এর *pপরিবর্তে p[0]ছয় অক্ষর, আপনি যদি fdতাদের তৈরি করা সমস্ত সিস্টেমে প্রত্যাবর্তনযোগ্য সংখ্যার উপর নির্ভর করতে চান তবে সেগুলি প্রতিস্থাপন করে p[0]এবং p[1]তাদের কাছাকাছি নির্দিষ্ট মানগুলি দিয়ে। শেষ অবধি, এর pipe(fd)চেয়ে অনেক কম socketpair(...)এবং বন্ধ করার সময় fd[0]এবং লেখার সময় একই ত্রুটি তৈরি করে gene fd[1]
আইভিলনোটেক্সিস্ট আইডোনোটেক্সবাদ

2
কয়েকটি অতিরিক্ত গল্ফিং পরামর্শ: 1) &63পরিবর্তে ব্যবহার করুন -128। 2) sleep(2)সঙ্গে প্রতিস্থাপন for(;;)। 3) c=*(int*)cসঙ্গে প্রতিস্থাপন atoi(0)। 4) c/=c-2সঙ্গে প্রতিস্থাপন c/=0
nwellnhof

10

পাইথন 2, 13 বাইট, 2 প্রস্থান কোড

1/(input()-1)

আপনি যদি 0 লিখেন তবে এটি প্রিন্ট করার চেষ্টা করবে 1/-1যা -1 যা পুরোপুরি সূক্ষ্ম সুতরাং প্রস্থান কোড 0 থেকে প্রস্থান করে আপনি যদি 1 টি প্রবেশ করেন তবে আপনি এটি পেয়ে 1/0যাবেন ZeroDivisionErrorযেখানে একটি বহির্গমন কোড রয়েছে 1 আমার আইডিই সহ কেবলমাত্র 0 আছে এবং প্রস্থান কোডগুলির জন্য 1 ...

আউটপুট:


এখানে চিত্র বর্ণনা লিখুন


এখানে চিত্র বর্ণনা লিখুন


10

পিএইচপি, 15 বাইট, 2 প্রস্থান কোড

die/ ছাড়া exitপিএইচপি আর 0বা 255(আফাইক; সম্ভবত ~1) ছাড়া আর কিছু ফেরত দিতে পারে না , তাই ...

!$argv[1]?:p();

যদি কমান্ড লাইন যুক্তি মিথ্যা হয় তবে তা মূল্যায়ন করে 1এবং এর সাথে প্রস্থান করে 0। যদি তা না হয় তবে এটি একটি ফাংশনটি কল করার চেষ্টা করে এবং এর সাথে প্রস্থান করে <b>Fatal error</b>: Uncaught Error: Call to undefined function p()

সাথে চালাও -r


5
এটা সত্যি না. exit()একটি প্রস্থান স্থিতি সেট করে ... যা আপনি এই চ্যালেঞ্জের জন্য ব্যবহার করতে পারবেন না, মঞ্জুর। তবে আপনার কোডটিও অবৈধ। এটি প্রস্থান স্থিতি 255
13

@ অ্যারোস: হুম আমি সবসময় ধরেছিলাম ত্রুটিটি বেরিয়ে আসবে 1। আমি প্রস্থান কোডগুলির একটি তালিকা অনুসন্ধান করেছি, তবে এটির সন্ধান করতে পারি না।
তিতাস

10

এক্সেল ভিবিএ, 414 514 533 + 3 বাইট, 14 প্রস্থান কোড

হিসেবে ইনপুট লাগে Conditional Compilation Argument, n=[input value]এবং যে সংখ্যা এর যুক্ত ত্রুটি কোড উৎপন্ন হয়।

Sub e()
Dim a As Application, b As Byte, s As String, v(), x
Set a=Application
#If n=3 Then
Return
#ElseIf n=5 Then
b=a.CommandBars("")
#ElseIf n=6 Then
b=2^8
#ElseIf n=7 Then
ReDim v(9^9)
#ElseIf n=9 Then
v=Sheets("")
#ElseIf n=10 Then
v=Array(1)
For Each x In v
ReDim v(9)
Next
#ElseIf n=11 Then
b=1/0
#ElseIf n=13 Then
Debug.?Int("X")
#ElseIf n=14 Then
Debug.?String(9E8,1)
#ElseIf n=20 Then
Resume
#ElseIf n=28 Then
f 256
#ElseIf n=35 Then
Call c
#ElseIf n=92 Then
For Each x In v
ReDim v(9)
Next
#ElseIf n=94 Then
b=Null
#End If
End Sub

Sub f(n):DoEvents:f n-1:End Sub

n=[Value]শর্তসাপেক্ষ সংকলনের জন্য +3

ইনপুটগুলি যেখানে পরিচালনা করে n=

3
5
6
7
9
10
11
13
14
20
28
35
92
94    

দ্রষ্টব্য: ভিবিএর প্রস্থান কোড 0বা নেই 1। আমি সমাধানগুলি 3এবং এর জন্য অন্তর্ভুক্ত করেছি 5, যা দুটি স্থানে সবচেয়ে কম সংখ্যক বহির্গমন কোড যা ভিবিএতে তাদের জায়গায় উপলব্ধ


1
আমি এই উত্তরটি অগ্রাহ্য করব না, কারণ আউটপুট ধরণের ভাষার সামর্থ্যের কারণে এটি আমার পক্ষে সমার্থক নয়।
অ্যাডিসন ক্রম্প

1
#এখানে কি করে ?
ব্রুস ওয়াইন

#ifএবং #ElseIfযার মানে হল বিবৃতি যে এটা অনুসরণ করেন কেবল তাহলেই শর্ত সত্য হয় সংকলিত শর্তাধীন সংকলন বিবৃতি
টেলর স্কট

1
সুতরাং, যদি তারা সত্য না হয়, বিবৃতিগুলি সংকলিত হয় না ... এটি ব্যবহার না করার চেয়ে আলাদা #, যেখানে বিবৃতিগুলি সত্য কিনা তা সংকলন করা হবে? আমি জানি যে Ifবিবৃতিগুলি কীভাবে কাজ করে তবে আমি আসলে যা সংকলন করি সেটিতে নামতে আমি নতুন , এত সাধারণ প্রশ্নের জন্য দুঃখিত।
ব্রুসওয়েনে

1
@ ব্রুসওয়েইন, হ্যাঁ, এটি হ'ল কারণ এই লাইন নিক্ষেপ করা ডিজাইন করা হয় নির্দিষ্ট ত্রুটি, এটা আছে প্রয়োজনীয় শুধুমাত্র লাইন যে উত্পাদন কাঙ্ক্ষিত ত্রুটি কোড একটি দিতে সময়ে সংকলিত করতে। এটি করার #ifজন্য Ifবা Select Caseকেবলমাত্র truthyশর্তাধীন বিবৃতি আসলে সংকলিত হিসাবে ব্যবহার করা হয় । এই ক্ষেত্রে বিশেষত, এটি প্রোগ্রামটিকে ত্রুটি কোড সহ 3, Return without GoSubপ্রতিটি মৃত্যুদণ্ডের সময় বেরিয়ে আসা থেকে বিরত রাখে , বরং কেবল তখনই এই কোডটি দিয়ে বেরিয়ে আসে যখনn=3
টেলর স্কট

7

টার্টল্ড, 4 বাইট, 2 প্রস্থান কোড

আমি জানি না যে আরও প্রস্থান কোড পাওয়ার কোনও উপায় আছে কিনা ... দোভাষীর ভাষাতে আরও কি কোনও উপায় আছে?

আমি কয়েকটি চার দৈর্ঘ্যের উত্তর পেয়েছি

' ?;

এটি অনলাইন চেষ্টা করুন!

!.(0

এটি অনলাইন চেষ্টা করুন!

?;(*

এটি অনলাইন চেষ্টা করুন!

কিভাবে এই কাজ:

' ?;

আমার দোভাষীটিতে, একটি বাগ বৈশিষ্ট্য রয়েছে যা মেমরির গ্রিডে একাধিক লাইন থাকে এবং এতে কোনও ফাঁকা স্থান না থাকলে ত্রুটি সৃষ্টি করে। এই প্রোগ্রামটি অরিজিনাল সেলটিতে * মুছে ফেলে '[space], অ-নেতিবাচক পূর্ণসংখ্যার ইনপুট নেয় ?(সত্যিই 0 বা 1), এবং এটি অনেককে সরিয়ে নিয়ে যায় ;, যদি এটি শূন্য হয়, গ্রিডটিতে কেবল একটি লাইন থাকবে এবং ত্রুটি নয়, অন্যথায় এটি নীচে সরবে এবং ত্রুটি ঘটবে

!.(0

প্রথম বন্ধনী এবং স্টাফ বিশ্লেষণ করা হয় না, এগুলি কেবল রান সময়ে চালানো হয় যার অর্থ: "মিলিত প্যারেনে যান, যদি ঘর প্রতীকটি সঠিক না থাকে"। এই প্রোগ্রামে, ( !) ইনপুট করার ফলে একটি প্রোগ্রামটি সেলে এটি লিখতে পারে ( .), পেরেন চালায়, যা কোষের প্রতীক 0 হয় কিনা তা পরীক্ষা করে, ম্যাচিং প্যারেনে চলে যাওয়ার চেষ্টা করুন, তবে এর পরিবর্তে কোনও ত্রুটি ছুঁড়ে ফেলুন কারণ সেখানে কিছুই নেই । যদি এটি শূন্য হয়, এটি এটিকে লিখে রাখে, প্রথম বন্ধনী পরীক্ষা করে, 0 তে নিজেকে আবিষ্কার করে এবং তারপরে এড়িয়ে যায় এবং প্রোগ্রামটি সমাপ্ত হয়

?;(*

পূর্ববর্তী উত্তরের উপাদান রয়েছে এবং প্রথমটি। এটি অ-নেতিবাচক পূর্ণসংখ্যার ইনপুট নেয়, এটিকে অনেকগুলি নীচে নামিয়ে দেয় এবং ঘরটি '*' কিনা তা পরীক্ষা করে, যদি এটি বিদ্যমান না থাকে তবে কোনও অতিরিক্ত প্যারেনের সন্ধান করে। যদি ইনপুটটি 1 হয় তবে এটি শুরুর স্থানটি সরিয়ে ফেলবে এবং ঘরটি একটি স্থান এবং ত্রুটিটি শূন্য হলে এটি শুরু স্পেসে থাকবে এবং পেরেনকে উপেক্ষা করবে।


7

জাভাস্ক্রিপ্ট (নোড), 19 বাইট, 2 প্রস্থান কোড

সম্পূর্ণ প্রোগ্রাম:

+process.argv[2]&&a

ফাংশন:

f=i=>i&&f(i)

process.argvহ'ল একটি অ্যারে যা নুড এক্সিকিউটেবলের পথ, জাভাস্ক্রিপ্ট ফাইলের পথ এবং কমান্ড লাইন আর্গুমেন্ট ধারণ করে। এই ক্ষেত্রে, এটি হয় হয় "1"বা হয় "0"। স্ট্রিংটি আনারি +অপারেটরের সাথে একটি সংখ্যায় রূপান্তরিত হয় । যদি সংখ্যাটি শূন্য হয় তবে অলস &&অপারেটর ডান হাতের দিকটি মূল্যায়ন করবে না, যদি সংখ্যাটি সত্যবাদী হয় (শূন্য নয়), ডান হাতের দিকটি &&মূল্যায়ন করা হয় এবং একটি ত্রুটি নিক্ষেপ করা হয় কারণ এটি একটি অপরিজ্ঞাত পরিবর্তনশীল উল্লেখ করে এবং প্রোগ্রামটি বিদ্যমান রয়েছে প্রস্থান কোড 1 সহ।

ফাংশনটি একটি সংখ্যা হিসাবে ইনপুটটি প্রত্যাশা করে। যদি ইনপুট সত্য হয়, ফাংশনটি নিজেকে কল করে এবং স্ট্যাকের ওভারফ্লো দিয়ে নোড রানটাইমকে ক্র্যাশ করে। যদি ইনপুট 0 হয়, অলস &&অপারেটর ডান পাশের মূল্যায়ন না করে 0 ফিরিয়ে দেয়।


@ ভোটটোক্লোজ এটিকে অনির্ধারিত ভেরিয়েবলে পরিবর্তন করেছে
করভাস_192

ওই কাজগুলো. : পি
অ্যাডিসন ক্রম্প 11

সম্পূর্ণ প্রোগ্রামটি সংক্ষিপ্ত করা যেতে পারে +process.argv[2]&&a
ব্যবহারকারী 2428118

@ ব্যবহারকারী 2428118 আপনি ঠিক বলেছেন
করভাস_192

কৌতূহলের বাইরে ReferenceError.prototype.name=process.argv[2]?a:0কি বৈধ হবে?
প্যাট্রিক রবার্টস

6

পার্ল 6 , 57 বাইট, 256 প্রস্থান কোড

use Test;plan $_=@*ARGS[0];ok try {open ""} for ^($_%255)

এটি চেষ্টা করুন এটি
পার্ল 5 উদাহরণের অনুবাদ।

সম্প্রসারিত

use Test;  # bring in 「plan」 and 「ok」

plan $_ = @*ARGS[0]; # plan on having the input number of tests
                     # only actually needed for the 255 case
                     # if the plan is greater than the number of tests
                     # it fails with exitcode 255


  ok                 # increment the failure counter if the following is False
    try {            # don't let this kill the whole program
      open ""        # fails to open a file
    }

for                  # repeatedly do that

  ^(                 # upto Range
    $_ % 255         # either the input number of times, or 0 times for 255
  )

5

স্কালা, 19 বাইট, 2 প্রস্থান কোড

if(args(0)=="1")1/0

1/(args(0).toInt-1)

আপনি যদি কল না করেন তবে JVM কেবলমাত্র 1 এবং 0 টি প্রস্থান কোড হিসাবে সমর্থন করে System.exit

প্রথম প্রোগ্রামটি 1/0প্রথম আর্গুমেন্টটি গণনা করার চেষ্টা করে 1যা 1 এর একটি প্রস্থান কোড JVM কে ক্র্যাশ করবে। যদি আর্গুমেন্ট 0 হয়, এটি সফলভাবে প্রস্থান করবে।

দ্বিতীয় প্রোগ্রামটি আর্গুমেন্টটিকে পূর্ণসংখ্যায় রূপান্তরিত করে, একটিকে বিয়োগ করে এবং 1টিকে সেই সংখ্যা দিয়ে ভাগ করার চেষ্টা করে। আর্গুমেন্ট যদি 1 হয়, এটি গণনা করে 1/0, তাই JVM ক্রাশ হবে; যদি আর্গুমেন্ট 0 হয়, এটি গণনা করে 1/-1প্রস্থান করে।


5

পাইথন 3 , 15 বাইট, 2 প্রস্থান কোড

স্পষ্টতই, এটি পাইথন 2 সমাধানের চেয়ে দীর্ঘ , কারণ পাইথন 3 এ আমরা কল না করে আক্ষরিক ইনপুট নিতে পারি না eval। তবে, আমরা স্ট্রিং তুলনা কৌশল আকর্ষণীয়ভাবে ব্যবহার করতে পারি ...

1/(input()<'1')

ইনপুট হয় স্ট্রিং 0বা 1- এটি যদি 1 হয় তবে শর্তটি 0 (মিথ্যা) এ মূল্যায়ন করে, ফলস্বরূপ 1 / 0ক্র্যাশ করে এমন গণনা করার প্রয়াসের ফলে (প্রস্থান কোড 1)। অন্যথায়, কিছুই ঘটে না এবং পাইথন নিয়মিত প্রস্থান কোড 0 দিয়ে প্রস্থান করে।

আমি যতদূর জানি, পাইথন অন্যান্য প্রস্থান কোডগুলির সাথে ক্র্যাশ করতে অক্ষম।


5

জাভা, 71 66 বাইট, 2 প্রস্থান কোড

4 বাইট হোলারকে ধন্যবাদ রক্ষা করেছে

সম্পূর্ণ প্রোগ্রাম:

interface I{static void main(String[]a){a[a[0].charAt(0)-48]="";}}

যুক্তি হিসাবে একটি কার্য গ্রহণ ফাংশন:

i->1/(i-1)

প্রোগ্রামটি একটি পূর্ণসংখ্যা (0 বা 1) পেতে প্রথম আর্গুমেন্টের প্রথম চরটি (হয় '0'বা '1'বিয়োগ করে 48 বা এর বিয়োগফল '0') গ্রহণ করে It এটি পরে সেই পূর্ণসংখ্যার অবস্থানটি খালি স্ট্রিংয়ে সেট করার চেষ্টা করে। ইনপুটটি 1, প্রোগ্রামটি দিয়ে ক্র্যাশ হয় ArrayIndexOutOfBoundsExceptionআর্গুমেন্ট অ্যারেতে 0-তে পজিশনে একটি উপাদান থাকে (শূন্য-সূচকযুক্ত)।


আপনি মান নির্ধারণ করতে বা এটি অন্য কোনও উপায়ে ব্যবহার করতে পারেন, যেমন অ্যারে সূচক a[a[0].equals("1")?1/0:1]="";, যা সমান int x=a[0].equals("1")?1/0:1;। তবে প্রোগ্রামটি আরও পরিবর্তন করে কিছুটা বাইট সংরক্ষণের ArrayIndexOutOfBoundsExceptionপরিবর্তে উস্কে দেওয়া ArithmeticException:interface I{static void main(String[]a){a[a[0].charAt(0)-'0']="";}}
হোলার

4

পাইথন 2, 11 বাইট, 2 প্রস্থান কোড

1>>-input()
1/~-input()
0<input()<x

তিনটি ভিন্ন ত্রুটির জন্য তিনটি 11 টি বাইট সমাধান! (কেবল মজাদার জন্য, এটি পয়েন্ট দেয় না)) ডিফল্টরূপে পাইথনের সফল প্রস্থানের জন্য কেবলমাত্র প্রস্থান কোড 0 এবং ত্রুটির জন্য 1 রয়েছে। সফল রান কিছুই আউটপুট না।

 1>>-input()

ইনপুট 1-এ, "ভ্যালুইরির: নেতিবাচক শিফট গণনা" দেয়। ইনপুট 0 এ, একটি শূন্য শিফট গণনা সফল হয় এবং 1 দেয়।

1/~-input()

ইনপুট 1-এ, "জিরো ডিভিশনইরিয়ার: ইন্টিজার ডিভিশন বা শূন্য দ্বারা মডুলো" দেয় যার কারণে ~-input()ওরফে input()-10 হয় input ইনপুট 1-এ, 1/-1-1 দেয়। 0**-input()কাজ করবে।

0<input()<x

ইনপুট 1-এ, "নেমএরর: নাম 'এক্স' সংজ্ঞায়িত করা হয়নি" দেয়। ইনপুট 0-এ, এই প্রথম বৈষম্যকে 0<0মিথ্যা হিসাবে মূল্যায়ন করা হয়, তাই বাকিগুলি মূল্যায়ন করা হয় না এবং ফলাফলটি কেবল মিথ্যা হয়।


2

নোড.জেএস (ইএস 6), 77 বাইট, 2 প্রস্থান কোড

require('readline').createInterface({input:process.stdin}).prompt("",i=>i&&x)

2

জেলি , 4 প্রস্থান কোড, 18 বাইট

߀
2*
Ṁ¹Ŀ
RÇĿỌḊ?R

প্রস্থান কোড 0 , 1 , 137 (নিহত), এবং 139 (বিভাগের ত্রুটি) সমর্থন করে।

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

RÇĿỌḊ?R  Main link. Argument: n (integer)

R        Range; yield [1, ..., n] if n > 1 or [] if n = 0.
    Ḋ?   If the dequeued range, i.e., [2, ..., n] is non-empty:
 Ç         Call the third helper link.
  Ŀ        Execute the k-th helper link, where k is the the integer returned by Ç.
         Else, i.e., if n is 0 or 1:
   Ọ       Unordinal; yield [] for n = 0 and "\x01" for n = 1.
      R  Range. This maps [] to [] and causes and error (exit code 1) for "\x01".


Ṁ¹Ŀ      Third helper link. Argument: r (range)

Ṁ        Maximum; retrieve n from r = [1, ..., n].
 ¹Ŀ      Call the n-th helper link (modular).
         When n = 139, since 139 % 3 = 1, this calls the first helper link.
         When n = 137, since 137 % 3 = 2, this calls the second helper link.


2*       Second helper link. Argument: k

2*       Return 2**k.
         Since 2**137 % 3 = 174224571863520493293247799005065324265472 % 3 = 2,
         ÇĿ in the main link will once again call the second helper link.
         Trying to compute 2**2**137, a 174224571863520493293247799005065324265472-
         bit number, will get the program killed for excessive memory usage.


߀       First helper link. Argument: k

߀       Recursively map the first helper link over [1, ..., k].
         This creates infinite recursion. Due to Jelly's high recursion limit,
         a segmentation fault will be triggered.

2

স্মাইলব্যাসিক, 640 বাইট, 39 প্রস্থান কোড (52 এর বাইরে)

SPSET.,0INPUT C$GOTO"@"+C$@0
STOP@3
A
@4
CLS.@5@A
GOSUB@A@7?1/A@8
X$=3@9
A%=POW(2,31)@10
BEEP-1@11
DIM B[#ZL*#R]@13
READ A
@15
V"OPTION STRICT?X
@16
CALL@D@17
V@A*2
@18
V"VAR A,A
@19
V"DEF A:END:DEF A
@20
V"FOR I=0TO
@21
V"NEXT
@22
V"REPEAT
@23
V"UNTIL
@24
V"WHILE.
@25
V"WEND
@26
V"IF.THEN
@27
V"IF.THEN"+CHR$(10)+"ELSE
@28
V"ENDIF
@29
V"DEF X
@30
RETURN@31
DIM E[-1]@32
V"DEF A:DEF
@34
GOTO"|
@36
XOFF MIC
MICSTOP
@37
XOFF MOTION
GYROSYNC
@38
PRGDEL
@39
DIM F[66]SPANIM.,1,F
@40
DIM G[2]SPANIM.,1,G
@42
MPSTART 2,@A@L
MPSEND"A"GOTO@L@44
PROJECT
@46
USE"PRG1:A
@47
BGMPLAY"`
@48
X=
@51
DLCOPEN"
DEF V C
PRGEDIT 1PRGDEL-1PRGSET C
EXEC 1
END

এটি অবশ্যই খাটো করা যেতে পারে। এসবিতে কেবল 0 থেকে 51 পর্যন্ত ত্রুটি কোড রয়েছে এবং কিছুটির ট্রিগার করা অসম্ভব।


0

জেডএক্স 81 বেসিক> 255 প্রস্থান কোড - 52 বাইট (তালিকা)

1 INPUT N
2 GOTO 1+(2*(N>0 AND N <=255))
3 PRINT "EXIT CODE ";N
4 RAND USR N

প্রযুক্তিগতভাবে, Nপরিসরের মধ্যে কোনও 24 বিট ফ্লোটিং পয়েন্ট নম্বর হতে পারে, তবে আমরা এখানে পূর্ণসংখ্যা অনুমান করব। লাইন 2 এর IF N>0 AND N <=255 THEN GOTO 3: ELSE GOTO 1ZX81 বেসিকের IF/ELSEপ্রতীকী নির্দেশাবলী থাকলে সমতুল্য in


3
এটি কীভাবে সন্তুষ্ট হয় the program caused some fatal unintended exception? এটি কেবল কিছু পাঠ্য প্রিন্ট করে এবং কার্যকর করা শেষ করে।
অ্যাডমবর্কবার্ক

আপনি ঠিক বলেছেন - সকালে আমাকে আরও জাগ্রত হওয়া দরকার।
শান বেবারস

RAND USR Nঅপ্রত্যাশিত জায়গা থেকে রমের অংশটি কল করা অনিচ্ছাকৃত প্রভাবের কারণ হবে কারণ RAND USR 0এটি খুব করুণাময় , তাই এটি বাদ দেওয়া হয়েছে is
শান বেবারস

এর ফলে কীভাবে প্রোগ্রামটি ক্র্যাশ হয়ে যায় এর বিষয়ে আপনি আরও কিছুটা বিশদভাবে বলতে পারেন? আমি জেডএক্স 8১ বেসিকের সাথে অন্তরঙ্গভাবে পরিচিত নই।
অ্যাডমবর্কবার্ক

রম 0x0000 - 0x1fff থেকে থাকে; আপনি যদি সঠিক জায়গায় শুরু করেন তবে কলিং রম রুটিনগুলি কাজ করবে। জেড 80 এ যেকোন মেশিন কোডের রুটিনে এক বা একাধিক বাইট শুরু করা অপ্রত্যাশিত প্রভাবের কারণ হবে। আপনার যদি LD BC, 0000 RST 10 RET0x1000 এ সরল থাকে তবে ডাকা হয় RAND USR 4097তবে আপনি এলডি অপারেন্ড মিস করবেন এবং মেশিন কোডটি তাই স্কিউ হবে। আমি সমস্ত রম কল মনে করি না তবে আমি সমস্ত আইনী / কর্ণপুর্ণ শেষ কাজ করব এবং সেগুলি পরে বাদ দেব lude
শান বেবারস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.