4 Arrays unidimensionais

Propaganda
11
4. Arrays unidimensionais
4 Arrays unidimensionais
4.1 Quais as instruções Matlab para gerar as seguintes sequências:
(a) 0.00001, 0.00010, 0.00100, 0.01000, 0.10000
(b) 9, 4, 1, −3, −7
(c) Um milhão de números igualmente espaçados entre 1 e 2
(d) 9, 5, 1, −3, −7
4.2 Programe o Matlab para escrever a tabuada de um qualquer inteiro dado.
4.3 Para converter uma temperatura de graus Celsius para graus Fahrenheit podemos usar
a relação TF = (1.8 × TC + 32), onde TC é a temperatura em graus Celsius e TF a
temperatura em graus Fahrenheit.
Escreva um programa para que escreva uma tabela de conversão de temperatura desde
0◦ C até 100◦ C com intervalos de 10◦ C .
4.4 O factorial dum número natural n é n! = 1 × 2 × 3 × · · · × n. Por exemplo: 5! =
1 × 2 × 3 × 4 × 5 = 120. Note ainda que (por convenção) 0! = 1! = 1.
(a) Escreva uma instrução em Matlab que calcule o factorial de um número n ≥ 0
dado.
(b) Escreva uma instrução em Matlab que tabela a função factorial de 0 até 15.
Sugestão: use a função cumprod do Matlab.
¤ 4.5 Um número natural n diz-se triangular se n = 1 + 2 + · · · + k para algum k ∈ N.
Exemplos: 6 é triangular porque 6 = 1 + 2 + 3, mas 5 não é triangular (porquê. . . ?).
(a) Escreva um programa em Matlab que tabele todos os número triangulares
menores que 100.
(b) Escreva um outro programa que leia um número n natural e diga se é triangular
ou não.
Sugestão: use as funções
cumsum e roots do Matlab.
4.6 Um número inteiro diz-se um quadrado perfeito se é o quadrado de um outro inteiro.
Por exemplo: 25 é um quadrado perfeito porque 25 = 52 .
(a) Escreva uma instrução que liste os inteiros entre 1 e 100 que não são quadrados
perfeitos.
Sugestão: use a função setdi do Matlab.
(b) Dado um inteiro, como vericar se ele é um quadrado perfeito?
12
FEUP Licenciatura em Eng. Civil Programação e Computadores
4.7 Escreva uma instrução Matlab que, partindo dum array unidimensional x, calcule:
(a) a média aritmética =
x1 +x2 +···+xN
N
=
1
N
PN
xi
³Q
N
i=1
(b) a média geométrica = (x1 · x2 · · · xN )1/N =
i=1 xi
´1/N
.
(c) a média harmónica = N/ (1/x1 + 1/x2 + · · · + 1/xN ) = N/
r
P
PN
2
2
N N
i=1 xi −( i=1 xi )
(d) o desvio padrão =
N (N −1)
Sugestão: use a função
³P
N
i=1
´
1/xi .
length do Matlab.
4.8 Qual a instrução Matlab que permite determinar a semi-soma entre o maior e menor
elementos dum array?
¤ 4.9 Na disciplina de Programação Transcendental I a nota nal é dada em função dos
trabalhos realizados ao longo do ano segundo este critério: desprezando a pior nota,
faz-se a média aritmética das restantes. Por exemplo: com as notas 10, 11, 7 e 9, a
nota nal será 10 (exactamente).
Escreva um programa em Matlab que leia uma sequência de notas (inteiros entre 0 e
20) e calcule a nota nal correspondente.
¤ 4.10 Escreva um programa em Matlab que calcula o valor da resistência eléctrica RE
equivalente a um circuito em paralelo de resistências R1 , R2 , . . . , RN :
RE = ³
1
1
R1
+
1
R2
+ ··· +
1
RN
´
O programa deve ler os valores de resistências Ri > 0 e escrever a resistência equivalente
RE .
¤ 4.11 Sabendo que
∞
X
1 1
1
π
= 1 − + − ··· =
(−1)i
4
3 5
2i + 1
i=0
escreva um programa em Matlab que calcule uma aproximação a π somando os termos
da série acima até que o seu valor absoluto seja < 10−5 .
4.12 Em
Matlab as funções trigonométricas operam sempre com ângulos em radianos.
Para operar com graus é necessário converter o argumento primeiro para radianos.
(a) Escreva um programa que tabele os valores de senos e cosenos para argumentos
de 0◦ até 45◦ por intervalos de 1o .
(b) Modique o programa anterior para tabelar o valor da tangente mas entre 0◦ e
1 ◦
).
15◦ por intervalos de 150 (recorde que 10 = 60
13
4. Arrays unidimensionais
¤ 4.13 Se lançarmos verticalmente um projéctil da superfície da Terra com velocidade v este
atingirá uma altura máxima dada pela fórmula
h=
v 2 /(2g)
1 − v 2 /(2gR)
se v 2 < 2gR e, caso contrário, afastar-se-á para sempre com velocidade nal
p
vf inal = v 2 − 2gR
Nestas expressões R é o raio da Terra (aproximadamente 6.366 × 106 m) e g é a
aceleração gravitacional à superfície (aproximadamente 9.80 m/s2 ).
Escreva um programa em Matlab que tabele o resultado obtido (altura máxima ou
velocidade nal, indicando de qual se trata) para valores de velocidade inicial v =
10 m/s, 100 m/s, . . . 106 m/s.
4.14 Um objecto com peso 100 kg deve ser suspenso de uma haste horizontal de 2.5 m (cujo
peso é desprezável). A haste está xa na parede e é suportada por um cabo de 2 m
(ver gura).
A tensão T no cabo é dada pela equação
T =
W × g × l × lc
p
d lc2 − d2
onde W é o peso do objecto, g é a aceleração da gravidade, l é o comprimento da
haste, lc é o comprimento do cabo e d é a
distância na haste onde xamos o cabo.
lc = 2 m
l = 2.5 m
d =?
W = 100 Kg
Escreva um programa em Matlab que determine a distância d que minimiza a tensão
no cabo. O programa deve calcular a tensão para d de 0.50 m até 1.95 m por incrementos de 5 cm para localizar a posição de tensão mínima.
Sugestão: use a função nd do Matlab.
Download