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.
‘A’ < ‘a’

Passo 1

O que o enunciado pede e o que temos de dado:
  • Pedem para criar um script que imprime o resultado da expressão 'A' < 'a'.
  • Devemos usar as funções disp() e/ou fprintf() para formatar a saída e explicar o resultado.
  • A expressão a avaliar é exatamente 'A' < 'a'.

Passo 2

Entender o que significa comparar caracteres em MATLAB/Octave:
  • Em MATLAB, comparar caracteres com operadores relacionais (por exemplo <, >, ==) equivale a comparar os seus códigos numéricos (valores inteiros que representam cada caractere).
  • A função que devolve esse código numérico é a função double(). Ou seja, ao fazer double( 'A') obtemos o código numérico associado ao caractere 'A'.
  • Para as letras latinas básicas, esses códigos coincidem com os valores ASCII. Em particular:
    • \text{double}('A') = 65
    • \text{double}('a') = 97
  • Então, comparar 'A' < 'a' é o mesmo que comparar numericamente 65 < 97, que é verdadeiro. Em MATLAB esse verdadeiro aparece como o valor lógico 1.

Passo 3

Como vamos mostrar isso de forma amigável com disp() e fprintf():
  • A função fprintf permite formatar texto com especificadores (por exemplo, '%d' para inteiros, '%s' para strings, '%c' para caracteres) e inclui quebras de linha com '\n'. É ideal para mensagens formatadas.
  • A função disp simplesmente imprime uma expressão ou string sem formatação avançada; é útil para observações rápidas.
  • Para escrever aspas simples dentro de uma string em fprintf, é preciso duplicá-las: por exemplo ''A'' dentro da string corresponde a mostrar ‘A’ no output.

Passo 4

Planejamento do script (o que o script fará, linha a linha, sem ainda mostrar o código completo):
  1. Avaliar a expressão e armazenar o resultado lógico numa variável chamada, por exemplo, result.
  2. Obter os códigos numéricos das duas letras com double(‘A’) e double(‘a’).
  3. Usar fprintf para imprimir:
    • A expressão avaliada e o seu resultado lógico (mostrando 1 para verdadeiro ou 0 para falso).
    • Os códigos numéricos de cada letra.
    • Uma interpretação em texto dizendo por que a comparação deu verdadeiro ou falso (usando os códigos numéricos).
  4. Usar disp para uma observação final explicando que comparações de caracteres usam seus códigos numéricos.

Passo 5

Dicas para o uso no exame / na prova:
  • Se for perguntado por que 'A' < 'a', explique que se converte os caracteres para seus códigos numéricos e compara os números: 65 < 97.
  • Lembre-se: letras maiúsculas têm códigos menores que as minúsculas no conjunto ASCII/Unicode para as letras latinas básicas, portanto muitas comparações lexicográficas simples obedecem a essa ordem numérica.
  • Em uma resposta curta na prova, pode escrever: " 'A' < 'a' é verdadeiro porque \text{double}('A') = 65 < 97 = \text{double}('a')."

Resposta

% Script MATLAB/Octave que avalia ‘A’ < ‘a’ e explica o resultado
result = ‘A’ < ‘a’;
codeA = double(‘A’);
codea = double(‘a’);
fprintf(‘Expressao: ‘‘A’’ < ‘‘a’’ --> %d\n’, result);
fprintf(‘Codigos numericos: ‘‘A’’ = %d, ‘‘a’’ = %d\n’, codeA, codea);
if result
fprintf(‘Interpretacao: ‘‘A’’ < ‘‘a’’ e verdadeiro porque %d < %d (codigos ASCII/Unicode).\n’, codeA, codea);
else
fprintf(‘Interpretacao: ‘‘A’’ < ‘‘a’’ e falso porque %d >= %d (codigos ASCII/Unicode).\n’, codeA, codea);
end
disp(‘Observacao: comparacoes entre caracteres em MATLAB usam seus codigos numericos (função double).’)

Exercícios relacionados