Dziwnym jest, że wciąż w szkołach uczą tego języka. Dla mnie jest on średnio zrozumiały, a zarazem nie jest w ogóle ciekawy. Cóż… Niebawem mam zaliczenie z programowania, a bacząc na to, że jednym z tematów jest „sortowanie tablicy „x” elementowej metodą bąbelkową” postanowiłem się co nieco wziąć za napisanie takiego programu. Bynajmniej nie chciałem szukać w sieci rozwiązań, bo nie zrozumiałbym zawartych treści (programistycznego bełkotu). Przysiadłem kilka dni, nagłowiłem się sporo i… napisałem w końcu program sortujący tablicę „x” elementową.
Potomnym się może nie przydać, ale choćby dla ludzi z mojego roku – tak
. Może da się to prościej napisać, może… moja wiedza nie pozwala jednak na bardziej zawiłe/krótsze rozwiązania. Mam nadzieję (ja to wiem), że w następnym semestrze z C++ będzie ciekawiej i prościej niż z tym Pascalem. Nie dość, że to bezużyteczny przeżytek… to nadal każą się tego uczyć, eh, eh, eh…
Co musimy wiedzieć nim zaczniemy?
Pascal nie potrafi sam z siebie posortować talicy, trzeba go zmusić do tego deklarując kilka zmiennych. Niezbędne nam będzie zadeklarowanie pewnej stałej, oraz trzech zmiennych. Dwie ze zmiennych są potrzebne do przechowania elementów, a trzecia jest pomocnicza, ale również niezbędna. Sortowanie elementów odbywa się na zasadzie porównania elementów (instrukcja warunkowa) N-1 razy. Jeśli element A jest mniejszy od B, przechowuje go w pamięci, potem patrzy, czy B < C, itd. Porównanie elementów odbywa się o jeden raz mniej niż tablica ma elementów, co można przyuważyć sortując tablicę np. 3 elementową.
A<B – tak. Pisz A.
B<C – nie. Pisz C.
Brak więcej elementów do porównania. Pisz B.
Kod programu
Jest to wersja bez żadnych bajerów, robi po prostu, co ma robić i na tym jej działanie się kończy
. Na końcu wpisu do pobrania jest troszkę odpicowana przeze mnie wersja, jednakże bez kodu źródłowego.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | { Autor: Filip "inzaghi89" Cierpich www: http://keepmind.eu Licencja: GPL } program babelki; uses crt; const n=10; var tab : array[1..n] of integer; i,j,pom : integer; begin clrscr; randomize; write(' Wyswietlam ',n,' wylosowanych liczb: '); for i:=1 to n do begin tab[i]:=random(100)+1; write(tab[i],' '); end; for i:=2 to n do begin j:=i; repeat if (tab[j]<tab[j-1]) then begin pom:=tab[j]; tab[j]:=tab[j-1]; tab[j-1]:=pom; end; dec(j); until(j=1); end; writeln;writeln; write(' Wyswietlam posortowane liczby: '); for i:=1 to n do begin write(tab[i],' '); end; repeat until keypressed; end. |
Pobierz gotowy program: Kliknij, by pobrać!
> Mam nadzieję (ja to wiem), że w następnym semestrze z C++ będzie ciekawiej i prościej niż z tym Pascalem.
C++ prostsze niż Pascal? Bawhahahah.
Pojęcie o programowaniu nagle całkowicie się zmienia, gdy trzeba się go uczyć. Wiem, co u mnie było z Cpp, chodzenie na zaliczenia po 3 razy
, aż zrozumiałem. Swoje trzeba przeboleć, ale dasz radę ;P.