ট্র্যাক
/
Go
Go
/
অনুশীলনী
/
যানবাহন কেনা
যানবাহন কেনা

যানবাহন কেনা

লার্নিং অনুশীলনী

ভূমিকা

তুলনা

Go-তে সংখ্যা তুলনা করা যায় নিচের সম্পর্ক ও সমতার অপারেটরগুলো দিয়ে।

তুলনা অপারেটর
সমান ==
সমান নয় !=
ছোট <
ছোট বা সমান <=
বড় >
বড় বা সমান >=

তুলনার ফলাফল সবসময় একটি বুলিয়ান মান, অর্থাৎ true অথবা false।

a := 3

a != 4 // true
a > 5  // false

উপরের তুলনা অপারেটরগুলো দিয়ে স্ট্রিংও তুলনা করা যায়। সেক্ষেত্রে অভিধানভিত্তিক ক্রম প্রয়োগ করা হয়। যেমন:

	"apple" < "banana"  // true
	"apple" > "banana"  // false

if স্টেটমেন্ট

Go-তে শর্তাধীন স্টেটমেন্টগুলো অন্য ভাষার শর্তাধীন স্টেটমেন্টের মতোই। যেকোনো শর্তাধীন অপারেশনের অন্তর্নিহিত ডেটা টাইপ হলো bool, যার মান হতে পারে true অথবা false। বিভিন্ন শর্ত যাচাই করতে শর্তাধীন স্টেটমেন্ট প্রায়ই ফ্লো কন্ট্রোলের মাধ্যম হিসেবে ব্যবহৃত হয়।

কোনো নির্দিষ্ট ক্ষেত্র যাচাই করতে একটি if স্টেটমেন্ট ব্যবহার করা যায়, যা অন্তর্নিহিত শর্ত true হলে তার কোড চালায়, এভাবে:

var value string

if value == "val" {
    return "was val"
}

একাধিক ক্ষেত্র জড়িত পরিস্থিতিতে else if ও else স্টেটমেন্ট ব্যবহার করে অনেক if স্টেটমেন্ট একসাথে জুড়ে দেওয়া যায়।

var number int
result := "This number is "

if number > 0 {
    result += "positive"
} else if number < 0 {
    result += "negative"
} else {
    result += "zero"
}

if স্টেটমেন্টে একটি ছোট ইনিশিয়ালাইজেশন স্টেটমেন্টও থাকতে পারে, যা দিয়ে if স্টেটমেন্টের জন্য একটি বা একাধিক ভ্যারিয়েবল ইনিশিয়ালাইজ করা যায়। যেমন:

num := 7
if v := 2 * num; v > 10 {
    fmt.Println(v)
} else {
    fmt.Println(num)
}
// Output: 14

দ্রষ্টব্য: ইনিশিয়ালাইজেশন স্টেটমেন্টে তৈরি যেকোনো ভ্যারিয়েবল if স্টেটমেন্ট শেষ হওয়ার পর স্কোপের বাইরে চলে যায়।

নির্দেশনা

এই অনুশীলনীতে আপনি একটি যানবাহন কেনার প্রস্তুতি নিতে সাহায্য করার জন্য কিছু কোড লিখবেন।

আপনার সামনে তিনটি কাজ আছে: একটি হলো আপনার লাইসেন্স লাগবে কি না তা নির্ধারণ করা, একটি হলো দুটি যানবাহনের মধ্যে বাছাই করতে সাহায্য করা, আর একটি হলো পুরোনো যানবাহনের গ্রহণযোগ্য দাম অনুমান করা।

1. আপনার ড্রাইভিং লাইসেন্সের প্রয়োজন হবে কি না তা নির্ধারণ করুন

কিছু ধরনের যানবাহন চালানোর জন্য ড্রাইভিং লাইসেন্স লাগে। ধরে নিন, কেবল "car" এবং "truck" ধরনের যানবাহনের জন্য লাইসেন্স লাগে; বাকি সবকিছু লাইসেন্স ছাড়াই চালানো যায়।

NeedsLicense(kind) ফাংশনটি বাস্তবায়ন করুন, যা যানবাহনের ধরন নেয় এবং ওই ধরনের যানবাহনের জন্য আপনার লাইসেন্স লাগবে কি না তা বোঝানো একটি বুলিয়ান রিটার্ন করে।

needLicense := NeedsLicense("car")
// => true

needLicense = NeedsLicense("bike")
// => false

needLicense = NeedsLicense("truck")
// => true

2. কেনার জন্য বিবেচনায় থাকা দুটি যানবাহনের মধ্যে বাছাই করুন

আপনি হাতে থাকা যানবাহনগুলোর মধ্যে থেকে বেছে নেওয়ার চেষ্টা করছেন। অনেকগুলো অপশন থেকে আপনি দুটিতে নামিয়ে আনতে পেরেছেন, কিন্তু চূড়ান্ত সিদ্ধান্ত নিতে আপনার সাহায্য দরকার। এর জন্য ChooseVehicle(option1, option2) ফাংশনটি বাস্তবায়ন করুন, যা আর্গুমেন্ট হিসেবে দুটি যানবাহন নেয় এবং এমন একটি সিদ্ধান্ত রিটার্ন করে যেখানে অভিধানিক ক্রমে প্রথমে আসা অপশনটি থাকে।

vehicle := ChooseVehicle("Wuling Hongguang", "Toyota Corolla")
// => "Toyota Corolla is clearly the better choice."

ChooseVehicle("Volkswagen Beetle", "Volkswagen Golf")
// => "Volkswagen Beetle is clearly the better choice."

3. পুরোনো যানবাহনের দামের একটি আনুমানিক হিসাব করুন

এখন যেহেতু সিদ্ধান্ত নেওয়া হয়ে গেছে, আপনি ডিলারশিপে ন্যায্য দাম পাচ্ছেন কি না তা নিশ্চিত করতে চান। যেহেতু আপনি একটি পুরোনো যানবাহন কিনতে আগ্রহী, তাই দাম নির্ভর করে যানবাহনটির বয়স কত তার উপর। মোটা দাগে অনুমান করতে ধরুন, যানবাহনটির বয়স ৩ বছরের কম হলে একেবারে নতুন অবস্থায় যে দাম ছিল তার ৮০% দাম পড়বে। বয়স কমপক্ষে ১০ বছর হলে দাম পড়বে ৫০%। আর যানবাহনটির বয়স কমপক্ষে ৩ বছর কিন্তু ১০ বছরের কম হলে দাম পড়বে মূল দামের ৭০%।

CalculateResellPrice(originalPrice, age) ফাংশনটি বাস্তবায়ন করুন, যা if, else if এবং else ব্যবহার করে এই যুক্তি প্রয়োগ করে (অনুশীলন করতে চাইলে অন্য উপায়ও আছে)। এটি আর্গুমেন্ট হিসেবে মূল দাম এবং যানবাহনের বয়স নেয় এবং ডিলারশিপে আনুমানিক দামটি রিটার্ন করে।

CalculateResellPrice(1000, 1)
// => 800

CalculateResellPrice(1000, 5)
// => 700

CalculateResellPrice(1000, 15)
// => 500

লক্ষ্য করুন, রিটার্ন ভ্যালুটি একটি float64।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Go Exercism

যানবাহন কেনা শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Go ট্র্যাকের 34টি কনসেপ্ট165টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।