C
Wybrać jedno z poniższych zadań. Po zakończeniu kolokwium pliki spakować w archiwum .zip i przesłać za pomocą formularza.
3.0
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.
Tablica ASCII
ASCII code 33 = !ASCII code 34 = "
ASCII code 35 = #
ASCII code 36 = $
ASCII code 37 = %
ASCII code 38 = &
ASCII code 39 = '
ASCII code 40 = (
ASCII code 41 = )
ASCII code 42 = *
ASCII code 43 = +
ASCII code 44 = ,
ASCII code 45 = -
ASCII code 46 = .
ASCII code 47 = /
ASCII code 48 = 0
ASCII code 49 = 1
ASCII code 50 = 2
ASCII code 51 = 3
ASCII code 52 = 4
ASCII code 53 = 5
ASCII code 54 = 6
ASCII code 55 = 7
ASCII code 56 = 8
ASCII code 57 = 9
ASCII code 58 = :
ASCII code 59 = ;
ASCII code 60 = <
ASCII code 61 = =
ASCII code 62 = >
ASCII code 63 = ?
ASCII code 64 = @
ASCII code 65 = A
ASCII code 66 = B
ASCII code 67 = C
ASCII code 68 = D
ASCII code 69 = E
ASCII code 70 = F
ASCII code 71 = G
ASCII code 72 = H
ASCII code 73 = I
ASCII code 74 = J
ASCII code 75 = K
ASCII code 76 = L
ASCII code 77 = M
ASCII code 78 = N
ASCII code 79 = O
ASCII code 80 = P
ASCII code 81 = Q
ASCII code 82 = R
ASCII code 83 = S
ASCII code 84 = T
ASCII code 85 = U
ASCII code 86 = V
ASCII code 87 = W
ASCII code 88 = X
ASCII code 89 = Y
ASCII code 90 = Z
ASCII code 91 = [
ASCII code 92 = \
ASCII code 93 = ]
ASCII code 94 = ^
ASCII code 95 = _
ASCII code 96 = `
ASCII code 97 = a
ASCII code 98 = b
ASCII code 99 = c
ASCII code 100 = d
ASCII code 101 = e
ASCII code 102 = f
ASCII code 103 = g
ASCII code 104 = h
ASCII code 105 = i
ASCII code 106 = j
ASCII code 107 = k
ASCII code 108 = l
ASCII code 109 = m
ASCII code 110 = n
ASCII code 111 = o
ASCII code 112 = p
ASCII code 113 = q
ASCII code 114 = r
ASCII code 115 = s
ASCII code 116 = t
ASCII code 117 = u
ASCII code 118 = v
ASCII code 119 = w
ASCII code 120 = x
ASCII code 121 = y
ASCII code 122 = z
ASCII code 123 = {
ASCII code 124 = |
ASCII code 125 = }
ASCII code 126 = ~
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.
4.0
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.
5.0
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ę strukturyArray
. Funkcja tworzy nową instancję strukturyArray
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 strukturyArray
. 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:- wielkość planszy
- liczbę graczy, następnie każdy z graczy wybiera swój symbol. Gra toczy się do momentu jesli jeden z graczy zapełni wiersz, kolumnę,przekątną lub kończy remisem jeśli niemożliwe jest wykonanie ruchu.
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