Napísal by som ti to celé, lebo to nie je ťažké, ale asi by ma týto predo mnou zdrbali ( koniec koncov majú pravdu )
1.) vstup editu je uložený ako string, napriek tomu, že tam vložíš celé číslo. Keďže s ním chceš pracovať ako s celým číslom, treba ho skonvertovať:
Kód:
celeCislo := StrToInt( edit1.Text );
Zvykne sa to ešte ošetrovať blokom try/finally, kôli nesprávnemu vstupu, ale keď sa to ešte neučili, tak to nechaj tak
2.) všetky trojciferné čísla prejdeš v cykle for takto:
Kód:
for i:= 100 to 999 do
3.) v tomto cykle budeš počítať ciferný súčet jednotlivých trojciferných čísel a to takto, že ich prevedieš na string a pracuješ s každým znakom zvlášť:
Kód:
// cifra je string
cifra := IntToStr( i );
// sucet je integer
sucet := StrToInt( cifra[1] ) + StrToInt( cifra[2] ) + StrToInt( cifra[3] );
Existuje jednoduchší spôsob, ako previesť jednociferné číslo na reťazec, ale neviem, či by si to pochopil, tak radšej použi tento spôsob.
4.) nakoniec už len porovnaj
celeCislo a
sucet a ak sa rovnajú, výsledok si ulož napr do TMemo komponentu:
Kód:
Memo1.Lines.Add( IntToStr( i ) );
Ak budeš mať konkrétny problém, tak to už by nemalo byť proti pravidlám, takže smelo sa pýtaj.