kol. 2

Transkrypt

kol. 2
Sprawdzian cz. 1 (instrukcje warunkowe, iteracje, tablice)
Proszę o zapoznanie się z treścią zadania i napisanie programu sortującego niemalejąco
tablicę jednowymiarową o rozmiarze n. Proszę wykorzystać preferowane środowisko
programistyczne (DEV C++, Code::Blocks, Visual Studio, Eclipse). Na koniec zajęć, po
sprawdzeniu kodu przez prowadzącego i wystawieniu oceny, proszę przesłać tylko plik z
kodem źródłowym jako załącznik do maila (proszę nie wklejać kodu w treść maila) na adres:
[email protected]. Maila proszę zatytułować w następujący sposób: PP_S1_GX_INDEKS,
gdzie X to numer grupy, a INDEKS to numer indeksu studenta.
Zadanie:
1. Zadeklarować i wypełnić, korzystając z literału tablicowego, tablicę rozmiaru n
dowolnie wybranymi liczbami z zakresu od 0 do 99.
2. Wydrukować zawartość tablicy.
3. Wylosować przy pomocy funkcji rand dwa różne indeksy (liczby z zakresu od 0 do n-1)
i jeżeli wartość komórki o indeksie niższym jest większa od wartości komórki o
indeksie wyższym należy zamienić te wartości miejscami, a następnie wydrukować
informację które indeksy zostały zamienione oraz nową zawartość tablicy (jeśli nie
dokonano żadnej zmiany to nic nie drukuj).
4. Program w głównej pętli wykonującej się n3 razy, będzie dokonywał operacji
opisanych w punkcie 3.
5. Na koniec należy podać liczbę obiegów pętli głównej.
6. (zadanie dodatkowe) W celu przyśpieszenia działania programu należy w każdym
obiegu pętli głównej sprawdzić, czy wartości w tablicy są posortowane. Jeśli tak to
program powinien wyjść z pętli oraz wydrukować informację, że udało się
posortować dane w tablicy.
7. Czy po n3 obiegach pętli głównej zawsze uda się posortować niemalejąco liczby w
tablicy? Dlaczego?
Przykładowy wydruk ekranu dla n = 6 i zadeklarowanych elementów tablicy = [11, 4, 9,5 14,
73, 60] (kolory oznaczają wartości zamienione miejscami w kolejnych obiegach pętli głównej,
co zostanie opisane szczegółowo w dalszej części instrukcji):
Elementy tablicy:
zamieniono indeks:
Elementy tablicy:
zamieniono indeks:
Elementy tablicy:
zamieniono indeks:
Elementy tablicy:
zamieniono indeks:
Elementy tablicy:
zamieniono indeks:
Elementy tablicy:
11 4 95
0 = 11 z
4 11 95
2 = 95 z
4 11 73
3 = 14 z
4 11 14
5 = 60 z
4 11 14
4 = 60 z
4 11 14
14 73 60
indeksem:
14 73 60
indeksem:
14 95 60
indeksem:
73 95 60
indeksem:
73 60 95
indeksem:
60 73 95
1 = 4
4 = 73
2 = 73
4 = 95
3 = 73
Elementy w tablicy posortowane
Program wymagał 69 obiegów pętli głównej
W pierwszej linijce program jedynie wyświetlił kolejne elementy tablicy:
Elementy tablicy: 11 4 95 14 73 60
W jednym z kolejnych obiegów pętli głównej wylosowano indeksy 0 i 1, które spełniały
warunek podany w pkt. 3. Wartości tych indeksów zostały zamienione miejscami.
Wydrukowana została informacja, które indeksy zostały zamienione wraz z podaniem ich
wartości (drugi wiersz przykładu). Następnie, ponownie wydrukowano aktualną zawartość
tabeli (trzeci wiersz przykładu, kolorem czerwonym zaznaczono zamienione indeksy). Po
przeprowadzeniu kolejnych czterech zmian analogicznych do opisanej powyżej program
sprawdził, że dane w tablicy są posortowane i przerwał wykonywanie pętli głównej oraz
wypisał stosowny komunikat (przedostatnia linia). W ostatniej linii program drukuje
informacje o liczbie wykonanych obiegów pętli głównej. Widać, że uzyskana wartość 69 jest
mniejsza od zadeklarowanej w pkt. 4 równej n3 = 63 = 216.
UWAGA !!! – Proszę oddać tę kartkę prowadzącemu po
zajęciach.