Vous êtes sur la page 1sur 2

--Exercicio 1

A) mod 17 3 = 2
-- dividiu 17 por 3 e retornou o resto da diviso
B) mod 15 2 == 0 = false
-- verificou se o resto da divisao de 15 por 2 igual a 0, como o resto diferente
de 0 foi retornado "false".
C) div 15 2 + mod 15 2 * 7 = 14
-- Dividiu 15 por 2 (7) somou com o resto da diviso de 15 por 2 vezes 7 (7), ou s
eja, 7+7=14.
D) abs 2
-- mostrou o valor absoluto, neste caso 2.
E) 15 / 2 * 3^2.4 + abs (-4)
-- ocorreu um erro pois o tipo de dado que estamos elevando o numero 3 ponto flu
tuante, uma soluo possivel seria: 15 / 2 * 3**2.4 + abs (-4)
F) sqrt( 5*5 - 4*3*6)/(2*3) --ERRO: Program error: argument out of range
=sqrt( 25 - 72)/6 --Este erro ocorre pois o programa tenta
calcular a raiz de um numero negativo, poderia ser corrigido da seguinte
=sqrt(-47)/6 --forma: sqrt(abs( 5*5 - 4*3*6))/(2*3)
G) pi * 3.5 * 3.5 = 38.484510006475
-- multiplicou o valor de pi por 3.5 e multiplicou o resultado por 3.5 novamente
H) pi * 3.5^2 = 38.484510006475
-- elevou 3.5^2 e multiplicou por pi, o resultado identico ao da expresso acima.
I) sin 3*pi/2 = 0.221670790297706
-- sin 3 = 0.141120008059867;
-- pi = 3.14159265358979;
-- sin 3 * pi = 0.443341580595411
-- sin3 * pi / 2 = 0.221670790297706
J) signum abs (-4)
-- ocorre um erro pois a funo signum diz se um numero positivo, negativo ou igual
a zero e, neste caso, estamos testando com o valor absoluto de -4 o que impossib
ilita o resultado. Uma possivel soluo seria signum( abs(-4)), neste caso nos retor
nado o valor 1, pois ele calcula o valor absoluto de -4 primeiro que igual a 4,
que positivo.
K) div 4 2 + 3 * 5/7
-- Ocorre um erro pois como estamos utilizando a funo div s aceito valores inteiros
. Uma possivel soluo seria: fromInteger(div 4 2) + 3 * 5/7 = 4.14285714285714
L) sqrt 3*4 = 6.92820323027551
-- O que feito neste caso calcular a raiz quadrada de 3 (1.73205080756888) e dep
ois multiplica-se este valor por quatro.
M) sqrt (3*4) = 3.46410161513775
-- neste caso o programa multiplica 3*4 primeiro (12) e depois calcula a raiz do
resultado (sqrt(12)).
N) signum(2^3 - 10 + 40) = 1
-- Resolve-se a expressao entre parenteses (38) e executa-se o comando signum qu
e retorna 1, visto que 38 um numero positivo.
O) -7 + 2 = -5
-- Executa a operao normalmente (-7) + 2
P) 5 + 4 + 6 + 8 + 20.4 = 13.4
-- como nao utilizamos nenhuma funo como o div ou mod ele consegue executar esta o
perao normalmente, convertendo automaticamente o resultado para float.
Q) div 5 2 + 3 = 5
-- executa a diviso de 5 por 2 (2) e soma o resultado a 3 = 5, como so utilizados
somente valores inteiros ele pode realizar estas operaes.
R) mod 18 5 + 3.5
-- Ocorre um erro pois estamos tentando somar valores de tipos diferentes, float
+ integer, uma possivel soluo seria: fromInteger(mod 18 5) + 3.5 = 6.5
S) sqrt abs -4
-- Um erro ocorre pois o programa tenta calcular a raiz de "abs" o que impossive
l, o correto seria fazer da seguinte forma: sqrt (abs (-4)) = 2.0
T) (24:: Int) / (4:: Int)
-- No possvel realizar esta operao pois estamos tentando dividir dois valores do tip
o inteiro e queremos obter um resultado que tambm seja do tipo inteiro, porem o r
esultado de uma diviso nos dado como float, desta forma uma possivel soluo seria al
terarmos o tipo do valor que estamos trabalhando, ficando (24:: Float) / (4:: Fl
oat) = 6.0
U) (24:: Int) + (4:: Int) = 28
-- Neste caso a operao pode ser efetuada sem nenhum erro, pois estamos somando doi
s valores e a ao de somar retorna um resutado cujo o tipo convertido automaticamen
te para um tipo compatvel com o resultado, neste caso inteiro, pois o resultado u
m valor inteiro.

Vous aimerez peut-être aussi