W każdym programie błędy wykazują skłonność do występowania w tym miejscu, które sprawdzasz jako ostatnie.
Java - Zadania

Ćwiczenia wstępne

Napisz program, który wyświetla:
  1. tekst powitania na monitorze;
     
  2. twoje imię i nazwisko w pierwszym wierszu, a w drugim twój adres zamieszkania;
     
  3. wynik dzielenia 15 przez 2;
     
  4. wynik dzielenia 15 przez 2 formatując go z jednym miejscem po przecinku;
     
  5. wynik dzielenia 15 przez 2, wypisując cale równanie "15/2 = " i wynik;
     
  6. wynik wszystkich operacji arytmetycznych na liczbach 3 i 7;
     
  7. wynik wszystkich operacji arytmetycznych na parze wczytanych liczb;
     
  8. większą z dwóch podanych liczb;
     
  9. liczby od 1 do 10, a następnie w dół - od 10 do 1;
     
  10. 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):
  1. wpisuje liczby naturalne mniejsze od 300 podzielne przez 11;
     
  2. podaje rozwiązanie równania ax+b=0, sprawdzając czy b<>0;
     
  3. wczytuje parę liczb z przedziału całkowitych, i wyświetla sumę oraz średnią arytmetyczną wszystkich liczb z zadanego przedziału;
     
  4. wczytuje parę liczb z przedziału całkowitych, i wyświetla osobno sumę oraz średnią arytmetyczną liczb dodatnich i ujemnych z zadanego przedziału;
     
  5. 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;
     
  6. 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;
     
  7. obliczenie wartość wielomianu o podanych współczynnikach;
     
  8. sprawdza, czy 3 podane liczby mogą być bokami trójkąta;
     
  9. 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;
     
  10. oblicza pierwiastki równania kwadratowego z kontrola poprawności wpisania danych (A <>0);
     
  11. wyświetla kolejne wyrazy ciagu x(n+1) = x(n)^2-1 dla podanej wartości x(0);
     
  12. oblicza średnią N podanych przez użytkownika liczb;
     
  13. oblicza N!;
     
  14. który sprawdza, czy liczba N jest pierwsza;
     
  15. czyta kolejne liczby i liczy ich sumę i średnią;
     
  16. znajduje największy wspólny dzielnik i najmniejszą wspólną wielokrotność liczb naturalnych A i B;
     
  17. oblicza N! za pomocą funkcji rekurencyjnej;
     
  18. oblicza naturalna potęgę liczby całkowitej za pomocą funkcji rekurencyjnej;
     
  19. oblicza rzeczywista potęgi liczby rzeczywistej;
     
  20. porządkuje trzy liczby rzeczywiste niemalejąco;
     
  21. sprawdza, czy punkt X leży wewnątrz, czy na zewnątrz trójkąta ABC;
     
  22. zamienia liczbę dziesiętną na binarną i szesnastkową
     
  23. wyświetla wszystkie permutacje liczb od 1 do N.
     
  24. 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

  1. Program zapełnia tablice 20-elementową losowymi liczbami i sprawdza ile razy znajduje się w niej wczytana liczba.
     
  2. 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;
     
  3. Program zapełnia tablice 20-elementową losowymi liczbami i porządkuje je niemalejąco.
     
  4. Program wczytuje liczby do macierzy 3x3 i oblicza jej wyznacznik.
     
  5. Program oblicza liczbę parzystych elementów w macierzy 5x5.
     
  6. Program losuje w tablicy 10 liczb i wypisuje najmniejszy i największy element.
     
  7. Program dokonujący przesunięcia cyklicznego N-elementowej tablicy znaków o I elementów w lewo.
     
  8. 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.
     
  9. 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.
     
  10. Program generuje liczby całkowite do macierzy o wymiarze 8x5, a następnie oblicza i wyświetla sumę przekątnych macierzy.
     
  11. Program generuje liczby całkowite do macierzy prostokątnej o wymiarze 3x5 i wyświetlający ją z odwróceniem wierszy i kolumn.
     
  12. Dla tablicy o rozmiarze 5 x 5 opracuj procedury:
     
    1. inicjującą tablicę losowymi liczbami całkowitymi należącymi do przedziału [-100, 100);
       
    2. wyprowadzającą zawartość tablicy wierszami na ekran;
       
    3. obliczającą sumę elementów należących do wiersza o numerze i, gdzie 1 <= i <= 5;
       
    4. obliczającą sumę elementów należących do kolumny o numerze j, gdzie 1 <= j <= 5;
       
    5. sortujący niemalejąco każdy z wierszy tablicy;
       
    6. sortujący niemalejąco każdą z kolumn tablicy;
       
    7. znajdującą w tablicy element minimalny i maksymalny.
       
  13. 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:
     
    1. otwiera TABA.DAT i TABB.DAT;
       
    2. odczytuje pierwszą liczbę z pliku TABA.DAT oraz z pliku TABB.DAT;
       
    3. porównuje obie liczby i mniejszą z nich zapisuje do pliku TAB_NEW.DAT;
       
    4. drugą liczbę zapamiętuje;
       
    5. 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);
       
    6. aż do wyczerpania danych w obu plikach skacze do C.
       
  14. 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:
  1. sprawdza, czy wczytany ciąg jest palindromem;
     
  2. sprawdza, czy podana liczba jest palindromem;
     
  3. odwraca łańcuch znaków;
     
  4. przedstawia liczbę w postaci trojek cyfr;
     
  5. zwracającą pozycję wystąpienia drugiego znaku c w podanym łańcuchu s;
     
  6. zwracającą pozycję wystąpienia przedostatniego znaku c w podanym łańcuchu s;
     
  7. usuwa znak c z łańcucha s;
     
  8. zamienia wszystkie litery łańcucha na małe;
     
  9. zamienia wszystkie litery łańcucha na wielkie;
     
  10. 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;
     
  11. jest prostym zegarkiem, wyświetlającym aktualna godzinę, aż do wciśnięcia klawisza przez użytkownika;
     
  12. wczytuje kolejne znaki i wypisuje, czy są literami, oraz samogłoskami czy spółgłoskami;
     
  13. 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;
     
  14. czyta do tablicy 20 nazwisk a następnie porządkuje je niemalejąco;
     
  15. wczytuje słowa do tablicy i wyświetla wszystkie występujące w nich anagramy.
     

