Zestaw A-1: Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.adb i.ads)!!! Zad. 1: 4,3,3 2,2,1 Zad. 2: 3,3,3 Zad.

Podobne dokumenty
Zestaw C-11: Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.cpp i.h)!!! Zad. 1: Zad. 2:

Zestaw 1: Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.adb i.ads)!!! Zad. 1: Zad. 2: 2,2,2 5,5,5,5,5,5 Zad.

Zestaw 1 Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.adb)!!!

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

Zestaw 1 Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.adb)!!! trójki sąsiednich elementów tablicy

Zestaw 1-1 Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.cpp)!!!

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

Zestaw 2 Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.cpp)!!!

Sortowanie zewnętrzne

Podzielność, cechy podzielności, liczby pierwsze, największy wspólny dzielnik, najmniejsza wspólna wielokrotność.

Statystyka podstawowe wzory i definicje

Programowanie w VB Proste algorytmy sortowania

Przykładowe zadania na kółko matematyczne dla uczniów gimnazjum

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4

Programowanie podstawowe zestaw 1

Klasa 6. Liczby dodatnie i liczby ujemne

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Klasa 6. Liczby dodatnie i liczby ujemne

Wstęp do programowania

1 Wprowadzenie do algorytmiki

Zaprojektować i zaimplementować algorytm realizujący następujące zadanie.

if (wyrażenie ) instrukcja


Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Zadanie 1. Algorytmika ćwiczenia

4. Funkcje. Przykłady

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

Zestaw zadań dotyczących liczb całkowitych

SZKOLNA LIGA ZADANIOWA

Napisz program, który dla podanej na standardowym wejściu temperatury w stopniach Fahrenheita wypisze temperaturę w stopniach Celsjusza.

Luty 2001 Algorytmy (4) 2000/2001

*W uproszczeniu: jest dziewięciu sędziów przyznających po dwie noty: za wartość techniczną i artystyczną (skala od 0.0 do 6.0)

Algorytmy sortujące i wyszukujące

Jarosław Wróblewski Matematyka Elementarna, zima 2015/16

Moneta 1 Moneta 2 Kostka O, R O,R 1,2,3,4,5, Moneta 1 Moneta 2 Kostka O O ( )

Metoda Karnaugh. B A BC A

Programowanie obiektowe - zadania

Jarosław Wróblewski Matematyka Elementarna, lato 2012/13. Czwartek 28 marca zaczynamy od omówienia zadań z kolokwium nr 1.

WZÓR OGÓLNY CIĄGU GEOMETRYCZNEGO

Wstęp do programowania

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytm. a programowanie -

Bukiety matematyczne dla szkoły podstawowej

I) Reszta z dzielenia

XXXVIII Regionalny Konkurs Rozkosze łamania Głowy

Zadania do samodzielnego rozwiązania

Jarosław Wróblewski Matematyka Elementarna, lato 2012/13. W dniu 21 lutego 2013 r. omawiamy test kwalifikacyjny.

Jarosław Wróblewski Matematyka Elementarna, lato 2014/15

Szeregowanie zadań. Wykład nr 3. dr Hanna Furmańczyk

Test na koniec nauki w klasie trzeciej gimnazjum

Materiały dla finalistów

VII Olimpiada Matematyczna Gimnazjalistów

Zdarzenie losowe (zdarzenie)

Grupy. Permutacje 1. (G2) istnieje element jednostkowy (lub neutralny), tzn. taki element e G, że dla dowolnego a G zachodzi.

Jarosław Wróblewski Matematyka Elementarna, zima 2013/14. Czwartek 21 listopada zaczynamy od omówienia zadań z kolokwium nr 2.

WHILE (wyrażenie) instrukcja;

Matematyka podstawowa X. Rachunek prawdopodobieństwa

liczb naturalnych czterocyfrowych. Mamy do dyspozycji następujące cyfry: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. g) Ile jest liczb czterocyfrowych parzystych?

Jarosław Wróblewski Matematyka Elementarna, zima 2014/15

WHILE (wyrażenie) instrukcja;

Podstawy programowania 2. Przygotował: mgr inż. Tomasz Michno

DZIAŁANIA NA UŁAMKACH DZIESIĘTNYCH.

Zadania język C++ Zad. 1. Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy.

