Hier mal eine etwas seltsame Frage:
Wie kommt es, das viele Programmierer i als Schleifenvariable einsetzen? Hat das ein Herr Knut oder sonstiger Programmierguru als "weiche Konvention" eingeführt?
Edit: Typos, lots of 'em
Warum i?
Wenn man das Objekt mit i bezeichnet weiß jeder sofort worum es sich handelt. Deswegen benutzt man z.B. am besten überall die selbe Konvention für Bezeichnungen. Das sind einfach Dinge die dass verstehen erleichtern.
-
- User
- Beiträge: 456
- Registriert: Mittwoch 15. April 2009, 14:11
Das i steht meines Wissens für integer.
Kann mich aber auch täuschen
Kann mich aber auch täuschen
Ich zitiere mal die englische Wikipedia:
Wikipedia hat geschrieben:A common identifier naming convention is for the loop counter to use the variable names i, j and k (and so on if needed), where i would be the most outer loop, j the next inner loop, etc. The reverse order is also used by some programmers. This style is generally agreed to have originated from the early programming of FORTRAN, where these variable names beginning with these letters were implicitly declared as having an integer type, and so were obvious choices for loop counters that were only temporarily required. The practice also dates back further to mathematical notation where indices for sums and multiplications are often i, j, etc.
Damit erklärst Du eher die Sinnhaftigkeit von Konventionen im Allgemeinen, ich meinte aber das i im Speziellen. Man könnte ja auch einen anderen Buchstaben oder einen sprechenderen Namen nehmen (was ja auch gemacht wird), trotzdem fällt die i-Affinität auf.DasIch hat geschrieben:Wenn man das Objekt mit i bezeichnet weiß jeder sofort worum es sich handelt. Deswegen benutzt man z.B. am besten überall die selbe Konvention für Bezeichnungen. Das sind einfach Dinge die dass verstehen erleichtern.
@anogayales:
Du meinst so eine Art Denkabkürzung eines Programmierers:
- brauche Zählvariable
- hm, muß integer sein
- Wie nenn ich die bloß?
- hm, ein integer, ..., int, .. ah i
- super, i funktioniert prima
Klingt schon irgendwie einleuchtend, zumindest nachvollziehbar.
Edit:
Danke BlackVivi, sowas hatte ich gesucht. Gerade die Sache mit der mathematischen Notation leuchtet ein. (Nein ich frage jetzt nicht warum das da i, j, k... heißt)
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Hui ... das ist ganz schön lang. Daher werfe ich mal meine Theorie ein, ohne es gelesen zu haben
i ist ja die römische 1. Und evtl. wurde es deswegen in der Mathematik gerne verwendet, quasi der erste Index.
i ist ja die römische 1. Und evtl. wurde es deswegen in der Mathematik gerne verwendet, quasi der erste Index.
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Meine Vermutung: i wie Index. Mathematiker koennen da sehr fantasielos sein. (f fuer Funktion, n fuer natuerlich Zahl, V fuer Vektorraum, H fuer HIlbertraum, v fuer Vektor, ...) Und da Indezes gerne natuerliche Zahlen sind, trifft man n und m als Indezes auch nicht so ganz selten an...
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Möchte Rebecca da ganz klar unterstützen: i ist in der Regel die erste Indexvariable einer Gleichung und wenn mehr gebraucht werden folgen zwanglos j und k und l .... Und da gerade die Informatik gerade in ihren Anfängen sehr nahe an den mathematischen Fakultäten war, wurden eben auch naheliegende Teile der Formelsprache übernommen.
Und jetzt das Lexikon um alle Zweifel zu beseitigen:
„i“ bezeichnet in der Mathematik, Physik und Informatik eine „Indexvariable“ welche von einer „Indexzahl“ abstammt.
Indexvariablen sind Daten die als Anfangs-, Mittel- oder Endwert einer Berechnung die zeitlichen Veränderungen übersichtlicher aufbereiten.
Weitere Indexvariablen sind: j, k; m, n
„i“ bezeichnet in der Mathematik, Physik und Informatik eine „Indexvariable“ welche von einer „Indexzahl“ abstammt.
Indexvariablen sind Daten die als Anfangs-, Mittel- oder Endwert einer Berechnung die zeitlichen Veränderungen übersichtlicher aufbereiten.
Weitere Indexvariablen sind: j, k; m, n
Zuletzt geändert von Guetta am Montag 27. April 2009, 14:48, insgesamt 1-mal geändert.
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Was ist das denn bitte fuer ein Lexikon?
Versteh ich nicht, muss ich jetzt mein Mathe-Diplom wieder abgeben...?
Versteh ich nicht, muss ich jetzt mein Mathe-Diplom wieder abgeben...?
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Nicht viel besser, aber die Wortwahl laesst darauf schliessen, dass es sich hier um Physiker-Mathematik handelt, die kann man als Mathematiker nicht verstehen.
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Dann macht der Physiker es eben Mathematiker gerecht.
Eine Indexvariable ist eine Variable deren Wert sich im Laufe einer Berechnung verändert, sie kann sowohl Anfangs-, Mittel- als auch Endwert sein.
Hier ist die Indexzahl (der Wert) 0, welche zur Indexvariablen i wird. Im Beispiel wird dem Wert der Indexvariablen bei jedem Durchlauf eine 1 angerechnet, bis sie beim Wert 100 angekommen ist.
Die Indexvariable i nimmt also im Laufe des Prozesses erst den Wert 1 an, dann den Wert 2, dann 3,.... bis sie schließlich den Wert 100 hat.
Im Beispiel ist die Indexvariable sowohl Anfangs-, Mittel- als auch Endwert.
Wenn das nicht einleuchtet musst du das Mathe-Diplom wieder abgeben.
Eine Indexvariable ist eine Variable deren Wert sich im Laufe einer Berechnung verändert, sie kann sowohl Anfangs-, Mittel- als auch Endwert sein.
Code: Alles auswählen
i = 0
while i < 100:
i = i + 1
print i
Die Indexvariable i nimmt also im Laufe des Prozesses erst den Wert 1 an, dann den Wert 2, dann 3,.... bis sie schließlich den Wert 100 hat.
Im Beispiel ist die Indexvariable sowohl Anfangs-, Mittel- als auch Endwert.
Wenn das nicht einleuchtet musst du das Mathe-Diplom wieder abgeben.
Eine Variable die sich im Laufe der Berechnung *verändert*!? Ich dachte so etwas gibt es in der Mathematik nicht. Weder Zeit ("im Laufe") noch Variablen die nicht beliebig *aber fest* sind. Insbesondere Zeile 5 ist mathematisch gesehen blanker Unsinn, weil 1 nicht das neutrale Element bezüglich der Addition ist.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Also sind wir von Physiker-Mathematik zu Informatiker-Mathematik gekommenBlackJack hat geschrieben:Eine Variable die sich im Laufe der Berechnung *verändert*!? Ich dachte so etwas gibt es in der Mathematik nicht. Weder Zeit ("im Laufe") noch Variablen die nicht beliebig *aber fest* sind.
Wobei ich aber zugeben muss, dass ich nicht ganz sehe wo das Problem ist... Rebecca meinte das "i" für "Index" steht, was soweit auch einleuchtet und die Frage des OP beantwortet.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Auch die Mathematik hat eine Art "Laufvariable", um iterative Berechnungen auszudrücken. In einem Summenausdruck steht "i" (unterhalb des Summenzeichens) ja nicht für einen fixen Wert, sondern für einen sich verändernden Index.BlackJack hat geschrieben:Eine Variable die sich im Laufe der Berechnung *verändert*!? Ich dachte so etwas gibt es in der Mathematik nicht.
@lunar: Nicht wirklich, die Vorstellung kommt nur zustande, wenn man sich den zeitlichen Ablauf denkt, wenn man das mit konkreten Werten ausrechnen möchte. Innerhalb des Teilausdrucks wo das `i` steht, ist es fest.
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Ich habe zwar nichts dagegen, wenn man einen Index als Laufvariable bezeichnet, moechte aber BlackJack zustimmen.
Um bei dem Beispiel der Summe zu bleiben: Das Summenzeichen ist ja eine Schreibweise fuer die Gesamtheit der Summanden, also alle auf einmal, da ist nichts, was sich "im Laufe der Zeit aendert". Ist so aehnlich wie mit Mengenschreibweisen: M = {a in A | a>0}, da sagt man ja eigentlich auch nicht, dass a "sich veraendert".
Naja, der Begriff Index ist in der Mathematik eh nur eine praktische Benamsung (und nichts, was definiert wird oder bestimmte Eigenschaften hat, wie es der Lexikoneintrag suggeriert), von daher ist es muessig, darueber zu diskutieren.
Um bei dem Beispiel der Summe zu bleiben: Das Summenzeichen ist ja eine Schreibweise fuer die Gesamtheit der Summanden, also alle auf einmal, da ist nichts, was sich "im Laufe der Zeit aendert". Ist so aehnlich wie mit Mengenschreibweisen: M = {a in A | a>0}, da sagt man ja eigentlich auch nicht, dass a "sich veraendert".
Naja, der Begriff Index ist in der Mathematik eh nur eine praktische Benamsung (und nichts, was definiert wird oder bestimmte Eigenschaften hat, wie es der Lexikoneintrag suggeriert), von daher ist es muessig, darueber zu diskutieren.
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei