Exercícios Resolvidos de Analisando seu programa

Ver Teoria

Enunciado

Copie o programa abaixo em um script do MATLAB:

O codigo acima plota a série:

∑ n = 1 ∞ 1 n 2

Para inteiros de 1 a 100 e soma os primeiros 100 elementos da série. A soma dos 100 primeiros elementos desta série é aproximadamente 1,635.

Usando o debugger do MATLAB, corrija eventuais erros do código. Verifique ao final se a soma obtida corresponde a 1,635.

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.

O programa plota a série ∑ n = 1 ∞ 1 n 2 , para inteiros de 1 a 100, e faz a soma dos 100 primeiros elementos. Ao final, devemos checar se o resultado da soma dá 1,635.

Quando o programa rodar sem problemas e o resultado bater, todos os erros do código foram corrigidos.

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 linha 1, temos o comando c l e a r   a l l . 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 linha 2, o comando c l c 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.

Para criar todos os inteiros de 1 a 100 e podermos gerar a série ∑ n = 1 ∞ 1 n 2 , é criado o vetor x na linha 4. O vetor x vai de 1 a 100, a um passo de 1.

Em seguida, na linha 5, são criados os 100 primeiros elementos da série ∑ n = 1 ∞ 1 n 2 , a partir do vetor x . Os 100 elementos são armazenados no vetor y .

Na linha 6, é gerado o gráfico da série, por meio da função p l o t ( ) .

Finalmente, na linha 7, é feita a soma dos 100 primeiros elementos da série, por meio da função s u m ( ) . A função s u m ( ) soma os elementos do vetor de entrada, no caos aqui, o vetor y .

Note que a linha 7 não termina com ponto e vírgula (;). Isso faz com que o resultado de s u m ( y ) apareça no Command Window sem nós termos que pedir.

Já sabemos o que acontece em cada linha do código, bora rodar nosso programa pela primeira vez!

Vixe, deu erro:

O MATLAB avisou que tem um erro na linha 5, dizendo que uma matriz não tem as dimensões corretas para ser elevada a uma potência. Isto quer dizer que o problema está em x ^ 2 .

Passo 3

O MATLAB só consegue elevar a uma potência matrizes quadradas. Além disso, não queremos elevar o vetor ao quadrado, mas sim cada elemento de x para criarmos a série. Para fazermos isto, coloque um ponto ao lado de x na linha 5:

Bora ver se o problema foi corrigido? Rode o programa novamente. Deve ter aparecido a seguinte mensagem de erro:

O MATLAB nos diz que há um erro na linha 5 e que este erro está relacionado à operação de divisão. Ele diz que as dimensões das matrizes não batem.

Vamos criar um breakpoint na linha 5 para vermos o que está errado. Para criar um breakpoint, clique na barra cinza à esquerda do código, na linha 5 (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, este é o breakpoint:

Execute o programa novamente. O MATLAB entra em modo debugger e vai interromper a execução quando chegar na linha do breakpoint:

Podemos ver os resultados das linhas de código que estão acima da flechinha verde. Vamos ver como é o vetor x , colocando o cursor sobre ele:

O vetor x tem dimensões 1 × 100 . Não conseguimos fazer a divisão na linha 5 porque o que está no numerador é um número real.

Para conseguirmos fazer a divisão, acrescente um ponto ao lado do 1 na linha 5, como na imagem abaixo:

Passo 4

Vamos executar o programa novamente, para vermos se corrigimos o erro e se aparece algum outro. Antes disso, pare o debugger clicando em “Quit Debugging”:

Rode o programa. Seguindo o passo a passo daqui, não é para ter mais nenhum erro. É para o seguinte gráfico ser gerado:

E o resultado da soma dos elementos de y deve aparecer no Command Window:

Veja que é o mesmo valor dado no enunciado.

Pronto! O programa está corrigido!

Resposta

Ei, a resposta está no passo a passo :)