Kezdőoldal » Számítástechnika » Programozás » Pascal: Deklarált statikus...

Pascal: Deklarált statikus tömb elemeit beépített csere függvénnyel meg lehet cserélni úgy hogy ne kelljen mindegyikhez külön-külön megírni?

Figyelt kérdés

Mutatok egy példa-kódot, hogy mire is gondolok.

Deklarálok három különböző méretű statikus tömböt, ha kézzel szeretném megírni a csere függvényt, akkor külön-külön függvényt kell írnom minden tömbre és segéd-változót felvenni.

Nincsen olyan univerzális megoldás, hogy megadom neki: adott tömb 'i' és 'j' eleme cseréljen helyet?

Mindenképpen meg kell írni annyiszor ahány tömb van az adott programban?


program tomb;


var

tomb1 : array[1..100] of longint;

tomb2 : array[1..50] of longint;

tomb3 : array[1..200] of longint;

begin

end.



2017. márc. 28. 15:27
 1/10 anonim ***** válasza:

"Nincsen olyan univerzális megoldás, hogy megadom neki: adott tömb 'i' és 'j' eleme cseréljen helyet? "


Nincs. De meddig tart megírni egy ilyen swap függvényt? Öt perc?

2017. márc. 28. 15:55
Hasznos számodra ez a válasz?
 2/10 A kérdező kommentje:

Tudok olyat írni, amely több tömbtípus esetén is kicseréli az adott elemeket, nem kell mindegyikre külön-külön legyártani?

Ismereteim szerint mindegyikre külön-külön le kell gyártani, de ha lehet írni egy univerzálisan működőt, az érdekelne.


Például ezt miként alakítsam univerzálissá hogy ne kelljen legyártani annyiszor ahány tömb van?


procedure csere (var i, j : longint);

var

cs : longint;

begin

cs:=tomb1[i];

tomb1[i]:=tomb1[j];

tomb1[j]:=cs;

end;

2017. márc. 28. 16:12
 3/10 A kérdező kommentje:
Mondjuk adott tömböt is átadnám neki cserekor, nemcsak indexeket és csak azt cserélné...
2017. márc. 28. 16:21
 4/10 anonim ***** válasza:
Na látod. Tudsz te gondolkozni.
2017. márc. 28. 16:24
Hasznos számodra ez a válasz?
 5/10 A kérdező kommentje:
Ismereteim szerint ha átadom neki paraméterben a tömböt is, akkor is annyiszor kell legyártani, ahány tömb van deklarálva....
2017. márc. 28. 16:25
 6/10 A kérdező kommentje:
#50% megmutatod a csere átalakítását oly módon, hogy mindhárom tömbre globálisan alkalmazható legyen?
2017. márc. 28. 16:35
 7/10 sharkxxx ***** válasza:

procedure csere(var tomb1: array of longint; const i, j : longint);

var cs : longint;

begin

cs:=tomb1[i-1];

tomb1[i-1]:=tomb1[j-1];

tomb1[j-1]:=cs;

end;

2017. márc. 28. 16:49
Hasznos számodra ez a válasz?
 8/10 A kérdező kommentje:
Jaa értem, ez az aminek tomb2 és tomb3 esetén is működnie kellene?
2017. márc. 28. 17:03
 9/10 anonim ***** válasza:

Persze, működik is.

De csak azonos típusú elemekből álló tömbökön.

2017. márc. 28. 19:11
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:

Ahh, kezdem sejteni mit is akarsz.

Neked olyasmi kéne, hogy longint, int vagy byte tipusú elemeket tartalmazó tömb esetén is egy függvény legyen ami cseréli az elemeket.


Ezt is meg lehet oldani, de ekkor vagy typecast kell, vagy tipusokat létrehozni a használt tömbökből és a tipust is átadni paraméterként.


Params:

a: tomb;

b: tomb tipusa;

c: forras_index;

d: cel_index;

2017. márc. 28. 19:18
Hasznos számodra ez a válasz?

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!