A Programação e Métodos Numéricos
Por: Guri Faminto • 31/5/2021 • Trabalho acadêmico • 1.995 Palavras (8 Páginas) • 159 Visualizações
MIEQ/FEUP Programação e Métodos Numéricos 2015/2016
1. Considere a função !(#, %) = (!"/$ sin (%#) em que # é expresso em radianos e % é um parâmetro. a) Desenvolva uma função externa em VBA para obter !(#, %).
b) Desenvolva uma folha de trabalho para tabelar a função, para vários valores de %, entre # = 0 e # = #%. Os valores de # devem ser tabelados em graus. Formate a folha de trabalho adequadamente.
c) Represente a função graficamente, escolhendo criteriosamente o valor de #% e os valores de %, de modo a evidenciar o comportamento da função.
2. Em alguns países de língua inglesa a altura de uma pessoa é expressa usando pés e polegadas, feet e inches, ou ainda, ft e in. Sabendo que 1 ft = 12 in e 1 ft = 0.3048 m:
a) Escrever uma subrotina para ler um comprimento em pés e polegadas por Inputbox (separadamente) e determinar o valor correspondente em centímetros.
b) Escrever uma subrotina para ler um comprimento em centímetros por Inputbox e determinar o valor correspondente em pés e polegadas.
Reportar os resultados em MsgBox apropriadas.
3. A sequência de Collatz é definida por: iniciar com qualquer número inteiro positivo maior do que 1; se o número for par dividir por dois; se o número for ímpar multiplicar por três e somar uma unidade; repetir o processo até atingir o número 1. Por exemplo, iniciando a processo com o número 52, a sequência será: 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1.
a) Escrever uma função para determinar se um número inteiro é par ou ímpar.
b) Escrever uma subrotina para:
• ler o primeiro valor da sequência na célula ativa na folha de trabalho;
• gerar os valores seguintes da sequência e escrever em células sucessivas na mesma coluna;
• contar o número de valores gerados e escrever na célula acima da célula activa; formatar esta célula a bold.
4. Usar a subrotina do problema 3b para gerar a sequência de Collatz a partir do valor 535.
Se não fez o problema 3b escrever uma lista de valores inteiros positivos numa coluna da folha de trabalho. Escrever o número de valores acima do primeiro valor e formatar a bold.
Desenvolva uma subrotina para:
• ler a lista de valores para uma variável indexada (vector);
• determinar a média de todos os valores e escrever na folha de trabalho;
• determinar o desvio padrão de todos os valores, e escrever na folha de trabalho;
• determinar e escrever na folha de trabalho duas colunas adicionais, uma com os valores pares e outra com os valores ímpares;
• determinar a média dos valores pares e dos valores ímpares e escrever na folha de trabalho; • determinar o desvio padrão dos valores pares e dos valores ímpares, e escrever na folha de trabalho; Nota: pode fazer este problema sem usar variáveis indexadas; nesse caso a cotação será metade.
Madalena Dias
Teste 1 2016-04-26
MIEQ/FEUP Programação e Métodos Numéricos 2017/2018
1. Considere a função !(#) %
#(&) = 1
) + 1 +() + 1) cos(&) + cos ()&)0 !(&) = 1
) + 1() sin(&) + sin (() + 1)&))
a. Desenvolva duas funções externas em VBA para obter os valores das funções #(&) e !(&) dado o valor ) (parâmetro inteiro positivo).
b. Desenvolva uma folha de trabalho para tabelar as duas funções entre & = &! e & = &", dado θ
o número de intervalos, 3, para 3 valores de ); deve ser dado como um ângulo em graus.
c. Represente graficamente as 3 curvas !(#), escolhendo criteriosamente o número de k
intervalos, 3, os valores de &! e &", e os valores de , de modo a evidenciar o comportamento da função.
2. Um ano é bissexto se for múltiplo de quatro, com exceção dos anos terminados em 00 que não sejam múltiplos de 400.
Por exemplo: 1996 é bissexto, 1995 não é bissexto, 2000 é bissexto, 1900 não é bissexto.
a. Desenvolva uma função externa em VBA que determine se um dado ano é bissexto ou não. Em caso afirmativo a função devolve o valor “s”, senão devolve o valor “n”.
b. Desenvolva uma subrotina em VBA para determinar os anos bissextos entre dois anos quaisquer e ainda o número total de dias associados a esses anos. Usar InputBox e MsgBox como instruções de entrada/saída de dados.
3. Pretende-se ler e analisar os dados de um conjunto de adultos.
a. Escreva uma subrotina em VBA para ler por InputBox, a idade, o nome e o apelido de um conjunto de pessoas e escrever essa informação (com cabeçalho apropriado) para uma folha de trabalho. Se a idade introduzida não corresponder a um adulto, a subrotina deve avisar e repetir a leitura. A leitura deve terminar quando for lido o valor zero na idade.
b. Escreva uma subrotina em VBA para ler o nome, apelido e idade de um conjunto de pessoas a partir de uma folha de trabalho. A subrotina deve ainda determinar e escrever para a folha de trabalho a seguinte informação:
• número de pessoas;
• média de idades;
• nome, apelido e idade da pessoa mais velha;
• nome, apelido e idade da pessoa mais nova;
• nome, apelido e idade da pessoa cujo apelido apareceria por último numa lista ordenada alfabéticamente;
• nome, apelido e idade da pessoa cuja idade mais se aproxima da média de idades. Madalena Dias
...