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:
  1. 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ł)
  2. 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.