ट्रैक
/
Swift
Swift
/
अभ्यास
/
उलझन भरी वाहन खरीद
उलझन भरी वाहन खरीद

उलझन भरी वाहन खरीद

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

परिचय

तुलना ऑपरेटर

तुलना ऑपरेटर एक ही टाइप की दो वैल्यू की तुलना करते हैं और एक Bool वैल्यू (true या false) लौटाते हैं। अगर आप अलग-अलग टाइप की वैल्यू की तुलना करने की कोशिश करते हैं, तो कंपाइलर एक एरर देता है।

Swift में मानक तुलना ऑपरेटर ये हैं:

ऑपरेटर विवरण उदाहरण
== बराबर 1 == 1 (सही)
!= बराबर नहीं 1 != 2 (सही)
< से छोटा 4 < 5 (सही)
<= से छोटा या बराबर 4 <= 4 (सही)
> से बड़ा 3 > 1 (सही)
>= से बड़ा या बराबर 2 >= 2 (सही)

if और else स्टेटमेंट

कंडीशनल स्टेटमेंट किसी शर्त के true या false होने के आधार पर कोड चलाता है। सबसे आम कंडीशनल स्टेटमेंट if स्टेटमेंट है, जो कोड के एक ब्लॉक को तभी चलाता है जब उसकी शर्त true हो। if स्टेटमेंट लिखने के लिए if कीवर्ड लिखिए, उसके बाद शर्त और कर्ली ब्रैकेट में बंद कोड ब्लॉक लिखिए:

let wheelCount = 4
if wheelCount == 4 {
    print("Your vehicle is a car")
}
// Prints "Your vehicle is a car"

जब शर्त false हो, तब वैकल्पिक कोड चलाने के लिए आप if के साथ एक else क्लॉज़ जोड़ सकते हैं:

let precipitationInMM = 0.5
if precipitationInMM > 0.5 {
    print("You will need an umbrella")
} else {
    print("You will not need an umbrella")
}
// Prints "You will not need an umbrella"

कई शर्तों को एक के बाद एक जाँचने के लिए, else if की मदद से स्टेटमेंट को एक-दूसरे से जोड़िए। if स्टेटमेंट के लिए else शाखा ज़रूरी नहीं है, लेकिन जब कोई भी शर्त पूरी न हो, तो उन स्थितियों को सँभालने के लिए आप इसे शामिल कर सकते हैं:

let favoriteFruit = "Apple"

if favoriteFruit == "Banana" {
    print("Your favorite fruit is a banana")
} else if favoriteFruit == "Orange" {
    print("Your favorite fruit is an orange")
} else if favoriteFruit == "Apple" {
    print("Your favorite fruit is an apple")
} else {
    print("Your favorite fruit is not a banana, orange, or apple")
}
// Prints "Your favorite fruit is an apple"

if एक्सप्रेशन

आधुनिक Swift में, if स्टेटमेंट का उपयोग एक्सप्रेशन के रूप में भी किया जा सकता है, जो एक वैल्यू देते हैं। हर शाखा एक वैल्यू देती है, जिससे नतीजों को शर्त के आधार पर असाइन करना आसान हो जाता है:

let cpuBits = 32
let architecture = if cpuBits == 64 {
    "x86_64"
} else {
    "x86_32"
}

print(architecture)
// Prints "x86_32"

टर्नरी ऑपरेटर

टर्नरी कंडीशनल ऑपरेटर if-else एक्सप्रेशन का एक संक्षिप्त रूप है। यह एक शर्त को जाँचता है और उस शर्त के true या false होने के आधार पर दो वैल्यू में से एक लौटाता है।

यह ऑपरेटर तीन हिस्सों का उपयोग करता है: condition ? trueExpression : falseExpression. अगर condition का मान true निकलता है, तो trueExpression का मान निकालकर लौटाया जाता है; वरना falseExpression का मान निकालकर लौटाया जाता है।

टर्नरी ऑपरेटर सरल, एक लाइन वाले चुनावों के लिए आदर्श है:

let showFahrenheit = true
let temperatureInCelsius = 30

let temperature = showFahrenheit ? temperatureInCelsius * 9 / 5 + 32 : temperatureInCelsius
print(temperature)
// Prints 86

ऊपर दिया गया उदाहरण इसके बराबर है, बस छोटे रूप में:

let showFahrenheit = true
let temperatureInCelsius = 30

let temperature = if showFahrenheit {
    temperatureInCelsius * 9 / 5 + 32
} else {
    temperatureInCelsius
}

निर्देश

इस अभ्यास में आप वाहन खरीदने की तैयारी में मदद करने के लिए कुछ कोड लिखेंगे।

आपके पास तीन काम हैं: यह पता लगाना कि आप किसी कार के मासिक भुगतान चुका पाएँगे या नहीं, यह तय करना कि आपको किस तरह का लाइसेंस चाहिए, और यह अनुमान लगाना कि पुराने वाहन की उचित कीमत क्या होगी।

1. यह पता लगाइए कि आप किसी दी गई कार के मासिक भुगतान का खर्च उठा सकते हैं या नहीं

