Área 1

De Física Computacional
Edição feita às 14h21min de 29 de novembro de 2011 por Ejagnes (Discussão | contribs)

(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

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.


1) Faça um algoritmo para calcular a mensalidade pelos alunos de uma acedmia 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 log(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 1 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