Fundacja CODE:ME · 20 sierpnia 2023

Darmowy kurs Java podstawy programowania

W ramach bazy wiedzy CODE:ME zapraszamy do spróbowania swoich siły z naszym darmowym przewodnikiem po Javie! Poznaj z nami podstawy i zobacz czy Java jest dla Ciebie!

Oddajemy w wasze ręce Darmowy kurs Java od podstaw. Są to 3 lekcje, które pokażą, że nie ma czego się bać, i mamy nadzieję, że zachęcą Was do dalszej nauki!

Zobacz 3 miesięczny kurs Java od podstaw

Mini kurs: Praktyczne podstawy programowania Java dla początkujących

Czyli wszystko co warto wiedzieć na temat języka Java!

Plan kursu Java 101

Wstęp: przewodnik po Javie

Rozdział 1: Java pierwsze kroki

  • Instalacja i konfiguracja środowiska programistycznego Java
  • Pierwszy program w Javie

Rozdział 2: Podstawy składni Java

  • Zmienne i typy danych
  • Operatory i instrukcje warunkowe
  • Komentarze
  • Pętla FOR
  • Funkcje

Rozdział 3: Java podstawy w zadaniach

Wstęp: przewodnik po Javie

Java jest jednym z najpopularniejszych języków programowania na świecie, a jej uniwersalność i wszechstronność sprawiają, że jest wykorzystywana w różnych dziedzinach – od tworzenia aplikacji webowych, przez gry komputerowe, aż po zaawansowane systemy korporacyjne (np. banki).

Wyszukując, gdzie jest używana Java, na pewno znajdziecie obszary takie jak:

  • Web Development – szczególnie z frameworkami takimi jak Spring i Hibernate
  • Aplikacje desktopowe
  • Aplikacje mobilne, szczególnie na platformę Android
  • Aplikacje chmurowe
  • Internet rzeczy (Internet of Things)
  • Sztuczna Inteligencja
  • i wiele innych.

Java jest nie tylko językiem programowania, ale również platformą programistyczną. To oznacza, że oferuje środowisko uruchomieniowe (JRE), które zawiera wszystko, czego potrzebujesz, aby uruchomić program napisany w Javie.

Cechy Javy, za które kochają ją programiści:

  • Prostota
  • Obiektowość i wielowątkowość
  • Przenośność
  • Niezależność od architektury
  • Bezpieczeństwo
  • i jeszcze kilka innych 🙂

Java – historia powstania języka

Krótka historia, dla ciekawskich

Język Java, wbrew pozorom, jest stosunkowo „młodym językiem programowania” (porównując czas powstania do C++, Pythona czy SQL), gdyż powstała w latach 90-tych. Została stworzona przez zespół inżynierów z firmy Sun Microsystems, znanych jako „Green Team”. Członkowie tego zespołu, w tym James Gosling, Mike Sheridan i Patrick Naughton, rozpoczęli projekt w celu opracowania języka programowania dla cyfrowych urządzeń, takich jak telewizory.

JAVA a koncepcja WORA

Pierwsza publiczna implementacja Javy, Java 1.0, została wydana w styczniu 1996 roku i szybko zyskała popularność. Java była jednym z pierwszych języków, które wprowadziły koncepcję „WORA” (ang. Write Once, Run Anywhere):

„napisz raz, uruchom wszędzie” – oznacza to, że programy napisane w Javie mogły być uruchamiane na dowolnym urządzeniu, na którym zainstalowano środowisko uruchomieniowe Javy (JRE).

Kalendarium

W 1997 roku Sun Microsystems wydało Java Development Kit (JDK) 1.1, które wprowadziło wiele nowych funkcji (takich jak JavaBeans, JDBC i RMI). W 1998 roku Sun Microsystems rozpoczęło prace nad J2EE (Java 2 Platform, Enterprise Edition) – platformą dla rozwoju i uruchamiania aplikacji biznesowych z myślą o zastosowaniach korporacyjnych.

Java jako Open Source

