Copie o programa abaixo em um script do MATLAB:
Descubra porque o programa não funciona, usando o debugger do MATLAB.
Passo 1
Este exercício pede que identifiquemos os erros do programa do enunciado, usando o debugger do MATLAB. Devemos copiar o programa em um novo script e rodá-lo algumas vezes, até que não apareçam mais mensagens de erro.
Passo 2
Crie um script novo no MATLAB e copie nele o programa do enunciado.
Antes de rodarmos o programa e procurarmos eventuais erros, vamos ver o que cada linha significa:
Na primeira linha, temos o comando . Este comando limpa o Workspace do MATLAB cada vez que o programa é rodado. Como procuramos erros no código e teremos que rodá-lo várias vezes para ver se corrigimos alguma coisa, é importante limpar o Workspace a cada tentativa.
Na segunda linha, o comando limpa o Command Window do MATLAB cada vez que o programa é executado. Novamente, como vamos rodar o código diversas vezes, é importante limpar o Command Window a cada tentativa, para ficar mais fácil de ver qual erro foi corrigido e qual é o erro a ser corrigido na sequência, caso exista.
Na linha 4, criamos uma variável chamada que armazena o número 9. Em seguida, criamos o vetor , que vai de 1 a , com um passo igual a 2.
Na linha 6, criamos o vetor , que inicia em 10 e termina em 1, com um passo de -1.
Finalmente, na linha 7, somamos os vetores e e armazenamos o resultado no vetor .
Agora que sabemos o que cada linha faz, vamos rodar nosso programa pela primeira vez.
Ooops, apareceu o seguinte erro no Command Window:
Temos um erro na linha em que os vetores e são somados (no meu script, o comando ficou na linha 7, pode ser que no seu script ele esteja em uma linha diferente, dependendo da forma que você copiou o programa). O MATLAB diz que as dimensões das matrizes não batem. Logo, deve ter alguma coisa na criação dos vetores e que fez com que eles tenham comprimentos diferentes, fazendo com que não consigamos somá-los.
Vamos encontrar essa coisa debugando o nosso programa.
Passo 3
Usamos breakpoints para debugar programas. Lembrando que um breakpoint é um ponto marcando uma linha de código, onde o programa vai parar temporariamente de ser executado, permitindo que a gente analise tudo o que aconteceu antes.
Como o erro está na linha 7, vamos criar um breakpoint nessa linha. Para isto, clique na barra cinza à esquerda do código, na linha 7 (ou na linha onde o MATLAB indicou que o erro aparece, caso você tenha copiado o programa um pouquinho diferente).
Vai aparecer um ponto vermelho onde você clicou, que é o nosso breakpoint:
Execute o programa novamente. O MATLAB entra em modo debugger e vai interromper a execução quando chegar na linha do breakpoint:
A interrupção é indicada pela flechinha verde, podemos ver tudo que tem acima dela. Como tivemos um problema de dimensões de matrizes, vamos dar uma olhada nos vetores e , para vermos os tamanhos deles. Para vermos os elementos e as dimensões dos vetores, devemos deixar o cursor do mouse sobre as variáveis.
Ao fazermos isso com o vetor , vemos que ele tem dimensões , isto é, ele tem 5 elementos:
Quando fazemos o mesmo com o vetor , vemos que ele tem dimensões :
Em outras palavras, tem o dobro de elementos de . É por isso que o MATLAB não consegue somar os dois.
Passo 4
Vamos tentar corrigir o problema. Antes, pare o debugger clicando em “Quit Debugging”:
Agora, precisamos encontrar uma forma de fazer com que os vetores e tenham o mesmo comprimento. Existem várias formas de fazer isso. Uma delas é mudarmos o valor de .
Pense comigo: se começa em 1 e tem passo 2, quanto deve ser para que tenha 10 elementos? O número de elementos de um vetor criado com o comando:
Pode ser calculado a partir da seguinte expressão:
Para o vetor :
Logo, a equação fica:
Temos que .
Vamos então trocar o valor de e debugar novamente para verificar como ficou o vetor :
Agora tem dimensões , assim como . Desta forma, conseguiremos somar os dois vetores sem problemas.
Passo 5
Vamos ver agora está tudo certo? Para executar a linha 7 no modo debugger, aperte F10 ou o botão step.
Quando você fizer isso, a flechinha verde vai descer uma linha de código, indicando que a linha 7 foi executada sem erros. Como a linha 7 é a última linha do programa, esta flechinha muda de orientação, apontando para baixo:
Note também que não apareceu nenhuma mensagem de erro no Command Window, apenas uma frase dizendo que o script acabou:
Logo, o MATLAB conseguiu somar os vetores e e armazenar a soma em , sem problemas.
Pronto! O programa está corrigido! Se quiser dar uma última verificada, apague o breakpoint clicando nele e mande o programa rodar novamente. Com as alterações feitas neste passo a passo, não deve aparecer nenhuma mensagem de erro.
Resposta
Ei, a resposta está no passo a passo :)