Yetki argümanı
Şey ... Görünüşe göre, en son dilleri de dahil olmak üzere çoğu dil sıfır tabanlı. Bu diller oldukça yetenekli insanlar tarafından yazılmış olduğundan, arkadaşın yanlış olmalı ...
Neden bir
neden 1 sıfırdan daha iyi bir başlangıç indeksi olsun ki? Neden 2 ya da 10 değil? Cevabın kendisi ilginç çünkü fikri savunan insanların düşünce süreci hakkında çok şey gösteriyor.
İlk argüman, çünkü daha doğal olmasıdır 1 genellikle tek kişilik çoğunluğu için, en azından tüm diğerlerinden önce ...
Bir numaralı bir argüman son endeks de dizinin büyüklüğe sahip olması ...
Bu tür argümanlar için genellikle duyduğum nedenlerin "kalitesinden" hala etkilendim ... Ve daha fazlasını hatırlattığımda ...
Neden sıfır değil?
... "Bir-temelli" notasyonlar, fazla olmasa da, yüzyıllarca sıfırın varlığını göz ardı eden batı kültüründen geriye kalkar.
İster inanın ister inanmayın, orijinal gregorian takvimi -3, -2, -1, 1, 2, 3'den gidiyor ... Batı bilimine sağladığı problemi hayal etmeye çalışın (örneğin, 1 Ocak -2'den itibaren kaç yıl) Orjinal Gregoryen takviminden daha fazla görmek için 1 Ocak'a kadar.
Tek tabanlı dizileri saklamak gibidir (peki, bunun için küçültülmüş olacağım ... ^ _ ^ ...), 21. yüzyılda miller ve avlular ...
Neden Sıfır? Çünkü matematik!
İlk (OOops ... Üzgünüm ... tekrar deneyeceğim)
Sıfır , Sıfır hiçbir şey, bir şey bir şey. Bazı dini metinler de, "Başlangıçta hiçbir şey yoktu" ifadesini tutar. Bilgisayarla ilgili bazı tartışmalar, dini tartışmalar kadar yakıcı olabilir, bu yüzden bu nokta göründüğü kadarıyla konu dışı değil ... ^ _ ^
İlk olarak , sıfır tabanlı bir diziyle çalışmak ve sıfırıncı değerini yok saymak, tek tabanlı bir diziyle çalışmaktan daha kolaydır ve sıfırıncı değerini bulmak için dolaşır. Bu sebep, eskisi kadar aptalca, ancak o zaman, tek tabanlı dizilerin lehine olan orijinal argüman da oldukça yanlıştı.
İkincisi , sayılarla uğraşma şansınız yüksek olduğunda, bir veya daha fazla matematikle başa çıkacağınızı ve matematikle uğraşırken, şansların iyi olmadığına ve aptalca hacklerin eski sözleşmelerde dolaşmalarına izin vermediğinizi hatırlayalım. Bir-temelli notasyon matematiği sarstı ve yüzyıllarca tarihlendi ve hatalarımızdan ders alarak geleceğe yönelik bilimlerde (bilgisayar dilleri dahil) önlemek için çaba göstermeliyiz.
Üçüncüsü , bilgisayar dili dizileri donanıma bağlı olarak, bir C tamsayı dizisi atayın ve işaretçiyi 10 indisleri sağa hareket ettirdiğinizde doğal bir [-10 - 10] dizisine sahip olursunuz. Bu donanım için doğal değildir. Ama bu matematik içindir. Elbette, matematik eski olabilir, ama son kontrol ettiğimde dünyadaki çoğu insan olmadığına inanıyordu.
Dört , Daha önce başka bir yerde işaret ettiği gibi, ayrık konum için bile (ya da ayrık değerlere indirgenmiş mesafeler için bile), ilk indeks bir binadaki zemin (sıfırdan başlayarak) gibi azalan geri sayım (3, 2, 1, SIFIR) gibi sıfır olacaktır. !), yer yüksekliği, görüntünün ilk pikseli, sıcaklık (273 K su donma sıcaklığı olarak mutlak sıfır için sıfır Kelvin veya sıfır santigrat derece). Aslında, biriyle başlayan tek şey, " ilk , ikinci , üçüncü , vb." Geleneksel yoludur. beni doğal olarak bir sonraki noktaya götüren yineleme notasyonu ...
Beş aşağıdaki (doğal olarak aşağıdaki noktası önceki ) üst düzey kaplar dizine göre, erişilebilir olmasıdır, ancak ile yineleyicileri , endeks sürece kendi içinde bir değeri vardır. "Üst seviye dil" avukatınızın bundan bahsetmediğine şaşırdım. Dizinin kendisinin önemli olması durumunda, matematikle ilgili bir sorunuz olduğu zamanın yarısını oynayabilirsiniz. Ve böylece, konteynırınızın matematik dostu olmasını ve 1’den başlayarak "işinize yarayan gregorian takvimi" gibi matematik engelli olmamasını ve işe yaraması için haksız kesilmiş korsanlara ihtiyaç duymasını istersiniz.
Sonuç
Program arkadaşınız tarafından verilen argüman yanlıştır, çünkü doğaya göre bulanık olan konuşma dillerini / yazılı dil alışkanlıklarını, bilgisayar dillerine (talimatınızın bulanıklaştırılmasını istemediğiniz) ve yanlış bir donanıma bağlayarak gereksiz yere bağlar. Bu sorunun nedeni, dilleri soyutlamada yükseldikçe, sıfıra dayalı dizinin geçmişte kaldığı konusunda sizi ikna etmeyi umuyor.
Sıfır tabanlı diziler matematikle ilgili nedenlerden dolayı sıfır tabanlıdır. Donanımla ilgili nedenlerden dolayı değil.
Şimdi, eğer bu programcı arkadaşınız için bir sorunsa, yineleyiciler ve foreach döngüleri gibi gerçek yüksek seviyeli yapılarla programlamaya başlamasını sağlayın.