Zestaw 1: procedurę Wstaw wstawiającą do sznura podanego jako parametr element zawierający liczbę podaną jako parametr tak, aby sznur był uporządkowany niemalejąco (zakładając, że sznur wejściowy jest już uporządkowany w taki sposób); procedurę Usun usuwającą ze sznura podanego jako parametr (uporządkowanego niemalejąco) wszystkie elementy z przedziału domkniętego [A,B], gdzie A i B są liczbami całkowitymi będącymi parametrami procedury. Pamięć zajmowana przez usuwane elementy ma zostać zwolniona, procedura nie może używać tablic ani pomocniczych sznurów; jego zawartości (procedura Wypisz; przykład: dla zestawu liczb wejściowych 1,2,1,3,3,4,2,1 sznur uzyskuje postać 1,1,1,2,2,3,3,4), a następnie usunięcie w sznurze wszystkich wartości z przedziału pobranego od użytkownika (procedura Usun) i ponowne wypisanie jego zawartości (przykładowo po podaniu przez użytkownika przedziału [-1,2] powyższy sznur uzyska postać 3,3,4; w przypadku przedziału pustego (lewy kraniec większy niż prawy) sznur ma pozostać bez zmiany). Zad. 2: Rozszerzyć pakiet z zad.1 o procedurę UsunGrupy, która modyfikuje sznur podany jako parametr poprzez usunięcie z niego wszystkich co najmniej N-elementowych grup sąsiednich elementów przechowujących te same wartości (gdzie N jest liczbą całkowitą dodatnią będącą parametrem procedury). Przykłady: dla N=3 sznur 1,2,2,2,3,4,4,5,5,5,5,5,5,6,7,7 ma zostać przekształcony do postaci 1,3,4,4,6,7,7 w przypadku N=1 ma nastąpić wyczyszczenie sznura. Pamięć zajmowana przez usuwane elementy ma zostać zwolniona; procedura nie może używać tablic ani pomocniczych sznurów. Wykorzystać procedurę w programie testującym. Zad. 3: Rozszerzyć pakiet z zad.1 o procedurę Przegrupuj o dwóch parametrach S1, S2 będących sznurami, przegrupowującą elementy sznurów tak, aby S1 zawierał wszystkie te elementy z obu sznurów które przechowują wartości parzyste, a S2 wszystkie elementy obu sznurów przechowujące wartości nieparzyste. Wartości w obu sznurach mają być uporządkowane następująco: wartość z S1, wartość z S2, wartość z S1, wartość z S2 itd., na końcu ewentualne pozostałe elementy danego rodzaju z tego sznura który miał ich więcej. Sznury wynikowe mają zachowywać kolejność elementów ze sznurów wejściowych (przykład: dla S1=2,4,6,8,9,11,13 i S2=10,17,18,19 wynikiem ma być S1=2,10,4,18,6,8 i S2=9,17,11,19,13). Procedura nie może wykorzystywać tablic ani sznurów pomocniczych. Wykorzystać procedurę w programie testującym.
Zestaw 2: będącej numerem indeksu, umieszczonym na pulpicie. Pliki należy podpisać wewnątrz numerem indeksu. procedurę Wstaw dodającą na końcu sznura podanego jako parametr element zawierający liczbę podaną jako parametr; procedurę Usun usuwającą ze sznura podanego jako parametr wszystkie elementy przechowujące wartości mniejsze niż średnia z wartości w sznurze. Pamięć zajmowana przez usuwane elementy ma zostać zwolniona, procedura nie może używać tablic ani sznurów pomocniczych, jego zawartości (przykład: dla zestawu liczb wejściowych 7,4,5,6,3,7,9,2,1 sznur uzyskuje postać 7,4,5,6,3,7,9,2,1), usunięcie wszystkich elementów sznura mniejszych od średniej (procedura Usun) i wypisanie pozostałego sznura (przykład: sznur 1,4,2,3,3,2,8 ma zostać zredukowany do 4,8). Zad. 2: Rozszerzyć pakiet z zad.1 o procedurę ZmodyfikujPary, która modyfikuje sznur podany jako parametr poprzez: zamianę miejscami elementów w rozłącznych parach sąsiednich elementów tak, aby pierwszy element pary zawierał wartość mniejszą niż drugi jeśli elementy pary przechowują różne wartości, oraz usunięcie drugiego elementu pary jeśli przechowują jednakowe. Zmiana kolejności elementów pary ma być wykonana poprzez przepinanie elementów (przykład: sznur 4,3,3,5,6,6,5,2,1 zostanie przekształcony do 3,4,3,5,6,2,5,1). Procedura nie może używać tablic ani pomocniczych sznurów. Wykorzystać procedurę w programie testującym. Zad. 3: Rozszerzyć pakiet z zad.1 o procedurę PodniesPriorytet modyfikującą sznur podany jako parametr poprzez przesunięcie elementów sznura zawierających liczbę większą niż K o N miejsc w kierunku początku, lub o największą możliwą liczbę miejsc mniejszą od N jeśli przesunięcie danego elementu o N miejsc przy równoczesnym zachowaniu warunku podanego w dalszej części zadania jest niemożliwe lub jeśli znajduje się on na pozycji wcześniejszej niż N (podniesienie priorytetu tych elementów). Podnoszenie priorytetu ma zachowywać oryginalną kolejność elementów, którym podwyższamy priorytet (czyli np: dla K=3, N=4 i sznura 6,7,8,1,2,9,1,1,1,1,1,1,5 mamy dostać sznur 6,7,8,9,1,2,1,1,5,1,1,1,1), Wartości K i N są parametrami procedury (K liczba całkowita, N liczba całkowita dodatnia); procedura nie może używać tablic ani pomocniczych sznurów. Wykorzystać procedurę w programie.
Zestaw 3: będącej numerem indeksu, umieszczonym na pulpicie. Pliki należy podpisać wewnątrz numerem indeksu. procedurę Wstaw dodającą na końcu sznura podanego jako parametr element zawierający liczbę podaną jako parametr; procedurę Usun_M_Od_Ntego usuwającą ze sznura podanego jako parametr M kolejnych elementów zaczynając od N-tego (gdzie M i N są liczbami całkowitymi dodatnimi będącymi parametrami procedury). W przypadku sznura mającego mniej niż N elementów sznur powinien pozostać bez zmiany; w przypadku gdy sznur ma N lub więcej elementów, ale za mało żeby usunąć ich M zaczynając od N-tego usuwane jest tyle elementów (zaczynając od N-tego) ile można. Pamięć zajmowana przez usunięte elementy ma zostać zwolniona, procedura nie może używać tablic ani sznurów pomocniczych; jego zawartości (przykład: dla zestawu liczb wejściowych 7,4,5,6,3,7,9,2,1 sznur uzyskuje postać 7,4,5,6,3,7,9,2,1), usunięcie M elementów zaczynając od N-tego po uprzednim pobraniu wartości N i M (procedura Usun_M_Od_Ntego) i wypisanie pozostałego sznura (dla powyższego sznura, N=4 i M=3 wypisany zostanie sznur 7,4,5,9,2,1, dla tego samego sznura, N=10 i dowolnego M sznur 7,4,5,6,3,7,9,2,1, dla tego samego sznura, N=6 i M=10 sznur 7,4,5,6,3). Zad. 2: Rozszerzyć pakiet z zad.1 o procedurę Przenies modyfikującą sznur podany jako parametr poprzez przepięcie na początek sznura wszystkich elementów sznura zawierających wartości ujemne, a na koniec elementów o wartościach dodatnich. Oryginalny porządek przenoszonych elementów ma zostać odwrócony. Przykład: sznur -1,3,-2,4,0,-5,0,6 ma zostać zmieniony na -5,-2,-1,0,0,6,4,3, sznur -1,-2,-5 ma zostać zmieniony na -5,-2,-1, sznur 6,4,3 na 3,4,6). Procedura nie może wykorzystywać tablic ani sznurów pomocniczych. Wykorzystać procedurę w programie testującym. Zad. 3: Rozszerzyć pakiet z zad.1 o funkcję CzyZawieraWartosci zwracającą wartość logiczną mówiącą, czy sznur S1 podany jako parametr zawiera w sobie wszystkie wartości ze sznura S2 podanego jako drugi parametr, ułożone sąsiadująco w takim porządku jak w S2, ale niekoniecznie w takiej samej liczności. Przykład: dla S1 postaci 1,2,3,3,6,7 i S2 postaci 2,3,3,3,3,6,6,6 powinniśmy dostać prawdę, dla S2 postaci 0,2,2,3 fałsz, dla S2 postaci 2,6,3 również fałsz. Funkcja nie może wykorzystywać tablic ani sznurów pomocniczych. Wykorzystać funkcję w programie.
Zestaw 4: procedurę Wstaw wstawiającą na koniec sznura podanego jako parametr element zawierający liczbę podaną jako parametr; procedurę Usun usuwającą ze sznura podanego jako parametr wszystkie elementy zawierające najmniejszą lub największą wartość występującą w sznurze. Pamięć zajmowana przez usuwane elementy ma zostać zwolniona, procedura nie może używać tablic ani pomocniczych sznurów; jego zawartości (przykład: dla zestawu liczb wejściowych 1,1,7,4,5,6,3,7,7,9,2,1 sznur uzyskuje postać 1,1,7,4,5,6,3,7,7,,9,2,1), a następnie usunięcie ze sznura wszystkich elementów przechowujących wartość minimalną lub maksymalną (procedura Usun) i ponowne wypisanie sznura (przykłady: powyższy sznur 1,1,7,4,5,6,3,7,7,9,2,1 zostanie przekształcony do postaci 7,4,5,6,3,7,7,2, sznur 1,2,1,1,2,1 stanie się sznurem pustym). Zad. 2: Rozszerzyć pakiet z zad.1 o procedurę Przenies modyfikującą sznur podany jako parametr poprzez przepięcie na początek sznura wszystkich elementów sznura zawierających wartości ujemne, a na koniec elementów o wartościach dodatnich. Oryginalny porządek przenoszonych elementów ma zostać odwrócony. Przykład: sznur -1,3,-2,4,0,-5,0,6 ma zostać zmieniony na -5,-2,-1,0,0,6,4,3, sznur -1,-2,-5 ma zostać zmieniony na -5,-2,-1, sznur 6,4,3 na 3,4,6). Procedura nie może wykorzystywać tablic ani sznurów pomocniczych. Wykorzystać procedurę w programie testującym. Zad. 3: Rozszerzyć pakiet z zad.1 o funkcję CzyZawieraWartosci zwracającą wartość logiczną mówiącą, czy sznur S1 podany jako parametr zawiera w sobie wszystkie wartości ze sznura S2 podanego jako drugi parametr, ułożone sąsiadująco w takim porządku jak w S2, ale niekoniecznie w takiej samej liczności. Przykład: dla S1 postaci 1,2,3,3,6,7 i S2 postaci 2,3,3,3,3,6,6,6 powinniśmy dostać prawdę, dla S2 postaci 0,2,2,3 fałsz, dla S2 postaci 2,6,3 również fałsz. Funkcja nie może wykorzystywać tablic ani sznurów pomocniczych. Wykorzystać funkcję w programie.
Zestaw 5: procedurę Wstaw wstawiającą do sznura podanego jako parametr element zawierający liczbę podaną jako parametr tak, aby sznur był uporządkowany nierosnąco (zakładając, że sznur wejściowy jest już uporządkowany w taki sposób); procedurę Usun usuwającą ze sznura podanego jako parametr drugie elementy z rozłącznych par sąsiadujących elementów zawierających wartości o przeciwnej parzystości, czyli takich, w których pierwsza wartość jest parzysta, a druga nieparzysta lub odwrotnie (jeżeli sznur zawiera nieparzystą liczbę wartości, ostatni element nie jest usuwany). Pamięć zajmowana przez usuwane elementy ma zostać zwolniona, procedura nie może używać tablic ani pomocniczych sznurów; jego zawartości (procedura Wypisz; przykład: dla zestawu liczb wejściowych 1,3,2,1,3,3,4,3,1 sznur uzyskuje postać 4,3,3,3,3,2,1,1,1), a następnie usunięcie w sznurze drugich elementów z par o przeciwnej parzystości (procedura Usun) i ponowne wypisanie jego zawartości (przykładowo sznur 4,3,3,3,3,2,1,1,1 uzyska postać 4,3,3,3,1,1,1). Zad. 2: Rozszerzyć pakiet z zad.1 o procedurę PrzeniesPojedyncze modyfikującą sznur podany jako parametr poprzez przepięcie na koniec sznura wszystkich elementów zawierających unikalne wartości (oryginalny porządek przenoszonych elementów ma zostać zachowany; przykład: sznur 5,4,3,3,3,2,1,1,0 ma zostać zmieniony na 3,3,3,1,1,5,4,2,0, natomiast sznur 5,5,3,3,3,2,2 ma zostać niezmieniony). Procedura nie może wykorzystywać tablic ani sznurów pomocniczych. Wykorzystać procedurę w programie testującym. Zad. 3: Rozszerzyć pakiet z zad.1 o procedurę Przegrupuj o dwóch parametrach S1, S2 będących sznurami, przegrupowującą elementy sznurów tak, aby S1 zawierał wszystkie te elementy z obu sznurów które przechowują wartości parzyste, a S2 wszystkie elementy obu sznurów przechowujące wartości nieparzyste. Wartości w obu sznurach mają być uporządkowane następująco: wartość z S1, wartość z S2, wartość z S1, wartość z S2 itd., na końcu ewentualne pozostałe elementy danego rodzaju z tego sznura który miał ich więcej. Sznury wynikowe mają zachowywać kolejność elementów ze sznurów wejściowych (przykład: dla S1=22,20,16,10,9,7,3 i S2=18,17,12,1 wynikiem ma być S1=22,18,20,12,16,10 i S2=9,17,7,1,3). Procedura nie może wykorzystywać tablic ani sznurów pomocniczych. Wykorzystać procedurę w programie testującym.
Zestaw 7: procedurę Wypisz wypisującą zawartość listy będącej parametrem; procedurę Wstaw wstawiającą do sznura podanego jako parametr element zawierający liczbę podaną jako parametr tak, aby sznur był uporządkowany niemalejąco (zakładając, że sznur wejściowy jest już uporządkowany w taki sposób); procedurę Usun usuwającą ze sznura podanego jako parametr wszystkie elementy zawierające wartości nie należące do przedziału domkniętego [A,B], gdzie A i B są liczbami całkowitymi będącymi parametrami procedury. Pamięć zajmowana przez usunięte elementy ma zostać zwolniona, procedura nie może używać tablic ani sznurów pomocniczych. jego zawartości (przykład: dla zestawu liczb wejściowych 7,4,5,6,3,7,9,2,1,1 sznur uzyskuje postać 1,1,2,3,4,5,6,7,7,9), usunięcie z niego wartości spoza przedziału o krańcach podanych przez użytkownika (procedura Usun) i wypisanie pozostałego sznura (dla powyższego sznura i przedziału [3,8] wypisany zostanie sznur 3,4,5,6,7,7, dla tego samego sznura i przedziału [-7,20] sznur 1,1,2,3,4,5,6,7,7,9, dla dla tego samego sznura i przedziału [10,20] wypisany będzie sznur pusty, w przypadku przedziału pustego, tj. gdy lewy kraniec jest większy niż prawy, wynikiem jest również sznur pusty). Zad. 2: Rozszerzyć pakiet z zad.1 o procedurę PrzeniesNKrotne modyfikującą (uporządkowany niemalejąco) sznur podany jako parametr poprzez przepięcie na koniec sznura wszystkich elementów zawierających wartości występujące w sznurze dokładnie N razy (gdzie N jest liczbą całkowitą dodatnią będącą parametrem procedury), z odwróceniem oryginalnego porządku grup przestawianych jednakowych elementów (nie ma znaczenia jak będą przestawiane poszczególne elementy w danej grupie, ale przestawiona końcówka sznura ma być uporządkowana nierosnąco; przykład: dla N=2 sznur 2,2,3.3,3,4,4,7,7,7,7,8,9 ma zostać zmieniony na 3.3,3,7,7,7,7,8,9,4,4,2,2, natomiast sznur 3,4,8,9,9,9,9,9 ma zostać niezmieniony). Procedura nie może wykorzystywać tablic ani sznurów pomocniczych. Wykorzystać procedurę w programie testującym. Zad. 3: Rozszerzyć pakiet z zad.1 o procedurę ZamienGrupy o dwóch parametrach S1, S2 będących sznurami, zamieniającą (przepinającą) między sznurami grupy jednakowych elementów o parzystych numerach (drugie, czwarte itd. takie grupy). W przypadku gdy jeden ze sznurów zawiera więcej grup jednakowych elementów niż drugi, końcowe grupy (nie mające odpowiednika w drugim sznurze) mają pozostać bez zmiany (przykład: dla S1 = 1,1,2,2,2,3,3,4,5 i S2 = 1,1,1,1,1,4,4,5,5,5,6,6,8,9,9,9 wynikiem ma być S1 = 1,1,4,4,3,3,6,6,5 i S2 = 1,1,1,1,1,2,2,2,5,5,5,4,8,9,9,9). Procedura nie może wykorzystywać tablic ani sznurów pomocniczych. Wykorzystać procedurę w programie testującym.
Zestaw 8: procedurę Wypisz wypisującą zawartość listy będącej parametrem; procedurę Wstaw dodającą na końcu sznura podanego jako parametr element zawierający liczbę podaną jako parametr, procedurę Usun usuwającą ze sznura podanego jako parametr środkowe elementy wszystkich takich rozłącznych trójek sąsiednich elementów sznura, w przypadku których suma wartości przechowywanych w elementach wchodzących w skład trójki przekracza wartość K podaną jako drugi parametr procedury. Trójki wybierane są tak, że pierwszym elementem pierwszej trójki jest początkowy element sznura; w przypadku sznurów o długości nie podzielnej przez 3, końcowe elementy nie wchodzące w skład żadnej trójki mają pozostać bez zmiany. Pamięć zajmowana przez usunięte elementy ma zostać zwolniona, procedura nie może używać tablic ani sznurów pomocniczych. jego zawartości (przykład: dla zestawu liczb wejściowych 7,4,5,2,1,7,9,2,1,1 sznur uzyskuje postać 7,4,5,2,1,7,9,2,1,1), usunięcie z niego środkowych elementów rozłącznych trójek elementów sznura o sumie wartości przekraczających liczbę podaną przez użytkownika (procedura Usun) i wypisanie pozostałego sznura (dla sznura 7,4,5,2,1,7,9,2,1,1 i K=10 wynikiem będzie sznur 7,5,2,1,7,9,1,1, dla K=20 sznur pozostanie bez zmiany). Zad. 2: Rozszerzyć pakiet z zad.1 o procedurę Przenies modyfikującą sznur podany jako parametr poprzez przepięcie na koniec sznura wszystkich elementów zawierających wartości z przedziału domkniętego [A,B] (gdzie A i B są liczbami całkowitymi będącymi parametrami procedury), z odwróceniem oryginalnego porządku przestawianych elementów (przykład: dla przedziału [1,4] sznur 7,4,5,2,1,7,9,2,5,1,1 ma zostać zmieniony na 7,5,7,9,5,1,1,2,1,2,4, sznur 1,2,3,4 zmieniony na 4,3,2,1, a sznur 8,9,1 - pozostać niezmieniony). Procedura nie może wykorzystywać tablic ani sznurów pomocniczych. Wykorzystać procedurę w programie testującym. Zad. 3: Rozszerzyć pakiet z zad.1 o procedurę UsunWspolne o dwóch parametrach S1, S2 będących sznurami, modyfikującą oba sznury poprzez usunięcie w każdym z nich elementów przechowujących wartości występujące w każdym ze sznurów (niezależnie od liczebności tych wartości; przykład: dla S1=1,2,1,1,1,3,4,4 i S2=3,2,3,3,4,8 wynikiem będzie S1=1,1,1,1 i S2=8, dla S1=1,2,3 i S2=1,1,1,1,1 wynikiem będzie S1=2,3 i S2 będący sznurem pustym). Procedura nie może wykorzystywać tablic ani sznurów pomocniczych. Wykorzystać procedurę w programie testującym.