Dr. madScientist hat geschrieben: ↑So 22. Mai 2022, 01:46
Pascal? Turbo Pascal? Das haben wir noch gemacht. Und zur Freude aller in der 13 .../2??? noch Prolog - was dann zur Mega-Freude der wenigen Mutigen auch noch hauptsächlich im Abi dran kam. Obwohl keiner wirklich was verstanden hatte afair.
Genau, das war Turbo Pascal.
Der Informatikunterricht hatte mir wirklich Spaß gemacht.
Habe mal während einer Unterrichtspause ein Programm geschrieben welches alle Zahlen von 1 bis 100 addieren soll was auch funktionierte. Eine Woche später bekamen wir die Aufgabe, ein Programm zu schreiben, welches in einer Schleife genau das tun sollte; Alle Zahlen von 1 bis 100 addieren.
Diese war für mich natürlich schon erledigt, bevor man uns diese gestellt hat.
Ich habe also, wo alle anderen sich an die Arbeit gemacht haben, ganz offensichtlich nichts gemacht und das so, daß der Lehrer das auch sah. Als er auf mich zu kam und mich fragte, ob ich denn schon fertig sei, sagte ich wörtlich "Ja, schon seit einer Woche!"
Zu seiner Verwunderung konnte ich ihm das funktionierende Programm auch direkt zeigen bzw. demonstrieren. Für mich gab es nachher im Grunde genommen nichts mehr zu tun, mir konnte man schon damals nicht mehr viel beibringen da ich das Meiste schon konnte.
Das Additionsprogramm sieht in C++ geschrieben so aus:
Code: Alles auswählen
#include <iostream>
int main()
{
int ergebnis = 0, zahl2 = 0, zahl3 = 1; //Initialisiere die Variablen
for (int i = 0; i < 100; i++)
{
ergebnis = zahl2 + zahl3; //Addition der ersten mit der zweiten Zahl
std::cout << ergebnis << std::endl;
zahl3++; //Erhöhe die zweite Zahl in jedem Durchlauf um 1
zahl2 = ergebnis; //Ersetze die erste Zahl für die nächste Addtition durch das Ergebnis der ersten Addtion (Hilfsvariable)
}
return 0;
}
Heute würde ich das aber etwas anders machen wenn ich richtig pedantisch sein will:
Code: Alles auswählen
#include <iostream>
int main()
{
int ergebnis = 0, zahl2 = 0, zahl3 = 1; //Initialisiere die Variablen
for (int i = 0; i < 100; i++)
{
ergebnis = zahl2 + zahl3; //Addition der ersten mit der zweiten Zahl
zahl3++; //Erhöhe die zweite Zahl in jedem Durchlauf um 1
zahl2 = ergebnis; //Ersetze die erste Zahl für die nächste Addtition durch das Ergebnis der ersten Addtion (Hilfsvariable)
}
std::cout << ergebnis << std::endl; //Zeige das Endergebnis an
return 0;
}
Die Änderung besteht darin, den Ausgabebefehl außerhalb der Schleife zu setzen sodass diese nicht jedes Mal in jedem Schleifendurchlauf ausgeführt werden muss, will man nur das Endergebnis dieser Additionsschleife sehen. Denn die ständige Ausgabe jedes Zwischenergebnisses ist auch ein Schritt den der Rechner im Programm durchgehen muss was natürlich auch zusätzliche minimalste Ressourcen beansprucht bzw. alles insgesamt minimal verlangsamt. Auf richtig uralten Rechnern wäre die zweite Variante wohl ein wenig schneller da die hier die ständige Ausgabe des Zwischenergebnisses ausgelassen und nur das Endergebnis angezeigt wird. Wäre also auf einer 80er-Jahre DOS-Maschine wohl ein klein wenig performanter.
Zumindest denke ich mir das immer so. Einfach alles unnötige weglassen und nur das anzeigen lassen, was wirklich benötigt wird.
Auf heutigen Rechnern spielt das allerdings keine Rolle mehr, da spürt man den Unterschied gar nicht.