W 2006 roku Sun Microsystems zdecydowało się na otwarcie kodu źródłowego Javy, co oznaczało, że każdy mógł przeglądać i modyfikować kod źródłowy. Było to ważne wydarzenie w historii Javy, ponieważ przyczyniło się do jej dalszego rozwoju i popularyzacji wśród programistów.

W tym samym roku nastąpiła również zmiana nazw – zrezygnowano z oznaczeń J2SE i J2EE na rzecz nazw marketingowych: Java Standard Edition (JSE) oraz Java Enterprise Edition (JEE), czasem z dodatkiem słowa „Platform” (np. Java Platform Standard Edition). W Polsce czasem mówi się o darmowej Javie standardowej oraz Javie biznesowej (czyli z płatnymi dodatkami).

Pod skrzydłami Oracle

W 2009 roku nastąpił kolejny kluczowy moment w historii Javy. Oracle Corporation, jeden z największych producentów oprogramowania na świecie, przejęło Sun Microsystems. Przejęcie to oznaczało, że Java stała się własnością Oracle. Mimo obaw, że Oracle może zmienić kierunek rozwoju Javy, firma zobowiązała się do kontynuowania jej rozwoju jako otwartego i wolnego języka programowania.

Od tego czasu Oracle kontynuuje rozwój Javy, wprowadzając nowe funkcje i ulepszenia. W 2014 roku Oracle wydało jedną z najważniejszych wersji – Java 8, która wprowadziła zmiany, takie jak wsparcie programowania funkcyjnego (lambdy), strumienie oraz nowe API do obsługi daty i czasu. W 2017 roku Oracle zapowiedziało nowy cykl wydawniczy Javy, w którym nowa wersja języka ma być wydawana co sześć miesięcy – i do dziś ten schemat jest realizowany.

⚠️ Potocznie, mówiąc o Javie, mamy zazwyczaj na myśli całe środowisko programistyczne Java Development Kit (JDK).

Trwają zapisy na kurs Java od podstaw – sprawdź!

Mamy nadzieję, że nasz mini kurs „Java podstawy” będzie dla was pomocnym przewodnikiem.

Rozdział 1: Java pierwsze kroki

Jeżeli napotkasz trudności, nie bój się pytać. Każdy kiedyś zaczynał, a nauka programowania bywa wymagająca.

Kurs Javy zaczniemy od przygotowania sobie niezbędnych narzędzi, tj. instalacji środowiska oraz edytora kodu.

Instalacja i konfiguracja środowiska programistycznego Java

  1. Pobierz odpowiednią wersję Java Development Kit (JDK) ze strony oficjalnej Oracle:
    https://www.oracle.com/pl/java/technologies/downloads
  2. Wybierz wersję JDK zgodną z Twoim systemem operacyjnym (Windows, macOS, Linux).
  3. Uruchom instalator JDK i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby zainstalować JDK na swoim komputerze.

JDK jest dostępny w różnych wersjach, np. JDK 8, JDK 17, JDK 20 – jednak do nauki polecamy pobrać najnowszą lub najdłużej wspieraną wersję (LTS – long-term support, która jest najbardziej stabilna).

Edytor kodu

Wybranie „najlepszego” edytora kodu to zawsze przedmiot długich dyskusji wśród programistów. Obecnie najpopularniejszym edytorem w społeczności programistów Javy jest IntelliJ IDEA.

Edytor ten występuje w 3 wersjach licencyjnych:

  • Ultimate (płatna – dla użytkowników zaawansowanych),
  • Edu (darmowa – dla studentów i placówek edukacyjnych),
  • Community (darmowa – dla wszystkich).

Pobierz darmową wersję IntelliJ IDEA Community ze strony
https://www.jetbrains.com/idea/download/

Pierwszy program w Javie

Poniżej przedstawiamy przykładowy program, który wypisuje napis „Hello, World!”:

class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

darmowy kurs Java od podstaw

Po kompilacji i uruchomieniu programu zobaczysz wynik – na ekranie wyświetli się napis „Hello, World!”.

Co się dzieje w tym kodzie?

