SOISK - SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Tomasz Puchała

zadania

1. Algorytm obliczania silni
1. Scharakteryzowanie problemu
Prezentowany algorytm oblicza silnie na podstawie podanej wartosci. Definicja silni zostala
przedstawiona ponizej:
0! = 1
1! = 1
n! = n * (n-1) * (n-2) * ... * 1
Przyklad:
5! = 5 * 4 * 3 * 2 * 1 = 120
2. Warunki wejsciowe
Do rozwiazania zadania wymagana jest znajomosc:
· zasad dzialania funkcji,
· deklarowania zmiennych.
3. Omówienie algorytmu realizacji zadania
Algorytm, wykorzystujac petle mnozy kolejno wartosci licznika poczawszy od 1 na wartosci
stopnia silni równej liczbie skonczywszy.
2. Liczby pierwsze
1. Scharakteryzowanie problemu
Zadaniem przedstawionego algorytmu jest sprawdzenie czy dana liczba jest liczba pierwsza.
Liczb nazywamy liczb pierwsza, gdy dzieli sie ona jedynie przez siebie sama oraz przez liczbe 1.
Przyklad:
· 13 – dzieli sie tylko przez siebie sama i przez 1 – jest liczba pierwsza,
· 9 – dzieli sie przez siebie sama, przez 1 oraz przez 3 – nie jest liczba
pierwsza.
2. Warunki wejsciowe
Do samodzielnego rozwiazania zadania potrzebna jest znajomosc podstaw skladni jezyka takich
jak:
· deklaracja stalych i zmiennych,
· tworzenie metod,
· instrukcja warunkowa if,
· konwersja liczb (rzutowanie),
· instrukcje matematyczne (sqrt ),
· pobieranie danych z klawiatury.
3. Omówienie algorytmu realizacji zadania
Zadanie mozna rozwiazac na dwa sposoby. Jednym ze sposobów jest wielokrotne sprawdzanie
czy podana liczba dzieli sie przez dowolna liczbe z zakresu od 2 do n-1, gdzie n jest wartoscia
liczby. Liczba dzielaca sie przez liczbe z podanego wyzej zakresu nie jest liczba pierwsza.
Innym sposobem realizacji algorytmu jest zastosowanie pierwiastkowania. Liczba jest liczba
pierwsza kiedy ta liczba nie dzieli sie przez jakakolwiek wartosc zmiennej licznikowej o wartosci
poczatkowej 3 i zwiekszajacej sie iteracyjnie o 2, gdy pierwiastek drugiego stopnia wartosci tej
liczby jest mniejszy od wartosci zmiennej licznikowej. Z dwóch powyzszych opisów mozliwych
realizacji przedstawionego zadania mozna sie domyslec, iz bardziej wydajnym algorytmem jest
algorytm drugi, wykorzystujacy pierwiastkowanie. Algorytm pierwszy bedzie sprawdzal kazda
wartosc po kolei, poczawszy od dwa do n-1, podczas, gdy drugi algorytm sprawdzal bedzie
jedynie zakres od 3 do wartosci pierwiastka drugiego stopnia z liczby dla której sprawdzamy
zgodnosc z zasadami liczb pierwszych.
4. Zdefiniowanie zmiennych wejsciowych i wyjsciowych algorytmu
Zastosowane tutaj algorytmy jako wartosc poczatkowa pobieraja liczbe z zakresu
zdefiniowanego w stalych typu Integer. Wynikiem dzialania programu jest wyswietlenie czy
dana liczba jest liczba pierwsza czy tez nie jest nia.
3. Generator liczb losowych
1. Scharakteryzowanie problemu
Zadaniem przedstawio nego algorytmu jest wypelnienie tablicy losowymi liczbami tak, aby
mozliwe bylo podanie:
· ilosci losowanych liczb,
· przedzialu, z którego liczby maja byc losowane.
2. Warunki wejsciowe
Do samodzielnego rozwiazania zadania potrzebna jest znajomosc podstaw skladni jezyka takich
jak:
· deklarowanie i wykorzystywanie zmiennych i tablic,
· tworzenie metod,
· instrukcje warunkowe,
· petle,
· instrukcje matematyczne (Math.random()),
· pobieranie danych z klawiatury.
3. Omówienie algorytmu realizacji zadania
Zadanie wymaga zdefiniowania dwóch metod. Pierwsza jest funkcja zwracajaca tablice
wylosowanych liczb. Jej algorytm opiera sie na petli wykonywanej tyle razy ile liczb losowych
ma zostac wygenerowanych. Kazda losowana liczba jest zapamietywana w kolejnym indeksie
zadeklarowanej tablicy. Druga metoda jest procedura i sluzy wyswietleniu zawartosci tablicy, w
której przechowywane sa liczby losowe.