“İ” ve “j” değişkenleri neden sayaçlar için kullanılıyor?


179

Bunun sormak kesinlikle aptalca bir soru gibi göründüğünü biliyorum, ama sormamayı çok merak ediyorum ...

"İ" ve "j" neden çoğu kontrol yapısında sayaç olarak kullanılacak değişkenler haline geldi?

Sağduyu bana bilinmeyen değerleri temsil etmek için kullanılan X gibi olduklarını söylese de, herkesin tekrar tekrar aynı şekilde öğretilmesinin bir nedeni olması gerektiğini düşünemiyorum.

Aslında en iyi uygulamalar veya bir sözleşme için önerildiği için mi yoksa arkasında belirsiz bir neden mi var?

Her ihtimale karşı, onlara istediğim ismi verebileceğimi ve değişken isimlerinin uygun olmadığını biliyorum.


17
i = yineleme sırasında j =
entegrasyondan

7
garip 'c' seçilmedi mi? Intel 'cx' sayaç kaydında olduğu gibi.


16
Gerçek sorular neden popüler oldukları için topluluk wikileri haline geliyor? Bu komünizmi çok andırıyor. Birisi gerçekten harika bir şey icat ederse, hükümet buluşu toplulukla paylaşmak için çalar.
orokusaki

9
Yanlış şekilde kapatıldı: buradaki cevaplar diğer sorulara göre daha bilgilendirici ...
Charles Stewart

Yanıtlar:


330

Sonuçta matematikten gelir: toplama gösterimi geleneksel olarak ilk indeks için i , ikincisi için j ve benzerlerini kullanır. Örnek ( http://en.wikipedia.org/wiki/Summation adresinden ):

\ sum_ {i = 1} ^ {n} i = \ frac {n ^ 2 + n} {2}

Ayrıca, bu tür şeylerin toplanması için de kullanılır, örneğin x 1 , x 2 , ... x n değişkenleriniz varsa , o zaman isteğe bağlı olanı x i olarak bilinir .

Neden bu şekilde gelince, SLaks'ın doğru olduğunu ve Index'teki ilk harf olduğum için hayal ediyorum.


93
@SLott: Peki neden imatematikte kullanılıyor?
SLaks

13
@Slaks: Bu iyi bir soru. Aslında ben "i" dizin tamsayıdan gelebilir düşünüyorum. Ayrıca bir kara tahtaya yazmanın kolay olduğunu düşünüyorum. 70'lerde "i" ve "j" harflerini mükemmel bir şekilde yazdığımızdan emin olmak için uyarıldık. Gerçekten de, bizim "i" tam olarak geriye doğru "j" gibi çizmek için söylendi.
S.Lott

26
@ S.Lott: Tamsayıdan geldiğinden şüpheliyim. Tamsayılar için ℤ (karatahta kalın Z) kullanıyoruz, çünkü bu rakamlar anlamına gelen Almanca Zahlen kelimesini temsil ediyor . Toplamıdır notasyonu yaklaşık aynı saatte ortaya çıkan varsayarsak, Almanya merkezli notasyonu beklenen-ve Alman kelime olacağını indeksi olan Endeksi de başlar, i . Ve bir kara tahtaya yazmak özellikle zor olan birçok harfi düşünemiyorum. Ξ :-) hariç
Antal Spector-Zabusky

14
Diyerek şöyle devam etti: "Bu sözleşme var çünkü bu sözleşme daha önce vardı." Etimoloji böyle çalışır: kimse PIE'de belirli bir gürültünün neden belirli bir anlamı olduğunu bilmiyor. Matematiksel konvansiyonu açıklamak güzel olurdu, ancak soru "kontrol yapılarında neden sayaç olarak kullanıldıkları" sorusudur, bu yüzden birisi daha geriye giden bir cevap üretene kadar, bu en iyisidir. En azından neden matematikte kullanıldığını tahmin ediyor. Uygun bir matematiksel tarihçi, belki de ikili bir pirzola kullanarak bulabilirdi. Öklid kullanmadı, eminim von Neumann kullanmıştı. Cauchy ne dersin? Endeksleri çok kullandı
Steve Jessop

