Crie um script que execute as operações aritméticas a seguir. Atribua os resultados de cada item a variáveis no workspace. Caso haja algum erro, reporte-o e justifique:
(a)
(a)
Passo 1
O que o enunciado pede: calcular a expressão
e escrever um script que execute essa operação atribuindo o resultado a uma variável no workspace. Se ocorrer algum erro durante a execução, devo reportar e justificar. Informações dadas: a expressão aritmética é exatamente
. Não há outros dados.
Passo 2
Entendendo a prioridade das operações (regra que o script seguirá automaticamente): em uma expressão aritmética a divisão e multiplicação têm prioridade sobre adição e subtração. Isso significa que primeiro devemos calcular
, depois somar
e por fim subtrair o resultado da divisão do resultado da soma. Vou mostrar as contas passo a passo antes de escrever o script.
Passo 3
Calculemos a divisão
. Em forma de fração é já
. Em forma mista:
Em forma decimal periódica:
(ou seja,
). Essa é a parcela que será subtraída do resto da expressão.
Passo 4
Calculemos a soma
:
Passo 5
Agora fazemos a subtração final:
primeiro escrevemos tudo com denominador comum para ver o resultado exato:
primeiro escrevemos tudo com denominador comum para ver o resultado exato:
Portanto o resultado exato é
. Em decimal isso corresponde a
(aproximadamente
se o computador mostrar 15 casas).
Passo 6
Agora o script. Vou propor um script MATLAB/Octave (arquivo
calcula_a.m) — porque o enunciado pede variável no workspace, e “workspace” é termo usado em MATLAB/Octave. O conteúdo do arquivo deve ser este (cada linha é uma instrução):% calcula_a.m -- calcula (a) 2+3-20/3 e salva no workspace
% versão numérica (padrão de ponto flutuante)
result_a = 2 + 3 - 20/3;
% opcional: armazenar também o valor exato como fração usando symbolic (se disponível)
% se você não tiver Symbolic Toolbox, comente as linhas abaixo
if exist('sym','file') == 2
result_a_sym = sym(2) + sym(3) - sym(20)/sym(3);
end
% mostrar no console (remova o ponto-e-vírgula se quiser ver automaticamente)
disp('result_a (numérica) =');
disp(result_a);
if exist('result_a_sym','var')
disp('result_a_sym (exata, symbolic) =');
disp(result_a_sym);
end
Explicação do que o script faz, linha a linha:
- A linha
result_a = 2 + 3 - 20/3;calcula a expressão usando a prioridade normal (divideprimeiro, depois faz soma e subtração) e guarda o resultado na variável result_ano workspace. O ponto-e-vírgula final suprime a impressão automática; retire-o se quiser ver o valor imediatamente ao rodar. - As linhas dentro do bloco
if exist('sym','file') == 2usam o pacote simbólico (Symbolic Toolbox) para criar uma versão exata em forma de fração. Essa parte é opcional: funciona só se o MATLAB/Octave tiver suporte a simbólico. No Octave você pode ter o pacote symbolic. dispserve para imprimir valores legíveis no console, útil para conferência.
Passo 7
Possíveis erros e justificativas:
- Erro de divisão por zero: não ocorre aqui porque o denominador é
. - Erro de falta do Symbolic Toolbox: se você executar as linhas simbólicas sem ter o pacote, ocorrerá erro de função não encontrada. No script acima eu coloquei um teste
exist('sym','file')para evitar esse erro — assim, se o toolbox não estiver instalado, a parte simbólica é simplesmente ignorada e não dá erro. - Erros de sintaxe: certifique-se de salvar o arquivo como
calcula_a.me rodá-lo no MATLAB/Octave com o diretório atual correto. - Observação sobre representação:
result_aserá em ponto flutuante e pode aparecer comodevido à forma de armazenamento em binário; o valor exato racional é .