Pascal-ban "szócserélgetős" programot írtam. Miként lehetne ezt a kódot jobbá tenni? (bővebben lent)
A program úgy működik, hogy string-et olvas be, majd megnézi a tömbben, hogy adott szó található-e az adott string-ben.
Azt godnoltam ki, hogy a tömb páratlan indexén a figyelendő szavakat, páros indexén pedig az adott szó helyére illesztendő szavakat tárolom.
Szeretném azt is, hogy pl. lehetőleg bármilyen hosszú stringgel elboldoguljon, ehhez ansi string-et kellene használni? (ha probléma lenne valami miatt a 255 méretű stringgel), pl. sortörések miatt);
Egyetlen szóval is háááááát jó lassúnak tűnik a program. :-)
Mondjuk a tömb méretét is lehetne limitálni a leghosszabb szó méretére, de ez szerintem nem gyorsítana semmit rajta.
program szo_csere;
var
inf,outf:text;
s:string;
szavak:array[1..2] of string;
i,poz:byte;
begin
assign(inf,paramstr(1));
reset(inf);
assign(outf,paramstr(2));
rewrite(outf);
szavak[1]:='alma';
szavak[2]:='körte';
while not eof (inf) do
begin
readln(inf,s);
poz:=pos(szavak[1],s);
if poz>0 then begin
delete(s,poz,length(szavak[1]));
insert(szavak[2],s,poz);
end;
writeln(outf,s);
end;
close(inf);
close(outf);
end.
{$I-}
Reset(....)
{$I+}
Csak megnyitás 'idejére kapcsoljuk ki, mert a végén még elfeledkezünk róla.
Halt() Itt célszerű egy értéket megadni, ha hiba miatt szakadt meg a program végrehajtása.
Ha később elszakadsz a Pascal-tól szokj hozzá, hogy a tömbök indexe alapvetően 0-tól kezdődik, jelen esetben is ha dinamikus tömböt készítettél volna az is a 0-ás indexen tárolta volna az első adatot.
Hogy pocsék a kód, lehet csak az én szememben, de a foglalt szavak mindig kisbetűsek a többiek pedig, mint ahogy írtad is, értelemszerűen nagy kezdőbetűvel és 'ahol kell' ismét nagybetű. Tudom nem érzékeny rá, de sokkal szebb.
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!