स्टेज की घोषणा


कहानी

आप एक अंतरराष्ट्रीय सम्मेलन में मंच के उद्घोषक हैं। आपका काम वक्ताओं की घोषणा करना, उनका समय पूरा होने पर उन्हें याद दिलाना और प्रश्नोत्तर सत्र का संचालन करना है। आपको अपने मंच पर बोलने वाले वक्ताओं की सूची पहले से दी जाती है, और आपको उससे संचालन कार्ड बनाने हैं।

चूँकि सूची एक तय प्रारूप में है, आप एक छोटा प्रोग्राम लिखने का फैसला करते हैं जो दी गई सूची को रेगुलर एक्सप्रेशन (रेगेक्स) की मदद से पार्स करता है और अपने आप संचालन कार्ड बना देता है।

Note

यह अभ्यास रेगुलर एक्सप्रेशन सीखने के बारे में नहीं है। यह सीखने के बारे में है कि $lang के अंदर रेगेक्स का उपयोग कैसे किया जाए। संकेतों में एक रेगुलर एक्सप्रेशन दिया गया है, जिसका उपयोग आप तब कर सकते हैं जब आप खुद एक न लिखना चाहें।

आपको दी गई सूची में हर प्रस्तुति के लिए ये जानकारियाँ होती हैं:

  • उसका शीर्षक,
  • वक्ता का नाम,
  • वक्ता के सर्वनाम (वैकल्पिक),
  • वक्ता का संगठन (वैकल्पिक),
  • प्रस्तुति शुरू होने का समय,
  • प्रश्नोत्तर सत्र शुरू होने का समय (वैकल्पिक),
  • और प्रस्तुति खत्म होने का समय।

एक पूरी प्रविष्टि का प्रारूप ऐसा होता है:

»Speedrunning 101« – Sasha Duda Krall (they/them), from GDQU. Start: 13:00, Q&A: 13:20, End: 13:30

यहाँ शीर्षक Speedrunning 101 है, वक्ता का नाम Sasha Duda Krall है, जो GDQU से हैं और they/them सर्वनाम इस्तेमाल करते हैं। प्रस्तुति 13:00 पर शुरू होती है, 13:20 पर प्रश्नोत्तर शुरू होगा, और पूरा सत्र 13:30 पर खत्म होता है।

Note

चूँकि नामों में साधारण डैश - आ सकता है, इसलिए वक्ता और प्रस्तुति के नाम को अलग करने के लिए एन डैश – का उपयोग किया जाता है।

उस प्रस्तुति के लिए आपके प्रोग्राम को जो संचालन कार्ड बनाना चाहिए, वह ऐसा दिखता है:

- Our next speaker is Sasha Duda Krall, from GDQU
- Their talk is called »Speedrunning 101«
- They will answer your questions in the Q&A session at the end of the talk, starting at 13:20

13:00 - 13:20 - 13:30

पूरी सूची ऐसी हो सकती है:

»Speedrunning 101« – Sasha Duda Krall (they/them), from GDQU. Start: 13:00, Q&A: 13:20, End: 13:30
»How I learned to say Farewell« – Madeline (she/her). Start: 13:40, Q&A: 14:00, End: 14:05
»How To Find a Good Title For Your Conference Talk« – Vítězslav Kruse (he/him). Start: 14:15, End: 14:40
»Why Emoji Matter❣« – Ash van Amelsvoort, from the University of 🧬🧪⚛. Start: 14:50, Q&A: 15:05, End: 15:10
»Can dogs look up?« – Kira "k1ralli" Sørensen. Start: 20:50, Q&A: 21:05, End: 21:10

इससे बनने वाले कार्ड ये हैं:

- Our next speaker is Madeline
- Her talk is called »How I learned to say Farewell«
- She will answer your questions in the Q&A session at the end of the talk, starting at 14:00

13:40 - 14:00 - 14:05
- Our next speaker is Vítězslav Kruse
- His talk is called »How To Find a Good Title For Your Conference Talk«
- There will not be a Q&A session

14:15 - NO Q&A - 14:40
- Our next speaker is Ash van Amelsvoort, from the University of 🧬🧪⚛
- Ash's talk is called »Why Emoji Matter❣«
- Ash will answer your questions in the Q&A session at the end of the talk, starting at 15:05

14:50 - 15:05 - 15:10
- Our next speaker is Kira "k1ralli" Sørensen
- Kira's talk is called »Can dogs look up?«
- Kira will answer your questions in the Q&A session at the end of the talk, starting at 21:05

20:50 - 21:05 - 21:10

यहाँ कुछ बातें ध्यान देने योग्य हैं:

  • अगर किसी वक्ता का संगठन नहीं दिया गया है, तो संचालन कार्ड में उसे छोड़ दीजिए।
  • अगर प्रश्नोत्तर सत्र का समय नहीं दिया गया है, तो वक्ता ने सवालों का जवाब न देने का फैसला किया है।
  • अगर वक्ता सर्वनाम नहीं बताते, तो उसके बजाय वक्ता का पहला नाम इस्तेमाल कीजिए। ध्यान दीजिए कि किसी का नाम इस तरह छोटा करना हमेशा ठीक नहीं होता, जैसे कई चीनी नामों को छोटा करते समय अंतिम नाम रखना बेहतर होता है। लेकिन इस मंच पर बोलने वाले हर व्यक्ति के लिए पहले नाम तक छोटा करने का नियम ठीक काम करता है।

कार्य

1. ऐसा रेगेक्स लिखिए जो कार्ड बनाने के लिए ज़रूरी जानकारी पकड़ता हो

इसके लिए regex101 या RegExr जैसे रेगेक्स बनाने वाले टूल का उपयोग करना सबसे आसान है।

!!! warning रेगेक्स इंजन/फ्लेवर को $CHANGE_ME पर ज़रूर सेट कीजिए।

अगर आप रेगेक्स में नए हैं या ऐसा एक्सप्रेशन बनाने में अटक रहे हैं जो एक ही बार में सारी ज़रूरी जानकारी पकड़ ले, तो आप कई छोटे एक्सप्रेशन भी बना सकते हैं, जो जानकारी के अलग-अलग हिस्से पकड़ें।

2. ऐसा फंक्शन लिखिए जो एक पंक्ति लेता है और बनाया गया संचालन कार्ड लौटाता है

पहले भाग में बनाए गए एक्सप्रेशन का उपयोग कीजिए और एक फंक्शन लिखिए जो इनपुट के रूप में एक पंक्ति लेता है, उसमें से जानकारी पकड़ता है, और ऊपर दिए गए विवरण के अनुसार बनाया गया संचालन कार्ड लौटाता है।

टेस्ट केस

आगे बनने वाले संभावित टेस्ट केस इन दिशानिर्देशों का पालन करें:

  • डेलिमिटर स्पष्ट होने चाहिए। उदाहरण के लिए, प्रस्तुति के शीर्षक में »« नहीं होना चाहिए, किसी नाम में कॉमा नहीं होना चाहिए।
  • टेस्ट केस इस क्रम में होने चाहिए जो यह बताता है कि कौन-सी जानकारी वैकल्पिक है। पहले केस में सारी संभावित जानकारी होनी चाहिए, अगले केस में पकड़ी जा सकने वाली एक जानकारी छोड़ दी जानी चाहिए, और इसी तरह आगे भी।
  • जो हल नाम, शीर्षक या संगठन के लिए [a-zA-Z] जैसी चीज़ें इस्तेमाल करते हैं, उन्हें टेस्ट पास नहीं कर पाना चाहिए।

इम्प्लीमेंटेशन

  • Julia (संदर्भ इम्प्लीमेंटेशन)