For ciklusos feladat megoldása? Delphi 6-os programmal kell megcsinálnunk. (? )
Az a feladat, hogy For ciklus segítségével kell kiíratni egy listbox-ba azokat a három jegyű számokat ahol
abc=a^2+b^2+c^2, azaz 100*a+10*b+c=a^2+b^2+c^2(Armstrong-Féle számok).Hasonló a feladat négyjegyű számokra is.
Sajnos ötletem sincs, hogyan kezdhetném el, pedig ma tanultuk a használatát, mégse jut eszembe semmi.
Ha valaki tud segíteni csak a kezdésben is, annak ezer hála!
Na akkor az armstrong számokról, mert rosszul értelmezed a dolgot:
Szia.
Elibditod a delphi 6-ot dobsz a formra egy Listboxot,
és két Button-t.
Ez egyik gomb captionjába beirod : 3 jegyűek.
A másik gomb captinojába beirod : 4 jegyüek.
A Gombok onclick Evetjéhez padig beirod a számolási metódúst ami a következő :
3 jegy esetén :
A For ciklust 100-tól kel inditani és 999-ig kell hogy menjen.
Ki kel számolni a ciklusváltozóból a helyiértékes számokat, ez div-vel megoldható.
Szaz : I div 100
Tiz : (I-Szaz*100) div 10
Egy : I-Szaz*100-Tiz*10
Aztán már csak a képletet kell felirni :
Ha használod a math unitot (az Uses kulcsszó után) akkor abban a power a hatványozási függvény, tehát a feltétel :
if power (Szaz,3)+power (Tiz,3)+power (Egy,3)=I
Ha nem használod a math unitot akkor sima szorzás :
if Szaz*Szaz*Szaz+Tiz*Tiz*Tiz+Egy*Egy*Egy=I
then begin
Form1.ListBox1.Items.Add(inttostr (I));
Form1.ListBox1.Update;
end
Az I ciklusváltozót stringgé kell alakitani ezt végzi el az inttostr függvény.
4 jegy esetén :
A For ciklust 1000-tól kel inditani és 9999-ig kell hogy menjen.
Ugyanugy ki kell számolni a helyi értékeket :
Ezer : I div 1000
Szaz : (I-Ezer*1000) div 100
Tiz : (I-Ezer*1000-Szaz*100) div 10
Egy : I-Ezer*1000-Szaz*100-Tiz*10
Aztán itt is a képlet jön :
if power (Ezer,4)+power (Szaz,4)+power (Tiz,4)+power (Egy,4)=I
vagy a szorzással :
if Ezer*Ezer*Ezer*Ezer+Szaz*Szaz*Szaz*Szaz+Tiz*Tiz*Tiz*Tiz+Egy*Egy*Egy*Egy=I
then begin
Form1.ListBox1.Items.Add(inttostr (I));
Form1.ListBox1.Update;
end ;
Itt leellenőrizheted az eredményt :
Sok sikert.
Üdv.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!