Java - Zadania
Ćwiczenia wstępne
Napisz program, który wyświetla:
- tekst powitania na monitorze;
- twoje imię i nazwisko w pierwszym wierszu, a w drugim twój adres zamieszkania;
- wynik dzielenia 15 przez 2;
- wynik dzielenia 15 przez 2 formatując go z jednym miejscem po przecinku;
- wynik dzielenia 15 przez 2, wypisując cale równanie "15/2 = " i wynik;
- wynik wszystkich operacji arytmetycznych na liczbach 3 i 7;
- wynik wszystkich operacji arytmetycznych na parze wczytanych liczb;
- większą z dwóch podanych liczb;
- liczby od 1 do 10, a następnie w dół - od 10 do 1;
- tabliczkę mnożenia dla liczb z przedziału <1 ; 10>.
Algorytmu numeryczne
Napisz program, który (każdy z poniższych programów powinien być powtarzany, aż do przerwania przez użytkownika):
- wpisuje liczby naturalne mniejsze od 300 podzielne przez 11;
- podaje rozwiązanie równania ax+b=0, sprawdzając czy b<>0;
- wczytuje parę liczb z przedziału całkowitych, i wyświetla sumę oraz średnią arytmetyczną wszystkich liczb z zadanego przedziału;
- wczytuje parę liczb z przedziału całkowitych, i wyświetla osobno sumę oraz średnią arytmetyczną liczb dodatnich i ujemnych z zadanego przedziału;
- wczytuje ciąg liczb nieujemnych aż do wczytania trzech liczb podzielnych przez 3 i jednocześnie niepodzielnych przez 2, a następnie wyświetla ilość
liczb niepodzielnych przez 8 oraz pozycję drugiej liczby podzielnej przez 5 we wczytanym ciągu;
- wczytuje liczbę całkowitą z przedziału [1 ; 80], a następnie wyświetla dla kolejnych 20 liczb od podanej ich kwadraty, pierwiastki i odwrotności w postaci tabelki;
- obliczenie wartość wielomianu o podanych współczynnikach;
- sprawdza, czy 3 podane liczby mogą być bokami trójkąta;
- wczytuje liczbę N, a następnie ciąg liczb aż do wprowadzenia liczby zero. Następnie wyświetla ile liczb w ciągu było >, = i < od N;
- oblicza pierwiastki równania kwadratowego z kontrola poprawności wpisania danych (A <>0);
- wyświetla kolejne wyrazy ciagu x(n+1) = x(n)^2-1 dla podanej wartości x(0);
- oblicza średnią N podanych przez użytkownika liczb;
- oblicza N!;
- który sprawdza, czy liczba N jest pierwsza;
- czyta kolejne liczby i liczy ich sumę i średnią;
- znajduje największy wspólny dzielnik i najmniejszą wspólną wielokrotność liczb naturalnych A i B;
- oblicza N! za pomocą funkcji rekurencyjnej;
- oblicza naturalna potęgę liczby całkowitej za pomocą funkcji rekurencyjnej;
- oblicza rzeczywista potęgi liczby rzeczywistej;
- porządkuje trzy liczby rzeczywiste niemalejąco;
- sprawdza, czy punkt X leży wewnątrz, czy na zewnątrz trójkąta ABC;
- zamienia liczbę dziesiętną na binarną i szesnastkową
- wyświetla wszystkie permutacje liczb od 1 do N.
- oblicza rekurencyjnie następujące ciągi liczb (n-liczba naturalna):
- X0 = 1; Xn = Xn-1 + 1/n;
- X0 = 1; Xn = Xn-1 + (-1)n * 1/n;
- X0 = 1; X1 = 1; Xn = Xn-1 + Xn-2;
- X0 = 1; Xn = n*Xn-1;
- X0 = 1; Xn = Xn-1+(n-1)/n
Wektory i macierze
- Program zapełnia tablice 20-elementową losowymi liczbami i sprawdza ile razy znajduje się w niej wczytana liczba.
- Program generujący 2 wektory po 20 elementów każdy, a następnie wyświetlający sumy odpowiednich sobie elementów obu wektorów;
- Program zapełnia tablice 20-elementową losowymi liczbami i porządkuje je niemalejąco.
- Program wczytuje liczby do macierzy 3x3 i oblicza jej wyznacznik.
- Program oblicza liczbę parzystych elementów w macierzy 5x5.
- Program losuje w tablicy 10 liczb i wypisuje najmniejszy i największy element.
- Program dokonujący przesunięcia cyklicznego N-elementowej tablicy znaków o I elementów w lewo.
- Program generuje liczby całkowite do macierzy kwadratowej o wymiarze 5x5, a następnie wyświetla macierz z wyliczonymi sumami każdego wiersza i kolumny.
- Program generuje liczby całkowite do macierzy o wymiarze 5x8, a następnie wyświetla macierz powiększając jej każdy element o numer wiersza i kolumny, w którym ten element występuje.
- Program generuje liczby całkowite do macierzy o wymiarze 8x5, a następnie oblicza i wyświetla sumę przekątnych macierzy.
- Program generuje liczby całkowite do macierzy prostokątnej o wymiarze 3x5 i wyświetlający ją z odwróceniem wierszy i kolumn.
- Dla tablicy o rozmiarze 5 x 5 opracuj procedury:
- inicjującą tablicę losowymi liczbami całkowitymi należącymi do przedziału [-100, 100);
- wyprowadzającą zawartość tablicy wierszami na ekran;
- obliczającą sumę elementów należących do wiersza o numerze i, gdzie 1 <= i <= 5;
- obliczającą sumę elementów należących do kolumny o numerze j, gdzie 1 <= j <= 5;
- sortujący niemalejąco każdy z wierszy tablicy;
- sortujący niemalejąco każdą z kolumn tablicy;
- znajdującą w tablicy element minimalny i maksymalny.
- Wczytać do tablicy A, o rozmiarze M, oraz do tablicy B, o rozmiarze N, losowe liczby całkowite należące
do przedziału [-50, 50), gdzie M, N - wczytane liczby naturalne z przedziału [5 ; 20]. Zapisać elementy tablicy A
w pliku TABA.DAT, natomiast elementy tablicy B w pliku TABB.DAT. Opracować procedurę, która:
- otwiera TABA.DAT i TABB.DAT;
- odczytuje pierwszą liczbę z pliku TABA.DAT oraz z pliku TABB.DAT;
- porównuje obie liczby i mniejszą z nich zapisuje do pliku TAB_NEW.DAT;
- drugą liczbę zapamiętuje;
- powtarza operacje odczytu (z tego pliku, z którego liczba była mniejsza (zapisana), jeżeli w danym pliku nie ma już liczb czyta z pliku drugiego);
- aż do wyczerpania danych w obu plikach skacze do C.
- Napisz program wypełniający tablicę 10x10 wartościami 0 lub 1, który będzie nadawał elementowi [i][j] wartość
1 jeżeli największy wspólny dzielnik i oraz j wynosi 1, a 0 w przeciwnym wypadku.
Napisy i łańcuchy znaków
Napisz program, który:
- sprawdza, czy wczytany ciąg jest palindromem;
- sprawdza, czy podana liczba jest palindromem;
- odwraca łańcuch znaków;
- przedstawia liczbę w postaci trojek cyfr;
- zwracającą pozycję wystąpienia drugiego znaku c w podanym łańcuchu s;
- zwracającą pozycję wystąpienia przedostatniego znaku c w podanym łańcuchu s;
- usuwa znak c z łańcucha s;
- zamienia wszystkie litery łańcucha na małe;
- zamienia wszystkie litery łańcucha na wielkie;
- czyta hasło, lecz nie wyświetla go na ekranie, zamiast tego wyświetlając gwiazdki. Następnie pojawia się komunikat o poprawności hasła;
- jest prostym zegarkiem, wyświetlającym aktualna godzinę, aż do wciśnięcia klawisza przez użytkownika;
- wczytuje kolejne znaki i wypisuje, czy są literami, oraz samogłoskami czy spółgłoskami;
- wczytuje do tablicy 5 nazwisk i wypisuje te, które nie zaczynają się od liter od A do K, a następnie wszystkie dłuższe, niż 5-cio znakowe;
- czyta do tablicy 20 nazwisk a następnie porządkuje je niemalejąco;
- wczytuje słowa do tablicy i wyświetla wszystkie występujące w nich anagramy.
Typy obiektowe
- Napisz program, który tworzy obiekt samochów, wczytuje do jego pól informacje na temat samochodu i wyświetla jego "metryczkę".
- Napisz program, który tworzy 5-elementową tablicę obiektów osoba z polami: imię, nazwiska i wzrost.
Wczytaj dane do tej tablicy i wyświetl informacje według rosnącego wzrostu.
- Zdefiniuj klasę zawierającą pola danych: nazwisko, rok, miesiąc i dzień urodzenia oraz identyfikator numeryczny. Następnie opracuj jej metody:
- wczytuwania danych ocoby z klawiatury danymi wprowadzanymi z klawiatury;
- inicjującą pola rekordu losowymi danymi wg reguł:
- do pola nazwisko wpisz łańcuch 'naz' zakończony losową liczbą należącą do przedziału [0,100);
- do pola rok wpisz losową liczbę całkowitą należącą do przedziału [1960, 1985);
- do pola miesiąc wstaw losową liczbę całkowitą należącą do przedziału [1, 13);
- do pola dzień wstaw losową liczbę całkowitą należącą do przedziału [1, 32);
- do pola id wpisz losową liczbę całkowitą należącą do przedziału [1, 100);
- wyprowadzającą zawartość pól danych na ekran;
następnie napisz program umożliwiający wybór losowego generowania lub wprowadzania danych osoby oraz wyświetlenie jej danych na ekranie.
- Korzystając z klasy z poprzedniego zadania utwórz tablicę mogącą zapamiętać dane dla 50 osób (musisz pamiętać
ile jest aktualnie zapamietanych osób w tablicy). Następnie opracuj metody:
- wpisującą do tablicy rekord o losowych polach (jak w zadaniu poprzednim);
- wyświetlającą wszystkie wypełnione elementy tablicy na ekran;
- wyświetlającą elementy tablicy o ustalonej wartości pola nazwisko;
- wyświetlającą na ekran osoby, dla których identyfikatory należą do przedziału [a,b];
Następnie napisz program umożliwiający generowania danych dla n osób oraz wyświetlenie ich danych wg powyższych zasad.
Pliki dyskowe
Napisz program, który:
- sprawdza istnienie na dysku pliku o podanej nazwie;
- przepisuje tekst wprowadzany przez użytkownika do pliku tekstowego TEKST.TXT, aż do napotkania pustego wiersza;
- wypisuje na ekran tekst zapisany w pliku tekstowym TEKST.TXT;
- zapisuje do pliku tekstowego LICZBY.TXT oraz pliku binarnego PIERW.DTA kolejne liczby pierwsze, aż do wciśnięcia przez użytkownika dowolnego klawisza;
- odczytuje liczby pierwsze z pliku LICZBY.DTA i drukujący, ile jest liczb pierwszych mniejszych lub 5 000, 10 000, 15 000 itd.;
- wczytuje do pliku dane dotyczące kolejnych osób (imie, nazwisko i rok urodzenia), a następnie czytający go i wyświetlający wiek osób z pliku;
- we wskazanym pliku zlicza liczbę samogłosek i spółgłosek;
- we wskazanym pliku zlicza liczbę znaków, znaków z odliczeniem spacji, wierszy oraz słów;
- w zależności od wartości parametru zamiana podane słowo na duże lub małe litery;
- tworzy na dysku plik ROK.KAL z kalendarzem na podany w parametrze rok;
- obsługuje prostą ksiazkę telefoniczną z podstawowymi operacjami: wyswietlanie, dodawanie, poprawianie i usuwanie osób.
- Zdefiniuj plik złożony z liczb całkowitych typu integer. Wczytaj z klawiatury nazwę
pliku. Zapisz do pliku N losowych liczb całkowitych należących do przedziału [0, 1000),
gdzie N - liczba naturaln podana przez użytkownika. Wyprowadż elementy pliku na ekran wierszami, po 15 elementów
w wierszu, każdy element na 4 znakach.
- Dla plik z poprzedniego zadania opracuj procedurę, która realizuje
następujące operacje: otwiera plik; odczytuje dane z pliku; jeśli odczytana liczba jest
nieparzysta, to dopisuje na końcu pliku liczbę dwa razy większą; zamyka plik.
Wyswietl zawartość pliku przed i po modyfikacji.
- Wczytaj do tablicy A, o rozmiarze M, oraz do tablicy B, o rozmiarze N, losowe liczby
całkowite należące do przedziału [-20, 20), gdzie M, N - liczby z zakresu [10, 50] podane przez użytkownika.
Zapisz elementy tablicy A w pliku DANE-A.DAT, natomiast elementy tablicy B
w pliku DANE-B.DAT. Następnie opracuj procedurę, która:
- otwiera pliki DANE-A.DAT i DANE-B.DAT;
- odczytuje pierwszą liczbę z pliku DANE-A.DAT oraz z pliku DANE-B.DAT;
- porównuje obie liczby i mniejszą z nich zapisuje do pliku DANE-C.DAT;
- drugą liczbę zapamiętuje;
- powtarza operacje odczytu (z tego pliku, z którego była liczba mniejsza - zapisana; jeżeli w danym pliku nie ma już liczb,
czyta z drugiego pliku) aż do wyczerpania danych w obu plikach skacze do C
Na przykład dla plików DANE-A.DAT i DANE-B.DAT zawierających elementy 2, 4, 5, 7 (plik DANE-A.DAT)
oraz 3, 6, 9 (plik DANE-B.DAT), przedstawiona procedura tworzy plik DANE-C.DAT, który zawiera
elementy 2, 3, 4, 5, 6, 7, 9.
- Do programu opracowanego w zadaniu 3 w typach rekordowych opracuj procedury:
- tworzącą (otwierającą) plik OSOBY.DAT z danymi o każdej z osób;
- wstawiającą dane osoby na koniec pliku;
- wyprowadzającą na ekran zawartość pliku OSOBY.DAT;
- wyprowadzającą na ekran pozycje i zawartość rekordów o ustalonej wartości pola nazwisko;
- usuwającą z pliku rekord znajdujący się na określonej pozycji.
Applety
Przygotuj applet, który:
- oblicza liczbę dni pomiędzy dwoma datami wprowadzonymi do pól tekstowych;
- po wprowadzeniu do pola tekstowego współrzędnych Hetmana na szachownicy ilustruje, które pola są w jego zasięgu;
- umożliwia sterowanie za pomocą klawiatury ruchem gwiazdki na ekranie;
- pozwala grać z komputerem w kolko i krzyżyk.
|