Tasks studies - laboratory
Wybrać jedno z poniższych zadań. Po zakończeniu kolokwium pliki spakować w archiwum .zip i przesłać za pomocą formularza.
Napisz funkcję genPassword()
która przyjmuje 3 parametry: ilośc liter w haśle, ilość cyfr w haśle, ilość znaków specjalnych w haśle.
Funkcja wypisuje w konsoli losowo wygenerowane hasło zawierające określoną ilość znaków. np. 3 litery 2 cyfry 1 znak specjalny
A4?yH0
Pozycja liter, cyfr oraz znaków specjalnych jest losowa.
W metodzie main()
zaimplementuj menu:
1. Generuj nowe haslo.
2. Wyjście z programu.
Program powinien działać do momentu wybrania opcji wyjście z programu. Po wybraniu opcji Generuj nowe haslo użytkownik pytany jest o ilość liter w haśle, ilość cyfr w haśle oraz ilosć znaków specjalnych. Po wprowadzeniu danych hasło jest wyświetlane w konsoli. Przykładowa sesja:
1. Generuj nowe haslo.
2. Wyjście z programu.
Wybierz opcje: 1
Ile liter: 1
Ile cyfr: 1
Ile znakow specjalnych: 1
z!4
1. Generuj nowe haslo.
2. Wyjście z programu.
Wybierz opcje: 1
Ile liter: 2
Ile cyfr: 0
Ile znakow specjalnych: 2
*a#Z
1. Generuj nowe haslo.
2. Wyjście z programu.
Wybierz opcje: 2
Zakońćzenie działania programu.
Utwórz program db_macierzodleglosci
.
Napisz funkcję allocate_2d_array()
która dynamicznie alokuje miejsce w pamięci na macierz liczb zmiennoprzecinkowych o rozmiarze przekazanym jako parametry funkcji. Funkcja zwraca wskaźnik na tę macierz.
Napisz funkcję free_2d_array()
która zwalnia miejsce w pamięci macierzy przekazanej jako parametr funkcji.
W komentarzu opisz za co odpowiadają parametry funkcji jeśli ich nazwa tego nie sugeruje.
Napisz funkcję print_matrix()
która wypisuje w konsoli zawartość macierzy w następującej postaci:
| 0.00 | 0.10 |
| 1.00 | 4331.10 |
| 2.00 | 42.10 |
Utwórz funkcję euclidDistance()
która przyjmuje dwie tablice o dowolnej długości jako parametry funkcji. Funkcja oblicza odległość Euklidesową na podstawie wartości tablic według wzoru:
Utwórz funkcję distnaceMatrix()
która oblicza odległości pomiędzy kolejnymi wierszami macierzy przekazanej jako parametr funkcji i wpisuje do nowej macierzy obliczone wartości. np. mając macierz:
| 0.00 | 0.00 |
| 0.00 | 1.00 |
| 0.00 | 2.00 |
wynikiem działania będzie macierz 3x3 gdzie w komórce [1,1] jest odległośc pomiędzy 1 a 1 wierszem,w komórce [1,2] odległość pomiędzy 1 a 2 wierszem, w komórce … w komórce [3,3] odległośc pomiędzy 3 a 3 wierszem:
| 0.00 | 1.00 | 2.00 |
| 1.00 | 0.00 | 1.00 |
| 2.00 | 1.00 | 0.00 |
W metodzie main() utwórz następujące menu:
1. Wprowadz macierz
2. Wyswietl macierz
3. Macierz odleglosci
4. Wyjscie
Po wybraniu opcji 1 program pyta użytkownika o rozmiar macierzy, alokuje miejsce na tę macierz a następnie użytkownik wypełnia macierz danymi.
Wybrano 1 - Wprowadz macierz.
Wprowadz liczbe wierszy: 2
Wprowadz luczbe kolumn: 2
tab[1][1] = 1
tab[1][2] = 3
tab[2][1] = 3
tab[2][2] = 2
Po wybraniu opcji 2 program wyświetla macierz za pomocą funkcji print_matrix()
Po wybraniu opcji 3 program wyświetla macierz odległości macierzy przechowywanej aktualnie w pamięci.
Program powinien działać aż do momentu wybrania opcji wyjście. Pamięć powinna być zwalniana w odpowiednim momencie.
Utwóz program bdb_TicTacToe
Utwórz strukturę Array
przechowującą dynamicznie alokowaną kwadratową macierz przechowującą znaki. Struktura powinna zawierać dane o wielkości macierzy.
Utwórz funkcję initArray()
która zwraca instancję struktury Array
. Funkcja tworzy nową instancję struktury Array
i przechowuje macierz o określonej liczbie wierszy i kolumn przekazanych jako parametry funkcji. Domyślnie macierz jest wypełniona wartościami \0
.
Utwórz funkcję freeArray()
która przyjmuje jako parametr wskaźnik do struktury Array. Funkcja dealokuje miejsce przechowujące dynamicznie przydzielone miejsce na macierz. Jeśli wszystko przebiegnie pomyślnie funkcja zwraca wartość true.
Utwórz funkcję makeMove()
która przyjmuje jako parametr strukturę Array
numer wiersza, numer kolumny oraz symbol gracza. Jeśli ruch jest poprawny(nie przekraczamy zakresu tablicy oraz pole jest wolne - zawiera symbol \0) funkcja wpisuje symbol w odpowiednie miejsce i zwraca 1. W przeciwnym wypadku funkcja zwraca -1. Jesli tablica jest cała zapełniona funkcja zwraca 2(remis)
Utwórz funkcję printArray()
która przyjmuje jako parametr strukturę Array
.
Funkcja wypisuje zawartość macierzy w następującym formacie:
X O X X
X X X
X X
O
Utwórz funkcję checkBoard()
przyjmującą instancje struktury Array
. W ciele funkcji zaimplementuj sprawdzenie czy jeden z graczy wypełnił wiersz, kolumnę lub przekątną swoim symbolem. Jeśli tak funkcja zwraca ten symbol.
W metodzie main()
utwórz menu w którym użytkownik jest pytany o:
Przykładowa sesja:
Podaj wielkosc planszy: 2
Podaj ilosc graczy: 2
Podaj symbol Gracz 1: X
Podaj symbol Gracz 2: X
Symbol zajęty, Podaj symbol Gracz 2: O
===========================================
===========================================
Ruch gracza X
Podaj numer wiersza i kolumny(np. 1 1): 1 1
===========================================
X
===========================================
Ruch gracza O
Podaj numer wiersza i kolumny(np. 1 1): 2 1
===========================================
X
O
===========================================
Ruch gracza X
Podaj numer wiersza i kolumny(np. 1 1): 1 2
===========================================
X X
O
===========================================
Wygrywa Gracz X!!!
Koniec programu