Lab Pascal zadanie 1

Zadanie 1 z laboratorium programowania na Informatyce UW.

 Zadanie 1 (termin wysylania rozwiazan: 18 I 2008, godz. 23:59)

(Lamiglowka "Pietnascie")

Dana jest plansza o rozmiarach cztery na cztery, na ktorej znajduje sie
pietnascie "klockow" oznaczonych duzymi literami. W pierwszym wierszu
planszy sa cztery klocki: "A", "B", "C" i "D", w drugim "E", "F", "G" i
"H", w trzecim "I", "J", "K", "L", w czwartym "M", "N", "O". Pole
w czwartym wierszu i czwartej kolumnie jest puste.

Klocek mozna przesunac na sasiadujace z nim wolne pole, zwalniajac tym
samym pole, na ktorym klocek znajdowal sie do tej pory.

W kazdej chwili na planszy jest co najwyzej jeden klocek, ktory mozna
przesunac w dol (ten, ktory znajduje sie nad pustym polem), co najwyzej
jeden, ktory mozna przesunac w prawo itd.

Napisz program, ktory umozliwi przesuwanie klockow na planszy i bedzie
wypisywal na wyjscie wynik.

Program wczyta z wejscia ciag liter ze zbioru {'l', 'p', 'g', 'd'}
zakonczony znakiem, ktory do tego zbioru nie nalezy. Kazda litera
jest poleceniem przesuniecia klocka na planszy:

'l' - w lewo
'p' - w prawo
'g' - w gore
'd' - w dol

Program wypisze na wyjscie stan poczatkowy planszy, a nastepnie dla kazdej
litery z wejscia bedzie probowal wykonac reprezentowane przez nia
przesuniecie klocka. Jesli przesuniecie nie bedzie mozliwe, bo np. puste
pole jest w ostatnim wierszu planszy, a wczytana litera to 'g', stan planszy
sie nie zmieni. Dla kazdej litery wczytanej z wejscia, niezaleznie od tego,
czy spowodowala ona przesuniecie klocka, wypisujemy wynikowy stan planszy.

Stan planszy wypisujemy w pieciu wierszach. W czterech pierwszych podajemy
znaki z klockow znajdujacych w kolejnych wierszach planszy, oznaczajac
spacja miejsce puste; piaty wiersz ma byc pusty.

Np. dla danych, znajdujacych sie w dolaczonym do tresci tego zadania pliku
zsi07z01.dane, program powinien wypisac to, co jest w pliku zsi07z01.wynik.

I oto rozwiązanie:

Leave a Reply