W pierwszej linii deklarujemy klasę o nazwie HelloWorld. Klasa jest podstawowym budulcem w językach programowania obiektowego, takich jak Java – wszystkie metody i zmienne muszą być zdefiniowane wewnątrz klasy.

Metoda main jest punktem startowym każdego programu w Javie. Gdy uruchomisz program, kod zawarty w tej metodzie zostanie wykonany jako pierwszy.

  • public: oznacza, że metoda jest dostępna z dowolnego miejsca
  • static: oznacza, że metoda należy do klasy, a nie do konkretnej instancji
  • void: oznacza, że metoda nie zwraca żadnej wartości
  • main: nazwa metody
  • String[] args: parametr umożliwiający przekazanie argumentów z linii poleceń

Używamy wbudowanej w Javie metody System.out.println() do „wydrukowania” tekstu na ekranie.

Trwają zapisy na kurs Java od podstaw – sprawdź!

Czym jest kompilacja (nie tylko w Javie)?

Języki programowania dzielimy na kompilowane i interpretowane. Java należy do pierwszej grupy. Kompilacja to proces przetwarzania kodu źródłowego (plik .java) na kod maszynowy (kod bajtowy w pliku .class), który może być wykonywany przez komputer. Dzięki kompilacji można wykryć błędy składniowe i logiczne już na etapie kompilacji, co pomaga uniknąć problemów podczas uruchamiania programu.

Ciekawostka: Java jest uważana zarówno za język kompilowany, jak i interpretowany – wykorzystuje technikę JIT (Just-In-Time), która wpływa na wydajność.

Plik wynikowy z kompilacji można uruchamiać wielokrotnie, bez konieczności ponownej kompilacji, co przyspiesza proces tworzenia i testowania aplikacji. Dzięki temu Java jest łatwa w przenoszeniu – kod bajtowy można wykonywać na różnych platformach, o ile dostępna jest wirtualna maszyna Javy (JVM).

Pierwszy rozdział zamykamy radosną wiadomością – właśnie napisaliście swój pierwszy program w Javie „Hello, World!”.

Podstawy składni Java

Koncepcje zmiennych i typów danych są uniwersalne w większości języków programowania, podobnie jak działanie instrukcji warunkowych. Raz opanowawszy podstawy Javy, łatwiej będzie zrozumieć inne języki programowania.

Typy i zmienne w Javie

Zmienna to miejsce w pamięci komputera, w którym przechowujemy dane. Każda zmienna posiada nazwę, umożliwiającą odwoływanie się do niej w programie.

Deklaracja zmiennej: Aby utworzyć zmienną, należy zadeklarować jej typ oraz nazwę. Na przykład: int liczba; – deklaruje zmienną liczba typu całkowitego (int).

Inicjalizacja zmiennej: Po deklaracji przypisujemy zmiennej wartość. Na przykład: liczba = 50; nadaje zmiennej liczba wartość 50.

Typy danych: W Javie każda zmienna musi mieć określony typ, który informuje kompilator, jakie rodzaje danych mogą być w niej przechowywane. Wyróżniamy typy proste (np. int, double, char) oraz typy obiektowe (np. String, Array).

Typy proste

  • int: służy do przechowywania liczb całkowitych
  • double: używany do przechowywania liczb zmiennoprzecinkowych
  • char: przechowuje pojedynczy znak

Typy obiektowe

  • String: służy do przechowywania ciągów znaków, zdań lub wyrazów
  • Array: używany do przechowywania wielu wartości tego samego typu. Na przykład: int[] numbers = {1, 2, 3};

darmowy kurs java: zmienne

Operacje na zmiennych – możemy wykonywać różne operacje, takie jak dodawanie, odejmowanie, mnożenie itp. W Javie dostępne są standardowe operatory arytmetyczne:

  • + – dodawanie
  • - – odejmowanie
  • * – mnożenie
  • / – dzielenie
  • % – reszta z dzielenia

Przykładowo:

int suma = liczba1 + liczba2;

stworzy zmienną suma, która przechowuje wynik dodawania liczba1 i liczba2. Natomiast:

int modulo = 5 % 2;