Zadanie 1. Doskonała inaczej (6 pkt) Poniższy algorytm wyznacza wszystkie dzielniki liczby naturalnej n 1, mniejsze od n.

Python: JPEG. Zadanie. 1. Wczytanie obrazka

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

KURS WSPOMAGAJĄCY PRZYGOTOWANIA DO MATURY Z MATEMATYKI ZDAJ MATMĘ NA MAKSA. przyjmuje wartości większe od funkcji dokładnie w przedziale

Testy nieparametryczne

Elementy statystyki opisowej, teoria prawdopodobieństwa i kombinatoryka

Złożoność obliczeniowa zadania, zestaw 2

Zadanie 1. Analiza Analiza rozkładu

1. Liczby naturalne, podzielność, silnie, reszty z dzielenia

2.8. Algorytmy, schematy, programy

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Zadanie: A2 Kapitan Mambeks i gra w skoczki Plik źródłowy: A2.pas dla języka Pascal Dostępna pamięć: 64 MB A2.c dla języka C A2.

Macierze - obliczanie wyznacznika macierzy z użyciem permutacji

Rozdział 7 Relacje równoważności

W. Guzicki Zadanie 41 z Informatora Maturalnego poziom podstawowy 1

Struktury Danych i Złożoność Obliczeniowa

plansoft.org Zmiany w Plansoft.org Błyskawiczny eksport danych PLANOWANIE ZAJĘĆ, REZERWOWANIE SAL I ZASOBÓW

Rozpoznawanie obrazu. Teraz opiszemy jak działa robot.

Sumy kwadratów kolejnych liczb naturalnych

Jarosław Wróblewski Matematyka Elementarna, zima 2012/13

Uniwersytet Kazimierza Wielkiego w Bydgoszczy Zespół Szkół nr 5 Mistrzostwa Sportowego XV Liceum Ogólnokształcące w Bydgoszczy

2. Liczby pierwsze i złożone, jednoznaczność rozkładu na czynniki pierwsze, największy wspólny dzielnik, najmniejsza wspólna wielokrotność.

Lista 4. Kamil Matuszewski 22 marca 2016

Kurs ZDAJ MATURĘ Z MATEMATYKI MODUŁ 14 Zadania statystyka, prawdopodobieństwo i kombinatoryka

Relacje. opracował Maciej Grzesiak. 17 października 2011

PODSTAWY INFORMATYKI wykład 10.

Wstęp do programowania

Bukiety matematyczne dla gimnazjum

Rekurencja. Przykład. Rozważmy ciąg

Jeszcze o algorytmach

8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana.

Napisz program wypisujący na standardowym wyjściu następujący napis: Napis zawierający różne dziwne znaczki // \ \$ &%.

Sortowanie przez wstawianie Insertion Sort

Liczby całkowite. 1. Liczbą przeciwną do 4 jest liczba: A. 1 4 B. 4 C. 4 D Odczytaj, jakie liczby zaznaczono na osi liczbowej.

KURS MATURA ROZSZERZONA część 1

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

Transkrypt:

