Katedra Inżynierii Wiedzy laborki 3
Kilka przydatnych rzeczy String jako klasa; length() - długość łańcucha; char CharAt (int index) - sprawdzenie znaku na zadanym numerze; int compareto(string anotherstring) - porównanie dwóch łańcuchów : 0 równe. wart. ujemna - string mniejszy od zadanego, np. aaa i aab wart. dodatnia - string większy od zadanego; boolean endswith (String suffix) - podajemy łańcuch i sprawdzenie, czy kończy się na wybrany podłańcuch/literę; int indexof(string str) - udostępnia miejsce wystąpienia podłańcucha str w łańcuchu; String replace (char oldchar, char newchar); String substring (int beginindex) - udostępnia podciąg danego łańcucha od wybranego indeksu do końca.
Kilka przydatnych rzeczy cd String tolowercase() - zamiana na małe litery; String touppercase() - zamiana na duże litery; (byte) znak - zwraca kod ASCII wybranego znaku; Klasa Random; nextboolean(), nextint(); nextint(n) - zakres 0:n;
Kilka przydatnych rzeczy - tablice int w = 20; int [] tab = new int[w]; int [] tab = new int[20]; Tablice 2D: int [][] tab2w = new int[8][5]; Tablice nieregularne: int [][] tabsz = new int[10][]; Tablice nieregularne: tabsz[i] = new int[i] ;
Zadanie 1 Napisz program, który w sposób losowy utworzy tablicę jednowymiarową liczb z przedziału zadanego przez użytkownika. W tak przygotowanej tablicy wyznacz sumę wszystkich elementów, wartość średnią, oraz różnicę pomiędzy elementem maksymalnym i minimalnym w tablicy. Zadanie 2 Dla tablicy z zadania pierwszego przygotuj nową tablicę zawierającą posortowane elementy z tablicy pierwszej a następnie podaj wartość mediany. Na ekran ma zostać wypisana także wartość rozstępu ćwiartkowego (różnica pomiedzy 3 a 1 kwartylem).
Zadanie 3 Dowolny instrument finansowy może zostać opisany przy pomocy tak zwanej świecy japońskiej, która określana jest przy pomocy 4 wartości: minimum instrumentu w danym przedziale, jego maksimum, cena otwarcia oraz cena zamknięcia. Załóżmy, że dane dotyczące instrumentu X przechowywane są w tablicy dwuwymiarowej - pierwszy wymiar określa odczyt (t=1, t=2, t=3 i tak dalej), natomiast drugi wymiar to odpowiednio: cena otwarcia, cena zamknięcia, minimum i maksimum. Korzystając z klasy Random wypełnij przykładową tablicę losowymi wartościami typu double, przy czym: minimalna dopuszczalna cena wynosi 40.0; maksymalna dopuszczalna cena wynosi 70.0; cena otwarcia w chwili t jest równa cenie zamknięcia w chwili t-1; różnica pomiędzy ceną otwarcia a ceną zamknięcia nie może być większa niż 3% bieżącej ceny; maksymalne wahania dla ceny miniminalnej i maksymalnej to 5% ceny otwarcia.
Zadanie 4 Dla tablicy z zadania 3 napisz funkcję, której parametrem jest tablica dwuwymiarowa X oraz parametr n, a na wyjściu funkcji obliczana jest wartość kanału Donchiana. Kanał Donchiana składa się z dwóch wartości, dlatego na wyjście funkcji może zostać przekazana np. tablica dwuelementowa. Wartości kanału Donchiana to odpowiednio minimum oraz maksimum z n ostatnich odczytów. Zadanie 5 Dla tablicy z zadania 3 napisz funkcję, której parametrem jest tablica dwuwymiarowa X, parametr n oraz zmienna boolowska typical. Na wyjściu funkcji ma zostać obliczona wartość średniej kroczącej o okresie n, a zatem jest to średnia wartość ceny z n ostatnich okresów. W przypadku ustalenia wartości typical na false do wyznacznia ceny wykorzystywana jest tylko wartość ceny zakmnięcia. Natomiast w przypadku parametru typical ustalonego na true do obliczenia wykorzystywana jest średnia z ceny minimalnej, maksymalnej oraz ceny zamknięcia.
Zadanie 6 Utwórz tablicę 10x5, wypełnij ją losowymi liczbami całkowitymi (0-20), a następnie sprawdź w którym wierszu jest największa suma (wypisz liczby na ekran, obok podaj sumę każdego wiersza). Zadanie 7 Napisz program umożliwiający operację sumowania dwóch macierzy, mnożenia dwóch macierzy oraz transpozycji macierzy. Zadanie 8 Napisz własną wersję metody UpperCase (zamiana małych liter na duże), substring (wycięcie części łańcucha w przedziale od do), reverse(odwrócenie kolejności znaków w łańcuchu).
Zadanie 9 Napisz własną metodę umożliwiającą porównywanie dwóch łańcuchów. Łańcuch krótszy jest zawsze mniejszy od łańcuca dłuższego. W przypadku, kiedy dwa łańcuchy mają równą długość - liczy się kolejność słownikowa, tj. aac jest przed baa, abb jest przed abc, bcde jest przed defg i tak dalej. Zatem: ala oraz ala ma kota - zwraca 2 (ponieważ drugi łańcuch jest dłuższy); ala ma kota oraz ala ma - zwraca 1 (ponieważ pierwszy łańcuch jest dłuższy); abc oraz cba - zwraca 1 (ponieważ słownikowo abc występuje przed cba); ccc oraz ccd - zwraca 1 (ponieważ słownikowo ccc jest przed ccd).
Zadanie 10 Napisz funkcję realizującą szyfr Cezara (parametrem funkcji jest łańcuch znaków oraz przesunięcie, natomiast na wyjście funkcji przekazywany jest zaszyfrowany komunikat).