przyjmie wartość 1, gdyż reszta z dzielenia 5 przez 2 wynosi właśnie 1.

Przetestuj kod i spróbuj dodać do niego też operacje matematyczne. Jak myślisz, jak to zrobić?:

public class Main {
    public static void main(String[] args) {
        String message = "Darmowy kurs Java podstawy";
        System.out.println(message);
    }
}

Konwersja typów danych w Javie

Czasami musimy konwertować dane z jednego typu na inny. W Javie możemy spotkać się z dwoma głównymi rodzajami konwersji: jawnej i niejawnej.

Konwersja niejawna (automatyczna)

W tym przypadku Java automatycznie konwertuje typ danych, gdy przechodzimy od mniejszego typu do większego. Na przykład:

int myInt = 10;
long myLong = myInt; // Automatyczna konwersja z int na long

W tym przypadku zmienna myInt typu int jest automatycznie konwertowana na typ long, ponieważ long mieści większe wartości.

Konwersja jawna (rzutowanie)

Gdy istnieje ryzyko utraty danych, musimy jawnie wskazać konwersję. Na przykład:

double myDouble = 10.79;
int myInt = (int) myDouble; // Jawne rzutowanie – wartość 10, część dziesiętna obcinana

Konwersja przez metody

Java oferuje metody do konwersji typów, np.:

int myInt = Integer.parseInt("123"); // Konwersja String na int

📌 Podoba Ci się nasz darmowy kurs Java – daj znać innym, podaj go dalej!

Podsumujmy zmienne i typy w Javie

Powyższy przykład ilustruje podstawowe operacje na zmiennych, typach danych oraz metody konwersji, które są fundamentem programowania w Javie.

Praca z Tablicami

Tablica to struktura danych przechowująca wiele wartości tego samego typu. Zobacz, jak stworzyć tablicę, odwołać się do jej elementów i wyświetlić je na ekranie.

Deklaracja i inicjalizacja tablicy w Javie

Deklaracja i inicjalizacja tablicy wygląda następująco:
int[] testArray = {10, 20, 30, 40, 50};
– w ten sposób stworzyliśmy tablicę testArray typu int i zainicjowaliśmy ją pięcioma elementami.

Wyświetlanie elementów tablicy

Aby wyświetlić element o indeksie 1, wystarczy użyć testArray[1]. Wynikiem będzie wartość 20, gdyż w Javie indeksowanie zaczyna się od 0. Pierwszy element ma indeks 0, a ostatni można uzyskać przez testArray[testArray.length - 1].

System.out.println("Pierwszy element: " + testArray[0]); 
System.out.println("Ostatni element: " + testArray[testArray.length - 1]);

Aby sprawdzić, czy pierwszy i ostatni element są takie same, konieczne jest użycie instrukcji warunkowych.

Zapisz się na kurs Java od podstaw z naszym trenerem

Instrukcje warunkowe w Javie

Instrukcje warunkowe pozwalają podejmować decyzje na podstawie określonych warunków. W Javie najpopularniejsze z nich to if, else if, else oraz switch.

Instrukcja if

Instrukcja if pozwala wykonać blok kodu tylko wtedy, gdy warunek jest spełniony.

int age = 18;

if (age >= 18) {
    System.out.println("Jesteś pełnoletni.");
}

Instrukcje else if i else

Jeśli mamy więcej niż jeden warunek, używamy else if, a blok else zostanie wykonany, gdy żaden z wcześniejszych warunków nie będzie spełniony.

int score = 85;
if (score >= 90) {
    System.out.println("Ocena 5");
} else if (score >= 80) {
    System.out.println("Ocena 4");
} else {
    System.out.println("Ocena poniżej 4");
}

Instrukcja switch

Instrukcja switch jest używana, gdy mamy wiele warunków do sprawdzenia, stanowiąc alternatywę dla wielu instrukcji if i else if.

char grade = 'B';
switch (grade) {
    case 'A':
        System.out.println("Doskonały!");
        break;
    case 'B':
        System.out.println("Dobrze!");
        break;
    default:
        System.out.println("Niewłaściwa ocena.");
}

