Cursus Raku / Essentiëlen / Associatieve datentypen / Oefeningen / Reisafstand*
Oplossing: Reisafstand*
De hash van hashes die je vindt in het bestand distances.raku is een beetje redundant maar een zeer handige datastructuur die je kunt gebruiken om de afstand tussen elk paar steden te krijgen.
De rest van het programma bestaat uit een paar geneste lussen om alle segmenten van de route te scannen en de totalen op te tellen.
Code
Hier is de oplossing waarbij de grote dataset slechts gedeeltelijk wordt getoond.
my %distance =
Amsterdam => {
Athene => 3082,
Berlijn => 648,
# . . .
},
# . . .
Zürich => {
Amsterdam => 861,
Athene => 2449,
# . . .
};
my @itinerary = < Berlijn Praag Wenen Zürich Parijs >;
my $totaal = 0;
for 0 .. @itinerary.elems - 2 -> $index {
my $van = @itinerary[$index];
my $naar = @itinerary[$index + 1];
my $afstand = %distance{$van}{$naar};
say "$van — $naar: $afstand km";
$totaal += $afstand;
}
say "Totale reis: $totaal km";
🦋 Vind het programma met de volledige datastructuur in het bestand travel-distance.raku.
Uitvoer
Voor de gegeven route wordt de uitvoer van het programma hieronder getoond. Probeer andere routes door de steden die we in de %distance
hash hebben.
$ raku exercises/associatives/travel-distance.raku
Berlijn — Praag: 354 km
Praag — Wenen: 312 km
Wenen — Zürich: 784 km
Zürich — Parijs: 557 km
Totale reis: 2007 km
Cursusnavigatie
← Positionele datentypen / Subscriptie van reeksen | Functies maken en aanroepen →
Deze pagina is automatisch vertaald met ChatGPT 4o. Originele Engelse tekst.
Vertalingen van deze pagina: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська