6.11. Indique quais os erros de programação ou de compilação que os seguintes trechos apresentam:

1.1

/*

*Copyright: Asneira Suprema Software!!!

*/

#include

Main ()

{int v[10], i;

For (i=1; i

V[i] = 0;

}

1.2

/*

*Copyright: Asneira Suprema Software!!!

*/

#include

Main ()

{int v[10], i;

For (i=1; i

V[

V[i] = 101;

}

Passo 1

Vamos resolver os problemas da ‘Asneira Suprema’!

Na 1.1 a gente tem um for rodando de 1 até 10 , mas acontece que os índices do vetor não começam em 1 , começam em 0 , portanto deveríamos rodar o for de 0 até 9 .

Passo 2

Agora vamos para 1.2.

Aqui o laço vai rodando começando do 0 , mas acontece que quando o laço termina o valor de i é 10 , então quando chegarmos na linha

v i = 101 ;

Na verdade estamos fazendo

v 10 = 101 ;

Mas o vetor foi definido para ir do índice 0 até 9 , v [ 10 ] não está definido, e aí está o problema.

Passo 3

Vamos para 1.3. Aqui a gente tá usando a variável i para muitas coisas. O vetor é definido tendo o tamanho i, mas ao decorrer do programa essa variável vai mudando de valor, mas o vetor tem tamanho constante, então temos aí nosso erro, estamos tentando mudar o tamanho do vetor no meio do programa.

Passo 4

Estamos na 1.4. C é uma linguagem que pede que você deixe tudo muito claro, se você não deixar tudo perfeitamente claro vai dar erro na compilação, que é o caso desse problema. Aqui não definiram o tamanho do vetor, então o compilador se perdeu.

Passo 5

Agora é a vez da 1.5. Aqui definiram certinho o tamanho do vetor, mais aí colocaram mais elementos do que o vetor suporta. O vetor tem tamanho 4 , mas definiram 5 elementos para ele, então vai dar erro na compilação.

Passo 6

Finalmente estamos na 1.6, só falta essa.

Aqui o erro é mais sútil. Quando a gente escreve

# d e f i n e   M A X   30

Estamos definindo que M A X é 30 , mas quando fazermos

# d e f i n e   M A X   30 ;

Estamos definindo que M A X é 30 ; , com o ponto e vírgula. Então temos um erro de sintaxe, porque tecnicamente escreveram

i n t   v 30 ; ;

E não é assim que definimos um vetor.

Resposta

1.1

Os índices não conferem com o vetor.

1.2

Existe um índice maior do que o tamanho do vetor sendo usado.

1.3

A dimensão do vetor não é constante.

1.4

A declaração do vetor está errada.

1.5

Os elementos do vetor superam seu tamanho.

11.6

Tem um erro de sintaxe. O vetor é declarado como i n t   v M A X ; ;