आपके शहर के सभी कार डीलर पाँच साल की 0% ब्याज वाली योजना चला रहे हैं, जिसका आप फायदा उठाना चाहते हैं। लेकिन आप निश्चित नहीं हैं कि आप अपनी पसंद की कार के मासिक भुगतान दे पाएँगे या नहीं।

मासिक भुगतान कार की कुल कीमत को पाँच साल की अवधि के महीनों की संख्या से भाग देकर निकाला जाता है।

canIBuy(vehicle:price:monthlyBudget:) फंक्शन बनाइए जो ये आर्गुमेंट लेता है:

  • vehicle - उस वाहन का नाम जो आप खरीदना चाहते हैं।
  • price - उस वाहन की कीमत जो आप खरीदना चाहते हैं।
  • monthlyBudget - वह राशि जो आप हर महीने दे सकते हैं।

फंक्शन को नीचे दी गई शर्तों के आधार पर यह संदेश लौटाना चाहिए:

  • अगर वाहन का मासिक भुगतान मासिक बजट से कम या उसके बराबर है, तो संदेश "Yes! I'm getting a <vehicle>" लौटाइए।
  • अगर वाहन का मासिक भुगतान आपके मासिक बजट से 10% तक ज़्यादा है (10% समेत), तो संदेश "I'll have to be frugal if I want a <vehicle>" लौटाइए।
  • अगर वाहन का मासिक भुगतान आपके मासिक बजट से 10% से ज़्यादा ऊपर है, तो संदेश "Darn! No <vehicle> for me" लौटाइए।
canIBuy(vehicle: "1974 Ford Pinto", price: 516.32, monthlyBudget: 100.00)
// returns "Yes! I'm getting a 1974 Ford Pinto"
canIBuy(vehicle: "2011 Bugatti Veyron", price: 2_250_880.00, monthlyBudget: 10000.00)
// returns "Darn! No 2011 Bugatti Veyron for me"
canIBuy(vehicle: "2020 Indian FTR 1200", price: 12_500, monthlyBudget: 200)
// returns "I'll have to be frugal if I want a 2020 Indian FTR 1200"

2. यह तय कीजिए कि आपको किस तरह का ड्राइविंग लाइसेंस चाहिए

आपने एक पुराना वाहन खरीदने का फैसला किया है और आपको यह पता लगाना है कि उसे चलाने के लिए आपको किस तरह का ड्राइविंग लाइसेंस चाहिए।

licenseType(numberOfWheels:) फंक्शन बनाइए जो numberOfWheels आर्गुमेंट लेता है, यानी उस वाहन के पहियों की संख्या जो आप खरीदना चाहते हैं।

फंक्शन को नीचे दी गई शर्तों के आधार पर यह संदेश लौटाना चाहिए:

  • अगर पहियों की संख्या 2 या 3 है, तो संदेश "You will need a motorcycle license for your vehicle" लौटाइए।
  • अगर पहियों की संख्या 4 या 6 है, तो संदेश "You will need an automobile license for your vehicle" लौटाइए।
  • अगर पहियों की संख्या 18 है, तो संदेश "You will need a commercial trucking license for your vehicle" लौटाइए।
  • अगर संख्या कोई और है, तो संदेश "We do not issue licenses for those types of vehicles" लौटाइए।
licenseType(numberOfWheels: 2)
// returns "You will need a motorcycle license for your vehicle"
licenseType(numberOfWheels: 6)
// returns "You will need an automobile license for your vehicle"
licenseType(numberOfWheels: 18)
// returns "You will need a commercial trucking license for your vehicle"
licenseType(numberOfWheels: 0)
// returns "We do not issue licenses for those types of vehicles"

3. पुराने वाहन की कीमत का अनुमान लगाइए

अब जब आपने अपना फैसला कर लिया है, तो आप यह सुनिश्चित करना चाहते हैं कि डीलरशिप पर आपको उचित कीमत मिले। चूँकि आप पुराना वाहन खरीदना चाहते हैं, इसलिए कीमत इस बात पर निर्भर करती है कि वाहन कितना पुराना है। मोटे अनुमान के लिए मान लीजिए कि अगर वाहन 3 साल से कम पुराना है, तो उसकी कीमत उस मूल कीमत का 80% होती है जो नया होने पर थी। अगर वह कम से कम 10 साल पुराना है, तो उसकी कीमत 50% होती है। अगर वाहन कम से कम 3 साल पुराना है लेकिन 10 साल से ज़्यादा पुराना नहीं है, तो उसकी कीमत मूल कीमत का 70% होती है।

calculateResellPrice(originalPrice:yearsOld:) फंक्शन बनाइए जो originalPrice और yearsOld आर्गुमेंट लेता है। originalPrice में वाहन की मूल कीमत होती है, और yearsOld में वाहन की उम्र सालों में होती है। फंक्शन को वाहन की पुनर्विक्रय कीमत लौटानी चाहिए।

calculateResellPrice(originalPrice: 1000, yearsOld: 1)
// returns 800
calculateResellPrice(originalPrice: 1000, yearsOld: 5)
// returns 700
calculateResellPrice(originalPrice: 1000, yearsOld: 15)
// returns 500
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Swift Exercism

उलझन भरी वाहन खरीद शुरू करने के लिए तैयार हैं?

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