Forum studentów Informatyki Zaocznej na Uniwersytecie Opolskim
Zrobiłem zadanie polegające na sortowaniu rosnącym 4 liczb, może się komuś przyda.
Sprawdzone w programie "Maszyna RAM".
Oto kod programu wraz z komentarzami (znaki #):
read 1 #Wczytywanie danych z taśmy WE
read 2
read 3
read 4
load =3 #Ustaw licznik 1
store 5
warunek_1: load 5 #Sprawdzenie warunku nr 1
jzero pisz_wynik #Koniec sortowania, wypisz posortowany ciąg
licznik_2: load =3 #Ustaw licznik 2
store 6
warunek_2: load 6 #Sprawdzenie warunku nr 2
jzero zmniejsz_licznik_1 #Pierwsza liczba ciągu na swoim miejscu
jgtz porównaj
zmniejsz_licznik_1: load 5 #Zmniejszenie o 1 wartości licznika nr 1
sub =1
store 5
jump warunek_1
porównaj: load 6 #Porównanie wartości dwóch sąsiednich komórek pamięci
add =1
store 7
load *6
sub *7
jgtz zamień #Trzeba zamienić porównywane dwie wartości miejscami
jump zmniejsz_licznik_2
zamień: load *6 #Zamiana miejscami wartości w porównywanych komórkach pam.
store 8 #Komórka pomocnicza
load *7
store *6
load 8
store *7
zmniejsz_licznik_2: load 6 #Zmniejszenie o 1 wartości licznika nr 2
sub =1
store 6
jump warunek_2
pisz_wynik: write 1 #Wypisanie posortowanych danych na taśmę WY
write 2
write 3
write 4
halt
W programie "Maszyna RAM" zamiast symbolu * stosowany jest ^ .
Offline