double s,x,w,eps;
double xp,xk,dx;
int i;
int main()
{
printf("Podaj x początkowe, x końcowe, skok i dokładność\n")<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
scanf("%lf%lf%lf%lf",&xp,&xk,&dx,&eps)<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
for(x=xp;x<=xk;x+=dx){
i=0;
w=1;
s=0;
while(fabs(w)>eps){
s=s+w;
i++<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
w=w*(0.5-i+1)*pow(x,i)/i; /*WZÓR GŁOWNY ---------------------------------------*/
}
printf("s\t\tx\t\tspr\n")<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
printf("%lf\t%lf\t%lf\n",s,x,pow(1+x,1./2))<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
printf("%d wyraz dał takie przybliżenie\n",i)<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
}
return 0;
}
Chodzi mi o to że jak wzór główny jest bez tej potęgi to wykonuje się pętla cała a jak jest z (czyli tak jak jest powinno być) to liczy pierwszy wyraz i później się program zatrzymuję i czeka na nie wiadomo co.
[C] nie działająca pętla
Rozpoczęty przez tomix91, 06 gru 2011 11:05
3 odpowiedzi w tym temacie
#1
Napisano 06 grudzień 2011 - 11:05
Witam mam do wykonania projekt który liczy z daną przez użytkownika dokładnością wyrazy szeregu newtona (1+x)^1/2 tutaj jest WZÓR i zrobiłem to tak:
#2
Napisano 06 grudzień 2011 - 12:30
Coś w tym kodzie mi się nie podoba, spójrz
Poza tym nie twórz zmiennych globalnych
for(x=xp;x<=xk;x+=dx)
{
i=0;
w=1;
s=0;
while(fabs(w)>eps){ //>=, inaczej pętla nigdy się nie wykona choć trzeba jeszcze popracować nad pomysłem
s=s+w;
i++<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
w=w*(0.5-i+1)*pow(x,i)/i; /*WZÓR GŁOWNY*/
}
printf("s\t\tx\t\tspr\n")<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />
printf("%lf\t%lf\t%lf\n",s,x,pow(1+x,1./2))<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />// while nigdy się nie wykona, s się nie zmienia = 0
printf("%d wyraz dal takie przyblizenie\n",i)<img src='http://forum.pcfoster.pl/public/style_emoticons/<#EMO_DIR#>/disagree.png' class='bbc_emoticon' alt=';' />// jak wyżej, i się nie zmienia = 0
}
Poza tym nie twórz zmiennych globalnych
#3
Napisano 06 grudzień 2011 - 18:08
Na moje oko, zmienną x we wzorze ogólnym podmieniłbym na inną.
Intel i5-3570K @ 4.2GHz | ASRock Z77 Extreme4 | Corsair Vengeance LP 16GB | Radeon HD7870 | Samsung 840 Pro 128GB | Samsung F3 1TB | Xonar DG | OCZ ModXStream Pro 500W
Duath
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych




