program för beräkning av sin(x) ut Taylor-serien

C-språket/H98/lect4.doc/GP
/* program för beräkning av sin(x) ut Taylor-serien
sin(x)=x-x3/3!+x5/5!-x7/7!+….
Med 10 decimalers noggrannhet */
#include <stdio.h>
#include <math.h>
#define eps 0.00000000001
int main()
{
float x,term,sum;
int i;
printf("Ge ett värde för x: ");
scanf("%f",&x);
term=x;
sum=0
i=1;
do
{
sum=sum+term;
i=i+2;
term = -term*x*x/(i*(i-1));
} while (fabs(term)>eps);
printf("sin(%f) enligt eget program = %.10f\n",x,sum);
printf("sin(%f) enligt standardfunktion = %.10f\n",x,sin(x));
}
programmet körs
Ge ett värde för x: 5
sin(5.000000) enligt eget program = -0.9589244127
sin(5.000000) enligt standardfunktion = -0.9589242747
Ge ett värde för x: 1.57
sin(1.570000) enligt eget program = 0.9999998212
sin(1.570000) enligt standardfunktion = 0.9999996830
OPERATORTILLDELNING
ex.
sum = sum + term;
kan skrivas
sum += term;
med operatortilldelning
C-språket/H98/lect4.doc/GP
operatortilldelning
variabel op= uttryck;
betyder
variabel = variabel op uttryck; /* op betecknar operator */
ex.
prod *= 2;
betyder samma som
prod = prod*2;
KOMMAUTTRYCK
uttryck1,uttryck2,uttryck3,….
Ett antal uttryck åtskiljda med komma-tecken
Ett kommauttryck kan användas, där ett uttryck kan användas.
Deluttrycken uträknas i skriven ordning.
Kommauttryckets värde = sista deluttryckets värde.
ex. summera heltalen 1,2,3,..,100
for (sum=0,i=1;i<=100;i++)
sum += i;
detta är samma som
for (sum=0,i=1;i<=100; sum += i,i++)
;
/* en tom sats upprepas med for */
2 kommauttryck i den sista for-satsen!
2
C-språket/H98/lect4.doc/GP
3
MERA OM DATATYPER
HELTALSTYPER ( 7 olika heltalstype i C )
signed char
unsigned char
[signed] short [int]
unsigned short [int]
[signed] int
unsigned [int]
[signed] long [int]
unsigned long [int]
8 bit
8 bit
16 bit
16 bit
16 bit
16 bit
32 bit
32 bit
(Det som står inom hakparentes kan lämnas bort)
Dessutom finns heltalstypen char, som vanligen betecknar signed char
Bitarna anger hur många bit används för att representera ett heltal
Heltalstypen behövs vid definition av heltalsvariabler. Vanligen används
datatypen int för heltal.
Med en heltalstyp kan även logiska värden representeras. Heltalsvärdet 0
betecknar FALSE och varje annat heltalsvärde betecknar TRUE
Med en "signed" heltalstyp kan både positiva och negativa heltal
representeras.
Med en "unsigned" heltalstyp kan endast icke-negativa heltal
representeras
ex.
int tal = -1;
printf("%d är %u som unsigned\n",tal,(unsigned)tal);
programmet körs
-1 är 65535 som unsigned
100 är 100 som unsigned
-100 är 65436 som unsigned