ट्रैक
/
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)

निर्देश

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

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

एक ग्राहक फ्रीलांसर से उनकी दरों के बारे में पूछने के लिए संपर्क करता है। फ्रीलांसर बताते हैं कि वे दिन में 8 घंटे काम करते हैं। लेकिन फ्रीलांसर को प्रोजेक्ट की सिर्फ प्रति घंटा दर पता है। प्रति घंटा दर दी गई हो, तो उनकी दैनिक दर का अंदाज़ा लगाने में मदद कीजिए।

फंक्शन dailyRateFrom(hourlyRate:) बनाइए, जो आर्गुमेंट hourlyRate लेता है, जिसमें फ्रीलांसर की प्रति घंटा दर रहती है।
फंक्शन को प्रति घंटा दर के आधार पर दैनिक दर लौटानी चाहिए।

dailyRateFrom(hourlyRate: 60)
// Returns 480.0

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

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

कभी-कभी किसी ग्राहक की दिलचस्पी फ्रीलांसर को लंबे समय के लिए रखने में होती है। फ्रीलांसर ग्राहक को छूट देने को तैयार रहते हैं, लेकिन तभी जब ग्राहक उन्हें कम से कम एक महीने के लिए रखे। कुल मिलाकर 22 काम के दिन होते हैं। प्रति घंटा दर और दी जाने वाली छूट के प्रतिशत के आधार पर फ्रीलांसर की मासिक दर निकालने में मदद कीजिए, और उसे निकटतम पूर्ण संख्या तक पूर्णांकित कीजिए।

फंक्शन monthlyRateFrom(hourlyRate:withDiscount:) बनाइए, जो दो आर्गुमेंट लेता है: hourlyRate, जिसमें फ्रीलांसर की प्रति घंटा दर रहती है, और withDiscount, जिसमें वह छूट रहती है जो फ्रीलांसर ग्राहक को देना चाहते हैं। फंक्शन को मासिक दर निकटतम पूर्ण संख्या तक पूर्णांकित करके लौटानी चाहिए।

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

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

किसी और दिन एक प्रोजेक्ट मैनेजर फ्रीलांसर को तय बजट वाले एक प्रोजेक्ट पर काम करने का प्रस्ताव देता है। तय बजट और फ्रीलांसर की प्रति घंटा दर दी गई हो, तो बजट खत्म होने तक वे कितने दिन काम करेंगे, यह निकालने में मदद कीजिए। ध्यान रखिए कि इस स्थिति में फ्रीलांसर हमेशा छूट देने को तैयार रहते हैं, चाहे उन्हें कितने भी दिनों के लिए रखा जाए। नतीजा नीचे की ओर पूर्णांकित किया जाना ज़रूरी है।

फंक्शन workdaysIn(budget:hourlyRate:withDiscount:) बनाइए, जो ये आर्गुमेंट लेता है:

  • budget, जिसमें प्रोजेक्ट का बजट रहता है।
  • hourlyRate, जिसमें फ्रीलांसर की प्रति घंटा दर रहती है।
  • withDiscount, जिसमें वह छूट रहती है जो फ्रीलांसर ग्राहक को देना चाहते हैं।

फंक्शन को प्रोजेक्ट पर फ्रीलांसर के काम करने वाले दिनों की संख्या नीचे की ओर पूर्णांकित करके लौटानी चाहिए।

workdaysIn(budget: 20000, hourlyRate: 80, withDiscount: 11.0)
// Returns 35.0
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Swift Exercism

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

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