An open API service indexing awesome lists of open source software.

https://github.com/djeada/nauka-programowania

Jeśli chcesz nauczyć się programować, ale nie wiesz od czego zacząć, to trafiłeś we właściwe miejsce. Ten projekt oferuje zbiór zadań, które przeprowadzą Cię przez wszystkie koncepcje potrzebne do zrozumienia w programowaniu.
https://github.com/djeada/nauka-programowania

Last synced: about 1 year ago
JSON representation

Jeśli chcesz nauczyć się programować, ale nie wiesz od czego zacząć, to trafiłeś we właściwe miejsce. Ten projekt oferuje zbiór zadań, które przeprowadzą Cię przez wszystkie koncepcje potrzebne do zrozumienia w programowaniu.

Awesome Lists containing this project

README

          


GitHub stars
GitHub forks
GitHub license

# Nauka Programowania

Witaj w świecie programowania! Jeśli zastanawiasz się, od czego zacząć, to jesteś w idealnym miejscu. Ten projekt oferuje ciąg zadań, które przeprowadzą Cię przez kluczowe koncepcje potrzebne do zrozumienia programowania, od podstaw aż do bardziej zaawansowanych tematów.

![laptop_with_snake_Seed-7632331_Steps-50_Guidance-7 5](https://user-images.githubusercontent.com/37275728/221419671-2d82a012-509d-4331-866c-af8eeb2b84a9.png)

## Gdzie mogę znaleźć dodatkowe materiały do nauki?

Oferujemy też szeroki wybór dodatkowych materiałów, takich jak notatki i poradniki dotyczące Pythona i C++, które są dostępne na naszych stronach GitHub:

* [Notatki Python](https://github.com/djeada/Kurs-podstaw-Pythona)
* [Notatki C++](https://github.com/djeada/C-and-Cpp)

## Zbiór zadań

Nasz zbiór zadań to bogate źródło wiedzy:

* [Zbiór zadań](https://github.com/djeada/Nauka-Programowania/tree/master/zbior_zadan)
* Zbiór jest regularnie poszerzany i aktualizowany.
* Informacje o dodawaniu własnych rozwiązań znajdziesz [tutaj](https://github.com/djeada/Nauka-Programowania/blob/master/CONTRIBUTING.md).

## O zadaniach

Zadania są podzielone tematycznie i ułożone według stopnia trudności, aby każdy mógł ćwiczyć podstawowe koncepcje programowania:

1. **Podstawy (Rozdziały 1-8):** Zmienne, warunki, pętle. Rozwiązania sprawdzane są ręcznie przez interakcję z konsolą.
2. **Poziom średnio zaawansowany (Rozdziały 9-17):** Struktury danych, rekurencja, binarna reprezentacja liczb. Wymagają automatycznych testów i uwzględnienia skrajnych przypadków.
3. **Zaawansowane (Rozdziały 18-25):** Praca z plikami, algorytmy sortowania, obsługa błędów. Wymagają głębszej wiedzy i narzędzi takich jak debugowanie.

Przykładowe rozwiązania służą jako wskazówki i często prezentują różne podejścia do rozwiązania problemów.

## Wspierane wersje języków

Przykłady zostały przetestowane w różnych wersjach języków:

### C++
- Standard: C++11, C++17, C++20.
- Kompilacja: `g++-10 -ggdb3 -O0 -std=c++20 -Wall -Wextra -pedantic -o plik_wykonwyalny.out sciezka_do_zadania.cpp`.
- Formatowanie: `clang-format -i -style=file sciezka_do_zadania.cpp`.

### Python
- Wersja:`3.10`.
- Uruchomienie: `python3 sciezka_do_zadania.py`.
- Formatowanie: `black sciezka_do_zadania.py`.

### Java
- Wersja: `Java SE 18`.
- Kompilacja: `javac -d . sciezka_do_zadania.java`.
- Formatowanie: `java -jar google-java-format-1.7-all-deps.jar sciezka_do_zadania.java`.

### JavaScript
- Środowisko: `NodeJS 20.0.0`.
- Uruchomienie: `node sciezka_do_zadania.js`.
- Formatowanie: `eslint --fix sciezka_do_zadania.js` z konfiguracją `.eslintrc.json`.

### Haskell
- Wersja: `GHC 9.2.1`.
- Kompilacja: `ghc -o plik_wykonawczy.out sciezka_do_zadania.hs`.
- Formatowanie: `ormolu --mode inplace sciezka_do_zadania.hs`.

### Rust
- Wersja: `1.74.0`.
- Kompilacja: `rustc sciezka_do_zadania.rs`.
- Formatowanie: `rustfmt --write-mode=overwrite sciezka_do_zadania.rs`.

Nauka programowania to proces wymagający czasu i praktyki, ale z naszymi zasobami będziesz miał solidną podstawę do rozwoju umiejętności programistycznych. Jeśli masz pytania lub potrzebujesz pomocy, skontaktuj się z nami - z chęcią Ci pomożemy!

## Rozwiązania

1. [Interakcja z konsolą](#Interakcja-z-konsolą)
1. [Instrukcja warunkowa](#Instrukcja-warunkowa)
1. [Daty](#Daty)
1. [Pętla - wprowadzenie](#Pętla---wprowadzenie)
1. [Pętla - wyznaczanie cyfr liczby](#Pętla---wyznaczanie-cyfr-liczby)
1. [Funkcje - wprowadzenie](#Funkcje---wprowadzenie)
1. [Pętla - algorytmy matematyczne](#Pętla---algorytmy-matematyczne)
1. [Pętla - pętle zagnieżdżone](#Pętla---pętle-zagnieżdżone)
1. [Listy - wprowadzenie](#Listy---wprowadzenie)
1. [Listy - dwie listy](#Listy---dwie-listy)
1. [Napisy - wprowadzenie](#Napisy---wprowadzenie)
1. [Napisy - anagramy i palindromy](#Napisy---anagramy-i-palindromy)
1. [Listy 2d](#Listy-2d)
1. [Funkcje - wielomiany](#Funkcje---wielomiany)
1. [Funkcje - rekurencja](#Funkcje---rekurencja)
1. [System binarny](#System-binarny)
1. [Słowniki](#Słowniki)
1. [Klasy](#Klasy)
1. [Dziedziczenie](#Dziedziczenie)
1. [Operacje na plikach](#Operacje-na-plikach)
1. [Sortowanie - algorytmy](#Sortowanie---algorytmy)
1. [Sortowanie - praktyka](#Sortowanie---praktyka)
1. [Wyrażenia regularne](#Wyrażenia-regularne)
1. [Listy - trudne](#Listy---trudne)
1. [Napisy - trudne](#Napisy---trudne)

## Interakcja z konsolą



#
Tytuł
Rozwiązania
Poziom




1
Wypisz na standardowe wyjście.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Zamiana kolejności.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


3
Narysuj kształt.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Operacje arytmetyczne.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Wartość funkcji w punkcie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


6
Zamiana jednostek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


7
Pola figur i objętości brył.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


8
Cena podłogi.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


9
Kalkulator kredytowy.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆

## Instrukcja warunkowa



#
Tytuł
Rozwiązania
Poziom




1
Porównanie ze stałą.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Porównanie ze zmienną.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


3
Znak liczby.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Maks/min dwóch liczb.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Sortowanie trzech liczb.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


6
Maks czterech liczb.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


7
Dowody praw logicznych.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


8
Warunek trójkąta.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆

## Daty



#
Tytuł
Rozwiązania
Poziom




1
Czy liczba jest poprawnym numerem?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Czy osoba jest pełnoletnia?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


3
Rok przestępny.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Dzień tygodnia odpowiadający danej liczbie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Ile dni ma miesiąc?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


6
Poprawność daty.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


7
Ile dni minęło od początku roku?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


8
Jaki mamy dzień tygodnia?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆

## Pętla - wprowadzenie



#
Tytuł
Rozwiązania
Poziom




1
Warunek kończący pętlę.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Liczby mniejsze od podanej liczby.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


3
Liczba *Pi*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Suma liczb mniejszych od liczby.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Liczby z przedziału.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


6
Suma wyrazów ciągu.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


7
Liczba *Pi* podniesiona do potęgi.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


8
Znajdź liczbę kur oraz owieczek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆

## Pętla - wyznaczanie cyfr liczby



#
Tytuł
Rozwiązania
Poziom




1
Ile cyfr ma liczba?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Cyfry, z których składa się liczba.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


3
Suma cyfr liczby.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Cyfry liczby spełniające warunek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Czy liczba jest palindromem?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


6
Wszystkie liczby spełniające warunek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆

## Funkcje - wprowadzenie



#
Tytuł
Rozwiązania
Poziom




1
Zwróć stałą.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Operacja arytmetyczna.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


3
Sprawdź warunek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Maks i min.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Zamień wartości miejscami.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


6
Cyfry liczby.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


7
Hasło.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


8
Zaokrąglanie w dół.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆

## Pętla - algorytmy matematyczne



#
Tytuł
Rozwiązania
Poziom




1
Średnia z *n* liczb.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Podnieś *a* do *b*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


3
Mnożenie i dzielenie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Silnia.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
NWD.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


6
NWW.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


7
Pierwiastek metodą Newtona.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


8
Naiwny test pierwszości.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆

## Pętla - pętle zagnieżdżone



#
Tytuł
Rozwiązania
Poziom




1
Kwadrat.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Trójkąt.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


3
Odwrócony trójkąt.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Tabliczka mnożenia.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


5
Litera *X*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


6
Litera *Z*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


7
Choinka.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


8
Trójkąt Pascala.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


9
*N* pierwszych liczb pierwszych.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆

## Listy - wprowadzenie



#
Tytuł
Rozwiązania
Poziom




1
Wczytaj i wypisz.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Wczytaj, zmodyfikuj i wypisz.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


3
Pierwsze wystąpienie klucza.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Minimum oraz maksimum.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Zmodyfikuj elementy spełniające warunek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


6
Czy średnia elementów znajduje się w liście?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


7
Liczba mniejsza od największej i większa od wszystkich pozostałych.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


8
Usuń klucz.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


9
Usuń duplikaty.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


10
Czy punkty mogą stanowić wierzchołki trójkąta?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


11
Samochody.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


12
Rotacja w lewo/prawo.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


13
Brakujący element w liście.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


14
Element bez pary w liście.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


15
Element dominujący.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


16
Suma dwóch.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


17
Pary, których suma jest równa liczbie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


18
Lista posortowane została przesunięta.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆

## Listy - dwie listy



#
Tytuł
Rozwiązania
Poziom




1
Wypisz na przemian.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Połączenie list.
Python
Cpp