Διαδρομές
/
Go
Go
/
Ασκήσεις
/
Αγορά οχήματος
Αγορά οχήματος

Αγορά οχήματος

Άσκηση εκμάθησης

Εισαγωγή

Σύγκριση

Στη Go οι αριθμοί μπορούν να συγκριθούν με τους παρακάτω τελεστές σύγκρισης και ισότητας.

Σύγκριση Τελεστής
ίσο ==
όχι ίσο !=
μικρότερο <
μικρότερο ή ίσο <=
μεγαλύτερο >
μεγαλύτερο ή ίσο >=

Το αποτέλεσμα της σύγκρισης είναι πάντα μια Boolean τιμή, δηλαδή είτε 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"
}

Σε σενάρια με περισσότερες από μία περιπτώσεις, πολλές εντολές if μπορούν να συνδεθούν μεταξύ τους με τις εντολές else if και else.

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), η οποία παίρνει το είδος του οχήματος και επιστρέφει μια Boolean (λογική τιμή) που δείχνει αν χρειάζεσαι δίπλωμα για αυτό το είδος οχήματος.

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. Υπολόγισε μια εκτίμηση για την τιμή ενός μεταχειρισμένου οχήματος

Τώρα που πήρες μια απόφαση, θέλεις να βεβαιωθείς ότι θα πάρεις μια δίκαιη τιμή στην αντιπροσωπεία. Επειδή ενδιαφέρεσαι να αγοράσεις ένα μεταχειρισμένο όχημα, η τιμή εξαρτάται από το πόσο παλιό είναι το όχημα. Για μια χονδρική εκτίμηση, θεώρησε ότι αν το όχημα είναι λιγότερο από 3 ετών, κοστίζει το 80% της αρχικής τιμής που είχε όταν ήταν ολοκαίνουριο. Αν είναι τουλάχιστον 10 ετών, κοστίζει το 50%. Αν το όχημα είναι τουλάχιστον 3 ετών αλλά λιγότερο από 10, κοστίζει το 70% της αρχικής τιμής.

Υλοποίησε τη συνάρτηση 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 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.