Autor Beitrag
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Di 07.08.12 18:10 
Hallo,
nachdem die deutsche Mannschaft bei der diesjährigen Internationalen Mathematikolympiade in Argentinien einen katastrophalen 31.Platz belegt hat (so schlecht wie noch nie), dabei u.a. von Thailand, Iran, Rumänien, KVDR, Serbien, Mongolei, Peru ... geschlagen wurde, sieht es im Moment bei den Olympischen Spielen auch nicht gerade toll aus.
An der Internationalen Informatikolympiade im September will Deutschland wahrscheinlich gar nicht erst teilnehmen.

Nachfolgend ein kleines Programm, dass die Länderergebnisse aller Olympischen Spiele seit 1896 beinhaltet.
Es ist kein programmtechnisches Highlight, aber vielleicht gefällt es dem einen oder anderen.

Im Fenster wählt man links die Olympischen Spiele aus und die Auswertung nach Medaillen, deren Anzahl und einer Punktwertung, die auch 4., 5. und 6.Plätze berücksichtigt. Dabei gilt: Gold = 7 Punkte, Silber = 5 Punkte, Bronze = 4 Punkte und die nachfolgenden Plätze 3, 2 und 1 Punkt.
In der Auswertung kann man eine reine Tabelle, eine grafische Veranschaulichung sowie die historische Entwicklung für jedes Land von 1896 von 2012 wählen.
Die Daten befinden sich in der Datei olympia.txt, die ich natürlich in den nächsten Tagen aktualisieren werde.

Beste Grüße
Mathematiker

Edit1: Von hathor angeregte Änderungen durchgeführt.
Edit2: Endstanddatei in Zip eingefügt.
Einloggen, um Attachments anzusehen!
_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein


Zuletzt bearbeitet von Mathematiker am Mi 05.09.12 21:54, insgesamt 9-mal bearbeitet
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 08.08.12 14:37 
Ich habe den Sourcecode noch nicht angesehen, weiss aber jetzt schon, dass da ein Fehler enthalten sein muss:

USA 29 Gold - 15 Silber - 20 Bronze - 462 Punkte
China 33 Gold - 20 Silber - 16 Bronze - 461 Punkte

---
Nachtrag:

Ausserdem:
const aa:integer=42;
aa:=30;
Da sind noch mehr gleichartige Fehler drin...
Geht NICHT!
Wie hat Dein Compiler das geschluckt?

Ausserdem solltest Du Dir angewöhnen, Varablen etc. einen aussagekräftigen Namen zu geben.

procedure suche; ist extrem unübersichtlich und deshalb fehleranfällig!

Warum rechnest Du mit so Riesenzahlen, wenn der höchste Medaillenwert=7 ist?
--------------
Aber die Idee ist gut.
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mi 08.08.12 15:32 
user profile iconhathor hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe den Sourcecode noch nicht angesehen, weiss aber jetzt schon, dass da ein Fehler enthalten sein muss:
USA 29 Gold - 15 Silber - 20 Bronze - 462 Punkte
China 33 Gold - 20 Silber - 16 Bronze - 461 Punkte

Tut mir leid, das ist richtig!
Die Punktzahl ergibt sich aus 7*gold+5*silber+4*bronze +3*vierter+2*fünfter+sechster. Und die USA hat bisher wesentlich mehr 4., 5. und 6. Plätze als China erreicht. Aus diesem Grund ist Deutschland ja in der Punktwertung auch besser als z.B. Frankreich, obwohl die Franzosen in der Medaillenwertung vorn liegen.
Natürlich könnte man auch die 4., 5. und 6. in der Datei einzeln zählen. Leider habe ich aber für die Jahre 1896-1964 nur die schon addierten Punktzahlen, so dass ich es so fortgeführt habe. Natürlich muss ich dadurch jedesmal erst die Ergebnisse bis Platz 6 abwarten und die Punktzahl entsprechend verändern.

Für die anderen Hinweisen danke ich erst einmal. Ich muss mal sehen, was ich noch ändern kann. Das Programm war ein Schnellschuss von gestern früh, vielleicht zu schnell veröffentlicht :) .

Beste Grüße
Mathematiker

Nachtrag:
user profile iconhathor hat folgendes geschrieben Zum zitierten Posting springen:
const aa:integer=42;
aa:=30;
Da sind noch mehr gleichartige Fehler drin...
Geht NICHT!
Wie hat Dein Compiler das geschluckt?

Geht schon, ist nur dämlich. Ursprünglich wollte ich die Variable aa an eine veränderliche Fensterbreite anpassen.
Nachtrag 2:
Einige der komischen, aber funktionierenden, Programmteile habe ich geändert. siehe 1.Eintrag

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 08.08.12 16:42 
Gerecht ist diese Punktewertung nicht.

Wenn ein Land einen Wettkämpfer in einen Wettbewerb schickt und 1x Silber (5 Punkte) bekommt,
ein anderes Land den 4., 5. und 6. Platz (6 Punkte) belegt liegt es vorne!
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1448

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mi 08.08.12 16:57 
Hallo Hathor,
user profile iconhathor hat folgendes geschrieben Zum zitierten Posting springen:
Gerecht ist diese Punktewertung nicht.
Wenn ein Land einen Wettkämpfer in einen Wettbewerb schickt und 1x Silber (5 Punkte) bekommt,
ein anderes Land den 4., 5. und 6. Platz (6 Punkte) belegt liegt es vorne!

Du hast auf den 1.Blick recht. Diese Punktwertung wurde vor vielen Jahren vom IOC vorgeschlagen. Der Hintergedanke war, kleinere Staaten, die keine Medaillen aber 4.-6. Plätze erreichen, etwas zu trösten.
Ganz dumm ist die Idee auch nicht, da drei sehr gute Sportler auf den Plätzen 4 bis 6 (und die sind sehr gut), eigentlich mehr für den Sport eines Landes sprechen als ein einziger Supersportler auf dem 2.Platz.
Der Irrsinn unserer Medien: "Gold = Sieger, Zweiter usw. = Verlierer" wird mit einer solchen Wertung auch zurückgewiesen.

Aber Du musst in meinem Programm ja nicht diese Auswertung wählen. Wenn Du als Auswertung Medaillen wählst, bekommst Du die klassische Medaillentabelle.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein