Forum Gry Hobby Sprzęt Rozmawiamy Archiwum Regulamin

Forum: Turbo Pascal i procedura

08.05.2011 22:26
j.a.c.k
1
j.a.c.k
56
u wot m8

Turbo Pascal i procedura

Mam problem z pewną procedurą, która usuwa elementy z tablicy. Rzecz jest bardzo dziwna, bo procedura działa zarówno na kartce, jak i osobno w innym pliku. Tylko w programie zachowuje się dziwnie :/ Nie wiem, nazwy ze sobą nie kolidują, wszystko wydaje się być w porządku.
Mógłby ktoś rzucić okiem? Wiem, że trudno tak cokolwiek wyłapać w cudzym kodzie, ale może jednak ktoś przypadkiem znajdzie błąd.

Procedura znajduje się na 137. linijce, a wywołana jest na 407. A oznacza ilość kasowanych elementów, B od którego miejsca zacząć kasowanie.
http://pastebin.com/iNmuwJXm
Sory za polskie znaki :P

edit: Aha, błąd polega na tym, że zawsze gdy podaję 1 jako miejsce od które ma zacząć kasować, procedura nie kasuje pierwszej pozycji.

08.05.2011 22:41
j.a.c.k
2
odpowiedz
j.a.c.k
56
u wot m8

up

08.05.2011 22:45
Promyk
3
odpowiedz
Promyk
149
nikczemny

Pascala nie pamiętam... ale nie jest to przypadkiem tak, ze tablice w tym języku numerowane są od 0 a nie od 1? w kod zaraz spojrzę... ale i tak nie mam czym tego tu skompilować:]

edit:

co to jest ile?

08.05.2011 22:47
j.a.c.k
4
odpowiedz
j.a.c.k
56
u wot m8

mogą być nawet od -1 :)

08.05.2011 22:58
j.a.c.k
5
odpowiedz
j.a.c.k
56
u wot m8

co to jest ile?

aktualna ilość elementów w tablicy

08.05.2011 23:19
Promyk
6
odpowiedz
Promyk
149
nikczemny

for i:=1 to b do

bym zamienił na
for i:=0 to b-1 do

potem:
for j:=a+b-i+1 to ile do

na:

for j:=a+b-i to ile do

będzie czytelniej

t[j-1]:=t[j];

co to ma na celu?
zmęczony jednak dziś już jestem:]

08.05.2011 23:37
j.a.c.k
7
odpowiedz
j.a.c.k
56
u wot m8

To ma na celu przestawienie pozostałych elementów tablicy w komórki z których elementy są usuwane.

Forum: Turbo Pascal i procedura