Kezdőoldal » Számítástechnika » Programozás » For ciklusos feladat megoldása...

For ciklusos feladat megoldása? Delphi 6-os programmal kell megcsinálnunk. (? )

Figyelt kérdés

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!



2012. nov. 21. 17:27
 1/4 anonim ***** válasza:
500asér' megcsinálom a házid.
2012. nov. 21. 18:18
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:
Ezrest igért...:)
2012. nov. 21. 18:36
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

Na akkor az armstrong számokról, mert rosszul értelmezed a dolgot:

[link]

2012. nov. 21. 19:25
Hasznos számodra ez a válasz?
 4/4 coopper ***** válasza:

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 :


[link]


Sok sikert.

Üdv.

2012. nov. 21. 19:41
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!