Διαδρομές
/
Cairo
Cairo
/
Ασκήσεις
/
Σύστημα Παραγγελιών Αρτοποιείου
Σύστημα Παραγγελιών Αρτοποιείου

Σύστημα Παραγγελιών Αρτοποιείου

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

Εισαγωγή

Ο έλεγχος ροής στη Cairo σου επιτρέπει να ελέγχεις τη ροή εκτέλεσης των προγραμμάτων σου με βάση συνθήκες και επαναλήψεις.

Εκτέλεση υπό συνθήκη

Χρησιμοποίησε εκφράσεις if για να εκτελέσεις κώδικα με βάση συνθήκες:

let number = 42;
if number > 0 {
    println!("Positive number");
} else if number < 0 {
    println!("Negative number");  
} else {
    println!("Zero");
}

Το if είναι έκφραση, οπότε μπορεί να επιστρέψει τιμές:

let result = if condition { 5 } else { 10 };

Βρόχοι

Χρησιμοποίησε το loop για να επαναλάβεις κώδικα. Ένας βρόχος εκτελείται ατελείωτα αν δεν τον σταματήσεις· χρησιμοποίησε το break για να βγεις από τον βρόχο όταν ικανοποιηθεί μια συνθήκη.

let mut counter = 0;
loop {
    if counter == 5 {
        break;
    }
    println!("Counter: {}", counter);
    counter += 1;
}

Οι βρόχοι μπορούν να επιστρέψουν τιμές χρησιμοποιώντας το break:

let result = loop {
    counter += 1;
    if counter == 10 {
        break counter * 2; // Returns 20
    }
};

Χρησιμοποίησε το continue για να περάσεις στην επόμενη επανάληψη:

let mut i = 0;
loop {
    i += 1;
    if i % 2 == 0 {
        continue; // Skip even numbers
    }
    if i > 10 {
        break;
    }
    println!("{}", i); // Only prints odd numbers
}

Οδηγίες

Σε αυτή την άσκηση θα βοηθήσεις στη διαχείριση των καθημερινών λειτουργιών ενός μικρού αρτοποιείου, χρησιμοποιώντας τις δομές ελέγχου ροής στη Cairo.

1. Υπολόγισε το σύνολο της παραγγελίας

Υλοποίησε τη συνάρτηση calculate_total που υπολογίζει το κόστος μιας παραγγελίας με βάση τον τύπο του γλυκίσματος και την ποσότητα:

  • Croissant: 3 νομίσματα το καθένα
  • Muffin: 2 νομίσματα το καθένα
  • Cookie: 1 νόμισμα το καθένα
calculate_total(Pastry::Croissant, 4) // Returns: 12 (4 * 3)
calculate_total(Pastry::Cookie, 10)   // Returns: 10 (10 * 1)

2. Εφάρμοσε εκπτώσεις όγκου

Υλοποίησε τη συνάρτηση apply_discount που εφαρμόζει εκπτώσεις με βάση το σύνολο της παραγγελίας. Εφάρμοσε την ποσοστιαία έκπτωση στο σύνολο και μετά στρογγυλοποίησε προς τα κάτω στον πλησιέστερο ακέραιο αριθμό νομισμάτων (floor).

  • Παραγγελίες ≥ 20 νομίσματα: έκπτωση 10%
  • Παραγγελίες ≥ 10 νομίσματα: έκπτωση 5%
  • Παραγγελίες < 10 νομίσματα: χωρίς έκπτωση
apply_discount(25) // Returns: 22
apply_discount(15) // Returns: 14
apply_discount(8)  // Returns: 8

3. Δημιούργησε πρόγραμμα ψησίματος

Υλοποίησε τη συνάρτηση baking_schedule που δημιουργεί ένα καθημερινό πρόγραμμα ψησίματος. Το αρτοποιείο ψήνει σε παρτίδες των 5 παραγγελιών την ώρα:

baking_schedule(18) // Returns: [5, 5, 5, 3] (3 full batches + 3 remaining)
baking_schedule(10) // Returns: [5, 5] (2 full batches)
baking_schedule(3)  // Returns: [3] (1 partial batch)

Χρησιμοποίησε κατάλληλες δομές ελέγχου ροής (if/else, loop) για να λύσεις κάθε πρόβλημα αποτελεσματικά.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Cairo Exercism

Έτοιμος να ξεκινήσεις την άσκηση Σύστημα Παραγγελιών Αρτοποιείου;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Cairo με 25 έννοιες68 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.