Pascal: Hogyan oldhatnám meg ezt a problémát?
Nem komplikált, végigmés egy ciklussal az eredeti tömb elemein, és a cikluson belül egy másik ciklusban a második tömbön is végigmész, és megnézed, szerepel-e már benne az az elem. Ha igen, akkor nem rakod be, ha nem, akkor berakod.
(Értelemszerűen ha a második tömbben megtalálod az aktuális elemet, akkor nem kell tovább nézni, hanem rögtön nézheted az eredeti tömb következő elemét).
4 éve nem Pscaloztam, de ilyesmi
Names - nevek tömbje
FilteredNames - szűrt nevek tömbje
N - nevek tömb hossza
M - szűrt nevek tömb hossza
for i:= 1 to N do
begin
j:=1;
while j<=M and Names[i] <> FilteredNames[j] do
j:=j+1;
if j<=M then
begin
M:=M+1;
FilteredNames[M]:=Names[i];
end
end
...
Jó kis pascal...
C#-ban ez a feladat így néz ki:
var distinctArray = array.Distinct().ToArray();
program tomb_1;
var nevek : array[1..10] of String[12] = ('Eva', 'Adam', 'Jozsef', 'Katalin', 'Ivan',
'Agnes', 'Eva', 'Adam', 'Timea', 'Ivan');
szurt_nevek : array of String[12];
i, j : Integer;
van : Boolean;
begin
for i := Low(nevek) to High(nevek) do
begin
van := False;
WriteLn(nevek[i]);
for j := Low(szurt_nevek) to High(szurt_nevek) do
if nevek[i] = szurt_nevek[j] then van := True;
if not van then
begin
SetLength(szurt_nevek, Length(szurt_nevek) + 1);
szurt_nevek[Length(szurt_nevek) - 1] := nevek[i];
end;
end;
WriteLn('-----------------------');
for j := Low(szurt_nevek) to High(szurt_nevek) do
WriteLn(szurt_nevek[j]);
ReadLn;
end.
#7: Bocsánat, ha bunkón jöttem ki, megpróbáltam természetesen átértelmezni a saját kódomra de nem sikerült. Mindenesetre köszönöm a segítséget.
#8: Köszönöm szépen, működött!
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!