Zestaw A-1: Oddajemy tylko źródła programów (pliki o rozszerzeniach.adb i.ads)!!! Zad. 1: Napisać pakiet rodzajowy udostępniający: typ Sznur będący dynamiczną listą łączoną, której elementy przechowują wartości dowolnego typu T; procedurę Wypisz wypisującą zawartość sznura będącego parametrem; procedurę Wstaw wstawiającą do sznura podanego jako parametr element zawierający wartość typu T 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ę UsunCiagi usuwającą ze sznura podanego jako parametr ciągi sąsiednich elementów sznura w następujący sposób: usuwamy M elementów sznura (lub tyle ile jest, gdy jest mniej), następnie omijamy dwa elementy, usuwamy kolejnych M elementów, pozostawiamy dwa, itd. (M jest liczbą całkowitą dodatnią będącą parametrem procedury). Pamięć zajmowana przez usuwane elementy ma zostać zwolniona, procedura nie może używać tablic ani pomocniczych sznurów; oraz program konkretyzujący ten pakiet dla typu integer i testujący działanie pakietu poprzez pobranie sznura liczb całkowitych (procedura Wstaw; użytkownik podaje liczby które mają być wstawione do sznura i decyduje o zakończeniu podawania), wypisanie jego zawartości (procedura Wypisz; przykład: dla zestawu liczb wejściowych 1,3,2,1,3,3,2,4,3,1,1 sznur uzyskuje postać 4,3,3,3,3,2,2,1,1,1,1), a następnie, po pobraniu od użytkownika wartości M, usunięcie w sznurze ciągów M elementów, z pozostawieniem dwóch elementów między kolejnymi ciągami (procedura UsunCiagi) i ponowne wypisanie jego zawartości (przykładowo dla M=3 sznur 4,3,3,3,3,2,2,1,1,1,1 uzyska postać 3,3,1,1). Zad. 2: Rozszerzyć pakiet z zad.1 o procedurę Obetnij, która modyfikuje sznur podany jako parametr poprzez redukcję grup sąsiednich elementów przechowujących te same wartości tak, aby nie zawierały więcej niż N elementów (gdzie N jest liczbą całkowitą dodatnią będącą parametrem procedury). Usuwane mają być ostatnie elementy w grupach. Pamięć zajmowana przez usuwane elementy ma zostać zwolniona. Przykład (dla sznura przechowującego liczby całkowite): dla N=2 sznur 7,7,7,6,5,5,3,3,3,3,3,2,1 ma zostać przekształcony do postaci 7,7,6,5,5,3,3,2,1, natomiast ten sam sznur dla N=1 przyjmie postać 7,6,5,3,2,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ę PrzepnijRowne o dwóch parametrach S1, S2 będących sznurami, modyfikującą oba sznury poprzez przepięcie między nimi elementów przechowujących wartości, które występują w drugim ze sznurów, w następujący sposób: dla każdej wartości występującej w obu sznurach sprawdzamy liczbę jej wystąpień w każdym ze sznurów i ze sznura o mniejszej liczbie wystąpień przepinamy wszystkie elementy o tej wartości na koniec drugiego sznura (w przypadku tej samej liczności zawsze przenosimy do sznura S1), elementy przechowujące wartości bez pary nie są przenoszone (przykład, dla sznurów przechowujących liczby całkowite: dla S1=7,7,5,5,4,4,3,2,2,1 i S2=6,5,4,4,4,2,1 wynikiem będzie S1=7,7,5,5,3,2,2,1,5,2,1 i S2=6,4,4,4,4,4, dla S1=2,2,1,0 i S2=2,1,1,1,-1 wynikiem będzie S1=2,2,0,2 i S2=1,1,1,-1,1). Procedura nie może wykorzystywać tablic ani sznurów pomocniczych. Wykorzystać procedurę w programie testującym.

