Warum i?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
jerch
User
Beiträge: 1628
Registriert: Mittwoch 4. März 2009, 14:19

Sonntag 26. April 2009, 23:34

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
Zuletzt geändert von jerch am Montag 27. April 2009, 08:20, insgesamt 1-mal geändert.
DasIch
User
Beiträge: 2435
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Sonntag 26. April 2009, 23:49

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
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

Sonntag 26. April 2009, 23:56

Das i steht meines Wissens für integer.

Kann mich aber auch täuschen :P
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Montag 27. April 2009, 00:11

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.
jerch
User
Beiträge: 1628
Registriert: Mittwoch 4. März 2009, 14:19

Montag 27. April 2009, 00:11

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.
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.

@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)
jerch
User
Beiträge: 1628
Registriert: Mittwoch 4. März 2009, 14:19

Montag 27. April 2009, 00:36

Falls doch jmd. die Semiotik der math. Notation interessiert, habe ich hier etwas gefunden.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Montag 27. April 2009, 08:05

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.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Montag 27. April 2009, 08:34

Meine Vermutung: i wie Index. Mathematiker koennen da sehr fantasielos sein. :wink: (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
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Montag 27. April 2009, 08:53

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.
Guetta
User
Beiträge: 3
Registriert: Dienstag 21. April 2009, 01:58

Montag 27. April 2009, 13:31

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
Zuletzt geändert von Guetta am Montag 27. April 2009, 14:48, insgesamt 1-mal geändert.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Montag 27. April 2009, 13:58

:?: Was ist das denn bitte fuer ein Lexikon?

Versteh ich nicht, muss ich jetzt mein Mathe-Diplom wieder abgeben...?
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Guetta
User
Beiträge: 3
Registriert: Dienstag 21. April 2009, 01:58

Montag 27. April 2009, 14:50

Sorry, war in der Zeile verrutscht, hab's berichtigt, jetzt sollte es verständlich sein.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Montag 27. April 2009, 15:13

Nicht viel besser, aber die Wortwahl laesst darauf schliessen, dass es sich hier um Physiker-Mathematik handelt, die kann man als Mathematiker nicht verstehen. :wink:
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Guetta
User
Beiträge: 3
Registriert: Dienstag 21. April 2009, 01:58

Montag 27. April 2009, 22:19

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.

Code: Alles auswählen

i = 0

while i < 100:
  i = i + 1
    print i
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. :wink:
BlackJack

Dienstag 28. April 2009, 05:32

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. ;-)
Antworten