Faça um script que imprime o resultado das seguintes expressões: Utilize as funções disp() e/ou fprintf() para formatar a saída explicando os resultados das expressões.
-1 && 2

Passo 1

O enunciado pede que seja feito um script que imprime o resultado da expressão -1\\ \texttt{&&}\\\ 2 usando as funções disp() e/ou fprintf() para explicar o resultado.
Informações dadas:
  • A expressão a avaliar é -1\\ \texttt{&&}\\\ 2.

Passo 2

Entendendo o que a expressão significa (explicação passo a passo, sem assumir conhecimento prévio):
  • Em muitas linguagens (incluindo MATLAB/Octave), operadores lógicos tratam números: o valor 0 é considerado lógico falso e qualquer número diferente de 0 é considerado lógico verdadeiro. Ou seja, “truthiness” numérica:
    • 0 \rightarrow falso
    • qualquer x\neq 0 \rightarrow verdadeiro
  • O operador \texttt{&&} é o AND lógico com short-circuit (avaliado escalares em MATLAB):
    • Primeiro avalia-se o operando da esquerda.
    • Se o da esquerda for falso ( 0), o resultado final já é falso e o operando da direita nem é avaliado (curto-circuito).
    • Se o da esquerda for verdadeiro (não-zero), então avalia-se o operando da direita; o resultado é verdadeiro somente se ambos (esquerda e direita) forem verdadeiros.
  • Aplicando isso à nossa expressão:
    • A esquerda é -1. Como -1\neq 0, isso é considerado verdadeiro.
    • Como a esquerda é verdadeira, o operador \texttt{&&} avalia a direita: 2. Como 2\neq 0, isso também é verdadeiro.
    • Como ambos são verdadeiros, o resultado do AND lógico é verdadeiro. Em MATLAB o resultado é um valor lógico representado por 1 (logical true).

Passo 3

Observações práticas e detalhes importantes que podem aparecer na prova:
  • Em MATLAB/Octave o resultado será do tipo lógico (logical) e mostrado como 1 para true e 0 para false.
  • O operador \texttt{&&} exige escalares (não funciona elemento-a-elemento em vetores). Para operações elemento-a-elemento use \texttt{\&}.
  • Curto-circuito importa quando o segundo operando tem efeitos colaterais (funções, divisões, índices). Aqui isso não aparece, mas é útil saber.

Passo 4

Script sugerido (arquivo MATLAB/Octave). Este script calcula a expressão e imprime uma mensagem formatada com fprintf. Também mostro uma versão com disp comentada.
% arquivo: resultado_and.m
a = -1;
b = 2;

% calcula o AND lógico com short-circuit
res = a && b;  % res será logical 1 (true) quando ambos a e b são não-zero

% imprime com fprintf, explicando o resultado
fprintf('Resultado de %d && %d: %d\n', a, b, res);
fprintf('Interpretação: %d e %d s\\~ao n\\~ao-zero, logo ambos verdadeiros → resultado = logical(%d)\\n', a, b, res);

% alternativa com disp (menos formatada)
% disp(['Resultado de ', num2str(a), ' && ', num2str(b), ': ', num2str(res)]);
% disp('Interpretação: valores não-zero são tomados como verdadeiro (logical 1).');
Explicando o que o script faz (para você entender linha a linha):
  • a = -1; e b = 2; atribuem os valores dados.
  • res = a && b; avalia o AND lógico com curto-circuito — converte implicitamente a e b em verdadeiros/falsos conforme são não‑zero/zero.
  • O primeiro fprintf imprime a expressão e o valor numérico do resultado.
  • O segundo fprintf dá uma interpretação textual (explica por que o resultado é verdadeiro).

Passo 5

Como raciocinar rápido na prova (dica prática):
  • Veja os operandos: se ambos são números diferentes de zero, imediatamente conclua que cada um é “true”. Então \texttt{true && true} \rightarrow true.
  • Lembre-se que em MATLAB/Octave o resultado será mostrado como 1 (logical true). Assim, sem calcular nada complicado, apenas verificando zero/não-zero chega-se ao resultado.

Resposta

Resultado de -1\\ \texttt{&&}\\\ 2: 1
Interpretação: -1 e 2 são números não-zero, portanto verdadeiros; o AND lógico resulta em \text{logical}(1)

Exercícios relacionados