Kurzusok
/
Cairo
Cairo
/
Feladatok
/
Pékségi rendelési rendszer
Pékségi rendelési rendszer

Pékségi rendelési rendszer

Tanulófeladat

Bevezetés

A vezérlési szerkezetek a Cairoban lehetővé teszik, hogy feltételek és ismétlések alapján szabályozd, hogyan fusson le a programod.

Feltételes végrehajtás

Az if kifejezésekkel feltételek alapján hajthatsz végre kódot:

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

Az if egy kifejezés, ezért értéket is visszaadhat:

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

Ciklusok

A loop segítségével ismételhetsz kódot. A ciklus a végtelenségig fut, hacsak meg nem állítod. Ha egy feltétel teljesül, a break-kel léphetsz ki belőle.

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

A ciklusok a break segítségével adhatnak vissza értéket:

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

A continue segítségével ugorhatsz a következő iterációra:

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
}

Utasítások

Ebben a feladatban egy kis pékség napi működésének kezelésében segítesz, a Cairo vezérlési szerkezeteit használva.

1. Számítsd ki a rendelés végösszegét

Valósítsd meg a calculate_total függvényt, amely egy rendelés költségét számítja ki a sütemény típusa és mennyisége alapján:

  • Croissant: darabonként 3 érme
  • Muffin: darabonként 2 érme
  • Cookie: darabonként 1 érme
calculate_total(Pastry::Croissant, 4) // Returns: 12 (4 * 3)
calculate_total(Pastry::Cookie, 10)   // Returns: 10 (10 * 1)

2. Alkalmazd a mennyiségi kedvezményeket

Valósítsd meg az apply_discount függvényt, amely a rendelés végösszege alapján alkalmaz kedvezményeket. A százalékos kedvezményt a végösszegre alkalmazd, majd kerekítsd le a legközelebbi egész érmére (lefelé kerekítés).

  • 20 érme vagy annál nagyobb rendelés: 10% kedvezmény
  • 10 érme vagy annál nagyobb rendelés: 5% kedvezmény
  • 10 érménél kevesebb rendelés: nincs kedvezmény
apply_discount(25) // Returns: 22
apply_discount(15) // Returns: 14
apply_discount(8)  // Returns: 8

3. Készíts sütési ütemtervet

Valósítsd meg a baking_schedule függvényt, amely egy napi sütési tervet készít. A pékség óránként 5 rendelésből álló adagokban süt:

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)

Használj megfelelő vezérlési szerkezeteket (if/else, loop), hogy hatékonyan oldd meg az egyes problémákat.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Cairo Exercism

Készen állsz elkezdeni a(z) Pékségi rendelési rendszer feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Cairo nyelvet 25 fogalom68 feladat segítségével, valódi emberi mentorálással, mindez ingyen.