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: 0
0 użytkowników, 0 gości, 0 anonimowych