Știu că acest lucru ar putea părea ca un absolut prostească întrebare, dar eu sunt prea curioasă să nu întreb...
De ce a făcut "i" și "j" A devenit variabile pentru a folosi ca contoare în cele mai multe structuri de control?
Deși bunul simț îmi spune că sunt la fel ca X, care este folosit pentru a reprezenta valorile necunoscute, pot't ajuta să se gândească că trebuie să existe un motiv pentru care toată lumea devine învățat la fel de peste si peste din nou.
Este pentru că este de fapt recomandat pentru cele mai bune practici, sau o convenție, sau are un motiv obscur în spatele ei?
Doar în cazul în, știu că le poate da orice nume vreau si ca nume de variabile nu sunt relevante.
Este vorba, în cele din urmă la matematică: însumarea notație folosește în mod tradițional i pentru primul indice, j pentru cel de-al doilea, și așa mai departe. Exemplu (din http://en.wikipedia.org/wiki/Summation):
L's, de asemenea, utilizat ca modalitate de colecții de lucruri, cum ar fi dacă ai avea o grămadă de variabile x1, x2,..., xn, apoi una arbitrară va fi cunoscut sub numele de xnu.
Ca pentru ce-l's așa, îmi imaginez SLaks este corectă și it's pentru că este prima scrisoare în Index.
Cred că datează de la Fortran. Variabilele începând cu eu prin Q au fost întreg implicit, altele au fost reale. Acest lucru a însemnat că " eu "a fost prima variabilă întreagă, și" J " cea de-a doua, etc., astfel încât acestea au scăzut față de utilizarea în bucle.
Matematicienii au fost utiliza i,j,k pentru a desemna numere întregi în algebra (indici, serie, somații etc.) cu mult timp înainte (de exemplu.g 1836 sau 1816) computerele au fost în jurul valorii de (aceasta este originea FORTRAN variabilă de tip implicite). Obiceiul de a folosi litere de la sfârșitul alfabetului (...,x,y,z) pentru variabile necunoscute și de la început (a,b,c...) pentru constantele este, în general, atribuite Rene Descartes, (a se vedea, de asemenea, aici) deci presupun i,j,k, n (în mijlocul alfabetului) pentru numere întregi este probabil din cauza lui.
i = integer
Vine de la Fortran unde întreg variabile a trebuit să încep cu litere de la I la N și variabile reale început cu alte litere. Astfel, am fost primul și cel mai scurt integer nume de variabilă. Fortran a fost una dintre cele mai vechi limbaje de programare în utilizarea pe scară largă și obiceiurile dezvoltat de programatori, folosind reportate în alte limbi.
EDIT: nu am nici o problemă cu răspunsul că acesta provine de la matematică. Fără îndoială că este în cazul în care Fortran designeri ai lor sursă de inspirație. Faptul este, pentru mine, oricum, atunci când am început să-program in Fortran am folosit I, J, K, ... buclă pentru contoare pentru că ei au fost scurte și primul permis legal nume de variabile pentru numere întregi. Ca un al doilea de studentie în H. S. am auzit, probabil, de Descartes (și câteva altele), dar a făcut foarte puține conexiune la matematică atunci când programare. În fapt, primul curs a fost numit "Fortran pentru Afaceri" și a fost învățat de către facultatea de matematica, dar de afaceri/economie facultatea.
Pentru mine, cel puțin, denumirea de variabile avut puțin de a face cu matematica, dar tot din cauza obiceiurile am luat scrierea de cod Fortran care am desfășurat-o în alte limbi.
Cred că's cel mai probabil derivat din index (în sensul matematic) - l's utilizate în mod obișnuit ca un index în sume sau alte stabilit pe baza de operațiuni, și cel mai probabil a fost folosit ca modalitate de dinainte de a exista limbaje de programare.
Nu's o preferință în matematică pentru a utiliza litere consecutive din alfabet pentru "anonim" variabilele utilizate într-un mod similar. Prin urmare, nu doar "i, j, k", dar, de asemenea, "f, g, h", "p, q, r", "x, y, z" (rar cu "u, v, w" precedat), și "&alfa;, β, γ".
Acum "f, g, h" și "x, y, z" nu sunt utilizate în mod liber: prima este pentru funcții, acesta din urmă pentru dimensiuni. "p, q, r" sunt, de asemenea, adesea folosit pentru funcții.
Apoi, există alte constrângeri asupra disponibile secvențe: "l" și "o" sunt evitate, deoarece ele arata prea mult ca "1" și "0" în multe fonturi. "t" este adesea folosit pentru timp, "d & δ" pentru diferențele, și "o, s, m, v" pentru măsuri fizice de accelerare, deplasarea, masa și viteza. Care nu lasă atât de multe lacune de trei litere consecutive fără nedorite asociații în matematică pentru indici.
Apoi, ca și mulți alții au observat, convențiile de la matematică a avut o influență puternică asupra devreme de programare convenții, și "&alfa;, β, γ" nu't disponibil in mai multe devreme seturi de caractere.
Am găsit un posibil răspuns ar putea fi că i, j, și k vin de la Hamilton's Quaternions`.
Euler ales eu pentru unitatea imaginară.
Hamilton a avut nevoie de două rădăcini pătrate de -1:
ii = jj = kk = ijk = -1
Hamilton a fost foarte influent, și quaternions fost modul standard de a face analiză 3D înainte de 1900. De atunci, matematicienii au fost folosite pentru a gândi (ijk) ca un set asortat.
Calculul vectorial înlocuit quaternionic analiză în 1890, pentru că a fost o modalitate mai bună* să scrie Maxwell's ecuații. Dar oamenii tind să se scrie vectorul cantităților ca astfel de prognoze: (3i-2j+k)
în loc de (3,-2,1)
. Deci (ijk) a devenit standard pe baza de vectori în R^3.
În cele din urmă, fizicienii au început folosind teoria grupurilor descrie simetrii în sisteme de ecuații diferențiale. Deci (ijk) a început să conota "vectori care obține în jurul valorii de schimbat prin permutare grupuri," apoi a plutit în derivă spre "index-ca lucrurile pe care le iau pe toate valorile posibile într-un set specificat," care este de fapt ceea ce ei spun într-o buclă.
prin aruncarea înapoi în mare (un pic părtinitoare)
a seems an array
b seems another array
c seems a language name
d seems another language name
e seems exception
f looks bad in combination with "for" (for f, a pickup?)
g seems g force
h seems height
i seems an index
j seems i (another index)
k seems a constant k
l seems a number one (1)
m seems a matrix
n seems a node
o seems an output
p sounds like a pointer
q seems a queue
r seems a return value
s seems a string
t looks like time
u reserved for UVW mapping or electic phase
v reserved for UVW mapping or electic phase or a vector
w reserved for UVW mapping or electic phase or a weight
x seems an axis (or an unknown variable)
y seems an axis
z seems a third axis
O după-amiază însorită, Arhimede ce chibzuind (as fost de obicei de soare afternoons) și a fugit în amicul lui Eratostene.
Arhimede a spus, "Arhimede a Eratostene salut! Am'm încercat să vină cu o soluție în raport de mai multe sferice rigide în echilibru. Aș vrea să itera peste aceste organisme de mai multe ori, dar am'm având un timp îngrozitor de a urmări cât de multe iterații I'am făcut!"
Eratostene a spus, "de Ce Arhimede, ai prune coapte de un copil, ai putea pur și simplu marca rânduri succesive de linii în nisip, fiecare ține evidența numărului de iterații te'am făcut în repetare!"
Arhimede a strigat la lume că marele său prieten a fost, fără îndoială, o rază strălucitoare de inteligenta pentru a veni cu o soluție simplă. Dar Arhimede a remarcat că îi place să se plimbe în cerc în jurul lui, groapă de nisip, în timp ce el gandeste. Astfel, există riscul de a pierde cale de rând care a fost pe partea de sus, și care era pe jos.
"Poate că ar trebui să marcheze aceste rânduri cu o literă a alfabetului în parte, astfel încât nu va ști întotdeauna care rând este ceea ce! Ce crezi despre asta?", a întrebat el, apoi a adăugat, "Dar Eratostene... ce litere se folosesc?"
Eratostene a fost sigur că el nu't știu ce litere ar fi cel mai bine, și a spus cât de mult a lui Arhimede. Dar Arhimede a fost nemulțumit și a continuat să prod săraci bibliotecar de a alege, cel puțin, cele două scrisori pe care el ar avea nevoie pentru curent sfera soluție de echilibru.
Eratostene, în cele din urmă obosit de neîncetate cerere pentru două scrisori, a strigat, "NU'T ȘTIU!!!"
Deci Arhimede ales primele două litere în Eratostene' propoziție exclamativă, și i-a mulțumit prietenului său pentru contribuția.
Aceste simboluri au fost rapid adoptate de greacă veche dezvoltatorii Java, iar restul e... istorie.
cred că's pentru că o mulțime de bucle folosi o variabilă de tip Int pentru a face numărarea, ca
for (int i = 0; etc
și atunci când tastați, de fapt vorbesc în capul tău (ca atunci când ai citit), deci, în mintea ta, ai spus 'int....'
și atunci când trebuie să facă o scrisoare imediat după aceea 'int....' , spui / tip 'i' pentru că aceasta este prima scrisoare pe care te gândești când te'am spus doar 'int'
cum se scrie un cuvânt pentru copii care începe învățarea citit scrie cuvinte pentru ei, folosind denumiri, astfel:
CUVÂNTUL vrăji William W, Ok O, Ruby R, Făcut D
Deci tu spui Int m, Double d, Float f, string s etc. în funcție de prima literă.
Și j este folosit pentru că atunci când ai făcut int I, J cum urmează imediat după acesta.
Cred că's-o combinație de alte motive menționat :
Pentru început, 'i' a fost frecvent utilizat de către matematicieni în notație, și în primele zile de calcul cu limbi pe care nu't binare (de exemplu, a trebuit să fie analizate și lexed în unele moda), marea majoritate a utilizatorilor de calculatoare au fost, de asemenea, matematicieni (... și oameni de știință și ingineri) deci notația căzut în folosință în limbaje de programare pentru programare bucle, și-a prins încă de atunci.
Combina acest lucru cu faptul că spațiu pe ecran în acele zile foarte timpurie a fost foarte ** limitată, după cum era de memorie, a făcut sens pentru a păstra mai scurt nume de variabile.
Ei bine la Matematică: (pentru litere latine)
a,b: folosit ca constante sau ca numere întregi pentru un număr rațional
c: o constantă
d: derivat
e: Euler's numărul
f,g,h: funcții
i,j,k: sunt indici (de asemenea, vectori unitate și quaternions)
l: în general, nu este utilizat. se pare ca 1
m,n: sunt rânduri și coloane din matrice sau ca numere întregi de numere raționale
oana: de asemenea, nu sunt utilizate (cu excepția cazului're în mic o notație)
p,q: de multe ori folosit ca primes
r: uneori, un spațiale schimbare de variabilă, alte momente legate de numere prime
s,t: spațiale și temporale variabile sau s este folosit ca o schimbare de variabila pentru t
u,v,w: schimbare de variabilă
x,y,z: variabile
i = iterator, i = indice, i = integer
Care mai tine figura "i" standuri pentru tot "se potrivește".
De asemenea, dacă aveți doar o singură linie de cod în această buclă, probabil, ar trebui să fie numirea iterator/index/variabilă întreagă la ceva mai semnificativ. Cum ar fi: employeeIndex
BTW, eu folosesc de obicei "i" în simpla mea iterator bucle, cu excepția cazului, desigur, acesta conține mai multe linii de cod.
i = iota, j = jot; atât de mici modificări.
iota este cea mai mică literă din alfabetul grecesc; în limba engleză l's sensul este legat cu mici modificări, la fel ca în "nu o iotă" (de la o fraza din Noul Testament: "până când cerul și pământul vor trece, nici o iotă, nici un punct, va trece din Lege" (matei 5:18)).
Un contor reprezintă o mică schimbare într-o valoare.
Și de iota vine jot (iot), care este, de asemenea, un sinonim pentru o mica schimbare.
Eventual istorice ?
FORTRAN, aurguably primul limbaj de nivel înalt, definit i,j,k,l,m, ca Întreg tipuri de date în mod implicit, și bucle putea fi controlate doar de variabilă întreagă, convenția continuă ?
de exemplu:
100 i= j,100,5 .... 100 continua ....
Multe posibile motive principale, cred:
int
. Și dacă ai nevoie de un alt int
, apoi pe i2
e prea mult timp, astfel încât vă decideți să utilizați "j".Cu siguranta vine de la matematică, care mult timp precedată de programare pe calculator.
Deci, unde-dacă provin din matematica? Meu complet needucat pe care o's ca un coleg a spus, matematicieni, ca să folosesc alfabetic clustere pentru lucruri similare -- f, g, h pentru funcții; x, y, z pentru variabilele numerice; p, q, r pentru variabilele logice; u, v, w pentru alte seturi de variabile, mai ales în calcul; a, b, c pentru o mulțime de lucruri. i, j, k vine la îndemână pentru iterativ variabile, și că despre epuizează posibilitățile. De ce nu m, n? Ei bine, acestea sunt utilizate pentru numere întregi, dar cel mai adesea la sfârșitul puncte de iterații, mai degrabă decât iterativ variabile de ei înșiși.
Cineva ar trebui să ceară un istoric de matematică.