একাধিক পছন্দ পরীক্ষা দিন Give


14

আমি আপনাকে একটি পরীক্ষা উপস্থাপন! আপনার পরীক্ষা পরীক্ষা করা হয়। পরীক্ষা, পরীক্ষার সঙ্গে testee একজন পরীক্ষক আপনি দেয় পরীক্ষা করার Shor হয় পরীক্ষা কোডের পরিমাণ। বিশেষত, আপনি একাধিক পছন্দ পরীক্ষা দেবেন যা আপনি ইনপুট হিসাবে পেয়েছেন।

এই চ্যালেঞ্জে আপনাকে অবশ্যই এর মতো একটি ইনপুট নিতে হবে:

1. Our site is called Programming Puzzles & Code ________.
A: Debugging
*B: Golf
C: Hockey
D: Programming
2. What is the *most* popular tag on our site?
A: [debug]
B: [program]
*C: [code-golf]
D: [number]
E: [c++]
3. We are part of the ________ Exchange network.
*A: Stack
B: Code
C: Programmer
D: Hockey
4. Is this the first question?
A: Yes
*B: No
5. Is this the last question?
*A: Yes
B: No

এবং এখানে পরীক্ষা গ্রহণের উদাহরণ দেওয়া হল:

1. Our site is called Programming Puzzles & Code ________.
A: Debugging
B: Golf
C: Hockey
D: Programming
answer: B
correct!

2. What is the *most* popular tag on our site?
A: [debug]
B: [program]
C: [code-golf]
D: [number]
E: [c++]
answer: C
correct!

3. We are part of the ________ Exchange network.
A: Stack
B: Code
C: Programmer
D: Hockey
answer: B
incorrect! the answer was A

4. Is this the first question?
A: Yes
B: No
answer: B
correct!

5. Is this the last question?
A: Yes
B: No
answer: B
incorrect! the answer was A

overview:
3 correct, 2 incorrect (60%)

3. We are part of the ________ Exchange network.
you chose B: Code
the answer was A: Stack

5. Is this the last question?
you chose B: No
the answer was A: Yes

সাধারণ স্পেসিফিকেশন:

  • ইনপুট
    • যদি কোনও লাইন একটি বিন্দু এবং একটি স্থানের পরে একটি সংখ্যার সাথে শুরু হয়, তবে এটি সেই সংখ্যাটি নিয়ে একটি প্রশ্ন। নম্বরগুলি সর্বদা 1 থেকে শুরু হবে এবং প্রতিটি প্রশ্নের উপরে 1 হবে।
    • যদি কোনও লাইন একটি optionচ্ছিক নক্ষত্র, একটি চিঠি, একটি কোলন এবং তারপরে একটি স্পেস দিয়ে শুরু হয় তবে এটি একটি উত্তর। উত্তরগুলি সর্বদা ক্রমযুক্ত হবে। প্রতি প্রশ্নে একটি মাত্র সঠিক উত্তর থাকবে।
    • পূর্বে উল্লিখিত পদ্ধতিগুলি ছাড়া অন্য কোনও উপায়ে একটি লাইন শুরু হবে না।
    • ইনপুট যে কোনও উপায়ে গ্রহণ করা যেতে পারে (কোনও ফাইল, স্টিডিন ইত্যাদি থেকে পড়া) তবে আপনার প্রোগ্রামটিতে হার্ডকোড করা উচিত নয়।
  • আউটপুট (পরীক্ষা গ্রহণের পর্ব)
    • প্রথমে প্রতিটি প্রশ্ন ক্রমানুসারে মুদ্রণ করুন। ইনপুট থেকে প্রাপ্ত হিসাবে প্রশ্ন এবং এর উত্তরগুলি মুদ্রণ করুন, তবে সঠিক উত্তরগুলি নির্দেশ করে নক্ষত্রটি মুদ্রণ করবেন না।
    • তারপরে, একটি নতুন লাইন মুদ্রণ করুন এবং "answer: "। ব্যবহারকারী ইনপুট জন্য অপেক্ষা করুন। ব্যবহারকারীর ইনপুট সর্বদা একটি উত্তরের সাথে মিলিত হবে।
    • যদি সঠিক উত্তর (একটি নক্ষত্রের সাথে একটি) ব্যবহারকারীর ইনপুট, আউটপুট হিসাবে একই হয় "correct!"। অন্যথায়, আউটপুট "incorrect! the answer was " + correct_letter
    • প্রতিটি প্রশ্ন একটি ফাঁকা লাইন দিয়ে আলাদা করুন, তারপরে আর কোনও প্রশ্ন না থাকলে পূর্ববর্তী আউটপুট পদক্ষেপগুলি পুনরাবৃত্তি করুন।
  • আউটপুট (ওভারভিউ পর্যায়)
    • মুদ্রণ "overview: "এবং তারপরে একটি নতুন লাইন।
    • মুদ্রণ করুন "{number of correct answers} correct, {incorrect answers} incorrect ({percent correct, rounded to the nearest whole number}%)"(অবশ্যই তাদের নিজ নিজ মান সহ কোঁকড়া ধনুর্বন্ধনী মধ্যে বাক্যাংশ প্রতিস্থাপন)। তারপরে ব্যবধানের জন্য ফাঁকা রেখাটি মুদ্রণ করুন।
    • এখন, প্রতিটি প্রশ্নের জন্য যেটি ভুল ছিল, প্রশ্নটি (এর উত্তর নয়) মুদ্রণ করুন, তারপরে একটি নতুন লাইনে "you chose " + answer_you_choseএবং অন্য লাইনে "the answer was " + correct_answer। প্রতিটি ভুল উত্তরের সংক্ষিপ্ত বিবরণ একটি ফাঁকা রেখার সাথে আলাদা করুন।
  • জিনিসগুলিকে অক্ষরে অক্ষরে ব্যাখ্যা করে প্রতারণা হ্রাস করতে, যখন এখানে একই আউটপুট দেওয়া হয় এবং পরীক্ষা গ্রহণের পর্যায়ে একই ইনপুট দেওয়া হয়, আপনার প্রোগ্রামকে অবশ্যই নমুনা আউটপুট হিসাবে একই জিনিস আউটপুট করতে হবে।

এটি ; সংক্ষিপ্ততম কোড জয়! (এবং একটি এ + (সবুজ চেকমার্ক) পান!)


2
নিস চ্যালেঞ্জ, কিন্তু আমি সম্ভবত চতুর থাকতে নমুনা পরীক্ষা, মত ইচ্ছুক \d\. , \w: এবং \*প্রশ্ন / উত্তর মাঝখানে। (উদাহরণস্বরূপ, বর্তমানে এটি *দিয়ে মুছে ফেলা যায় y/*//, যখন সঠিক s/^\*//
উপায়টি

2
আমাদের কি লাইনের ধারাবাহিকতার অনুমতি দেওয়া দরকার? আমি বলতে চাইছি, "1 দিয়ে শুরু হবে না লাইনগুলি? "বা" এ: "? যদি হ্যাঁ, দয়া করে নমুনা পরীক্ষায় এই জাতীয় কেস অন্তর্ভুক্ত করুন।
manatwork

@ মান্যাটওয়ার্ক (প্রথম মন্তব্য) ঠিক আছে, সম্পাদনা (দ্বিতীয় মন্তব্য) না, আপনি করবেন না। আমি পরিষ্কার করব।
ডুরকনব

1
সুতরাং আপনি এই পরীক্ষা পরীক্ষা পরীক্ষা করতে যাচ্ছেন?
জো জেড।

2
@JoeZ। উম্ম ... আপনি কী বলতে চাইছেন তা নিশ্চিত নন ... আমি তোমার পরীক্ষককে পরীক্ষার জন্য পরীক্ষার জন্য একটি পরীক্ষার পরীক্ষার কেস সরবরাহ করেছি
ডোরকনব

উত্তর:


2

পার্ল 5, 279

$y=correct;@w=(the,$n=answer,was);map{s/^\*((.+?):.+)/$a=$1/me;print"$_$n: ";chop($@=<>);print$@eq($l=$2)?++$d&&"$y!

":(/^\d.+/,$o.=$&,/^$@.+/m,$o.="
you chose: $&
@w $a

")&&"in$y! @w $l

"}@_=split/(?=^\d)/m,join"",<>;printf"overview:
$d $y, %d in$y (%d%)

$o",@_-$d,$d/@_*100

দ্রষ্টব্য: আউটপুট বিন্যাসের জন্য নতুন লাইনের প্রয়োজন।

যতবার আমি মনে করি আমি এটি আর গল্ফ করতে পারি না, আমি নতুন কিছু শিখি! এটি ধীরে ধীরে স্পষ্টতই টেক্সট পাঠ্যের চেয়ে বেশি বিরামচিহ্ন হয়ে উঠছে ... আমি মনে করি এটি একটি ভাল জিনিস?

ব্যবহার: perl -e '...' test.txtবা perl test.pl test.txt

আপনি যদি তালিকায় উপস্থাপন না করে এমন একটি বিকল্প চয়ন করেন তবে আপনি ওভারভিউতে ভুল আউটপুট পাবেন (এটি you chose: 1. Our site is called Programming Puzzles & Code ________.উদাহরণস্বরূপ বলবে )।

উদাহরণ রান


দয়া করে ইনপুট এবং আউটপুট একটি উদাহরণ দেখান।
ডেভিডসি

@ ডেভিডকার্যাহার শোটার্ম.ইওয়ের মাধ্যমে আউটপুটটিতে একটি আপডেট লিঙ্ক যুক্ত করেছেন । স্ট্যাটিক আউটপুটের চেয়ে কিছুটা অপেক্ষাকৃত ভাল বলে মনে হয়েছিল, যদিও এটি এখনও টার্মিনালের মতো এটি ক্যাপচার করে না।
ডম হেস্টিংস

এটি আপনার প্রোগ্রামটি কীভাবে কাজ করে সে সম্পর্কে মোটামুটি ভাল ধারণা দেয়।
ডেভিডসি

3

গণিত 144

এটি একটি অবৈধ প্রচেষ্টা হতে পারে। আমি ইনপুট প্রতিটি উত্তর থেকে প্রশ্ন পৃথক। আমি বিকল্পের আগে একটি নক্ষত্রের চেয়ে পৃথক ক্ষেত্রে একটি চিঠির মাধ্যমে সঠিক উত্তরটিও নির্দেশ করেছি।

যাই হোক ...

তথ্যটি

questions={{{"\n1. Our site is called Programming Puzzles & Code ________.\n","A: Bugging\n","B: Golf\n","C: Hockey\n","D: Programming\n"},"B"},{{"\n2. What is the most popular tag on our site? \n","A: [debug]\n","B: [program]\n","C: [code golf]\n","D: [number]\n"},"C"},{{"\n3. We are part of the _______ Exchange network. \n","A: Stack\n","B: Code\n","C: Programmer\n","D: Hockey\n"},"A"},{{"\n4. Is this the first question? \n","A: Yes\n","B: No\n"},"B"},{{"\n5. Is this the last question? \n","A: Yes\n","B: No\n"},"A"}};

কোড

একটি ডায়লগ বাক্সের মাধ্যমে প্রতিটি প্রশ্নের উত্তর প্রবেশ করা হয়। প্রশ্ন, উত্তর এবং প্রতিক্রিয়া মুদ্রিত হয়।

f@x_:=
Print[If[((r=ChoiceDialog[Print[""<>#,"\nanswer: "];""<>#,StringTake[Rest@#,1]])==#2),
r<>"\ncorrect!", r<>"\nincorrect, the answer is "<>#2]&@@x] 

পরীক্ষা

f /@ questions

কথোপকথন পছন্দ


বাহ, চিত্তাকর্ষক! ইনপুটটি যদিও সঠিক আকারে নেই ... তবুও, কোডের ব্রেভিটির জন্য এটি অত্যন্ত লক্ষণীয় এবং এটি কতটা করে!
ডোরকনবব

ধন্যবাদ। গাণিতিক-বান্ধব কাঠামোতে ইনপুট স্ট্রিংয়ের ম্যাসেজ করা অবশ্যই সম্ভব তবে এটি উপস্থিত, অযোগ্য সমাধানের অন্তর্নিহিত কমনীয়তাটি লুকিয়ে রাখতে পারত।
ডেভিডসি

খুশী হলাম। চারটি অক্ষর খাটো:g@{a_,b_}:=Print[If[(r=ChoiceDialog[Print[""<>a,"\nanswer: "];""<>a,Rest@a~StringTake~1])==b,r<>"\ncorrect!",r<>"\nincorrect, the answer is "<>b]]
মিঃ উইজার্ড

আর সংরক্ষণ ব্যবহার করে আরও Print@If[...]বদলে Print[If[...]]
মিঃ উইজার্ড

2

জাভা - 1210

int i,o;String q;String[]s={"1. Our site is called Programming Puzzles & Code ________.\n","2. What is the most popular tag on our site?\n","3. We are part of the ________ Exchange network.\n","4. Is this the first question?\n","5. Is this the last question?\n"},b={"B","C","A","B","A"},p=new String[5];String[][]a={{"A: Debugging\n","B: Golf\n","C: Hockey\n","D: Programming\n","answer: "},{"A: [debug]\n","B: [program]\n","C: [code-golf]\n","D: [number]\n","E: [c++]\n","answer: "},{"A: Stack\n","B: Code\n","C: Programmer\n","D: Hockey\n","answer: "},{"A: Yes\n","B: No\n","answer: "},{"A: Yes\n","B: No\n","answer: "}};java.util.Map<String,Integer>m=new java.util.HashMap(){{put("A",0);put("B",1);put("C",2);put("D",3);put("E",4);}};java.util.Scanner u=new java.util.Scanner(System.in);for(i=0;i<5;i++){q=s[i];for(o=0;o<a[i].length;)q+=a[i][o++];System.out.print(q);if(b[i].equals(p[i]=u.nextLine()))q="correct!";else q="incorrect! the answer was "+b[i];System.out.println(q+"\n");}q="";o=0;for(i=0;i<5;i++)if(b[i].equals(p[i]))o++;else q+=s[i]+"you chose "+a[i][m.get(p[i])]+"the answer was "+a[i][m.get(b[i])]+"\n";System.out.println("overview:\n"+o+" correct, "+(5-o)+" incorrect ("+o*100/5+"%)\n\n"+q);

বিন্যাসিত: 1980

String[] s = {"1. Our site is called Programming Puzzles & Code ________.\n",
        "2. What is the most popular tag on our site?\n",
        "3. We are part of the ________ Exchange network.\n",
        "4. Is this the first question?\n",
        "5. Is this the last question?\n"};
    String[][] a = {
        {"A: Debugging\n", "B: Golf\n", "C: Hockey\n", "D: Programming\n", "answer: "},
        {"A: [debug]\n", "B: [program]\n", "C: [code-golf]\n", "D: [number]\n", "E: [c++]\n", "answer: "},
        {"A: Stack\n", "B: Code\n", "C: Programmer\n", "D: Hockey\n", "answer: "},
        {"A: Yes\n", "B: No\n", "answer: "},
        {"A: Yes\n", "B: No\n", "answer: "}};

    java.util.Map<String, Integer> m = new java.util.HashMap<String, Integer>() {
        {
            put("A", 0);
            put("B", 1);
            put("C", 2);
            put("D", 3);
            put("E", 4);
        }
    };
    String[] b = {"B", "C", "A", "B", "A"};
    String[] p = new String[5];
    java.util.Scanner u = new java.util.Scanner(System.in);
    String q;
    int i;
    int o;
    for (i = 0; i < 5; i++) {
        q = s[i];
        for (o = 0; o < a[i].length;) {
            q += a[i][o++];
        }
        System.out.print(q);
        if (b[i].equals(p[i] = u.nextLine())) {
            q = "correct!";
        } else {
            q = "incorrect! the answer was " + b[i];
        }
        System.out.println(q + "\n");
    }
    q = "";
    o = 0;
    for (i = 0; i < 5; i++) {
        if (b[i].equals(p[i])) {
            o++;
        } else {
            q += s[i] + "you chose " + a[i][m.get(p[i])] + "the answer was " + a[i][m.get(b[i])] + "\n";
        }
    }
    System.out.println("overview:\n" + " correct, " + (5 - o) + " incorrect (" + o * 100 / 5 + "%)\n\n" + q);

এটি অবশ্যই সংক্ষিপ্ততম হবে না তবে এটি সমস্ত স্বনির্ভর


0

হাস্কেল, 598

import System.Environment
import System.IO
n=putStrLn
p=putStr
d#s=p$show d++s
v&(m:a)=n m>>q[]""a>>= \(r,(s,t))->n s>>n"">>b v m t&r
(r,w,s)&[]=n"overview:">>r#" correct, ">>w#" incorrect (">>((100*r)`div`(r+w))#"%)\n">>mapM_ n s
b(r,w,s)m t|null t=(r+1,w,s)|1<3=(r,w+1,s++"":m:t)
q u c(('*':a):r)=q u a(a:r)
q u c(a@(o:':':_):r)=n a>>q(([o],a):u)c r
q u c r=p"answer: ">>hFlush stdout>>(\i->(r,a(maybe i id$lookup i u)c))`fmap`getLine
a j c|j==c=("correct!",[])|1<3=("incorrect! the answer was "++[head c],["you choose "++j,"the answer was "++c])
main=getArgs>>=readFile.head>>=((0,0,[])&).lines

আমার চেয়ে বেশি দীর্ঘ পথ। এটি উইকি সেট আছে তাই এটি আছে!

হায়, আমরা ফ্লাশিং স্টডআউটে 32 টি অক্ষর হারিয়েছি। পরীক্ষা স্ক্রিপ্টটি কমান্ড লাইনে উল্লেখ না করে "t" নামের একটি স্থির ফাইল থেকে পড়লে আরও 38 টি অক্ষর সংরক্ষণ করা যায়।

প্রশ্নে প্রদত্ত ইনপুটটি চালানোর সময়:

& runhaskell 15961-Tester.hs 15961-test.txt 
1. Our site is called Programming Puzzles & Code ________.
A: Debugging
B: Golf
C: Hockey
D: Programming
answer: B
correct!

2. What is the *most* popular tag on our site?
A: [debug]
B: [program]
C: [code-golf]
D: [number]
E: [c++]
answer: C
correct!

3. We are part of the ________ Exchange network.
A: Stack
B: Code
C: Programmer
D: Hockey
answer: B
incorrect! the answer was A

4. Is this the first question?
A: Yes
B: No
answer: B
correct!

5. Is this the last question?
A: Yes
B: No
answer: B
incorrect! the answer was A

overview:
3 correct, 2 incorrect (60%)

3. We are part of the ________ Exchange network.
you choose B: Code
the answer was A: Stack

5. Is this the last question?
you choose B: No
the answer was A: Yes
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.