Typy obiektowe

  1. Napisz program, który tworzy obiekt samochów, wczytuje do jego pól informacje na temat samochodu i wyświetla jego "metryczkę".
     
  2. 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.
     
  3. Zdefiniuj klasę zawierającą pola danych: nazwisko, rok, miesiąc i dzień urodzenia oraz identyfikator numeryczny. Następnie opracuj jej metody:
     
    1. wczytuwania danych ocoby z klawiatury danymi wprowadzanymi z klawiatury;
       
    2. 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);
         
    3. 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.
  4. 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:
     
    1. wpisującą do tablicy rekord o losowych polach (jak w zadaniu poprzednim);
       
    2. wyświetlającą wszystkie wypełnione elementy tablicy na ekran;
       
    3. wyświetlającą elementy tablicy o ustalonej wartości pola nazwisko;
       
    4. 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:
  1. sprawdza istnienie na dysku pliku o podanej nazwie;
     
  2. przepisuje tekst wprowadzany przez użytkownika do pliku tekstowego TEKST.TXT, aż do napotkania pustego wiersza;
     
  3. wypisuje na ekran tekst zapisany w pliku tekstowym TEKST.TXT;
     
  4. zapisuje do pliku tekstowego LICZBY.TXT oraz pliku binarnego PIERW.DTA kolejne liczby pierwsze, aż do wciśnięcia przez użytkownika dowolnego klawisza;
     
  5. odczytuje liczby pierwsze z pliku LICZBY.DTA i drukujący, ile jest liczb pierwszych mniejszych lub 5 000, 10 000, 15 000 itd.;
     
  6. 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;
     
  7. we wskazanym pliku zlicza liczbę samogłosek i spółgłosek;
     
  8. we wskazanym pliku zlicza liczbę znaków, znaków z odliczeniem spacji, wierszy oraz słów;
     
  9. w zależności od wartości parametru zamiana podane słowo na duże lub małe litery;
     
  10. tworzy na dysku plik ROK.KAL z kalendarzem na podany w parametrze rok;
     
  11. obsługuje prostą ksiazkę telefoniczną z podstawowymi operacjami: wyswietlanie, dodawanie, poprawianie i usuwanie osób.
     
  12. 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.
     
  13. 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.
     
  14. 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:
     
    1. otwiera pliki DANE-A.DAT i DANE-B.DAT;
       
    2. odczytuje pierwszą liczbę z pliku DANE-A.DAT oraz z pliku DANE-B.DAT;
       
    3. porównuje obie liczby i mniejszą z nich zapisuje do pliku DANE-C.DAT;
       
    4. drugą liczbę zapamiętuje;
       
    5. 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.
  15. Do programu opracowanego w zadaniu 3 w typach rekordowych opracuj procedury:
     
    1. tworzącą (otwierającą) plik OSOBY.DAT z danymi o każdej z osób;
       
    2. wstawiającą dane osoby na koniec pliku;
       
    3. wyprowadzającą na ekran zawartość pliku OSOBY.DAT;
       
    4. wyprowadzającą na ekran pozycje i zawartość rekordów o ustalonej wartości pola nazwisko;
       
    5. usuwającą z pliku rekord znajdujący się na określonej pozycji.
       

Applety

Przygotuj applet, który:
  1. oblicza liczbę dni pomiędzy dwoma datami wprowadzonymi do pól tekstowych;
     
  2. po wprowadzeniu do pola tekstowego współrzędnych Hetmana na szachownicy ilustruje, które pola są w jego zasięgu;
     
  3. umożliwia sterowanie za pomocą klawiatury ruchem gwiazdki na ekranie;
     
  4. pozwala grać z komputerem w kolko i krzyżyk.
     
« wstecz