Baixe o app para aproveitar ainda mais
Prévia do material em texto
Lista de exerćıcios 1 Atenção: escreva todas as suas funções em um só script. 1. Crie uma função dobro que recebe um valor numérico e retorna-o dobrado. 2. Usando a função dobro, crie uma função quadruplo que calcula o quádruplo de um número. 3. Crie uma função s1 que recebe um número e calcula o seu sucessor. 4. Usando a função sucessor, crie uma função s2 que calcula o sucessor do sucessor de um número. 5. Média entre três números. 6. Faça uma função que calcule o delta de uma eq. do 2o grau, onde ∆ = b2 − 4ac 7. Usando a função do exerćıcio anterior, crie uma função para calcular a raiz maior do 2o grau, dada por (−b + √ ∆)/2a 8. Raiz menor do 2o grau: (−b− √ ∆)/2a 9. Receba uma temperatura em graus Celsius e retorne a temperatura correspondente em graus Fahrenheit. Use a fórmula f = 9c/5 + 32 10. Conversão de Fahrenheit para Celsius. Usando a fórmula dada no ex. anterior, obtenha a fórmula para fazer a conversão oposta. 1 Funções com if-then-else 11. Conversão condicional de temperaturas: usando as funções de con- versão separadas que você criou anteriormente, crie uma função que receba três parâmetros, o primeiro e o segundo correspondendo a dois chars indicando escalas de origem e de destino, respectivamente, e o terceiro indicando a temperatura a ser convertida. Ex. de execução: > conversao ’c’ ’f’ 28.0 82.4 12. Dado um ponto p na reta real, e um intervalo fechado [a, b], crie uma função que verifique se este ponto se encontra dentro ou fora deste intervalo. 13. Em uma competição de ginástica oĺımpica a nota é determinada por um painel de seis júızes. Cada um dos júızes atribui uma nota entre zero e dez para o desempenho do atleta. Para calcular a nota final, a nota mais alta e a nota mais baixa são descartadas e é calculada a média das quatro restantes. Escreva uma função que recebe 6 notas entre zero e dez e retorna a média após o descarte da maior e da menor nota. 14. Crie uma função ehAnoBissexto que receba um valor de ano e retorne um valor booleano (True ou False) indicando se o ano é bissexto ou não. Um ano é bissexto quando: O ano for divisı́vel por 400, ou O ano for divisı́vel por 4, mas n~ao por 100 Exs: 2000 é bissexto (pois é diviśıvel por 400), 2004 é bissexto (é di- viśıvel por 4, mas não por 100), porém 2002 não é bissexto (não satisfaz nenhuma das condições). A função que retorna o resto da divisão inteira entre dois números a e b é mod a b 15. Crie uma função ehDataValida que valide uma data, isto é, receba um dia, mês e ano e retorne se corresponde a uma data posśıvel ou não. Utilize a função ehAnoBissexto para auxiliar na validar a duração de fevereiro, e os dados abaixo para os demais meses: 2 • Meses de janeiro, março, maio, julho, agosto, outubro e dezembro possuem 31 dias • Meses de abril, junho, setembro e novembro possuem 30 dias • Fevereiro possui 29 dias quando o ano é bissexto, e 28 quando não é bissexto 16. Função horoscopo: receba uma data (dia, mês e ano) e retorne uma String correspondente ao signo. No corpo de sua função horoscopo, primeiramente deverá ser feita validação da data utilizando para isto a função do exer. anterior. Caso a data seja inválida, retorne uma string informando que a data é inválida. Caso a data seja válida, você procede para a análise dos signos. 3 Encontre erros O objetivo principal dos exerćıcios abaixo é encontrar erros sintáticos e erros de lógica de programação (quando a sintaxe está correta, porém o programa está devolvendo valores incorretos). 17. Considere a função abaixo, cuja finalidade é somar os parâmetros caso sejam iguais, ou obter o valor absoluto (módulo) da diferença entre eles, caso contrário. Quais são erros presentes? Justifique. f1 x y = if (x = y) then "x+y" else (abs "x-y") 18. Encontre e explique os erros da função abaixo. f2 op x y = if (op == ’mul’) then x*y else if (op = ’div’) then a/b else "nao sei" 19. Quai(s) o(s) erro(s) nas funções abaixo? imposto sal = if (sal <= 1000) then 0 else 0.05*sal salarioFinal salario = salario - imposto sal 20. Faça o mesmo para as funções a seguir: abono pts = if (pts <= 0) then 0.0 else if (pts >= 1) && (pts <= 20) then 500.0 else if (pts >= 21) && (pts >= 40) then 700.0 else (pts > 40) 1000.0 salarioTotal sal pts = sal + abono 4
Compartilhar