Teste de auto-valiação

De GNU Octave
Revisão em 12h03min de 10 de novembro de 2015 por Jgrocha (Discussão | contribs) (Resposta)

(dif) ← Revisão anterior | Revisão atual (dif) | Revisão seguinte → (dif)
Ir para: navegação, pesquisa

Pergunta 1 (Verdadeira ou falsa): Precedência dos operadores

No Octave, como na maioria das máquinas de calcular, ou softwares de cálculo matemático, os vários operadores têm precedências diferentes, de forma a se poderem escrever expressões sem estar a usar constantemente parênteses.

Por exemplo, se consultar a informação sobre a precendência dos operadores em Octave, os operadores de multiplicação e divisão têm uma precedência superior aos operadores de adição e subtração. Em termos práticos, podemos escrever:

3+4*5, em vez de 3+(4*5),

já que a multiplicação será feita sempre em primeiro lugar. Se realmente quisermos somar o 3 e o 4 antes de multiplcar pelo 5, temos mesmo que usar os parênteses, já que a multiplicação tem precedência sobre a adição.

Assim sendo, responda à seguinte questão.

Atendendo à precedência dos operadores do Octave, para calcular o quadrado de -15, diga se as expressões são equivalentes:

-15^2 e (-15)^2

  1. Verdadeiro
  2. Falso

Pergunta 2 (Verdadeira ou falsa): Indexar vetores

Considere o vetor p = [ 22 24 25 28 30 21 ].

Para indexar o último elemento do vetor pode usar a expressão p(length(p)) mas é muito mais simpático usar a forma p(end). A palavra mágica end indica o último elemento de um vetor.

De igual forma, a palavra mágica begin é usada para indexar o primeiro elemento de um vetor.

  1. Verdadeiro
  2. Falso

Pergunta 3 (Escolha múltipla): Calcular o raio de um pneu

No CSI, foi possível identificar um rodado marcado numa estrada, havendo um marca no rodado a cada 2,384 metros originada por algo que estava no pneu. A polícia pretende saber o raio do pneu que originou aquela marca, para idenitifcar o fabricante do pneu.

A resposta tem que ser dada em milímetros (mm), com um valor arredondado aos milímetros, isto é, sem casas decimais.

Escolha a expressão que calcula o resultado pretendido.

  1. (Correta) round(2.384/(2*pi())*1000)
  2. (Errada) fix(2.384/2*pi()*1000)
  3. (Errada) floor(2.384/2*pi())*1000
  4. (Errada) floor(2.384/2*pi()*1000)

Pergunta 4 (Preenchar espaços em branco): Processamento de vetores

Para este exercício, vamos precisar das variáveis definidas no documento rio.m, que deverá descarregar a partir da pasta online do Octave.

Deve descarregar o referido documento para uma pasta no seu computador. Depois, no Octave, use o Navegador de Ficheiros para ir para a pasta onde o guardou. Carregue as variáveis no Octave com:

load rio.m

Aparecem-lhe 4 novos vetores no Ambiente de trabalho. Cada um desses vetores tem 12 valores, cada um correspondente a um mês do ano.

Para saber o(s) mês(es) do ano mais quente(s), podemos escrever a expressão _____ que dará o resultado 2, já que no Rio de Janeiro (no hemisfério Sul) o mês mais quente é geralmente o mês de fevereiro. Para sabermos o(s) mes(es) em que a temperatura baixou os 20 graus, escrevemos a expressão find(minimas<20) que dará como resultado 6, 7, 8 e 9, que são os meses de junho, julho, agosto e setembro.

Notas:

  • se não for necessário, não use espaços nas suas expressões para poderem ser corrigidas pela plataforma;
  • se responder corretamente, mas de uma forma ligeiramente diferente, o sistema pode-lhe dar a indicação de resposta errada, mas não se preocupe que as respostas serão corrigidas posteriormente.
Resposta
find(maximas == max(maximas))

Pergunta 5 (Preenchar espaços em branco): Matriz ortogonal

Se resolveu a ficha de Álgebra, sobre matrizes, com certeza que ficou a saber as propriedades das matrizes ortogonais.

Seja uma matriz 
 R =
 \begin{bmatrix}
  1 & 0 & 0 \\
  0 & -1 & 0 \\
  0 & 0 & 1
\end{bmatrix}
.

Para saber se a matriz R é ou não ortogonal, basta escrever a expressão ________ em Octave.

Resposta
R'==inv(R)

ou

all(all(R'==inv(R)))

Pergunta 6 (Preenchar espaços em branco): Extrair o número de telemóvel

Considere uma string que contém um telemóvel, como por exemplo:

frase = 'Contacto da Matilde: 914444492'

ou

frase = 'Ligar ao 912345678 par marcar'

Escreva uma expressão _____ que extrai apenas o número do telemóvel. Ou seja, o resultado é uma string composta apenas pelos números.

Resposta
frase(isdigit(frase))

Pergunta 7 (Preenchar lacunas múltiplas): Escrever o nome próprio em maiúsculas

Considere que tem uma string com um nome, como por exemplo:

cantor = "Amalia da Piedade Rodrigues"

ou

cantor = "Samuel Frederick Smith"

e pretende escrever a mesma, com o primeiro nome em maiúsculas e o resto tal como estava. O resultado seria:

ans = AMALIA da Piedade Rodrigues

e

ans = SAMUEL Frederick Smith

Para extrair apenas o primeiro nome e transformá-lo em maiúsculas usaria a expressão [x].

Para extrair o resto no nome usaria a expressão [y].

Para apresentar o resultado final numa única expressão repetindo as duas anteriores, usando a notação das matrizes para juntar duas string, usaria a expressão final [z].

Resposta
[x] =
toupper(cantor(1:find(isspace(cantor))(1)-1))
[y] =
cantor(find(isspace(cantor))(1):end)
[z] =
[toupper(cantor(1:find(isspace(cantor))(1)-1)) cantor(find(isspace(cantor))(1):end)]