ट्रैक
/
Swift
Swift
/
अभ्यास
/
फ्रीलांसर दरें
फ्रीलांसर दरें

फ्रीलांसर दरें

सीखने का अभ्यास

परिचय

संख्याएँ

Swift में संख्याओं की दो मुख्य श्रेणियाँ होती हैं: पूर्णांक और दशमलव संख्याएँ।

  • पूर्णांक उन पूर्ण संख्याओं को दर्शाते हैं जिनमें कोई भिन्नात्मक भाग नहीं होता, जैसे 0, 1, -1, 42 और -273.
  • दशमलव संख्याएँ उन संख्याओं को दर्शाती हैं जिनमें भिन्नात्मक भाग होता है, जैसे 0.0, 3.14 और -1.36969e-10.

पढ़ने में आसानी के लिए आप संख्यात्मक लिटरल के बीच अंडरस्कोर डाल सकते हैं: 1_000_000 और 1000000 एक जैसे ही होते हैं। दशमलव संख्याओं के लिटरल दशमलव या घातांक रूप में लिखे जा सकते हैं।

अधिकतर मामलों में पूर्णांकों के लिए Int और दशमलव संख्याओं के लिए Double इस्तेमाल किया जाता है:

let speed: Int = 42                           // Explicit Int
let pi: Double = 3.14                         // Explicit Double
let giga: Double = 1_000_000_000              // Double with readability underscores
let plancksConstant: Double = 6.62607015e-34  // Double in scientific notation

अंकगणितीय ऑपरेटर

Swift गणनाओं के लिए मानक अंकगणितीय ऑपरेटर देता है:

Operator Description Example
+ जोड़ 4 + 6 का मान 10 होता है
- घटाव 15 - 10 का मान 5 होता है
* गुणा 2 * 3 का मान 6 होता है
Caution

Swift टाइप की दृष्टि से सुरक्षित है और अंकगणितीय क्रियाओं में अलग-अलग संख्या टाइपों को मिलाने की अनुमति नहीं देता। आप किसी Int और Double को सीधे जोड़ या गुणा नहीं कर सकते; पहले आपको एक टाइप को दूसरे से मिलाने के लिए बदलना होगा।

भाग

/ ऑपरेटर भाग करता है। जब दोनों ऑपरेंड पूर्णांक हों, तो पूर्णांक भाग किसी भी भिन्नात्मक शेष को हटा देता है:

5.0 / 2.0 // 2.5 (Double division)
5 / 2     // 2 (integer division truncates the remainder)

किसी गैर-शून्य दशमलव संख्या को शून्य से भाग देने पर inf या -inf मिलता है। 0.0 को 0.0 से भाग देने पर nan (संख्या नहीं) मिलता है। इसके विपरीत, किसी पूर्णांक को शून्य से भाग देने पर कंपाइल-टाइम या रनटाइम एरर होती है:

print(5.0 / 0.0)  // Prints inf
print(-5.0 / 0.0) // Prints -inf
print(0.0 / 0.0)  // Prints nan

// The following line will not compile:
// print(5 / 0) // Error: Division by zero

शेषफल ऑपरेटर

शेषफल ऑपरेटर (%) दो पूर्णांकों को भाग देने के बाद बचे शेषफल की गणना करता है:

5 % 2  // 1
-5 % 2 // -1

// Dividing by zero produces an error:
// 5 % 0 // Error: Division by zero
Note

Swift में % मॉड्यूलो ऑपरेटर नहीं, बल्कि असली शेषफल ऑपरेटर है। परिणाम हमेशा पहले ऑपरेंड (भाज्य) का चिह्न लेता है, चाहे दूसरे ऑपरेंड का चिह्न कुछ भी हो:

5 % -2  // 1
-5 % 2  // -1

दशमलव संख्याओं को पूर्णांकित करना

आप किसी दशमलव संख्या को rounded() मेथड से पूर्णांकित कर सकते हैं। डिफ़ॉल्ट रूप से rounded() निकटतम पूर्णांक तक पूर्णांकित करता है। आप पूर्णांकन नियम भी दे सकते हैं, जैसे .up या .down:

let x = 3.14
let y = x.rounded()      // 3.0
let w = x.rounded(.down) // 3.0
let z = x.rounded(.up)   // 4.0

टाइप का अनुमान

जब आप किसी संख्यात्मक कॉन्स्टेंट या वेरिएबल को टाइप एनोटेशन के बिना घोषित करते हैं, तो Swift उसका टाइप अनुमान लगा लेता है:

  • पूर्ण संख्याओं का टाइप डिफ़ॉल्ट रूप से Int होता है।
  • दशमलव बिंदु वाली संख्याओं का टाइप डिफ़ॉल्ट रूप से Double होता है।
let x = 42         // Inferred as Int
let y = 42.0       // Inferred as Double
let z: Double = 42 // Explicitly typed as Double

टाइप बदलना

अलग-अलग टाइप की वैल्यू के बीच गणना करने के लिए, किसी एक वैल्यू को Double(_:) या Int(_:) जैसे टाइप इनिशियलाइज़र से बदल लीजिए:

let integerCount = 42
let floatingCount = Double(integerCount)
print(floatingCount) // Prints 42.0

let pi = 3.14
let integerPi = Int(pi)
print(integerPi) // Prints 3 (fractional part is truncated)

निर्देश

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

सबसे पहले हम फ्रीलांसर और प्रोजेक्ट मैनेजर के बीच कुछ नियम तय करते हैं:

  • दैनिक दर प्रति घंटा दर की 8 गुना होती है।
  • एक महीने में 22 बिल करने योग्य दिन होते हैं।

कभी-कभी फ्रीलांसर अपनी दैनिक दर पर छूट लगाने की पेशकश करते हैं (जैसे अपने सबसे वफ़ादार ग्राहकों के लिए या गैर-लाभकारी ग्राहकों के लिए)।

छूट को प्रतिशत दर्शाने वाली दशमलव संख्याओं के रूप में दर्शाया जाता है, जैसे 25.0 (25%)।

1. प्रति घंटा दर से दैनिक दर निकालिए

प्रति घंटा दर पैरामीटर के रूप में दी गई हो, तो दैनिक दर निकालने के लिए dailyRateFrom नाम का फंक्शन बनाइए। अनुबंध के मुताबिक एक दिन में 8 बिल करने योग्य घंटे होते हैं।

dailyRateFrom(hourlyRate: 60)
// Returns 480.0

लौटाई गई दैनिक दर Double होनी चाहिए।

2. प्रति घंटा दर और छूट से मासिक दर निकालिए

छूट के बाद की मासिक दर निकालने के लिए monthlyRateFrom फंक्शन बनाइए। यह दो पैरामीटर लेता है: प्रति घंटा दर और प्रतिशत में छूट।

monthlyRateFrom(hourlyRate: 77, withDiscount: 10.5)
// Returns 12129

लौटाई गई मासिक दर को निकटतम पूर्ण संख्या तक ऊपर की ओर पूर्णांकित किया जाना चाहिए (यानी सीलिंग लीजिए)।

3. बजट, प्रति घंटा दर और छूट से पूरे काम के दिनों की संख्या निकालिए

workdaysIn फंक्शन बनाइए, जो बजट, प्रति घंटा दर और छूट लेता है, और यह निकालता है कि उस बजट में कितने पूरे दिन का काम आता है।

workdaysIn(budget: 20000, hourlyRate: 80, withDiscount: 11.0)
// Returns 35.0

लौटाई गई दिनों की संख्या को अगली पूर्ण संख्या तक नीचे की ओर पूर्णांकित किया जाना चाहिए (यानी फ्लोर लीजिए)।

GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Swift Exercism

फ्रीलांसर दरें शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Swift को 35 कॉन्सेप्ट116 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।