func auslastungAusrechnen(belegung:Array<Belegung>, startDatum:Date, endDatum:Date, station:Station)->Int{// Rechne wie viel Auslastung 80% der Gesamtverfuegbarkeit entspricht
let auslastung80Prozent =Int(station.anzahlBetten *0.8)// Rechne Auslastung pro Tag
var tage:[Date:Int]=[:]// Dictionary bzw. Map! Z.B. std::map<Date, int> in C++
for datum in startDatum...endDatum {
tage[datum]=0for b in belegung {if b.stationId == station.stationId && b.datumVon <= datum && b.datumBis > datum {
tage[datum]!+=1}}}// Rechne Anzahl Tage an denen Auslastung mehr als 80% war
var ergebnis =0for(_, belegungen)in tage {if belegungen > auslastung80Prozent {
ergebnis +=1}}return ergebnis
}
In dem Pseudocode den ich in der Prüfung geschrieben hab, hatte ich die map so deklariert:
tage := new Map<Date, Int>
Wichtig zu bedenken ist, dass Belegung::datumBis EXKLUSIV war: Belegungen sollten nicht für den Tag gezählt werden an dem sie enden. Das sehe ich bei @user2001 und bei @BeppeCSharpNauter falsch gelöst.
AP2 FIAE Algorithmen
in Prüfungsaufgaben und -lösungen
Geschrieben · Bearbeitet von tuxifan
Hier ist meine Loesung:
In dem Pseudocode den ich in der Prüfung geschrieben hab, hatte ich die map so deklariert:
Wichtig zu bedenken ist, dass Belegung::datumBis EXKLUSIV war: Belegungen sollten nicht für den Tag gezählt werden an dem sie enden. Das sehe ich bei @user2001 und bei @BeppeCSharpNauter falsch gelöst.