Liczby losowe i tablice
dr Przemysław Juszczuk
Katedra Inżynierii Wiedzy – Uniwersytet Ekonomiczny w Katowicach
Laborki
Zadanie 1
Napisz funkcję pozwalającą generować losowy łańcuch znaków.
Zadanie 2
Jedno z poniższych:
Wypełnij tablicę dowolnym wzorcem,np. i = 2· i ;
Wypełnij tablicę wartościami losowymi i policz wybrany element;
Zadanie 3
Zadeklaruj tablicę o rozmiarze 100. Wypełnij tablicę zgodnie z regułami ciągu Fibbonacciego (pierwszy i drugi element = 1, każdy następny to suma dwóch poprzednich: 1,1,2,3,5,8;)
Zadanie 4
Zadeklaruj tablicę double o rozmiarze n. Wypełnij elementami losowymi z przedziału h−5.0 : 5.0i. Wyznacz średnią, medianę, element minimalny i maksymalny. Wyznacz średnią dla parzystych, niezerowych elementów tablicy.
Zadania 5
Zadeklaruj tablicę 10x10, wypełnij ją jak tabliczkę mnożenia.
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).
Tablicę 10x10 typu double wypełnij liczbami losowymi z przedziału h−0.5 : 0.5i – następnie w zależności od wyboru użytkownika, wyzeruj pola ujemne, lub dodatnie.
Podaj średnią arytmetyczną tablicy kwadratowej i sumę elementów na przekątnej.
tablice nieregularne;
int [][] tabSZ = new int[10][];
tabSZ [i ] = new int[i ] ; Zadanie 6
Stwórz nieregularną tablicę dwuwymiarową o dowolnym rozmiarze.
Następnie stwórz tablicę jednowymiarową zawierającą tyle elementów, ile wierszy znajduje się w pierwszej tabicy. Parzyste komórki tablicy
jednowymiarowej powinny zawierać odpowiadające konkretnym wierszom z tablicy dwuwymiarowej elementy maksymalne. Natomiast komórki nieparzyste – odpowiednio elementy minimalne.
Zadania 7
Utwórz dwie tablice dwuwymiarowe 4x4. Wypełnij je losowymi danymi typu int z przedziałów zadanych przez użytkownika. Utwórz trzecią tablicę i wypełnij ją tak, że element na pozycji [i , j ] będzie sumą odpowiednich elementów z dwóch poprzednich tablic (suma macierzowa).
tablicę nxn (n podane przez użytkownika) wypełnić losowo małymi literami alfabetu + wyświetlić tablicę. Następnie, przedstawić litery w postaci dwóch łańcuchów: samogłosek: a,e,i,o,u,y oraz reszty (czyli spółgłosek).
Podany łańcuch przedstawić w postaci tablicy nx10 tak, aby w każdej komórce tablicy znajdowała się jedna litera. Dodatkowo, minimalna liczba znaków w stringu nie może być mniejsza niż 16.
Jeżeli liter jest mniej, należy dokleić dodatkowe zera na końcu.
Utwórz dwie tablice dwuwymiarowe 4x4. Wypełnij je losowymi danymi typu double z przedziałów zadanych przez użytkownika.
Utwórz trzecią tablicę i wypełnij ją tak, że element na pozycji [i , j ] będzie wynikiem dzielenia odpowiednich elementów z dwóch poprzednich tablic (suma macierzowa) (pamiętaj o dzieleniu przez zero).
Zadanie dodatkowe 8 (nie jest wymagane)
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 dodatkowe 9 (nie jest wymagane)
Dla tablicy z zadania 1 napisz funkcję umożliwiającą wyznaczenie wartości średniej kroczącej ceny. Średnia krocząca jest średnią wartością ceny z n ostatnich okresów. Przygotuj następujące wersje funkcji:
SredniaKroczaca() - funkcja bez parametrów - wyznaczająca wartość średniej kroczącej z 14 ostatnich okresów na podstawie ceny
zamknięcia;
SredniaKroczaca(int n) - funkcja z parametrem określającym, ile ostatnich okresów ma być uwzględnionych przy wyznaczaniu średniej;
SredniaKroczaca(int n, boolean typical) - jw. ale teraz zamiast ceny zamknięcia uwzględniana jest średnia z ceny minimalnej,
maksymalnej oraz ceny zamknięcia (w przypadku parametru typical
= true), lub też średnia z ceny minimalnej, maksymalnej, otwarcia oraz zamknięcia (dla parametru typical = false).
Wprowadzenie
Projekt zaliczeniowy realizowany jest w parach, lub pojedynczo. W przypadku programowania w parach konieczne jest dokładne wskazanie, która osoba była odpowiedzialna za daną funkcję. Kod powinien zawierać komentarze, a dla każdej funkcji powinna zostać opisana lista
parametrów. Projekt należy oddać nie później, niż 2 tygodnie przed końcem semestru.
Opis
Zbuduj klasę Gwiazda posiadającą następujące pola:
nazwa – dowolne oznaczenie gwiazdy. Przyjmujemy, iż nazwa każdej gwiazdy składa się z 3 dużych liter oraz 4 cyfr.
nazwa katalogowa – nazwa katalogowa składa się litery alfabetu greckiego oraz nazwy gwiazdozbioru. Najjaśniejsza gwiazda w gwiazdozbiorze oznaczana jest jako alfa, kolejna jako beta i tak dalej. Na potrzeby projektu zakładamy, iż kolejne litery greckie nadawane są gwiazdom w takiej kolejności, w jakiej dodane zostały do gwiazdozbioru. Przykładowo, jeżeli w bazie istnieją 2 gwiazdy w gwiazdozbiorze Wolarza, to trzecia z nich otrzyma katalogową nazwę gamma Wolarza (nazwa składa się z litery greckiej oraz nazwy gwiazdozbioru, do którego została dodana).
deklinacja – jedna ze współrzędnych astronomicznych przyjmująca wartości od 0 do 90 stopni dla gwiazd znajdujących się na półkuli północnej oraz 0 do -90 stopni dla gwiazd na półkuli południowej.
Wartość podajemy jako xx stopni yy minut zz.zz sekund.
Opis
rektascensja – druga współrzędna astronomiczna przyjmująca wartości od 00h do 24h. Wartość podajemy jako xx h yy m zz s.
obserwowana wielkość gwiazdowa – wielkość stosowana do określenia blasku gwiazd wyrażana w jednostkach magnitudo. Niższa wartość oznacza większą jasność gwiazdy. Zakładamy, iż minimalna dopuszczalna wielkość gwiazdowa wynosi -26.74 (wartość dla Słońca). Przyjmujemy, iż maksymalna wartość magnitudo wynosi 15.00.
absolutna wielkość gwiazdowa – wartość magnitudo, jaką ma gwiazda z określonej odległości. Istnieje ścisła zależność pomiędzy obserwowaną a absolutną wielkością gwiazdową wyrażona wzorem:
M = m − 5· log10r + 5 (logarytm przy podstawie 10 z r ), gdzie m to obserwowana wielkość gwiazdowa, a r to odległość od gwiazdy wyrażona w parsekach. Przyjmujemy, iż 1 parsek to 3.26 roku świetlnego.
Opis
odległość w latach świetlnych.
gwiazdozbiór – gwiazdozbiór, w którym można zobaczyć daną gwiazdę.
półkula PN/ PD – półkula na której można zobaczyć daną gwiazdę.
temperatura (podana w stopniach celsjusza). Przyjmujemy, iż minimalna temperatura gwiazdy wynosi 2000 stopni, górna granica nie występuje.
masa (podana w odniesieniu do masy Słońca). Przyjmujemy, iż minimalna masa gwiazdy wynosi 0.1 masy Słońca, natomiast maksymalna dopuszczalna masa wynosić będzie 50.
W przypadku dodawania nowego obiektu należy uwzględnić wszystkie podane powyżej parametry, ich zakres oraz ewentualne zależności pomiędzy nimi.
Opis
Oprócz dodania nowej gwiazdy możemy również wyświetlić wszystkie gwiazdy w bazie, usunąć obiekt o wybranej nazwie katalogowej. W przypadku usunięcia np. gwiazdy beta w danym gwiazdozbiorze, należy zadbać, o to, aby wszystkie pozostałe nazwy katalogowe zostały uaktualnione. Np. po usunięciu gwiazdy alfa Ryb, wszystkie pozostałe gwiazdy w gwiazdozbiorze są aktualizowane, tj. beta Ryb na alfa Ryb, gamma Ryb na beta Ryb i tak dalej.
Opis
W bazie możliwe jest wyszukiwanie obiektów na podstawie następujących kryteriów:
wyszukaj wszystkie gwiazdy w gwiazdozbiorze;
wyszukaj gwiazdy znajdujące się w odległości x parseków od Ziemii (należy uwzględnić iż obiekt gwiazdowy opisany jest przy pomocy lat świetlnych);
wyszukaj gwiazdy o temperaturze w zadanym przedziale;
wyszukaj gwiazdy o wielkości gwiazdowej w zadanym przedziale;
wyszukaj gwiazdy z półkuli północnej / południowej;
wyszukaj potencjalne supernowe. Supernowe to gwiazdy, których masa przekracza tzw. granicę Chandrasekhara, która wynosi 1.44 masy Słońca.
Wszystkie dane powinny zostać zapisane w pliku obiektowym.
Poszczególne elementy projektu powinny być zrealizowane jako funkcje, lub metody klasy.
Dziękuję za uwagę.