Área 1: mudanças entre as edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 86: | Linha 86: | ||
13) Faça um programa que calcule o | 13) Faça um programa que calcule o ln(1+x), |x| < 1 com base na expansão em serie de Taylor: | ||
<math>ln(1+x)=\sum_{n=0}^{n=\infty}\frac{(-1)^n}{n+1}x^{n+1}</math> | |||
Note: num programa você não poderá somar termos infinitamente. O somatório deverá ser de | |||
Note: num programa você não poderá somar termos infinitamente. O somatório deverá ser de 0 até N. Teste vários valores de N para verificar quando o log(1+x) converge. Você pode comparar com o valor que você obtém se fizer o cálculo na calculadora. | |||
Edição atual tal como às 14h05min de 24 de abril de 2012
Abaixo há exercícios e/ou problemas bem diversos, com vários níveis de dificuldade. Tente fazer todos ou pelo menos pensar sobre todos. Os primeiros são os mesmos do trabalho 4 e voce já deve ter feito 2 deles. Pense e tente fazer os demais.Quando for pedido apenas para fazer o algoritmo, faça também o programa.
1) Faça um algoritmo para calcular a mensalidade pelos alunos de uma academia de ginástica que tem como mensalidade básica R$85 e aplica os seguintes descontos
- mulheres com idade igual ou inferior a 15 anos terão desconto de 15%
- mulheres com idade superior a 15 anos terão desconto de 10%
- homens com idade inferior a 22 anos não terão desconto
- homens com idade igual ou superior a 22 anos terão desconto de 20%
2) Faça um algoritmo para calcular a nota resultante de um aluno que fez 3 provas. A nota é definida como sendo a média aritmética das 3 provas.
Considere a seguinte tabela:
- aprovado se nota >= 7
- em exame se 5 <= nota < 7
- reprovado se nota < 5
3) Faça um algoritmo que determine se um dado número [escolhido pelo usuário e lido pelo algoritmo] é par.
4) Faça um algoritmo que determine se um dado número [escolhido pelo usuário e lido pelo algoritmo] é primo
5) Faça um algoritmo que leia 3 números da tela e os retorne em
5.1- ordem crescente
5.2- ordem decrescente
6) Faça um algortimo para determinar todos os divisores do número N que estão entre os inteiros i1 e i2
7) Peça para o usuário entrar com um valor de temperatura em Celsius, transforme para Fahrenheit e coloque o valor na tela.
8) Calcule os zeros de uma função de segundo grau (ax2+bx+c=0).
a) na primeira versão, peça para o usuário entrar com os valores de "a" e "b".
b) na segunda versão, crie um arquivo com os parâmetros "a" e "b" e leia-os a partir de um arquivo externo ao programa
Em ambos os casos, não esqueça de verificar as limitações e ambiguidades do algoritmo que fará este cálculo.
9) Peça para o usuário escolher um número N. Determine se este número N é primo ou não e diga para o usuário.
Use o algoritmo feito em 4) para fazer um programa em C.
Coloque o programa num arquivo de latex. Use o comando "verbatim"
10) Construa duas matrizes de duas dimensões de inteiros, digamos A[N][M] e B[M][N]. Elas não precisam ter mesma dimensão, ou seja, N e M não são necessariamente os mesmos.
Primeiramente escolha M e N pequenos (em torno de 2 ou 3) para que você possa imprimi-las na tela.
Depois calcule o produto de A por B e mostre a matriz resultante na tela tb.
Crie de dentro do seu programa um arquivo de saída que contenha as matrizes A, B e o produto das duas.
11) Leia o arquivo "dados.dat" que está no moodle e coloque-os numa matriz do tipo "float" que se chama, por exemplo X.
Considerando a sequência de números X[i], faça:
a) Encontre o valor máximo desta sequencia de números
b) Ordene esta sequência de menor à maior
12) Números de Fibonacci são uma sequência definida como recursiva pela fórmula abaixo:
Na prática: você começa com 0 e 1, e então produz o próximo número de Fibonacci somando os dois anteriores para formar o próximo. Os primeiros Números de Fibonacci para n = 0, 1,… são
0,1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946…
Faça um programa que gera uma sequência de Fibonacci. Peça para o usuário escolher quantos termos da série serão mostrados.
Coloque a sequência num arquivo (você deve abri-lo e escrever nele de dentro do programa). Chame este arquivo usando um script em gnuplot e faça um gráfico em eps.
13) Faça um programa que calcule o ln(1+x), |x| < 1 com base na expansão em serie de Taylor:
Note: num programa você não poderá somar termos infinitamente. O somatório deverá ser de 0 até N. Teste vários valores de N para verificar quando o log(1+x) converge. Você pode comparar com o valor que você obtém se fizer o cálculo na calculadora.
O usuário deve fornecer os valores de x e N e você deve verificar no seu programa que o |x| é menor do que 1
14) Em t=0 um bloco de massa é lançado no campo gravitacional terrestre a partir do solo () com velocidade inicial . Considere .
a- Faça um programa ara determinar os vetores posição e velocidade do desse bloco para sucessivos valores de tempo separados por um intervalo , onde é o tempo que leva para o corpo voltar ao solo. O programa deve parar neste momento.
b- Faça gráficos da trajetória e do módulo da velocidade para as seguintes condições iniciais (em m/s):
b1)
b2)
b3)
b4)
b5)
15 - Em o motorista de um carro de $ que se move a percebe um obstáculo (parado) na pista metros à sua frente. Sem tentar desviar, o motorista freia com aceleração $ até parar (ou bater).
15a) Faça um algoritmo para determinar a posição (suponha ) e a velocidade desse carro para sucessivos valores de tempo separados por um intervalo . O programa deve indicar a se o carro atingiu o obstáculo ou não. Caso não tenha atingido, deve indicar a distância ao obstáculo.
15b) Faça um programa para o algoritmo da questão anterior. A distância do obstáculo deve ser lida como entrada. A saída deve mostrar na tela se houve ou não colisão. Caso não haja, deve indicar a distância até o obstáculo. Além disso, os valores de posição contra tempo e velocidade contra tempo devem ser escritos em um arquivo de três colunas de nome ``dadosCarro.dat. Teste seu programa para as seguintes distâncias ao obstáculo: