[delphi] l.automorficzne problem z pętlami

2011-01-13 13:10
0

przenosze tutaj ten temat.
Tworzę aplikację obiektową generującą liczby automorficzne od 0 do miliona.
Problem jest taki że program generuje mi tylko liczby 0,1,5,6, a powinien obliczac do miliona, tak jakby pętla zawężała się w jednej formułce *if ((aa)mod 10)=a **

Madmike podpowiedział mi że mam problem z pętlami i continue, lecz nie za bardzo orientuję się co teraz postąpić

mój kod wygląda tak:

Procedure TForm1.Button1Click(Sender: TObject);
var
a,g,d:Integer;
begin
 d:=StrToInt(Edit1.Text);
 g:=StrToInt(Edit2.Text);

 for a:=d to g do

   if ((a*a) mod 10)=a then
    Memo1.Lines.Add(inttostr(a));

   if ((a*a) mod 100)=a then
    Memo1.Lines.Add(inttostr(a));

   if ((a*a) mod 1000)=a then
    Memo1.Lines.Add(inttostr(a));

   if ((a*a) mod 10000)=a then
    Memo1.Lines.Add(inttostr(a));

   if ((a*a) mod 100000)=a then
    Memo1.Lines.Add(inttostr(a));

   if ((a*a) mod 1000000)=a then
    Memo1.Lines.Add(inttostr(a));

end;
edytowany 1x, ostatnio: raVi, 2011-01-13 13:11

Pozostało 580 znaków

2011-01-13 13:24
1

Dalej obowiązuje:

madmike napisał(a)
  1. Co masz w pętli? Poszukaj informacji o blokach begin..end
  2. Niedokładnie przepisałeś kod, zapomniałeś o continue; - właściwie, to powinno być po każdym wypisaniu wyniku

Nie daję gotowych rozwiązań, staram się zmusić do myślenia (wiem, że to czasem boli!). Chcesz w pętli wykonywać zestaw instrukcji, więc musisz to zaznaczyć...

for a:=d to g do
   begin
   //to co tu będzie, będzie wykonywane tyle razy ile razy wykonana zostanie pętla
   end;

Patrząc na to co napisałem i na:

raVi napisał(a)

tak jakby pętla zawężała się w jednej formułce *if ((aa)mod 10)=a **
Przecież jasne jest co robisz źle.

Myśl!


edytowany 5x, ostatnio: madmike, 2011-01-13 14:19

Pozostało 580 znaków

2011-01-13 14:42
0

ok dzięki już to działa
lecz jeszcze mam błąd, ponieważ kilka liczb mi się powtarzaja, tak jak na załączniku

Pozostało 580 znaków

2011-01-13 14:43
0

Kombinuj... I czytaj to co napisałem!!!!

madmike napisał(a)
  1. Niedokładnie przepisałeś kod, zapomniałeś o continue; - właściwie, to powinno być po każdym wypisaniu wyniku

Zajrzyj do kodu z którego kopiowałeś (http://4programmers.net/Forum/Delphi_Pascal/172212-liczby_automorficzne?p=702478#id702478), a będziesz miał ok.


edytowany 3x, ostatnio: madmike, 2011-01-13 14:47

Pozostało 580 znaków

2011-01-13 21:17
0

oki juz ogarnąłem, dzięki za pomoc

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0