Zestaw A-3: Oddajemy tylko źródła programów (pliki o rozszerzeniach.adb i.ads)!!! Zad. 1: Napisać pakiet rodzajowy udostępniający: typ Sznur będący dynamiczną listą łączoną, której elementy przechowują wartości dowolnego typu T; procedurę Wypisz wypisującą zawartość sznura będącego parametrem; procedurę Wstaw dodającą na końcu sznura podanego jako parametr element zawierający wartość typu T podaną jako parametr; procedurę Usun rozpatrującą rozłączne trójki sąsiednich elementów sznura i usuwającą największy z elementów trójki, jeżeli jest ona różnowartościowa, albo całą trójkę jeśli wszystkie jej elementy są równe (w pozostałych przypadkach trójka pozostaje bez zmiany). Jeżeli sznur ma długość niepodzielną przez 3, końcowe elementy (niewchodzące w skład żadnej trójki) nie są usuwane. Pamięć zajmowana przez usuwane elementy ma zostać zwolniona, procedura nie może używać tablic ani pomocniczych sznurów; oraz program konkretyzujący ten pakiet dla typu integer i testujący działanie pakietu poprzez pobranie sznura liczb całkowitych (procedura Wstaw; użytkownik podaje liczby które mają być wstawione do sznura i decyduje o zakończeniu podawania), wypisanie jego zawartości (procedura Wypisz; przykład: dla zestawu liczb wejściowych 4,7,5,1,6,6,3,3,3,9,1 sznur uzyskuje postać 4,7,5,1,6,6,3,3,3,9,1), a następnie zmodyfikowanie w sznurze rozłącznych trójek elementów (procedura Usun) i ponowne wypisanie jego zawartości (przykładowo sznur 4,7,5,1,6,6,3,3,3,9,1 uzyska postać 4,5,1,6,6,9,1, natomiast sznur 2,2,2,3,3,3 stanie się pusty). Zad. 2: Rozszerzyć pakiet z zad.1 o procedurę PrzeniesSkrajne która modyfikuje sznur podany jako parametr poprzez przeniesienie (przepięcie) w środek sznura M jego elementów końcowych i M elementów początkowych, przy czym przepinanie to wykonywane jest tak, że elementy z początku umieszczane są przed środkiem z zachowaniem ich kolejności, a elementy z końca - za środkiem, również z zachowaniem ich kolejności (przykład, dla sznurów przechowujących liczby całkowite: dla M=4 sznur 1,2,3,4,5,6,8,7,8,9,1,2 zostanie przekształcony do postaci 5,6,1,2,3,4,8,9,1,2,8,7, a sznur 1,2,3,4,5,6,7,8,9,1,2 do postaci 5,1,2,3,4,6, 8,9,1,2,7. W przypadku gdy długość sznura jest parzysta i niewiększa niż 2M albo nieparzysta i niewiększa niż 2M+1, przepinanie nie jest wykonywane. Zad. 3: Rozszerzyć pakiet z zad.1 o procedurę PrzepnijRowne o dwóch parametrach S1, S2 będących sznurami, modyfikującą oba sznury poprzez przepięcie między nimi elementów przechowujących wartości, które występują w drugim ze sznurów, w następujący sposób: dla każdej wartości występującej w obu sznurach sprawdzamy liczbę jej wystąpień w każdym ze sznurów i ze sznura o mniejszej liczbie wystąpień przepinamy wszystkie elementy o tej wartości do drugiego sznura tuż za pierwszym elementem o tej wartości (w przypadku tej samej liczności zawsze przenosimy do sznura S1), elementy przechowujące wartości bez pary nie są przenoszone (przykład dla sznurów przechowujących liczby całkowite: dla S1=1,2,7,7,1,3,4,3,4 i S2=3,2,5,3,6,3,4,8,6 wynikiem będzie S1=1,2,2,7,7,1,4,4,4 i S2=3,3,3,5,3,6,3,8,6, dla S1=1,2,2 i S2=2,1,1,1 wynikiem będzie S1=2,2,2 i S2=1,1,1,1). Procedura nie może wykorzystywać tablic ani sznurów pomocniczych. Wykorzystać procedurę w programie testującym.

Zestaw P-1: funkcję wstaw wstawiającą do sznura element zawierający wartość podaną jako parametr tak, aby sznur był uporządkowany nierosnąco (zakładając, że dany sznur jest na wejściu uporządkowany w taki sposób); funkcję usunciagi usuwającą ze sznura ciągi jego sąsiednich elementów w następujący sposób: usuwamy M elementów sznura (lub tyle ile jest, gdy jest mniej), następnie omijamy dwa elementy, usuwamy kolejnych M elementów, pozostawiamy dwa, itd. (M jest liczbą całkowitą dodatnią będącą parametrem funkcji). Pamięć zajmowana przez usuwane elementy ma zostać zwolniona, funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp); wejściowych 1,3,2,1,3,3,2,4,3,1,1 sznur uzyskuje postać 4,3,3,3,3,2,2,1,1,1,1), a następnie, po pobraniu od użytkownika wartości M, usunięcie w sznurze ciągów M elementów, z pozostawieniem dwóch elementów między kolejnymi ciągami (procedura usunciagi) i ponowne wypisanie jego zawartości (przykładowo dla M=3 sznur 4,3,3,3,3,2,2,1,1,1,1 uzyska postać 3,3,1,1). Zad. 2: Rozszerzyć klasę z zad.1 o funkcję obetnij, która modyfikuje sznur poprzez redukcję grup sąsiednich elementów przechowujących te same wartości tak, aby nie zawierały więcej niż N elementów (gdzie N jest liczbą całkowitą dodatnią będącą parametrem funkcji). Usuwane mają być ostatnie elementy w grupach. Pamięć zajmowana przez usuwane elementy ma zostać zwolniona. Przykład (dla sznura przechowującego liczby całkowite): dla N=2 sznur 7,7,7,6,5,5,3,3,3,3,3,2,1 ma zostać przekształcony do postaci 7,7,6,5,5,3,3,2,1, natomiast ten sam sznur dla N=1 przyjmie postać 7,6,5,3,2,1. Funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp). Wykorzystać funkcję w programie testującym. sznurach sprawdzamy liczbę jej wystąpień w każdym ze sznurów i ze sznura o mniejszej liczbie wystąpień przepinamy wszystkie elementy o tej wartości na koniec drugiego sznura (w przypadku tej samej liczności zawsze przenosimy do tego sznura (self)), elementy przechowujące wartości bez pary nie są przenoszone (przykład, dla sznurów przechowujących liczby całkowite: dla self =7,7,5,5,4,4,3,2,2,1 i other =6,5,4,4,4,2,1 wynikiem będzie self =7,7,5,5,3,2,2,1,5,2,1 i other =6,4,4,4,4,4, dla self =2,2,1,0 i other =2,1,1,1,-1 wynikiem będzie self =2,2,0,2 i other =1,1,1,-1,1). Funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp). Wykorzystać funkcję w programie testującym.

