Kezdőoldal » Számítástechnika » Programozás » Feltöltök 10 100 elemet...

Feltöltök 10 100 elemet tartalmazó tömböt véletlen számokkal és azt az elemet szeretném megtalálni, ami legalább két tömbben előfordul azonos pozíción, például t4[7]=5 és t8[7]=5. kód lent, de az elemeket megtaláló ciklus megírásában segítene valaki?

Figyelt kérdés

Tehát először feltöltöm random számokkal, aztán gondoltam, hogy segítheti a dolgot, ha egyenként kiteszem az elemeket egy összesítő tömbbe, de így se volt ötletem a mindent mindennel összehasonlító ciklusra, amely ráadásul úgy kellene hogy működjön, hogy azonos elemet önmagával ne hasonlítson össze...


Program tomb;

uses crt,dos;

var

t1,t2,t3,t4,t5,t6,t7,t8,t9,t10:array[1..100] of word;

i,j:word;

elem:word;

bigarray:array[1..1000] of word;

begin

randomize;

for i:=1 to 100 do

begin

elem:=random(65000);

t1[i]:=elem;

elem:=random(65000);

t2[i]:=elem;

elem:=random(65000);

t3[i]:=elem;

elem:=random(65000);

t4[i]:=elem;

elem:=random(65000);

t5[i]:=elem;

elem:=random(65000);

t6[i]:=elem;

elem:=random(65000);

t7[i]:=elem;

elem:=random(65000);

t8[i]:=elem;

elem:=random(65000);

t9[i]:=elem;

elem:=random(65000);

t10[i]:=elem;

end;

i:=0;

j:=0;

repeat

inc(i);

inc(j);

bigarray[j]:=t1[i];

inc(j);

bigarray[j]:=t2[i];

inc(j);

bigarray[j]:=t3[i];

inc(j);

bigarray[j]:=t4[i];

inc(j);

bigarray[j]:=t5[i];

inc(j);

bigarray[j]:=t6[i];

inc(j);

bigarray[j]:=t7[i];

inc(j);

bigarray[j]:=t8[i];

inc(j);

bigarray[j]:=t9[i];

inc(j);

bigarray[j]:=t10[i];

until(j=1000);

end.



2014. júl. 26. 21:42
1 2
 11/13 tabaki ***** válasza:
Még: Így reggelre kelve azért már vállalhatatlannak tartom az éjjeli kómában fogant egyezésvizsgálatomat. Ez ugyebár csak egy előzetes vizsgálat, amelyik mindössze annyit tisztáz, hogy azon a tömbpozíción van-e egyezés egyáltalán (a végleges kezelését, vagyis, hogy ott mely számok, mely tömbökben ismétlődnek, neked kéne megírnod) -- ez viszont az ELSŐ egyezésnél eldőlt, tehát utána nem kell lelkiismeretesen végigmenni a ciklusok további részén, hanem ki kell lépni annak a pozíciónak a vizsgálatából. Itt olyan kicsi a tömb, hogy futtatáskor észrevehetetlen az üresjárat, de a növelésével egyre ordítóbb lenne.
2014. júl. 27. 10:47
Hasznos számodra ez a válasz?
 12/13 SimkoL ***** válasza:
Mint már próbáltam rámutatni mivel 100-as tömbelemről beszélünk, és elég kicsi a valószínűsége - attól függően hány tömbről beszélünk - hogy két tömbben egyforma számokat találunk ezért a sebesség szempontjából érdemes halmazokat használni. Ha nincs közös elemük felesleges végigfuttatni a ciklust :) De javítsatok ki ha tévedek.
2014. júl. 27. 14:41
Hasznos számodra ez a válasz?
 13/13 tabaki ***** válasza:

@SimkoL:

El kellett mennem itthonról, de ne hidd, hogy nem piszkáltad fel a kíváncsiságomat -- ha te ilyen nyomatékkal emlegetsz valamit, annak oka van... Én meg nem vagyok programozó, jól fogna egy kis tanulás. Bemutatnád a halmazos megoldást?

2014. júl. 27. 21:46
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!