Warto wspomnieć o operatorach – relacyjnych i logicznych, bez których trudno wykonywać instrukcje warunkowe.

Operatory relacyjne

  • == – równość
  • != – nierówność
  • < – mniejszy niż
  • > – większy niż
  • <= – mniejszy lub równy
  • >= – większy lub równy
if (a < b) { 
    System.out.println("a jest mniejsze od b"); 
}

Operatory logiczne

Operatory logiczne służą do łączenia warunków:

  • && – AND (i)
  • ! – NOT (nie)
  • || – OR (lub)
if (a < b && b > 0) { 
    System.out.println("Oba warunki są spełnione");
}

Przykład użycia w kodzie:

kurs java za darmo: instrukcje warunkowe

Komentarze w Javie

Komentarze w programowaniu działają jak notatki – pomagają zrozumieć, co dany fragment kodu robi, bez wpływu na działanie programu.

Komentarze jednolinijkowe

// To jest komentarz jednolinijkowy
int x = 10; // To również jest komentarz jednolinijkowy

Komentarze wielolinijkowe

/*
To jest komentarz
wielolinijkowy. Możesz tu
napisać kilka zdań.
*/

Komentarze dokumentacyjne

/**
* To jest komentarz dokumentacyjny.
* Możesz tu opisać, co dana funkcja lub klasa robi.
*/

Dlaczego komentarze są przydatne?

  1. Czytelność: Ułatwiają zrozumienie kodu przez innych programistów (i przez nas samych w przyszłości).
  2. Debugowanie: Pomagają w szybkim znalezieniu błędów.
  3. Dokumentacja: Umożliwiają generowanie automatycznej dokumentacji, co jest szczególnie ważne w dużych projektach.

Zapisz się na KURS JAVA OD PODSTAW z trenerem

Pętla FOR w Javie

Pętla for to jedna z podstawowych struktur kontrolnych w Javie, służąca do wielokrotnego wykonywania bloku kodu. Jest szczególnie przydatna, gdy chcemy operować na elementach tablic lub list.

Składnia

Podstawowa składnia pętli for:

for (inicjalizacja; warunek; aktualizacja) {
    // Blok kodu do wykonania
}

‣ inicjalizacja: ustawienie początkowej wartości zmiennej sterującej,
‣ warunek: pętla wykonuje się, dopóki warunek jest spełniony,
‣ aktualizacja: po każdej iteracji zmienna sterująca jest aktualizowana.

Przykład:

// Wypisanie liczb od 1 do 10
for (int i = 1; i <= 10; i++) {
    System.out.println(i);
}

Pętla FOR z tablicą

int[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) {
    System.out.println(numbers[i]);
}

Pętla FOR-each (rozszerzona)

for (int number : numbers) {
    System.out.println(number);
}

ZADANIE z pętlą for:

Aby lepiej zrozumieć działanie pętli, przeanalizuj program przeliczający tablicę cen produktów z dolara amerykańskiego (USD) na złotówki (PLN). Przyjmijmy kurs 4.2 PLN za 1 USD oraz listę cen: 25, 45, 49, 89, 95, 100.

  1. Zadeklaruj tablicę liczb całkowitych reprezentującą ceny w USD: {25, 45, 49, 89, 95, 100}.
  2. Utwórz nową tablicę do przechowywania przeliczonych cen w PLN.
  3. Użyj pętli for do iteracji przez tablicę cen w USD i przelicz każdą cenę.
  4. Wydrukuj obie tablice, aby zobaczyć wyniki przed i po konwersji.

darmowy kurs java pętla for

W tej części skupiliśmy się na pętli for – jednym z najbardziej podstawowych i wszechstronnych mechanizmów iteracyjnych w Javie. Pamiętaj, że poza for dostępnymi są także pętle while oraz do-while, które znajdują zastosowanie w innych sytuacjach.

Trwają zapisy na kurs JAVA od podstaw

Funkcje w Javie

