NormalizarDuplo paradoxo - página 7

 
transcendreamer:

Por alguma razão, as casas nas ruas são numeradas a partir de 1

andares em edifícios (geralmente) a partir de 1

quartos com 1

Por que os mandados são numerados a partir de 0?

E as horas, minutos e segundos são numerados a partir de 0.

 
Contender:

E as horas, minutos e segundos são numerados a partir de 0.

e também a velocidade e outras coisas

porque o 0 no velocímetro tem um significado físico - velocidade zero.

E zero é um disparate.

Na linguagem humana, é comum dizer "primeiro", "segundo"...

Alguém já ouviu falar em "in-zero"?

...........

Ainda é preciso subtrair um da TotalOrders()

Não entendo esta teimosia que diz que zero é mais conveniente

assim como no ArraySize, você tem que subtrair um.

qual é o objetivo da conveniência?

 

todo o tema está cada vez mais parecendo uma coleção de piadas sobre programadores

sem ofensa intencional

aqui está um exemplo

-- um programador pergunta a um colega -- "Posso pegar emprestado mil até o dia do pagamento?

-- leve 1024 para ficar quites.

 
transcendreamer:

de forma pouco convincente

quais são as vantagens de contar a partir do 0?

Para um ser humano, não para uma máquina

De alguma forma, eu não me propus a convencer ninguém, o principal é que eu mesmo estou convencido. Para isso você tem que conquistar todos os tipos de algoritmos complexos com arrays.
 
Integer:
Eu não quero convencer ninguém, o principal é que eu mesmo estou convencido disso. Para isso, terei que conquistar todos os tipos de algoritmos complicados com arrays.

Eu também não estou impondo minha opinião.

quando tive que trabalhar com matrizes, vi que muitas vezes era conveniente deslocar um elemento por seu índice em um loop

mas tem havido muitos contra-exemplos onde é intuitivamente mais fácil ter o último índice igual à dimensão

ou este exemplo: for(int i=0; i<variables+constants; i++)

aqui está a enumeração de variáveis e constantes; seria intuitivamente mais conveniente se i=variáveis+1 significassem transição para a área de constantes

ou seja, pelo número de variáveis + 1 - significa que as variáveis terminaram, as constantes começaram - tudo é simples

mas não - temos que lembrar de diminuir em um (ou fazer uma conversão separada do número variável para o índice da matriz)

portanto, nem tudo é tão simples.

 
transcendreamer:

Eu também não estou impondo minha opinião.

quando tive que trabalhar com matrizes, vi que muitas vezes era conveniente deslocar um elemento por seu índice em um loop

mas tem havido muitos contra-exemplos onde é intuitivamente mais fácil ter o último índice igual à dimensão

ou este exemplo: for(int i=0; i<variables+constants; i++)

aqui está a enumeração de variáveis e constantes; seria intuitivamente mais conveniente se i=variáveis+1 significassem transição para a área de constantes

ou seja, pelo número de variáveis + 1 - significa que as variáveis terminaram, as constantes começaram - tudo é simples

mas não - temos que lembrar de diminuir em um (ou fazer uma conversão separada do número variável para o índice da matriz)

portanto, não é tudo tão simples assim.

Porque não há como fugir da matemática escolar com a contagem de um.

Quando se conta a partir de 0, não é preciso lembrar de nenhuma unidade, tudo se soma miraculosamente por si só.

Tudo é simples e claro:

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

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

ou

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

Se de repente fizer uma contagem regressiva a partir de 1, então há algo errado com o algoritmo.

 
transcendreamer:

e também a velocidade e outras variáveis

porque o 0 no velocímetro tem um significado físico - velocidade zero

e zero é um disparate.

A linguagem humana é para dizer "primeiro", "segundo"...

Alguém já ouviu falar em "in-zero"?

...........

Ainda é preciso subtrair um da TotalOrders()

Não entendo esta teimosia que diz que zero é mais conveniente

assim como é mais conveniente subtrair um do ArraySize.

Qual é o objetivo da conveniência?

Quem está forçando você a falar de "zeros"? Diga-o como quiser, os primeiros , por exemplo. Mas não se esqueça da indexação.

OrdensTotal() lhe dará 10, se o número de posições em aberto == 10. Se você subtrair então um, então você introduz um erro nos cálculos.

ArraySize() lhe dará 10 se o array tiver 10 células. Se você subtrair 1 depois disso (não para referência a uma célula por seu índice, mas para manipulações com o tamanho da matriz), você comete um erro nos cálculos.

O número de pedidos é dado a você no formato a que está acostumado. Se houver 10 deles, você receberá 10. E quando você se refere a um elemento de matriz por índice, você não deve esquecer de começar do zero.

 

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

aqui é onde o significado físico da variável i é perdido

Eu não entendo como você pode dizer isso seriamente.

não é natural contar a partir do zero.

na antiga Babilônia costumavam contar por 12, mas os judeus espertos inventaram o sistema decimal porque há 10 dedos e todos ainda o usam.

os romanos chegaram a números terríveis, mas os árabes espertos roubaram números normais dos índios e isso pegou.

pessoas em todos os lugares contam a partir de 1 e apenas uma pequena porcentagem vive de forma diferente.

por exemplo int n=OrdersTotal();

seria bastante fácil e intuitivo para(i=1; i<=n; i++) {OrderSelect(i,.......);} // se a numeração fosse humana normal

e o significado físico da variável i é tão simples e claro quanto a luz solar: selecione a primeira ordem, selecione a segunda, a terceira... até chegar ao último

a qualquer momento, podemos verificar a variável i e por seu valor nos dizer com que ordem estamos trabalhando, sem nenhum turno

A função DisplayChart(int draw_bars) vazia, por exemplo, desenha as últimas barras draw_bars

para acessar a primeira barra no buffer de indicadores, você precisa subtrair 1: draw_bars-1

é apenas uma ação extra a cada vez e é doloroso lembrar-se disso

 
Por quê? Também o tema de um filme de ação de Hollywood. Há muito tempo atrás, há 300 anos, todos os terráqueos estavam divididos em duas classes: alguns acreditavam que é preciso contar a partir de um, enquanto outros acreditavam que é preciso começar do zero. E durante 300 anos houve uma luta feroz e implacável entre eles... e então ele aparece (como um imortal montanhês) e... explica a todos que a contagem regressiva deve ser revertida (e um pouco de "askew"). Depois há todo tipo de coisas e um final feliz.
 
transcendreamer:

Por alguma razão, as casas nas ruas são numeradas a partir de 1

andares em edifícios (geralmente) a partir de 1

quartos com 1

Por que eles numeram os mandados em 0?

Pisos em edifícios? É uma questão de como. O que os russos chamam de "andar térreo", os alemães chamam de "erdgeschoss", os alemães chamam o primeiro andar de "erste stok". Na escola isso me deu um choque cultural, que depois passou - há muito do amigo de Horatio...

Os ingleses não têm 13 números em alguns lugares, seja em casas ou apartamentos.

As ordens não têm um zero tic-tac. E o fato de que a conta começa do zero, por isso é especificamente mencionada na documentação.

Se você quiser programar, programe de acordo com as regras dos programadores.

Razão: