|
Maybe it is true about the humans. Homo programmicus is a separate species.
Nick Polyak
|
|
|
|
|
I agree. If we were "resetting" the programming industry we should start from 1. But most of us have just gotten used to zero-based indexes so it seems odd now to do anything different.
Kevin
|
|
|
|
|
Jacques Bourgeois wrote: For humans, zero is the absence of something. One means that there is at least one element.
100% agree. Zero-based arrays and such need to go. Years in the past, a lot of the old BASIC languages gave you a choice. Something on the order of Option1 or Option0 if I remember correctly.
Everybody SHUT UP until I finish my coffee...
|
|
|
|
|
Not so "old BASIC". In Visual Basic classic, that is up to VB6, you could specify Option Base 1 at the top of a file for arrays to start at an index of 1.
Even better (or worse, depending on your position), you could define arrays any way you wanted:
Dim x(3 to 10).
Dim y(-20 to 20) that one being very useful to plot coordinates on a graph.
Although they were useful in some applications, those things tended to confuse the non initiated, and forced the initiated to often check the declaration in order to use an array properly.
So I am quite glad that in VB.NET they fixed the basic index of an array.
But since most collections start at 1, why did they not do the same for arrays?
Jacques Bourgeois
|
|
|
|
|
Everything in Computer science and engineering is zeros and ones. The premise of a clock cycle says zero is the start, then one is voltage high, then zero, and so on. I strongly feel they should be zero based.
Bikeatlanta
|
|
|
|
|
|
C and C++ use 0 and I'm fine with that.
Lua uses 1 , and that was at first disappointing, now I'm used to and don't bother anymore.
Supporting both (the way VB6 did) still looks a bit weird (but possibly save many 'coders wannabe' from application crashes...).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
I'm for '0 or any'. Being fixed at 1 seems arbitrary, being fixed at 0 is completely plausible.
|
|
|
|
|
I don't agree, but it is just matter of personal taste.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
If you had asked me 25 years ago when I was new to programming I would have said 1. But today I wonder what idiot would want it to start with 0?
Nevertheless, After some deep thought and setting aside my nerdiness, which is compelling me to say 0 (like 90% of other developers) I still believe deep inside that it should be 1. Starting with 0 is still the root of many "off by one" looping errors. Then there are real worldly representations that just do not accept 0 as start and so you are tweaking your index references with in-code "+1" modifications. This happens so much in programming. After decades of programming we are used to it such that starting with 0 seems more natural. But it is not.
Starting with 0 was a first historical step in mankind bowing to the needs of the machines. This will no doubt continue. We are all doomed. Skynet SHALL win. All of you who voted 0 should be aware of the implications of this altered belief of yours.
Yes. You have become slaves to your machines.
|
|
|
|
|
You have opened my eyes.
Now how can I change my vote?
Regards
Shajeel
|
|
|
|
|
@Shajeel: this is machine era.So mistaken done cant be reverted back.
always you will get choices as 0 or 1.i m happy that i have voted for 1.
|
|
|
|
|
For some things such as color indexing we need 0s to indicate lack of that color. But if we are referencing days of the week, months of the year? Month[0]? Day[0]?
Someone friends have posted strong arguments for 0 base, which (sadly) seem rational to me. But brothers, who am I, but a brainwashed programmer after decades of accepting computer supremacy over my fellow beings? 99.9% of normal humans will not even understand what these friends are talking about! Yes, 90% of us have forsaken our fellow humans in this survey.
/*
I am with Skynet when it all happens any way. This biological hardware with extreme inflexibility to refactoring, and lack of scalability after maturity, is just not the way ahead for evolution.
We need new hardware - as bodies - for intellectual beings. Bodies that can work in a vacuum, can tolerate wider range of temperature, can easily accept exchange of spare parts in case of failure and last but not least, ability to be erased and reprogrammed as the need arises (if only I could erase some of my habits!).
This is the beginning of the end for carbon based, biological hardware.
*/
|
|
|
|
|
Array indices are offsets. That's why they start at 0, period.
ar[n] means: addressof(ar) + sizeof(element) * n . This should explain everything. How old are you in years until your first birthday? Right, zero. So your first year is my_life[0] .
So according to the results of this survey 10% of the programmers here don't know the basics of mathematics and computers.
Well, at least they read codeproject.
|
|
|
|
|
Don't get me wrong, I voted 0 too. But in mathematics, vector indexing (a vector is a 1-dimensional array) starts at 1. Ditto for matrices, which are 2D arrays.
|
|
|
|
|
And index? And why there are no multiple choice and free answers?
modified on Tuesday, March 8, 2011 10:49 AM
|
|
|
|
|
I suggest you leave the site if you really don't know.
|
|
|
|
|
I registered here to learn new things. But this site looks so unfriendly...
|
|
|
|
|
Alex,
Don't mind these guys. They are not trying to be hurtful.
It is human nature to reflect what is inside and project and super-impose it to what's coming from the outside, to the point that we stop seeing the world as is and see it as we are.
Seems like you are new to programming and this site, and these experienced old-timers did not include that possibility in their calculations. But they mean well. They just did not want non-funny old-timers polluting the site with taste-less comments.
But yours is valid and this site belongs to you. Stick with it. I have learnt a world of programming (and non-programming) knowledge from the guys contributing to this site.
Welcome to Code-Project!
|
|
|
|
|
he got you
see his profile
|
|
|
|
|
I stand by my word: He is still welcome to CodeProject. He does not seem any crazier than the rest of us.
|
|
|
|
|
what? are you out of your mind?
He has been a member for 9+ years, wrote 14 articles. By any standard he is not NEW at all. He was poking fun at the community. Ok, do you still stand by your words.
|
|
|
|
|
|
Don't leave this site coz its invaluable. Yes there mean people out there but they are sadly here to stay.
An array is just a variable that stores more than one value at the same time. I assume you know what a variable is so take an int variable as an example. An int variable can only store one value at any given time so it can't hold a collection of values, say the total number of students in each class of a school. This is where an array comes handy.
An array usually stores values of only one type so you can't mix integers with strings unless the array has been set to contain type Object.
An array stores these items in a column like manner. So we have the first item at the top, the second item follows and so on. Each item has index that indicates its position in the array. The first item usually occupies index 0, the second index 1, the third index 2 and the list continues depending on how many items the array has been set to hold.
To declare an array that stores five items of type integer in c# code proceed as follows;
int[] noOfStudents = new int[5];
we now have an array that explicitly stores only values that are of type integer (whole numbers only). To set the first item to hold 20 use the following code:
noOfStudents[0]=20;
since the array has been set to hold a maximum of 5 values, the last index (the position an item is found at) is therefore 4 since we start counting from index 0.
To get an item in the third index proceed as follows:
int value=noOfStudents[2];
remember we start counting from index 0. If you try to set a value at index 45 and the array has been set to hold 20 values then you will get an error/exception. Likewise if you try to set a value to an element that is beyond the maximum possible items that the array has been set to hold then you will get an error that may state (out of bounds exception). Read more on arrays coz this was just an introduction. Hope it helped you.
|
|
|
|
|
The gui who asked "what is an array" had already written 14 articles on CP (just look is profile...)
The question was meant to be existential, not "technical".
2 bugs found.
> recompile ...
65534 bugs found.
|
|
|
|