Funkcje, zwane również metodami, to kluczowy element struktury każdego programu. Umożliwiają grupowanie bloków kodu w logiczne jednostki, które można wywoływać w różnych częściach programu. W naszym kursie omówimy podstawy tworzenia i używania funkcji w Javie.

Składnia i definicja funkcji

Podstawowa składnia funkcji w Javie:

typZwracany nazwaFunkcji(typParametru1 nazwaParametru1, typParametru2 nazwaParametru2, ...) {
    // Ciało funkcji
    return wartość;
}

‣ typZwracany: typ danych, który funkcja zwraca (lub void, gdy nie zwraca nic);
‣ nazwaFunkcji: nazwa, pod którą funkcja będzie dostępna;
‣ typParametru i nazwaParametru: określają rodzaj i nazwę przyjmowanych argumentów.

Przykład funkcji

public static int addNumbers(int a, int b) {
    int sum = a + b;
    return sum;
}

Wywoływanie funkcji

public static void main(String[] args) {
    int result = addNumbers(5, 10);
    System.out.println("Wynik dodawania: " + result);
}

Całość może wyglądać następująco:

Funkcje i pętle

Funkcje często wykorzystujemy razem z pętlami. Na przykład, możemy stworzyć funkcję obliczającą średnią arytmetyczną tablicy liczb:

public static double calculateAverage(int[] numbers) {
    int sum = 0;
    for (int number : numbers) {
        sum += number;
    }
    return (double) sum / numbers.length;
}

Spodobała Ci się JAVA? Dołącz do kursu Java od podstaw [ONLINE]

Java: Zadania

Podstawy Javy za nami! Nasz mini kurs Javy przedstawił najważniejsze koncepcje programowania – zmienne, typy, instrukcje warunkowe, pętle i funkcje. Czas przećwiczyć zdobytą wiedzę w zadaniach.

Mała uwaga do zadań: teksty zawierające polskie znaki wymagają kodowania UTF-8 (zwykle domyślne). Jeśli przy kopiowaniu rozwiązania pojawi się błąd (error: unmappable character for encoding US-ASCII), usuń polskie znaki lub zmień kodowanie w edytorze na UTF-8.

Zadanie 1

Napisz funkcję, która przechowuje listę liczb i zwraca różnicę między pierwszym a ostatnim elementem listy.

Jakie kroki są potrzebne, aby rozwiązać to zadanie?

  • Utwórz klasę zawierającą funkcję.
  • Stwórz tablicę liczb.
  • Dostęp do elementu pierwszego (index: 0) i ostatniego (w zależności od długości tablicy).
  • Odejmij wartość pierwszego elementu od ostatniego.
  • Rozszerzenie: sprawdzenie, który element jest większy i odejmowanie mniejszego od większego, aby uzyskać wartość bezwzględną.

Kod z rozwiązaniem:

public class Main {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        int result = findDifference(numbers);
        System.out.println("Różnica między pierwszym a ostatnim elementem tablicy to: " + result);
    }

    public static int findDifference(int[] numbers) {
        int firstElement = numbers[0];
        int lastElement = numbers[numbers.length - 1];
        return lastElement - firstElement;
    }
}
Zadanie 2

Napisz funkcję, która sprawdza, czy dany ciąg znaków jest palindromem (czytany od przodu i od tyłu brzmi tak samo, np. „radar”, „kajak”).

Jakie kroki są potrzebne, aby rozwiązać to zadanie?

  • Utwórz klasę zawierającą funkcję.
  • Stwórz funkcję, która przyjmuje ciąg znaków jako argument.
  • Zamień ciąg znaków na tablicę znaków.
  • Sprawdź, czy tablica znaków jest palindromem.
  • Zwróć wynik jako wartość logiczną (true/false).

Kod z rozwiązaniem:

public class Main {
    public static void main(String[] args) {
        String testString = "radar";
        boolean result = isPalindrome(testString);
        System.out.println("Czy dany ciąg znaków jest palindromem? " + result);
    }

    public static boolean isPalindrome(String str) {
        char[] charArray = str.toCharArray();
        int length = charArray.length;
        for (int i = 0; i < length / 2; i++) {
            if (charArray[i] != charArray[length - i - 1]) {
                return false;
            }
        }
        return true;
    }
}
Zadanie 3

