Skocz do zawartości

Ilość liczb powtarzających się [Problem]


Dżemowy

Polecane posty

Witam,

 

Napisałem mały programik, który miał utworzyć 10-elementową tablicę liczb, a następnie policzyć ile różnych liczb się w niej znajduje. Program miał porównywać kolejne liczby pierwszej tablicy z elementami tablicy pomocniczej, do której wpisywał unikatowe liczby. Niestety, po prawidłowej kompilacji i uruchomieniu program wywala błąd 201, sygnalizujący (wg. internetu) odwołanie się nie tablicy z poza zakresu. Czy mógłby ktoś spojrzeć, co zrobiłem źle? Dodam, że program wywala się po którymś z koleji przejściu przez drugą pętlę.

 

 

var 	tab: array[1..10] of integer;
       tab2: array[1..11] of integer;
       n, i, j, wynik: integer;

begin
Randomize;

for i := 1 to 10 do
tab[i] := Random(4);

tab2[1] := tab[1];
wynik :=1;

for i := 2 to 10 do
       begin
       n :=wynik;
       for j := 1 to n do
               begin
               if tab[i]<>tab2[j] then
                       begin
                       tab2[wynik+1] := tab[i];
                       wynik := wynik+1;
                       end;
               end;
       end;

for i:= 1 to 10 do
writeln(tab[i]);
writeln;

for i:= 1 to wynik do
writeln(tab2[i]);
writeln;
write(wynik);
readln;
end.

Link do komentarza
Udostępnij na innych stronach

Od cholery i ciut ciut nie programowałem niczego ale pamiętam, że były jakieś zbiory bodajże w Delphi. Takie coś szybko odnalazłem:

 

http://www.delphibasics.co.uk/Article.asp?Name=Sets

http://www.delphibasics.co.uk/RTL.asp?Name=Set

 

1. Robisz Set of Integer (pusty).

2. Iterujesz po pętli z wylosowanymi liczbami.

3. Sprawdzasz czy liczba jest w zbiorze (jeśli nie dodajesz ją tam / jak jest to nie dodajesz)

4. Na koniec sprawdzasz rozmiar zbioru. I tu właśnie mam wątpliwość czy metoda np. Length() bazująca na stringach/tablicach zadziała czy nie. To już musisz sam sprawdzić bo jak mówiłem nie kodowałem od ho ho.

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link do komentarza
Udostępnij na innych stronach

Punkt 4. wygląda u mnie trochę inaczej: mam zmienną "wynik", która podlicza ile jest liczb w drugiej tablicy. U mnie problem pojawia się w punkcie 3. Przy którymś dodaniu program wywala, że odwołał się do tablicy, która nie istnieje.

 

Sam problem traktuje jako ciekawostkę. Zrobiłem to też inaczej: wylosowałem liczby, ustawiłem w kolejności rosnącej i różnica dwóch kolejnych liczb to "wynik+1" i działa poprawnie. :)

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...