Generator haseł
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.
Macierze
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.
Palindrom
Utwórz program dst_palindrom
.
Utwórz funkcję checkPalindrom()
która przyjmuje łańcuch znaków(tablica znaków zakończona pustym znakiem). Funkcja zlicza ile znaków jest na właściwej pozycji by utworzyć palindrom(słowo czytane od przodu i od tyłu brzmiące tak samo) i zwraca tę liczbę. Jeśli łańcuch znaków jest palindromem wtedy zwraca liczbę liter w słowie. np.
- ala zwróci liczbę 3
- kajak - 5 znaków
- kbjak - 3 znaki
- abba - 4 znaki
- bbba - 2 znaki
W metodzie main()
napisz program który sprawdza działanie funkcji na poniższych przykładach:
"kajak" funkcja ma zwrócić 5
"Ala alA" funkcja ma zwrócić 7
" zrzegorz " funkcja ma zwrócić 6
" ala " funkcja ma zwrócić 7
W dalszej części metody main()
po wyświetleniu przypadków testowych dopisz fragment który będzie pytał użytkownika o wybranie opcji z poniższego menu:
1. Wprowadź słowo.
2. Wyjście z programu.
Program powinien działać do momentu wybrania opcji wyjście z programu. Po wybraniu opcji wprowadź słowo, odczytywane jest słowo wprowadzone od użytkownika (maksymalnie 100 znaków). Następnie program sprawdza czy znaki wprowadzone przez użytkownika są palindromem za pomocą utworzonej funkcji i wypisuje rezultat. Przykładowa sesja:
"kajak" - 5 palindrom
"Ala alA" - 7 palindrom
" zrzegorz " - 6
" ala " - 7 palinfrom
1. Wprowadz slowo.
2. Wyjscie z programu.
Wybierz opcje: 1
Wprowadz slowo: alaska
alaska - 2
1. Wprowadz slowo.
2. Wyjscie z programu.
Wybierz opcje: 1
Wprowadz slowo: ala
ala - 3 palindrom
1. Wprowadz slowo.
2. Wyjscie z programu.
Wybierz opcje: 2
Zakońćzenie działania programu.
Mnożenie macieży
Utwóz program bdb_mnozeniemacierzy
-
Utwórz strukturę
Array
przechowującą dynamicznie alokowaną macierz dwuwymiarową liczb zmiennoprzecinkowych. 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ę
fillArray()
która wypełnia macierz wartościami podanymi przez użytkownika. Przed wprowadzeniem wartości użytkownik powinien otrzymać następujący komunikat informujący którą komórkę uzupełnia.
[1][1] = 1
[1][2] = 2
[2][1] = 1
[2][2] =
- Utwórz funkcję
printArray()
która przyjmuje jako parametr strukturęArray
. Funkcja wypisuje zawartość macierzy w następującym formacie:
2.000 2.000 2.000
2.000 2.000 2.000
12.000 12.000 12.000
- Utwórz funkcję
multiplyArrays()
przyjmującą dwie instancje strukturyArray
. W ciele funkcji zaimplementuj mnożenie macierzy według wzoru:
Metoda zwraca nową strukturę Array
będącą wynikiem mnożenia przekazanych macierzy.
Uwzględnij nastepujące aspekty:
- kiedy możliwe jest mnożenie macierzy przez macierz, jeśli mnożenie nie jest możliwe wypisz odpowiedni komunikat i zwróć puste pola struktury
Array
(dwie macierze można pomnożyć tylko wtedy gdy liczba kolumn macierzy A jest równa liczbie wierszy macierzy B).
- W metodzie
main()
:- Za pomocą funkcji
initArray()
utwórz macierze o wymiarach 3x2 oraz 2x3. Wypełnij macierze poniższymi wartościami(są to przypadki testowe i powinny być zainicjowane w programie bez ingerencji użytkownika)
- Za pomocą funkcji
1.00 2.00 3.00
4.00 5.00 2.00
1.00 4.00
3.00 1.00
5.00 4.00
Pomnóż zainicjowane macierze za pomocą utworzonej metody. Wynik mnożenia zapisz w pliku wynik.txt
:
1.00 2.00 3.00
4.00 5.00 2.00
X
1.00 4.00
3.00 1.00
5.00 4.00
=
22.00 18.00
29.00 29.00
Utwórz menu umożliwiające uzytkownikowi stworzenie dwóch macierzy, wypełnienie ich wartościami a następnie wyświetlenie wyniku mnożenia tych macierzy.
Podaj liczbe kolumn: 2
Podaj liczbe wierszy: 2
[1][1] = 1
[1][2] = 1
[2][1] = 1
[2][2] = 1
1.00 1.00
1.00 1.00
Podaj liczbe kolumn: 2
Podaj liczbe wierszy: 2
[1][1] = 1
[1][2] = 1
[2][1] = 1
[2][2] = 1
1.00 1.00
1.00 1.00
Wynik mnozenia
1.00 1.00
1.00 1.00