Hogyan néz ki ez a program delphiben?
Deklaráljunk adogat néven függvényt, amely egy. a paraméterben átvett egész szám jegyeit adogatja össze mindaddig, amíg egyjegyű számot kapunk.
Alkalmazzuk a fenti függvényt egy n méretű vektor minden elemére. Listázandó az eredeti és a módosított vektor!
Az első részét megmondom, nem nehéz ez..
A vektorosat már nem vágom... De ha kifejted lehet abba is tudok segíteni..
procedure adogat(szam: integer);
var i : integer;
s : string;
sz.jegyek : array[0..32] of byte;
sz.jegyekI, eredmeny : cardinal;
begin
//Előszőr felbontod számjegyekre
sz.jegyekI := 0;
s := inttostr(szam);
for i := 0 to length(s) do
begin
sz.jegyek[i] := inttostr(s[i]);
sz.jegyekI := sz.jegyekI + 1;
end;
//felbontás kész a sz.jegyek tömbbe vannak az egyjegyű számok
//oké most adogassuk a szjegyeket addig amíg kisebb 10nél ("mindaddig amíg EGY JEGYŰ számot kapunk")
i := 0; //Nem fontos
while(eredmeny<10) //tehát egyjegyű mert kevesebb 10nél
begin
eredmeny := eredmeny + sz.jegyek[i];
i := i + 1; //Azt tárolja hol tartunk épp
end;
end;
Tehát az első mondat amit írtál az programozó nyelven valami ilyesmi. Gondolom értesz hozzá (valamennyit) és egy apró szintaktikai hibát (vagy netán logikait:P) ki tudsz javítani mert nem teszteltem le..
Ez a függvény úgy műkszik hogy a számjegyeket az elsőtől adogatja az ultolsóig.. Ha fordítva akarod (nem egyértelmű) akkor megfordítod a sztringet. azaz így néz ki az a rész:
sz.jegyekI := 0;
s := inttostr(szam);
//EZ A MEGFORDÍTÁS
s2 := s;
for i := 0 to length(s) do
begin
s[i] := s2[length-i];
end;
//MEGFORDÍTÁS KÉSZ
for i := 0 to length(s) do
begin
sz.jegyek[i] := inttostr(s[i]);
sz.jegyekI := sz.jegyekI + 1;
end;
Első nekifutásra ennyit tudok mondani..
Hibakezelésből megbukott a függvény rendesen, de azon még lehet segíteni :)
16/F
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!