नियम: 1. सभी HTML टैग अपरिवर्तित रखें 2. <code> और <pre> टैग के अंदर कोड अपरिवर्तित रखें 3. यदि कोड में रूसी स्ट्रिंग/वेरिएबल नाम हैं → उन्हें अंग्रेज़ी में अनुवादित करें (हिंदी में नहीं) 4. वर्णनात्मक पाठ का हिंदी में अनुवाद करें 5. केवल अनुवाद लौटाएँ, औ

JavaScript Medium closures

कार्य «नियम: 1. सभी HTML टैग अपरिवर्तित रखें 2. <code> और <pre> टैग के अंदर कोड अपरिवर्तित रखें 3. यदि कोड में रूसी स्ट्रिंग/वेरिएबल नाम हैं → उन्हें अंग्रेज़ी में अनुवादित करें (हिंदी में नहीं) 4. वर्णनात्मक पाठ का हिंदी में अनुवाद करें 5. केवल अनुवाद लौटाएँ, औ»

फ़ंक्शन `createCounter` को लागू करें, जो प्रारंभिक मान `start` और चरण `step` लेता है। फ़ंक्शन को तीन विधियों वाला एक ऑब्जेक्ट लौटाना चाहिए: `increment()` — वर्तमान मान को `step` से बढ़ाता है और इसे लौटाता है, `decrement()` — `step` से घटाता है और लौटाता है, `reset()` — मान को प्रारंभिक `start` पर रीसेट करता है। स्थिति को संग्रहीत करने के लिए क्लोज़र का उपयोग करें। प्रारंभिक मान `start` और चरण `step` पूर्णांक हैं।

इनपुट प्रारूप

पहली पंक्ति: start (पूर्णांक)। दूसरी पंक्ति: step (पूर्णांक)। तीसरी पंक्ति: कॉल की संख्या n (पूर्णांक, 1 ≤ n ≤ 20)। इसके बाद n पंक्तियाँ, प्रत्येक में एक कमांड है: 'increment', 'decrement' या 'reset'।

आउटपुट प्रारूप

प्रत्येक कमांड के लिए, कमांड निष्पादित करने के बाद काउंटर का वर्तमान मान प्रिंट करें, प्रत्येक को एक नई पंक्ति पर।

उदाहरण

उदाहरण 1

इनपुट
10 3 3 increment increment decrement
आउटपुट
13 16 13

उदाहरण 2

इनपुट
-5 2 4 decrement decrement increment reset
आउटपुट
-7 -9 -7 -5

उदाहरण 3

इनपुट
5 4 6
आउटपुट
78.54 24.00
main.js