14
Bir fonksiyonun sabitleri için a, b, c ve bir fonksiyonun değişkenleri için x, y, z kullanılmasını öneren Lagrange olduğunu düşünüyorum. i, j, k, bir vektörün 'yönlerini' belirtir ve bunun gibi resmi bir toplamın faktörleri, denklemin serbestlik dereceleri [başka bir adla yönler] olarak yorumlanabilir.
David

200

Fortran'a kadar gittiğine inanıyorum. I ile Q arasında başlayan değişkenler varsayılan olarak tamsayıdır, diğerleri gerçekti. Bu I, ilk tamsayı değişkeni ve Jikincisi vb. Anlamına geliyordu , bu yüzden döngülerde kullanıma düştüler.


53
Bu, matematikçilerin i, j, k'yi toplama ve matris çarpım indeksleri için neyin kullanışlı olmayan abonelikleri olarak kullanmaktan hoşlandıklarından kaynaklandığını düşünüyorum. Erken Fortran II el kitabında bununla ilgili bir şey okuduğumu hatırlıyorum. (Evet, Fortran II.)
S.Lott

5
Evet, FORTRAN bu sözleşmelerin kökenidir.
Jé Queue

9
Ben öğretildi Iyoluyla Ndeğil Q. Google çoğunlukla aynı fikirde. (FORTRAN'ın farklı versiyonları?)
Hugh Allen

2
Ve Fortran'daki diğer her şey varsayılan olarak gerçekti. Bu şaka yol açar "Tanrı tamsayı ilan edilmedikçe gerçek".
Lagerbaer

4
@learnvst - çünkü matematikçiler en az bir asırdır i, j'yi kullanıyorlardı.
Martin Beckett

195

Matematikçiler, i (j, k) cebirdeki tam sayıları (aboneler, seriler, toplamlar vb. ) Bilgisayarların (ör. 1836 veya 1816 ) bilgisayarlardan çok önce (bu FORTRAN değişken tipi varsayılanlarının kaynağıdır) belirlemek için kullanıyordu. Alfabenin ucundan harf kullanma alışkanlığı (..., x, y, z) sabit bilinmeyen değişkenler için ve başlangıçta, (a, b, c ...) genel olarak bir atfedilen için Rene Descartes , (bakınız Ayrıca burada ) Ben i varsayalım böylece, j, k ... n (tamsayılar için alfabenin ortasında) çok nedeniyle kendisine muhtemeldir.


17
Bana göre bu en iyi cevap. (Michael Borgwardt'ın matematiksel konvansiyona da atıfta bulunan ancak belirli olmayan bir cevabı için mansiyon.) Üzgünüm seninki kabul edilen cevap değil. Tek yapabileceğim benim oyumu vermek.
John Y

3
Bu, topluluğun kabul ettiği bir cevaba oy verebilmemizin tam sebebi (ve bunun biliyorum ki serviste ait olduğunu biliyorum).
Kredns

Heh. Bu cevapta zaman zaman eski bir google kitabının bağlantısını güncelliyorum çünkü google bir şeyler kesmeye devam ediyor. Şans eseri, şimdi bağlı 1816 belgesinin yazar olarak Charles Babbage (muhtemelen fark motoru / analitik motor şöhreti) içerdiğini not ediyorum. Bu yüzden tartışmasız bir bilgisayar programcısı tarafından "i" tamsayı değişkeninin ilk kullanımına bir örnek: ^)
timday

..OK 1816 bağlantısı üzerinde kullanılan "i" ile sayfaya gitmiyor, ama oradalar.
timday

129

i = tamsayı

Tamsayı değişkenlerinin I ile N arasındaki harflerle ve gerçek değişkenlerin diğer harflerle başladığı Fortran'dan gelir. Böylece ilk ve en kısa tam sayı değişken ismiydim. Fortran, yaygın kullanımda en eski programlama dillerinden biriydi ve bunu kullanan programcılar tarafından geliştirilen alışkanlıklar diğer dillere aktarıldı.

DÜZENLEME : Matematikten aldığı cevapla ilgili bir sorunum yok. Kuşkusuz Fortran tasarımcıları ilham aldıkları yer burası. Gerçek şu ki, benim için Fortran'da programlamaya başladığımda, döngü sayaçları için I, J, K, ... kullandık çünkü kısa oldukları ve tamsayılar için yasal olarak izin verilen ilk değişken adlarıydı. HS'de ikinci sınıf öğrencisi olarak Descartes'ı (ve çok azını) duymuştum, ancak programlama sırasında matematikle çok az bağlantı kurdum. Aslında, aldığım ilk ders "İşletme için Fortran" olarak adlandırıldı ve matematik fakültesi değil, işletme / ekonomi fakültesi tarafından öğretildi.

En azından benim için, değişkenlerin isimlendirilmesinin matematikle pek ilgisi yoktu, ama diğer dillere taşıdığım Fortran kodunu yazdığım alışkanlıklar nedeniyle her şey.


4
FORTRAN olduğundan eminim.
Cade Roux

4
Ya, fortran ..... Zihni çürütür. Döngü değişken adları olarak i ii ve iii kullanan bir programcımız var. Diğer belirti sesli harfleri olmayan 6 karakter değişkeni / işlev adıdır.
EvilTeach

4
@tvan, eminim ben I ile N başlayan değişkenler tamsayı varsayılan , ama yine de onları gerçek ilan edebilirsin "şaka gerçek, tamsayı belirtilmedikçe". Yine de +1, çünkü yıllar önce benim hatırlamam büyük olasılıkla mükemmel olmayabilir.
paxdiablo

10
Hey, FORTRAN beyler bunu matematikçilerden aldı!
timday

6
@Timday ile hemfikirim. İ'yi bir dizinin dizini olarak kullanmak, matematikçiler tarafından en az 2 yüzyıl boyunca bir uygulama olmuştur.
Scottie T

91

iI ndex anlamına gelir .
jsonra gelir i.


12
Sanırım alfabe hakkında konuşuyordu, biraz hayal gücü kullanmaya çalış :)
Jack