Zestaw P-2: funkcję wstaw dodającą na końcu sznura element zawierający wartość podaną jako parametr; funkcję usunzdodatkiem rozpatrującą kolejne elementy sznura i usuwającą rozpatrywany element i dwa następne leżące za nim jeśli ten element jest podzielny albo przez K, albo przez L (tj. przez dokładnie jedną z nich, lub przez obie gdy K=L), gdzie K i L są liczbami całkowitymi dodatnimi będącymi parametrami funkcji (podzielność elementów leżących za rozpatrywanym nie ma znaczenia; jeśli za rozpatrywanym elementem znajdują się mniej niż 2 elementy, to usuwamy tyle elementów ile jest). Pamięć zajmowana przez usunięte elementy ma zostać zwolniona, funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp); wejściowych 7,4,5,7,6,3,9,2,4 sznur uzyskuje postać 7,4,5,7,6,3,9,2,4), usunięcie elementów wg podzielności przez K i L po uprzednim pobraniu wartości K i L (funkcja usunzdodatkiem) i wypisanie pozostałego sznura (dla sznura 7,4,5,7,6,3,9,2,4 oraz K=2 i L=3 wypisany zostanie sznur 7,6, dla sznura 7,4,5,6,3,7,9,2,1 i K=L=2 sznur 7,3,7,9). Zad. 2: Rozszerzyć klasę z zad.1 o funkcję odwroctrojki, która modyfikuje sznur poprzez odwrócenie kolejności elementów we wszystkich rozłącznych trójkach sąsiednich elementów sznura o średniej wartości większej od średniej wszystkich elementów w sznurze (trójki wybierane są tak, że pierwszy element sznura jest pierwszym elementem pierwszej trójki). Przykład (dla sznura przechowującego liczby całkowite): sznur 5,8,6,6,4,5,2,5,9,3 ma zostać przekształcony do postaci 6,8,5,6,4,5,9,5,2,3. Funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp.). Wykorzystać funkcję w programie testującym. sznurach sprawdzamy liczbę jej wystąpień w każdym ze sznurów i ze sznura o mniejszej liczbie wystąpień przepinamy wszystkie elementy o tej wartości do drugiego sznura tuż za pierwszym elementem o tej wartości (w przypadku tej samej liczności zawsze przenosimy do tego sznura (self)), elementy przechowujące wartości bez pary nie są przenoszone (przykład, dla sznurów przechowujących liczby całkowite: dla self =1,2,7,7,1,3,4,3,4 i other =3,2,5,3,6,3,4,8,6 wynikiem będzie self =1,2,2,7,7,1,4,4,4 i other =3,3,3,5,3,6,3,8,6, dla self =1,2,2 i other =2,1,1,1 wynikiem będzie self =2,2,2 i other =1,1,1,1). Funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp). Wykorzystać funkcję w programie testującym.

Zestaw P-3: funkcję wstaw dodającą na końcu sznura element zawierający wartość podaną jako parametr; funkcję usun rozpatrującą rozłączne trójki sąsiednich elementów sznura i usuwającą największy z elementów trójki, jeżeli jest ona różnowartościowa, albo całą trójkę jeśli wszystkie jej elementy są równe (w pozostałych przypadkach trójka pozostaje bez zmiany). Jeżeli sznur ma długość niepodzielną przez 3, końcowe elementy (niewchodzące w skład żadnej trójki) nie są usuwane. Pamięć zajmowana przez usuwane elementy ma zostać zwolniona, funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp); wejściowych 4,7,5,1,6,6,3,3,3,9,1 sznur uzyskuje postać 4,7,5,1,6,6,3,3,3,9,1), a następnie zmodyfikowanie w sznurze rozłącznych trójek elementów (funkcja usun) i ponowne wypisanie jego zawartości (przykładowo sznur 4,7,5,1,6,6,3,3,3,9,1 uzyska postać 4,5,1,6,6,9,1, natomiast sznur 2,2,2,3,3,3 stanie się pusty). Zad. 2: Rozszerzyć klasę z zad.1 o funkcję przeniesskrajne która modyfikuje sznur poprzez przeniesienie (przepięcie) w środek sznura M jego elementów końcowych i M elementów początkowych, przy czym przepinanie to wykonywane jest tak, że elementy z początku umieszczane są przed środkiem z zachowaniem ich kolejności, a elementy z końca - za środkiem, również z zachowaniem ich kolejności (przykład, dla sznurów przechowujących liczby całkowite: dla M=4 sznur 1,2,3,4,5,6,8,7,8,9,1,2 zostanie przekształcony do postaci 5,6,1,2,3,4,8,9,1,2,8,7, a sznur 1,2,3,4,5,6,7,8,9,1,2 do postaci 5,1,2,3,4,6, 8,9,1,2,7. W przypadku gdy długość sznura jest parzysta i niewiększa niż 2M albo nieparzysta i niewiększa niż 2M+1, przepinanie nie jest wykonywane. F unkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp.). Wykorzystać funkcję w programie testującym. sznurach sprawdzamy liczbę jej wystąpień w każdym ze sznurów i ze sznura o mniejszej liczbie wystąpień przepinamy wszystkie elementy o tej wartości do drugiego sznura tuż za pierwszym elementem o tej wartości (w przypadku tej samej liczności zawsze przenosimy do tego sznura (self)), elementy przechowujące wartości bez pary nie są przenoszone (przykład, dla sznurów przechowującyh liczby całkowite: dla self =1,2,7,7,1,3,4,3,4 i other =3,2,5,3,6,3,4,8,6 wynikiem będzie self =1,2,2,7,7,1,4,4,4 i other =3,3,3,5,3,6,3,8,6, dla self =1,2,2 i other =2,1,1,1 wynikiem będzie self =2,2,2 i other =1,1,1,1). Funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp). Wykorzystać funkcję w programie testującym.

Zestaw P-4: funkcję wstaw dodającą na końcu sznura element zawierający wartość podaną jako parametr; funkcję usun usuwającą ze sznura wszystkie elementy o wartościach większych niż średnia z elementów sznura przechowujących wartość minimalną lub maksymalną w tym sznurze. Pamięć zajmowana przez usuwane elementy ma zostać zwolniona, funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp); wejściowych 4,7,5,1,6,6,7,1,3,2,9,1,1 sznur uzyskuje postać 4,7,5,1,6,6,7,1,3,2,9,1,1), a następnie usunięcie elementów przechowujących wartości większe niż średnia z elementów o najmniejszej lub największej wartości w sznurze (przykład: sznur 4,7,5,1,6,6,7,1,3,2,9,1,1 uzyska postać 1,1,2,1,1, sznur 9,9,1,1,4,4,5,4,7,2 zostanie zredukowany do 1,1,4,4,5,4,2. Zad. 2: Rozszerzyć klasę z zad.1 o funkcję przepnijtrojki, która modyfikuje sznur poprzez przepięcie na koniec sznura wszystkich rozłącznych trójek o sumie większej od liczby całkowitej N będącej parametrem funkcji. Jeżeli sznur ma długość niepodzielną przez 3, końcowe elementy (niewchodzące w skład żadnej trójki) nie są przenoszone. Przepinanie trójek ma zachować ich kolejność w oryginalnym sznurze, ale porządek elementów w trójce ma zostać zmieniony tak aby wartości w trójce były uporządkowane niemalejąco. Przykład (dla sznura przechowującego liczby całkowite): w przypadku sznura 1,7,9,3,0,1,5,5,2,4,4,1,2,9,3,2,3 i N=10 dostaniemy wynik 3,0,1,4,4,1,2,3,1,7,9,2,5,5,2,3,9, dla N=100 powyższy sznur pozostanie bez zmiany, dla N=1 uzyska postać 2,3,1,7,9,0,1,3,2,5,5,1,4,4,2,3,9. Funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp.). Wykorzystać funkcję w programie testującym. sznurach sprawdzamy liczbę jej wystąpień w każdym ze sznurów i ze sznura o mniejszej liczbie wystąpień przepinamy wszystkie elementy o tej wartości do drugiego sznura, umieszczając je tuż za ostatnim elementem o tej wartości (w przypadku tej samej liczności zawsze przenosimy do tego sznura (self)), elementy przechowujące wartości bez pary nie są przenoszone (przykład, dla sznurów przechowujących liczby całkowite: dla self =1,2,7,7,1,3,4,3,4 i other =3,2,5,3,6,3,4,8,6 wynikiem będzie self =1,2,2,7,7,1,4,4,4 i other =3,5,3,6,3,3,3,8,6; dla self =1,2,2 i other =2,1,1,1 wynikiem będzie self =2,2,2 i other =1,1,1,1). Funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp). Wykorzystać funkcję w programie testującym.

Zestaw P-5: funkcję wstaw dodającą na końcu sznura podanego jako parametr element zawierający wartość podaną jako parametr; funkcję usunciagi usuwającą elementy ze sznura w następujący sposób: usuwamy najkrótszy ciąg elementów zaczynający się początkiem sznura i taki, że iloczyn wartości w ciągu podzielony przez jego długość przekracza liczbę całkowitą dodatnią N będącą parametrem funkcji, następnie pomijamy (przeskakujemy) K elementów (gdzie K jest liczbą całkowitą dodatnią będącą kolejnym parametrem funkcji), znów znajdujemy najkrótszy ciąg elementów o iloczynie podzielonym przez długość ciągu przekraczającym N i go usuwamy, znów przeskakujemy K elementów itd. Pamięć zajmowana przez usuwane elementy ma zostać zwolniona, funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp); wejściowych 4,7,5,1,6,6,7,1,3,2,9,1,1 sznur uzyskuje postać 4,7,5,1,6,6,7,1,3,2,9,1,1), a następnie usunięcie ciągów o iloczynie podzielonym przez ich długość przekraczającym N z pominięciem K elementów między nimi (przykład: dla N=10 i K=2 sznur 4,7,5,1,6,6,7,1,3,2,9,1,1,20,8 uzyska postać 5,1,7,1,1,1,8). Zad. 2: Rozszerzyć klasę z zad.1 o funkcję przepnijtrojki, która modyfikuje sznur poprzez przepięcie na początek sznura wszystkich rozłącznych trójek sąsiednich elementów takich, że średnia z wartości trójki jest większa od N (gdzie N jest liczbą całkowitą dodatnią będącą parametrem funkcji, a rozłączne trójki są wybierane tak, że pierwszy element sznura jest pierwszym elementem pierwszej trójki). Przepinanie ma być wykonywane tak, aby kolejność przepinanych trójek i kolejność elementów w każdej trojce została zachowana. Przykład (dla sznura przechowującego liczby całkowite): dla N=5 sznur 3,6,6,4,7,5,7,3,2,9,7,1,4,2 ma zostać przekształcony do postaci 4,7,5,9,7,1,3,6,6,7,3,2,4,2. Funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp.). Wykorzystać funkcję w programie testującym. sznurach sprawdzamy liczbę jej wystąpień w każdym ze sznurów i ze sznura o większej liczbie wystąpień przepinamy wszystkie elementy o tej wartości do drugiego sznura, umieszczając je z przodu (na początku) sznura zachowując przy tym kolejność przenoszenia, tzn. na początku sznura mają się znaleźć wartości przenoszone jako pierwsze, za nimi przenoszone jako drugie, itd. W przypadku tej samej liczności zawsze przenosimy do przenosimy do tego sznura (self), elementy przechowujące wartości bez pary nie są przenoszone (przykład, dla sznurów przechowujących liczby całkowite: dla self =1,2,7,7,1,3,4,3,4 i other =3,2,5,3,6,3,4,8,6 wynikiem będzie self =2,3,3,3,1,2,7,7,1,3,3 i other =4,4,5,6,4,8,6 albo self =3,3,3,2,1,2,7,7,1,3,3 i other =4,,4,5,6,4,8,6 (zależnie od przyjętego algorytmu), dla self =1,2,2 i other =2,1,1,1 wynikiem będzie self =1,1,1,1 i other =2,2,2). Funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp.). Wykorzystać funkcję w programie testującym.

Zestaw P-6: funkcję wstaw wstawiającą do sznura element zawierający wartość 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); funkcję usun rozpatrującą rozłączne trójki elementów sznura i usuwającą całą trójkę jeśli jej środkowy element jest podzielny przez K (gdzie K jest liczbą całkowitą dodatnią będącą parametrem funkcji), albo ostatni element trójki jeśli jej środkowy element nie jest podzielny przez K. W przypadku sznura o długości nie podzielnej przez 3 końcowe elementy (nie wchodzące w skład żadnej trójki) nie są modyfikowane. Pamięć zajmowana przez usuwane elementy ma zostać zwolniona, funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp); użytkownik podaje liczby które mają być wstawione do do sznura i decyduje o zakończeniu podawania), wypisanie jego zawartości (należy użyć standardowej funkcji print; przykład: dla zestawu liczb wejściowych 1,3,2,1,3,3,2,4,3,1,1 sznur uzyskuje postać 1,1,1,1,2,2,3,3,3,3,4), a następnie, po pobraniu od użtkownika wartości K, usunięcie w sznurze rozłącznych trójek elementów lub ostatnich elementów tych trójek (funkcja usun) i ponowne wypisanie jego zawartości (przykład: dla K=2 sznur 1,1,1,1,2,2,3,3,3,3,4 zostanie przekształcony do postaci 1,1,3,3,3,4, sznur 4,4,6,7,8,8,9,10,11 stanie się pusty). Zad. 2: Rozszerzyć klasę z zad.1 o funkcję przeniesskrajne która modyfikuje sznur poprzez przeniesienie (przepięcie) w środek sznura M jego elementów końcowych i M elementów początkowych, przy czym przepinanie to wykonywane jest tak że elementy z początku umieszczane są za środkiem z zachowaniem ich kolejności, a elementy z końca - przed środkiem z odwróceniem ich kolejności (przykład dla sznura przechowującego liczby całkowite: dla M=4 sznur 1,2,3,4,5,6,7,7,8,8,9,9 zostanie przekształcony do postaci,5,6,9,9,8,8,1,2,3,4,7,7 a sznur 1,2,3,4,5,6,7,8,9,10,11 do postaci 5,11,10,9,8,6,1,2,3,4,7. W przypadku gdy długość sznura jest parzysta i niewiększa niż 2M albo nieparzysta i niewiększa niż 2M+1, przepinanie nie jest wykonywane. Funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp.). Wykorzystać funkcję w programie testującym. sznurach sprawdzamy liczbę jej wystąpień w każdym ze sznurów i ze sznura o większej liczbie wystąpień przepinamy wszystkie elementy o tej wartości na koniec drugiego sznura (w przypadku tej samej liczności zawsze przenosimy do tego sznura (self)), elementy przechowujące wartości bez pary nie są przenoszone (przykład: dla self =1,1,3,3,4,4,5,6,6,7 i other =2,3,4,4,4,6,7 wynikiem będzie self =1,1,4,4,5,7,4,4,4,7 i other =2,3,6,3,3,6,6 dla self =0,0,1,2 i other =0,1,1,1,5 wynikiem będzie self =1,2,1,1,1 i other =0,5,0,0). Funkcja nie może używać pomocniczych sznurów ani struktur danych dostępnych w Pythonie (list, zbiorów, słowników itp.). Wykorzystać funkcję w programie testującym.