Escolar Documentos
Profissional Documentos
Cultura Documentos
Seguindo em frente
2.1 A biblioteca matematica
Diversas fun coes matematicas estao denidas em C. Algumas que usamos com freq uencia em aplicacoes
fsicas sao listadas abaixo. A variaveis x e y sao double, e os valores calculados sao double. Os angulos
para as funcoes trigonometricas devem ser expressos em radianos.
sin(x) seno de x
cos(x) cosseno de x
tan(x) tangente de x
asin(x) arco-seno de x, no intervalo [/2, /2], x [1, 1]
acos(x) arco-cosseno de x, no intervalo [0, ], x [1, 1]
atan(x) arco-tangente de x, no intervalo [/2, /2]
atan2(y,x) arco-tangente de y/x, no intervalo [, ]
sinh(x) seno hiperbolico de x
cosh(x) cosseno hiperbolico de x
tanh(x) tangente hiperbolica de x
exp(x) e
x
log(x) logartmo natural de x
log10(x) logartmo de x na base 10
pow(x,y) x
y
. Se x < 0, entao y deve ser inteiro. Se x= 0, y deve ser positivo.
sqrt(x)
x
ceil(x) O inteiro logo acima de x, mas escrito como um double
floor(x) O inteiro logo abaixo de x, mas escrito como um double
fabs(x) |x|
Um codigo que use alguma dessas funcoes precisa ter no seu incio a linha
#include <math.h>
O comando para a criacao do executavel deve ter no m dele -lm. Por exemplo, suponha que o arquivo com
o codigo se chama prog.c, e o executavel tera nome prog, o comando de compilacao seria
gcc -o prog prog.c -lm
2.2 Estruturas condicionais
Nos codigos que vimos ate agora, as instrucoes sao seguidas seq uencialmente usando os valores de variaveis
atuais a cada linha. Essa estrutura linear nao e adequada para a maioria das aplicacoes. Necessitamos de
mecanismos que provoquem bifurcacoes na excecucao, ou seja, que certos comandos so sejam executados se
determinadas condicoes forem satisfeitas. Tambem precisamos de uma forma de forcar a repeticao de grupos
de comandos. As diversas estruturas condicionais existentes na linguagem proveem esses mecanismos. O
funcionamento delas depende da avaliacao, como falsa ou verdadeira, de uma determinada armativa.
11
CAP
n=1
1
n
.
Podemos usar um for:
#include <stdio.h>
void main(void)
{
double s;
int n, N;
printf("De o numero de termos a serem somados:\n");
scanf("%d", &N);
s = 0.;
for(n = 1; n <= N ; n++){
s = s + 1./n; // ou s += 1./n;
printf("%d\t%lf\n", n, s);
}
printf(" soma calculada...\n");
}
Veja como funciona. Suponha que N = 10:
A variavel double s e inicializada com o valor s = 0.
A variavel int n e inicializada com o valor n = 1.
A expressao n <= N e avaliada, se for verdadeira, o bloco de comandos entre chaves e executado, senao,
o comando a seguir da chave de fechamento e executado.
Neste caso n = 1 e menor que 10, assim s tem seu valor aumentado de 1/n, e o valor atual de s e
mostrado na tela, junto com o valor de n.
O valor de n e incrementado de 1, pela aplicacao de ++, vale agora 2.
CAP
i=1
x
i
=
1
N
N
i=1
x
2
i
x
2
m
.
Os valores calculados sao escritos na tela.
8. Escreva um programa que some N termos de uma dada serie. O valor de N deve ser tal que
S
N+1
S
N
S
N
10
4
,
onde S
N
e a soma de N termos. Compare o valor calculado com o obtido diretamente pelo uso da
funcao, para os casos
(a)
sen(x) =
n=0
(1)
n
x
2n+1
(2n + 1)!
(b)
exp(x) =
n=0
x
n
n!
,
para |x| < 1.
Bibliograa
[1] Intel Coporporation. IA-32 Intel Architecture Software Developers Manual.
http://support.intel.com/design/Pentium4/documentation.htm, 2004.
[2] Winn L. Rosch. The Winn L. Rosch Hardware Bible (6th Edition). Que, 2003.
[3] http://computer.howstuworks.com/computer-memory.htm.
[4] http://arstechnica.com/paedia/r/ram guide/ram guide.part1-1.html.
23