bo gdy jest zaznaczone zero, to je pomijaAdams pisze:(btw zaznaczenie z ilu liczb ma liczyć NWD u mnie w ogóle nie jest brane pod uwagę)
Najwiekszy wspolny dzielnik - algorytm
- pOwer
- Użytkownik
- Posty: 47
- Rejestracja: 9 kwie 2006, o 18:56
- Płeć: Mężczyzna
- Lokalizacja: Bochnia
- Podziękował: 2 razy
Najwiekszy wspolny dzielnik - algorytm
- Lorek
- Użytkownik
- Posty: 7150
- Rejestracja: 2 sty 2006, o 22:17
- Płeć: Mężczyzna
- Lokalizacja: Ruda Śląska
- Podziękował: 1 raz
- Pomógł: 1322 razy
Najwiekszy wspolny dzielnik - algorytm
No z tym to jeszcze się zgodzę, ale jak dam np. 5 liczb różnych od 0, to liczy niezależnie czy zaznaczę 2 czy 4 czy 8.
- pOwer
- Użytkownik
- Posty: 47
- Rejestracja: 9 kwie 2006, o 18:56
- Płeć: Mężczyzna
- Lokalizacja: Bochnia
- Podziękował: 2 razy
Najwiekszy wspolny dzielnik - algorytm
Faktycznie. Wystarczy 1 literkę w kodzie zmienić i wszystko działa ok
link zaaktualizowany - - :
teraz jeśli chodzi o kod,
funkcja nwd:
i jeszcze podam kod pod przyciskiem "oblicz nwd"
objaśnienie: "Nwd" - pole, ktore wyświetla NWD,
C1 do C10 - pola CheckBox
l1 do l10 - pola, w ktore wpisujemy liczby
link zaaktualizowany - - :
teraz jeśli chodzi o kod,
funkcja nwd:
Kod: Zaznacz cały
int nwd(int a,int b)
{
int c,d,e,x;
x=0;
while(x<=0){
if(b==0) break;
c=a/b;d = c * b;e=x;e = a - d;a=b;b=e;
}
return a;
}
Kod: Zaznacz cały
int z,q,w,r,t,y,u,i,o,p,s;
z=2;
if (C3->State==cbChecked) z = 3;
if (C4->State==cbChecked) z = 4;
if (C5->State==cbChecked) z = 5;
if (C6->State==cbChecked) z = 6;
if (C7->State==cbChecked) z = 7;
if (C8->State==cbChecked) z = 8;
if (C9->State==cbChecked) z = 9;
if (C10->State==cbChecked) z = 10;
q=StrToInt(l1->Text);
w=StrToInt(l2->Text);
r=StrToInt(l3->Text);
t=StrToInt(l4->Text);
y=StrToInt(l5->Text);
u=StrToInt(l6->Text);
i=StrToInt(l7->Text);
o=StrToInt(l8->Text);
p=StrToInt(l9->Text);
s=StrToInt(l10->Text);
Nwd->Text=nwd(q,w);
if(z==2)Nwd->Text=nwd(q,w);
if(z==3)Nwd->Text=nwd(nwd(q,w),r);
if(z==4)Nwd->Text=nwd(nwd(nwd(q,w),r),t);
if(z==5)Nwd->Text=nwd(nwd(nwd(nwd(q,w),r),t),y);
if(z==6)Nwd->Text=nwd(nwd(nwd(nwd(nwd(q,w),r),t),y),u);
if(z==7)Nwd->Text=nwd(nwd(nwd(nwd(nwd(nwd(q,w),r),t),y),u),i);
if(z==8)Nwd->Text=nwd(nwd(nwd(nwd(nwd(nwd(nwd(q,w),r),t),y),u),i),o);
if(z==9)Nwd->Text=nwd(nwd(nwd(nwd(nwd(nwd(nwd(nwd(q,w),r),t),y),u),i),o),p);
if(z==10)Nwd->Text=nwd(nwd(nwd(nwd(nwd(nwd(nwd(nwd(nwd(q,w),r),t),y),u),i),o),p),s);
}
C1 do C10 - pola CheckBox
l1 do l10 - pola, w ktore wpisujemy liczby