Kurso de Raku / Esencoj / Asociaj datentipoj / Ekzercoj / Vojaĝa distanco
Solvo: Vojaĝa distanco
La tabelo de tabeloj, kiun vi trovas en la dosiero distances.raku, estas iom redundanta sed tre utila datuma strukturo, kiun vi povas uzi por akiri la distancon inter ajna paro de urboj.
La resto de la programo estas kelkaj nestitaj bukloj por skani ĉiujn segmentojn de la itinero kaj aldoni al la totaloj.
Kodo
Jen la solvo kie la granda datuma aro estas montrita nur parte.
my %distance =
Amsterdam => {
Athens => 3082,
Berlin => 648,
# . . .
},
# . . .
Zurich => {
Amsterdam => 861,
Athens => 2449,
# . . .
};
my @itinerary = < Berlin Prague Vienna Zurich Paris >;
my $total = 0;
for 0 .. @itinerary.elems - 2 -> $index {
my $from = @itinerary[$index];
my $to = @itinerary[$index + 1];
my $distance = %distance{$from}{$to};
say "$from — $to: $distance km";
$total += $distance;
}
say "Total trip: $total km";
🦋 Trovu la programon kun la tuta datuma strukturo en la dosiero travel-distance.raku.
Eligo
Por la donita itinero, la eligo de la programo estas montrita sube. Provu aliajn vojojn tra la urboj, kiujn ni havas en la tabelo %distance
.
$ raku exercises/associatives/travel-distance.raku
Berlin — Prague: 354 km
Prague — Vienna: 312 km
Vienna — Zurich: 784 km
Zurich — Paris: 557 km
Total trip: 2007 km
Kurso navigado
← Poziciaj datentipoj / Subskribante intervalojn | Kreado kaj vokado de funkcioj →
Ĉi tiu paĝo estas aŭtomate tradukita per ChatGPT 4o. Originala angla teksto
Tradukoj de ĉi tiu paĝo: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська