TI/Zadania powtorzeniowe2
Z Brain-wiki
Zadania powtórzeniowe do kolokwium poprawkowego
- Mistrzostwa Świata w Snookerze 2012
- Na tej stronie znajduje się plik tekstowy z wynikamia ostatnich Mistrzost Świata w Snookerze. Plik jest podzielony na poszczególne rundy (Runda 1, 2 Ćwierćfinał itd). W każdej rundzie wypisane są nazwiska osób grających w danym meczu raze, z wygranymi partiami (frame'ami). Nad każdym meczem jest data jego odbycia. Napisać program, który:
- przedstawi ścieżkę danego zawodnika w tym turnieju: po kolei wypisze mecze w których brał udział, miejsce które zajął (tylko na podstawie liczby wygranych meczy - wiele zawodników bedzie ex aequo) i liczbę partii które rozegrał (nie tylko tych które wygrał)
- wypisze wszystkie mecze, które odbyły się zadanego dnia.
- Odwracanie macierzy
- Napisać program, który znajdzie macierz odwrotną metodą eliminacji Gaussa
- Permutacje
- Napisać program, który wypisze wszystkie literowe permutacje danego słowa. Permutacje nie powinny się powtarzać.
- Cykl
- Napisać program sprawdzający, czy w liście nie ma cyklu - powtarzającej się (w nieskończoność?) sekwencji elementów. Jeśli jest, wypisać cykl, jego długość i miejsce pierwszego wystąpienia. Zastosować tzw. algorytm żółwia i zająca:
- Mamy dwa wskaźniki (żółwia i zająca) na początku wskazujące pierwszy element listy.
- Żółw wskazuje na element [math]x_i[/math] a zając na element [math]x_{2i}[/math]
- W każdym kroku zwiększamy [math]i[/math] o 1
- Jeśli zając i żółw wskażą na taką samą wartość elementu listy, oznacza to, że w liście jest cykl
- Aby znaleźć ten cykl wystarczy pozostawić żółwia w miejscu i ruszać zającem o 1 pole w przód dopóki nie natrafi on na taką samą wartość jaką wskazuje żółw. Liczba kroków zająca będzie długością cyklu.
- Aby znaleźć pierwsze wystąpienie cyklu, wystarczy umieścić żółwia na początku listy. Następnie przesuwać go o 1 pole pozostawiając zająca w miejscu. Miejsce, w którym żółw natrafi na taką samą wartość, jaką wskazuje zając, będzie pierwszym wystąpieniem cyklu.