33
@Jack: Sanırım @Pete şaka yapıyor ;-)
Chris Pfohl

13
@Cpfohl: evet, sadece sıkıcı olmak istedim: D
Jack

4
@Pete Kirkham: Çok teşekkür ederim Pete, geçen ay yaptığım en iyi kahkahaydı.
AMissico

@SLaks ... Ben sağ i Matematik kullanılan endeks notasyonu geliyor Endeksi = yapar inanıyoruz en.wikipedia.org/wiki/Index_notation ya da burada güzel bir referanstır physics.ucsb.edu/~physCS31/fall2010/index- notation.pdf
John Hartsock

63

Bu semboller, elektronik bilgisayarlar icat edilmeden çok önce matematikte matris indeksleri olarak kullanılmıştır.


52

Bence büyük olasılıkla indeksden ( matematiksel anlamda ) türetilmiştir - genellikle toplamlarda veya diğer set tabanlı işlemlerde bir dizin olarak kullanılır ve büyük olasılıkla programlama dilleri eskisinden beri bu şekilde kullanılmıştır.


İyi cevap. Bu benim için en olası açıklama gibi görünüyor.
Noldorin

3
Evet. Benzer bir toplamın matematik gösterimi Y = Σ Xiher programlama dilinden önce gelir.
Treb

Her kullandığımda endeks düşünüyorum i. Ama aslında ben esas olarak başka bir yerde bakmak tüm kodu kullanmak çünkü kullanmak, ve bu Fortran programcılarından miras olabilir ...
awe

47

Matematikte, benzer şekilde kullanılan "anonim" değişkenler için alfabede ardışık harfleri kullanma tercihi vardır. Bu nedenle, sadece "i, j, k" değil, aynı zamanda "f, g, h", "p, q, r", "x, y, z" (nadiren "u, v, w" ekli), ve "α, β, γ".

Şimdi "f, g, h" ve "x, y, z" serbestçe kullanılmıyor: ilki işlevler için, ikincisi boyutlar için. "p, q, r" işlevleri için de sıklıkla kullanılır.

Sonra kullanılabilir diziler üzerinde başka kısıtlamalar vardır: "l" ve "o" önlenir, çünkü pek çok yazı tipinde "1" ve "0" gibi görünürler. "t" genellikle zaman için kullanılır, diferansiyeller için "d & δ" ve hızlanma, yer değiştirme, kütle ve hızın fiziksel ölçümleri için "a, s, m, v". Bu, endeksler için matematikte istenmeyen ilişkilendirmeler olmadan ardışık üç harf arasında çok fazla boşluk bırakmaz.

Daha sonra, diğer birçok kişinin fark ettiği gibi, matematikten gelen konvansiyonların erken programlama konvansiyonları üzerinde güçlü bir etkisi oldu ve "α, β, character" pek çok erken karakter setinde mevcut değildi.


2
Kabul. Her ne kadar, birçok anlamı a, b, colmasına rağmen oldukça yaygın olarak kullanılan bir dizidir a...
Stobor

32

Başka bir olası cevap buldum ki, ben, j ve k olabilirdi Hamilton's Quaternions.

alternatif metin

Euler hayali birim için i seçti.

Hamilton -1'in iki kare köküne daha ihtiyaç duyuyordu: ii = jj = kk = ijk = -1

Hamilton gerçekten etkiliydi ve kuaterniyonlar, 1900'den önce 3D analizi yapmanın standart yoluydu. O zamana kadar, matematikçiler (ijk) 'yi eşleşen bir set olarak düşünmeye alışıktı. Vektör hesabı 1890'larda kuaterniyonik analizin yerini aldı çünkü Maxwell denklemlerini yazmanın daha iyi bir yoluydu . Ancak insanlar vektör miktarlarını şu şekilde yazma eğilimindeydi: (3i-2j+k) yerine (3,-2,1) . Böylece (ijk) R ^ 3'te standart temel vektörler haline geldi.

Son olarak, fizikçiler diferansiyel denklem sistemlerindeki simetrileri tanımlamak için grup teorisini kullanmaya başladılar. Yani (ijk) ifade etmek başlatan "permütasyon grupları tarafından etrafında değiştirilecek vektörler," o zaman "index benzeri bazı belirli sette tüm olası değerleri almak şeyler," doğru sürüklendi , döngü içinde ne anlama geldiğini temelde.


11
nihayet soruya farklı bir yaklaşım, ilginç nokta +1
Fabian

30

atarak (biraz önyargılı)

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

3
N'yi numbergenellikle bir kümedeki elemanların sayısı olarak görüyorum .
Tom Leys

6
Ah adamlar ve XXX ne gibi görünüyor? )) Yaratıcılık için +1;)
Hovhannes Grigoryan

Bazen çoğu zaman diğer insanların
kafasında

21

Güneşli bir öğleden sonra Arşimet'i ( güneşli öğleden sonraları için her zamanki gibi ) ve dost Eratosthenes'e koştu.

Arşimet, "Arşimet - Eratosthenes selamı! Dengede birkaç küresel katı cismin oranına bir çözüm bulmaya çalışıyorum. Bu cisimleri defalarca tekrarlamak istiyorum, ama izini sürmek için korkunç bir zamanım var kaç tane yineleme yaptığımı! "

Eratosthenes, "Neden Arşimet, bir çocukluğun olgun erikidir, sadece kumdaki birbirini izleyen satır satırlarını işaretleyebilirsiniz, her biri yinelemede yaptığınız yineleme sayısını izleyebilir!"

Arşimet, büyük arkadaşının bu kadar basit bir çözüm bulmak için inkar edilemez şekilde parlayan bir zeka feneri olduğunu dünyaya bağırdı. Ancak Archimedes, gölet yaparken kum çukurunun etrafındaki dairelerde yürümeyi sevdiğini belirtti. Bu nedenle, hangi sıranın üstte ve altta olduğu izini kaybetme riski vardı.

"Belki de bu satırları yan taraftaki alfabenin bir harfiyle işaretlemeliyim, böylece hangi sıranın hangisi olduğunu her zaman bileceğim! Seni ne düşünüyorsun?" "Ama Eratosthenes ... hangi harfleri kullanmalıyım?" diye sordu.

Eratosthenes, hangi harflerin en iyi olacağını bilmediğinden emindi ve Archimedes'e çok şey söyledi. Ancak Archimedes memnun değildi ve en azından mevcut küre denge çözümü için ihtiyaç duyacağı iki mektubu seçmesi için fakir kütüphaneciye devam etmeye devam etti.