Napisz funkcję, która sprawdza, czy dwa ciągi znaków są anagramami.

Jakie kroki są potrzebne, aby rozwiązać to zadanie?

  • Utwórz klasę zawierającą funkcję.
  • Stwórz funkcję, która przyjmuje dwa ciągi znaków jako argumenty.
  • Zamień oba ciągi znaków na tablice znaków.
  • Posortuj obie tablice znaków.
  • Porównaj posortowane tablice.
  • Zwróć wynik jako wartość logiczną (true/false).

Kod z rozwiązaniem:

public class Main {
    public static void main(String[] args) {
       String str1 = "listen";
       String str2 = "silent";
       boolean result = areAnagrams(str1, str2);
       System.out.println("Czy dwa ciągi znaków są anagramami? " + result);
    }

    public static boolean areAnagrams(String str1, String str2) {
       char[] charArray1 = str1.toCharArray();
       char[] charArray2 = str2.toCharArray();

       sortArray(charArray1);
       sortArray(charArray2);

       String sortedStr1 = new String(charArray1);
       String sortedStr2 = new String(charArray2);

       return sortedStr1.equals(sortedStr2);
    }

    public static void sortArray(char[] array) {
        for (int i = 0; i < array.length - 1; i++) {
            for (int j = i + 1; j < array.length; j++) { if (array[i] > array[j]) {
                    char temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
        }
    }
}
Zadanie 4

Napisz funkcję, która konwertuje temperaturę z jednostek Celsiusza na Fahrenheita i odwrotnie.

Jakie kroki są potrzebne, aby rozwiązać to zadanie?

  • Utwórz klasę zawierającą funkcję.
  • Stwórz funkcję, która przyjmuje temperaturę i jednostkę jako argumenty.
  • Sprawdź, w jakiej jednostce podana jest temperatura.
  • Wykonaj odpowiednią konwersję.
  • Zwróć skonwertowaną temperaturę.

Kod z rozwiązaniem:

public class Main {
    public static void main(String[] args) {
        double temperature = 100;
        String unit = "C";
        double convertedTemperature = convertTemperature(temperature, unit);
        System.out.println("Skonwertowana temperatura to: " + convertedTemperature);
    }

    public static double convertTemperature(double temperature, String unit) {
        if (unit.equals("C")) {
            return (temperature * 9 / 5) + 32;
        } else if (unit.equals("F")) {
            return (temperature - 32) * 5 / 9;
        } else {
            return -1; // Nieznana jednostka
        }
    }
}
Zadanie 5

Napisz funkcję, która konwertuje odległość między różnymi jednostkami (np. mile na jardy lub km na stopy).

Jakie kroki są potrzebne, aby rozwiązać to zadanie?

  • Utwórz funkcję przyjmującą odległość i jednostkę jako argumenty.
  • Sprawdź, w jakiej jednostce podana jest odległość.
  • Wykonaj odpowiednią konwersję.
  • Zwróć skonwertowaną wartość.

Kod z rozwiązaniem (mile na jardy – 1 mila to 1760 jardów):

public class Main {
    public static void main(String[] args) {
        double distance = 100;
        String unit = "mile";
        double convertedDistance = convertDistance(distance, unit);
        System.out.println("Skonwertowana odległość to: " + convertedDistance);
    }

    public static double convertDistance(double distance, String unit) {
        if (unit.equals("mile")) {
            return distance * 1760;
        } else if (unit.equals("yard")) {
            return distance / 1760;
        } else {
            return -1; // Nieznana jednostka
        }
    }
}
Zadanie 6

Napisz funkcję, która konwertuje jednostki czasu (np. dni na godziny i minuty).

Jakie kroki są potrzebne, aby rozwiązać to zadanie?

  • Utwórz klasę zawierającą funkcję.
  • Stwórz funkcję, która przyjmuje liczbę dni jako argument.
  • Przelicz dni na godziny (dni * 24) oraz godziny na minuty (godziny * 60).
  • Zwróć wynik w postaci ciągu znaków.

Kod z rozwiązaniem:

public class Main {
    public static void main(String[] args) {
        int days = 3;
        String convertedTime = convertTime(days);
        System.out.println("Czas w godzinach i minutach: " + convertedTime);
    }

    public static String convertTime(int days) {
        int hours = days * 24;
        int minutes = hours * 60;
        return hours + " godzin i " + minutes + " minut";
    }
}
Zadanie 7

Napisz program, który wypisze liczby pierwsze mniejsze niż 100.

Jakie kroki są potrzebne, aby rozwiązać to zadanie?

  • Utwórz klasę zawierającą funkcję main.
  • Iteruj przez liczby od 2 do 99.
  • Dla każdej liczby sprawdź, czy jest pierwsza (ma tylko dwa dzielniki: 1 oraz siebie samą).
  • Jeśli tak – wypisz liczbę na ekranie.

Kod z rozwiązaniem:

public class Main {
    public static void main(String[] args) {
        for (int i = 2; i < 100; i++) {
            if (isPrime(i)) {
                System.out.println(i);
            }
        }
    }

    public static boolean isPrime(int n) {
        for (int i = 2; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
}
Zadanie 8*

Napisz funkcję, która konwertuje liczbę z systemu dziesiętnego na binarny. Konwersja polega na dzieleniu liczby przez 2 i zapisywaniu reszt z dzielenia – najmniej znaczący bit (LSB) dodawany jest jako pierwszy, a wynik odczytuje się w odwrotnej kolejności.

Przykład dla liczby 10:

  • 10 / 2 = 5, reszta: 0
  • 5 / 2 = 2, reszta: 1
  • 2 / 2 = 1, reszta: 0
  • 1 / 2 = 0, reszta: 1

Odczytując reszty w odwrotnej kolejności otrzymujemy: 1010.

Kod z rozwiązaniem (wersja z pętlą for):

public class Main {
    public static void main(String[] args) {
        int number = 10;
        String binaryString = "";

        for (; number > 0; number = number / 2) {
            int remainder = number % 2;
            binaryString = remainder + binaryString; // dodajemy na początek
        }

        System.out.println("Liczba w systemie binarnym: " + binaryString);
    }
}

Kod z rozwiązaniem (zalecana wersja z użyciem StringBuilder):

public class Main {
    public static void main(String[] args) {
        int number = 10;
        StringBuilder binaryString = new StringBuilder();

        while (number > 0) {
            int remainder = number % 2;
            binaryString.insert(0, remainder);
            number = number / 2;
        }

        System.out.println("Liczba w systemie binarnym: " + binaryString.toString());
    }
}
Zadanie 9*

Napisz program, który znajduje wszystkie liczby doskonałe mniejsze od zadanego n. Liczba doskonała to taka, która jest równa sumie swoich dzielników (bez niej samej).

Jakie kroki są potrzebne, by rozwiązać to zadanie?

  • Utwórz klasę zawierającą funkcję main.
  • Zdefiniuj zmienną n – górną granicę poszukiwań.
  • Iteruj przez liczby od 1 do n - 1.
  • Dla każdej liczby oblicz sumę jej dzielników.
  • Jeśli suma dzielników równa się liczbie – wypisz ją jako liczbę doskonałą.

Kod z rozwiązaniem:

public class Main {
    public static void main(String[] args) {
        int n = 1000; // Górna granica poszukiwań
        for (int i = 1; i < n; i++) {
            if (isPerfect(i)) {
                System.out.println(i + " jest liczbą doskonałą.");
            }
        }
    }

    public static boolean isPerfect(int number) {
        int sum = 0;
        for (int i = 1; i <= number / 2; i++) {
            if (number % i == 0) {
                sum += i;
            }
        }
        return sum == number;
    }
}

Jeśli spodobał Ci się ten materiał i masz niedosyt – trwają zapisy na 3-miesięczny kurs Java od podstaw z naszym trenerem!

Dowiedz się więcej o szkoleniu Java w fundacji CODE:ME →