Befehl "case"
-
Ich weiß nicht, ob inzwischen der Switch-Block von VB anders funktioniert wie bei VB6 damals, aber es gab kein break und insofern war jeder neue Case-Block ein break des alten Blocks, also nicht wie in C++.
Was Makros angeht ist das Problem so billig, das diese den Code einfach unlesbar machen und totaler Overkill ist. Total unangebracht.
Jeder Programmierer checkt 6 Blöcke mit if-s am schnellsten, wobei auch hier wieder ein wenig Redundanzen beseitigen kann, die nur wieder zu Fehlern führen, wenn sich etwas ändert:
if(punkte >=PUNKTE_NOTE1) note=1; else if(punkte >=PUNKTE_NOTE2) // && punkte < PUNKTE_NOTE1 note=2; else if(punkte >=PUNKTE_NOTE3) // && punkte < PUNKTE_NOTE2 note=3; else if(punkte >=PUNKTE_NOTE4) // && punkte < PUNKTE_NOTE3 note=4; else if(punkte >=PUNKTE_NOTE5) // && punkte < PUNKTE_NOTE4 note=5; else note=6; // punkte < PUNKTE_NOTE5
-
Ich würd's mit if/else implementieren und, weil der Lehrer sicherlich auch noch stur ist, aus nem Standard-Draft den Abschnitt zu möglichen Angaben nach case ausdrucken und ihm bei Bedarf hinknallen. Dann gibt's auch die 1,0 für zusätzliche Recherche.
Edit: Oder er fühlt sich angegriffen und gibt ihm dort (oder zukünftig) immer die schlechteste Note.

-
Am "streberhaftesten" wäre wohl, 2 Lösungen zu präsentieren. Eine nach Aufgabenstellung (mit 100 cases) und eine vernünftige, mit einer ordentlichen Erklärung, warum die switch-Variante in C++ für diese Aufgabe suboptimal ist.