Das Auswertungsprogramm erstellt auf Basis der Strecken- und Anschlussdaten einen "Score" für eine bestimmte Reihenfolge. Es gibt drei Kategorien von Anschlusszügen, für die Taktdichte und Taktminute angegeben werden. Aus diesen wird der nächste erreichbare Anschluss für jeden Passagier berechnet und die Wartezeiten aufsummiert. Für die nicht Umsteigenden Fahrgäste wird die Verspätung nach Fahrplan herangezogen. Die Gesamtverspätung wird zurückgegeben: # -*- coding: utf8 -*- from __future__ import division def auswertung (ankunft, anschluss): # ZUWEISUNGEN summe = 0 #Summe der Wartezeiten key = "" #Umsteigeanteile auf Anschlusszuege for ank in ankunft: #fuer jeden ankommenden Zug for i in range (0,len(anschluss)): #gehe jeden Anschlusszug durch # ZUWEISUNGEN anschl = anschluss[i] key = "auf" + str(i+1) abfahrt = 0 #suche Zug, der als naechstes kommt n = 0 while ank["ankunft"] >= abfahrt: abfahrt = anschl["minute"] + n* anschl["intervall"] n = n+1 # BERECHNUNG time = (abfahrt - ank["ankunft"]) #Wartezeit pro Person summe += ank[key] * ank["besetzung"] * time # Umsteigeanteil * Personen im Ankunftszug * Wartezeit pro Person return summe