Sonunda iki harf için aralıksız talepten bıkan Eratosthenes, "SADECE BİLMİYORUM !!!"

Böylece Arşimet, Eratosthenes'in ünlem cümlesindeki ilk iki harfi seçti ve katkılarından dolayı arkadaşına teşekkür etti.


Bu semboller eski Yunan Java geliştiricileri tarafından hızlı bir şekilde benimsendi ve gerisi, iyi ... tarih.


6
... ve mektuba sahipti j.
Andrew Grimm

Vay canına, bu neredeyse bir Kaplumbağa ve Achilles'ın Hofstadter'ın
GEB'sinden bir

15

Bence bir sürü döngü sayımı yapmak için bir Int tipi değişken kullanıyor, çünkü

for (int i = 0; etc

ve yazdığınızda, aslında kafanızda (okurken olduğu gibi) konuşuyorsunuz, yani zihninizde 'int ....' diyorsunuz

ve 'int ....' den hemen sonra bir mektup yazmanız gerektiğinde 'i' diyorsunuz / yazıyorsunuz çünkü bu sadece 'int' dediğinizde aklınıza gelen ilk harf

Sanki okumayı öğrenmeye başlayan çocuklara bir kelime heceliyormuşsunuz gibi isimleri kullanarak kelimeleri heceliyorsunuz:

WORD, William W, Ok O, Ruby R, D

Yani ilk harfi temel alan Int I, Double d, Float f, string s vb.

Ve j kullanılır çünkü int i yaptığınızda, J hemen ardından gelir.


7
ibu sözdiziminden önce gelir.
SLaks

1
Bu, bir çocuğun saçmalıklarını karıştırmanın harika bir yolu; sizinkine böyle hecelemeyi gerçekten öğretiyor musunuz ?!
Yörüngedeki Hafiflik Yarışları

14

Sanırım diğer belirtilen nedenlerin bir kombinasyonu:

Yeni başlayanlar için, 'i' matematikçiler tarafından gösterimlerinde yaygın olarak kullanıldı ve ikili olmayan (yani bazı şekillerde ayrıştırılması ve lexed edilmesi gereken) dillerle hesaplamanın ilk günlerinde, bilgisayar kullanıcılarının büyük çoğunluğu ayrıca matematikçiler (... ve bilim adamları ve mühendisler) bu nedenle gösterim, programlama döngülerinde bilgisayar dillerinde kullanılmaya başlandı ve o zamandan beri etrafta kaldı.

Bunu, ilk günlerde ekran alanının çok sınırlı olduğu gerçeği ile birleştirin , bellek gibi, daha kısa değişken isimlerini korumak mantıklıydı.


13

Muhtemelen tarihi mi?

Açıkça birinci üst düzey dil olan FORTRAN, i, j, k, l, m'yi varsayılan olarak Tamsayı veri türleri olarak tanımladı ve döngüler yalnızca tamsayı değişkeni tarafından kontrol edilebiliyordu, kural devam ediyor mu?

Örneğin:

100 i yap = j, 100,5 .... 100 devam ....


FWIW, genellikle l harfini
atlarım

13

i = yineleyici, i = dizin, i = tamsayı

Hangi "i" rakamı hala "fatura uyuyor" anlamına gelir.

Ayrıca, bu döngü içinde yalnızca tek bir kod satırınız yoksa, yineleyici / index / integer değişkenini daha anlamlı bir adla adlandırmalısınız. Beğen: workerIndex

BTW, basit yineleyici döngülerimde genellikle "i" kullanıyorum; tabii ki birden fazla kod satırı içermiyorsa.


13

i = iota, j = jot; her iki küçük değişiklik.

iota yunan alfabesindeki en küçük harftir; İngilizcede anlamı "tek bir iota değil" de olduğu gibi küçük değişikliklerle bağlantılıdır (Yeni Ahit'teki bir ifadeden: "cennet ve yeryüzü geçene kadar, bir nokta değil, bir iota değil, Kanundan geçecektir" (Mt 5:18)).

Sayaç, değerdeki küçük bir değişikliği temsil eder.

Ve iota'dan küçük bir değişiklikle eşanlamlı olan jot (iot) geliyor.

bakınız http://en.wikipedia.org/wiki/Iota


13

Matematikten: (latin harfleri için)

a, b: rasyonel bir sayı için sabitler veya tamsayılar olarak kullanılır
c: sabit
d: türev
e: E, E
, sayı, f, h: fonksiyonlar
i, j, k: indekslerdir (ayrıca birim vektörler ve kuaterniyonlar)
l: genellikle kullanılmaz. 1
m'ye benzer, n: matrislerin satırları ve sütunlarıdır veya rasyonel sayılar için tamsayıdır
o: ayrıca kullanılmaz (küçük o gösterimde olmadıkça)
p, q: genellikle primer olarak kullanılır
r: bazen değişken bir uzamsal değişiklik asal sayılarla ilgili diğer zamanlar
s, t: uzamsal ve zamansal değişkenler veya s,
u, v, w için değişken değişikliği olarak kullanılır :
x, y, z: değişkenlerin değişimi


11

Birçok olası ana neden, sanırım:

  • matematikçiler formüllerde ive Doğal Sayılarj için ( en azından Karmaşık Sayıları nadiren kullananlar ) kullanırlar, bu da programlamaya geçti
  • dan C , itavsiyeleri için int. Başka bir ihtiyacın varsa into zaman i2kullanmaya karar nedenle, sadece yol çok uzun j.
  • ilk harfin türe karar verdiği ve iardından an harfinin bulunduğu diller vardır integer.


7

Kesinlikle bilgisayar programcılığından önce gelen matematikten geliyor.

Peki, matematikten nereden geldi? Tamamen eğitimsiz tahminim, bir adamın söylediği gibi, matematikçiler benzer şeyler için alfabetik kümeleri kullanmayı seviyorlar - fonksiyonlar için f, g, h; sayısal değişkenler için x, y, z; mantıksal değişkenler için p, q, r; u, v, w diğer değişken grupları için, özellikle matematikte; a, b, c birçok şey için. i, j, k yinelemeli değişkenler için kullanışlıdır ve bu olasılıkları tüketir. Neden m, n değil? Tamsayılar için kullanılırlar, ancak daha çok yinelemeli değişkenlerin kendilerinden ziyade yinelemelerin uç noktaları.

Birisi matematik tarihçisine sormalıdır.


6

Sayaçlar programlarda çok yaygındır ve bilgi işlemin ilk günlerinde her şey birinci sınıftaydı ...
Programcılar doğal olarak pikselleri korumaya çalıştı ve 'i' temsil etmek için diğer harflerden daha az piksel gerektiriyordu. (Matematikçiler, tembel olarak, en küçük glifle aynı nedenden dolayı seçtiler).
Daha önce de belirtildiği gibi, 'j' doğal olarak takip etti ...

:)


24
Bilgisayar ilk günlerinde, pikseller vermedi mevcut .
SLaks

1
@Slaks, kazanan bir yorum. Sadece yüzümdeki sırıtışları ve oyları okuduğuna bakın. Güzel!
ProfK

"Programcılar doğal olarak pikselleri korumaya çalıştı ve 'i', temsil etmek için diğer harflerden daha az piksel gerektiriyordu." <<< çok komik.
ocodo

1
... ve böylece erken optimizasyon doğdu!
Gerrat

4

Birkaç nedenden dolayı kullanıyorum.

  • Genellikle döngülerim int tabanlıdır, bu nedenle klavyede başparmağımla işlediğim alan dışında "int i" yazarak tam bir üçgen oluşturursunuz. Bu yazmak çok hızlı bir işlemdir.

  • "İ", her biri mantıklı olan yineleyici, tamsayı, artış veya dizin anlamına gelebilir.

Kişisel kullanımlarım bir kenara bırakıldığında, FORTRAN'dan türetilmesi teorisi doğrudur, burada tamsayı I - N harflerini kullanır.


4

FORTRAN'ı 1965'te bir Control Data Corp. 3100'de öğrendim. 'I' ile 'N' ile başlayan değişkenlerin tamsayı olduğu ima edildi. Örnek: 'IGGY' ve 'NORB' tamsayılar, 'XMAX' ve 'ALPHA' kayan nokta idi. Ancak, açık bir bildirim yoluyla bunu geçersiz kılabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.