Kezdőoldal » Számítástechnika » Programozás » FreePascalban kaptam egy...

FreePascalban kaptam egy feladatot, de nem boldogulok vele. Valaki megírná a programját némi magyarázattal fűszerezve?

Figyelt kérdés
Egy szöveges változó két elemének cseréjét oldjuk meg az alkalmas függvények és eljárások segítségével. (Tehát nem lehet a következő a megoldás: s:=szöv[j]; szov[j]:=szov[i]; szov[i]:=s!)

2016. okt. 8. 20:20
1 2
 11/15 tabaki ***** válasza:

De ha ragaszkodol a szükségtelen dolgokhoz, föl is lehet tupírozni, még Inc is van benne:


program betucsere;


var

i, j, k, l : byte;

elem : array [0..10] of string[8] =

(#58,#63,'van','masszőr','az','kérdezi','mért','egy','hellén','ön',#32);

szoveg : array[0..3] of string = ('','','','');

sorszam : array[0..7] of byte = (5,7,8,3,6,2,4,9);


function csere(csSzoveg : string) : string;

var

i1, i2 : integer;

betu1, betu2 : string;

begin

      i1 := Pos(#104, csSzoveg);

      betu1 := Copy(csSzoveg, i1, 1);

      i2 := Pos(#109, csSzoveg);

      betu2 := Copy(csSzoveg, i2, 1);

      Delete(csSzoveg, i1, 1);

      Insert(betu2, csSzoveg, i1);

      Delete(csSzoveg, i2, 1);

      Insert(betu1, csSzoveg, i2);

      csere := csSzoveg;

end;


begin

l := 0;

k := 1;

for j := 0 to 2 do

      begin

            if j > 1 then

                  Inc(k, 2);

            for i := 0 to k      do

                  begin

                        szoveg[j] := szoveg[j] + elem[sorszam[l]] + elem[10];

                        Inc(l);

                  end;

            end;

      Inc(j);

      szoveg[j] := csere(szoveg[j-2]);

      Delete(szoveg[1], Length(szoveg[1]), 1);

      Delete(szoveg[3], Length(szoveg[3]), 1);

      szoveg[0][1] := Upcase(szoveg[0][1]);

      szoveg[2][1] := Upcase(szoveg[2][1]);

      WriteLn(szoveg[0] + szoveg[1] + elem[0]);

      WriteLn(szoveg[2] + szoveg[3] + elem[1]);

end.


(Az imént fölöslegesen felejtettem benne a CRT unitot, most elhagytam.)

2016. okt. 9. 01:30
Hasznos számodra ez a válasz?
 12/15 A kérdező kommentje:
Köszönöm, az éjszaka addig próbálkoztam, hogy magamnak is sikerült egy egészen egyszerű megoldást találni rá, és nem kellett csak inser és delete, meg a tupírozáshoz length.
2016. okt. 9. 11:17
 13/15 SimkoL ***** válasza:
Láthatnánk ? :)
2016. okt. 9. 11:48
Hasznos számodra ez a válasz?
 14/15 tabaki ***** válasza:

Egy szöveges változó két elemének cseréjét? Hááát, bemutathatnád a megoldásodat, mert én így első gondolatra azt hinném, hogy legalább egy Copy is kéne hozzá.

Egyébként egyszerűen számokkal indexelve tényleg nem túl bonyolult dolgok ezek. Én is azért írtam bele a kódba ilyen kis cseles marhaságokat, hogy egyáltalán legyen benne fölfedezni való.

2016. okt. 9. 11:56
Hasznos számodra ez a válasz?
 15/15 SimkoL ***** válasza:
Az ilyen jellegű feladatokat az alap tudás 'pallérozására' szokták adni. Azért is írtam a Chr, Ord függvényeket és a xor műveletet amik igen a könyv elején vannak.
2016. okt. 9. 13:28
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!