Paradoja de NormalizarDoble - página 7

 
transcendreamer:

Por alguna razón, las casas de las calles están numeradas desde el 1

pisos en edificios (normalmente) de 1

habitaciones con 1

¿Por qué se numeran las órdenes desde el 0?

Y las horas, los minutos y los segundos se numeran desde el 0.

 
Contender:

Y las horas, los minutos y los segundos se numeran desde el 0.

y también la velocidad y otras cosas

porque el 0 en el velocímetro tiene un significado físico: velocidad cero.

Y el cero es una tontería.

En el lenguaje humano, es común decir "primero", "segundo"...

¿alguien ha oído hablar de decir "en-cero"?

...........

Todavía hay que restar uno de TotalOrders()

No entiendo este empecinamiento de quienes dicen que el cero es más conveniente

al igual que es más conveniente restar uno a ArraySize.

¿para qué sirve la comodidad?

 

todo el tema se parece cada vez más a una colección de chistes sobre programadores

sin ánimo de ofender

aquí hay un ejemplo

-- un programador le pregunta a un colega -- "¿Me puedes prestar mil hasta el día de pago?

-- toma 1024 para que sea parejo.

 
transcendreamer:

de forma poco convincente

¿cuáles son las ventajas de contar desde 0?

Para un hombre, no para una máquina

De alguna manera, no me propuse convencer a nadie, lo principal es que yo mismo estoy convencido. Para ello hay que conquistar todo tipo de algoritmos complejos con arrays.
 
Integer:
No quiero convencer a nadie, lo principal es que yo mismo estoy convencido de ello. Para ello, tendré que conquistar todo tipo de algoritmos complicados con arrays.

Tampoco voy a imponer mi opinión.

cuando tuve que trabajar con matrices, vi que a menudo era conveniente desplazar un elemento por su índice en un bucle

pero ha habido muchos contraejemplos en los que es intuitivamente más fácil tener el último índice igual a la dimensión

o este ejemplo: for(int i=0; i<variables+constantes; i++)

aquí está la enumeración de variables y constantes; sería intuitivamente más conveniente si i=variables+1 significara la transición al área de las constantes

es decir, por el número de variables + 1 - significa que las variables han terminado, las constantes han comenzado - todo es simple

pero no - tenemos que recordar disminuir en uno (o hacer una conversión separada del número de la variable al índice del array)

así que no todo es tan sencillo.

 
transcendreamer:

Tampoco voy a imponer mi opinión.

cuando tuve que trabajar con matrices, vi que a menudo era conveniente desplazar un elemento por su índice en un bucle

pero ha habido muchos contraejemplos en los que es intuitivamente más fácil tener el último índice igual a la dimensión

o este ejemplo: for(int i=0; i<variables+constantes; i++)

aquí está la enumeración de variables y constantes; sería intuitivamente más conveniente si i=variables+1 significara la transición al área de las constantes

es decir, por el número de variables + 1 - significa que las variables han terminado, las constantes han comenzado - todo es simple

pero no - tenemos que recordar disminuir en uno (o hacer una conversión separada del número de la variable al índice del array)

así que no es tan sencillo.

Porque no hay forma de escapar de las matemáticas escolares con la cuenta de uno.

Al contar desde 0, no es necesario recordar ninguna unidad, todo se suma milagrosamente por sí mismo.

Todo es sencillo y claro:

for(int i=0; i<variables; i++){}

for(int i=variables; i<variables+constantes; i++){}

o

for(int i=0; i<variables+constantes; i++){if(i<variables){}else{}}

Si de repente hace una cuenta atrás desde el 1, entonces hay algo mal en el algoritmo.

 
transcendreamer:

y también la velocidad y otras variables

porque el 0 en el velocímetro tiene un significado físico: velocidad cero

y el cero es una tontería.

El lenguaje humano es decir "primero", "segundo"...

¿alguien ha oído hablar de decir "en-cero"?

...........

Todavía hay que restar uno de TotalOrders()

No entiendo este empecinamiento de quienes dicen que el cero es más conveniente

al igual que con ArraySize, hay que restar uno.

¿Qué sentido tiene la comodidad?

¿Quién te obliga a hablar de "ceros"? Dígalo como quiera, los primeros por ejemplo. Pero no te olvides de la indexación.

OrdersTotal() le dará 10, si el número de posiciones abiertas == 10. Si se resta entonces uno, se introduce un error en los cálculos.

ArraySize() le dará 10 si el array tiene 10 celdas. Si se resta 1 después de eso (no para la referencia a una celda por su índice, sino para las manipulaciones con el tamaño del array), se comete un error en los cálculos.

El número de pedidos se le da en el formato al que está acostumbrado. Si hay 10 de ellos, obtendrá 10. Y cuando te refieras a un elemento de la matriz por su índice, no debes olvidar empezar desde cero.

 

  for(int i=0; i<variables+constants; i++){if(i<variables){}else{}}

aquí es donde se pierde el significado físico de la variable i

No entiendo cómo puedes decir eso en serio.

es antinatural contar desde cero.

en la antigua Babilonia contaban de 12 en 12, pero los inteligentes judíos inventaron el sistema decimal porque hay 10 dedos y todo el mundo lo sigue utilizando.

los romanos llegaron con números terribles, pero los árabes astutos robaron los números normales de los indios y se puso de moda.

la gente en todas partes cuenta desde 1 y sólo un pequeño porcentaje vive de forma diferente.

por ejemplo int n=Total de pedidos();

sería bastante fácil e intuitivo for(i=1; i<=n; i++) {OrderSelect(i,.......);} // si la numeración fuera humana normal

y el significado físico de la variable i es tan simple y claro como la luz del sol: seleccionar el primer orden, seleccionar el segundo, el tercero... hasta llegar al último

en cualquier momento, podemos dar salida a la variable i y utilizar su valor para saber con qué orden estamos trabajando, sin ningún desplazamiento

La función void DisplayChart(int draw_bars), por ejemplo, dibuja draw_bars de las últimas barras

para acceder a la primera barra del buffer del indicador, hay que restar 1: draw_bars-1

es una acción extra cada vez y es doloroso recordarlo

 
¿Por qué? También el tema de una película de acción de Hollywood. Hace mucho tiempo, 300 años, todos los terrícolas se dividían en dos clases: unos creían que había que contar desde el uno, mientras que otros creían que había que empezar desde el cero. Y durante 300 años ha habido una lucha feroz e implacable entre ellos... y entonces aparece (como un highlander inmortal) y... explica a todo el mundo que la cuenta atrás debe ser invertida (y un poco torcida). Luego hay todo tipo de cosas y un final feliz.
 
transcendreamer:

Por alguna razón, las casas de las calles están numeradas desde el 1

pisos en edificios (normalmente) de 1

habitaciones con 1

¿Por qué numeran las garantías en 0?

¿Pisos en los edificios? Es una cuestión de cómo. Lo que los rusos llaman "planta baja", los alemanes lo llaman "erdgeschoss", los alemanes llaman al primer piso "erste stok". En el colegio me produjo un choque cultural, que luego se me pasó: hay mucho amigo de Horacio...

Los ingleses no tienen 13 números en algunos lugares, ni en las casas ni en los pisos.

Las órdenes no tienen un marcador de cero. Y el hecho de que la cuenta comience desde cero, por lo que se menciona específicamente en la documentación.

Si quiere programar, programe según las reglas de los programadores.