Dżemowy Napisano Wrzesień 9, 2014 Zgłoś Share Napisano Wrzesień 9, 2014 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 More sharing options...
5corpio Napisano Wrzesień 11, 2014 Zgłoś Share Napisano Wrzesień 11, 2014 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 More sharing options...
Dżemowy Napisano Wrzesień 12, 2014 Autor Zgłoś Share Napisano Wrzesień 12, 2014 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 More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.