Hogyan hivatkozhatok egy tömb elemének karakterére Pascalban?
function osszefesul(s, s1: string): string;
var i: byte;
begin
SetLength(osszefesul, 90);
for i := 1 to Length(s) do
begin
if s[i] <> '#' then osszefesul[i] := s[i]
else if s1[i] <> '#' then osszefesul[i] := s1[i]
else osszefesul[i] := s[i];
end;
end;
Elnézést, itt nálunk már megkezdődött a szüret, most értem haza.
A Classes véletlenül maradt benne, mert azt automatikusan kínálja a Lazarus. Az StrUtils is a PosEx miatt van, csak az előző hozzászólásom miatt került bele, jó a Pos is.
Az összefesul függvény két string-ből készít egyet, úgy hogy ha legalább az egyik karakter helyén nem # van akkor a karaktert írja be az új string-be. Ha nem akkor #. Az így 'elkészített' string-re kicseréli a ciklusban következőt. Végül is egyetlen ciklussal és függvénnyel visszaállítható az összes üzenet. A feltétel alapján addig fésüli össze az üzeneteket amig a napok sorszáma egyezik és az összefésült üzenet a restore változóba kerül, majd ez kerül kiírásra. Nem olyan bonyolult és szerintem ebben a formában ez a leghatékonyabb. A PosEx kivételével - jó helyette itt a Pos is - TP alatt is működik.
Köszönöm szépen.
Simkol: a hetes feladat nagyon ügyes, nekem négyszer ilyen hosszú lett (valószínűleg tízszer annyi idő alatt)
Elég érdekes volt az egész feladat megfogalmazása. Mivel a Val eljárás alap a Pascalban nem értettem, hogy miért is kellett a 6-os feladat, csak bekavart volna a 7-es megvalósításában - már ha használod.
Mint láttad nem kell sokdimenziós tömb, az összetartozó adatokat érdemes egy rekordszerkezetbe pakolni. Rá kell szánni pár percet a feladat végig gondolására, átnézni a megvalósítandó részfeladatokat és azok alapján dönteni az adattárolás módjáról. A file írás-olvasás hibakezelése talán még plusz pontot is érhet :)
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!