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: 9 months 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
Java
JavaScript
Bash
Haskell
Rust
★☆☆


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


4
Mnożenie wektorowe.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Średnia ważona wartości.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


6
Część wspólna dwóch list.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


7
Różnica między dwoma listami.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


8
Połącz posortowane listy w posortowaną listę.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


9
Usuń z pierwszej listy część wspólną obu list.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


10
Znajdź medianę dwóch posortowanych list.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆

## Napisy - wprowadzenie



#
Tytuł
Rozwiązania
Poziom




1
Odwróć napis.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Policz wystąpienia znaku.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


3
Z ilu słów składa się zdanie?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Zamień wszystkie małe litery na wielkie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Wypisz poziomo i pionowo co *k*-ty znak napisu.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


6
Zamień litery *a* na znaki zapytania.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


7
Zamień znaki na numery ASCII.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


8
Wypisz pionowo słowa, z których składa się zdanie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


9
Wczytaj i rozdziel informacje o pracowniku.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


10
Znajdź najdłuższe/najkrótsze słowo w zdaniu.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


11
Średnia długość słów w zdaniu.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


12
Usuń spacje ze zdania.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


13
Znaki znajdujące się na pozycjach będących liczbami pierwszymi.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


14
Napis składający się z liczb od 1 do *n*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


15
Słowa ze zdania jako osobne elementy listy.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


16
Odległość Hamminga.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


17
Zamień listę na napis.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


18
Odwróć napisy w zdaniu.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆

## Napisy - anagramy i palindromy



#
Tytuł
Rozwiązania
Poziom




1
Czy słowo jest palindromem?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Wszystkie permutacje słowa.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


3
Czy słowa są swoimi anagramami?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Wszystkie palindromy w zdaniu.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


5
Znajdź anagramy w zdaniu.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


6
Permutacja będąca palindromem.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


7
Najmniej usunięć do anagramów
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★


8
Wyjątkowe palindromy.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★

## Listy 2d



#
Tytuł
Rozwiązania
Poziom




1
Macierz *a* identycznych wierszy składających się z liczb od 0 do *b*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Każdy element jest iloczynem współrzędnych.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


3
Macierz z par odpowiadających sobie elementów dwóch list.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Dodawanie/odejmowanie macierzy.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Magiczny kwadrat.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


6
Pokrywające się przedziały w liście przedziałów.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


7
Wyzeruj macierz.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


8
Wypisz spiralnie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


9
Klepsydra o największej sumie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


10
Obróć o 90 stopni.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


11
Gra w statki.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★

## Funkcje - wielomiany



#
Tytuł
Rozwiązania
Poziom




1
Wartość wielomianu w punkcie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Iloczyn wielomianu przez skalar.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


3
Suma wielomianów.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Mnożenie wielomianów.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


5
N-ta pochodna wielomianu.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


6
Miejsce zerowe funkcji kwadratowej.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆

## Funkcje - rekurencja



#
Tytuł
Rozwiązania
Poziom




1
Liczby naturalne mniejsze od *N*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Suma liczb naturalnych mniejszych od *N*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


3
Potęgowanie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


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


5
Liczba Fibonacciego.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


6
*N*-ty wyraz ciągu danego wzorem rekurencyjnym.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


7
Wyszukiwanie liniowe rekurencyjnie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


8
Wieża Hanoi.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


9
Słowa elfickie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


10
Gra.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★

## System binarny



#
Tytuł
Rozwiązania
Poziom




1
Konwersja między systemami binarnym i dziesiętnym.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Konwersja gdy spełniony jest warunek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


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


4
Zera/jedynki w liczbie binarnej.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Min/maks z dwóch liczb.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


6
Konwersja między dowolnymi systemami.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


7
Zamiana sąsiadów.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


8
Następna potęga dwójki.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


9
Zmiana wielkości liter.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


10
Zamień *A* w *B*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


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


12
Najdłuższy ciąg zer w liczbie binarnej.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★

## Słowniki



#
Tytuł
Rozwiązania
Poziom




1
Kluczami są liczby, a wartościami ich kwadraty.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Kluczami są elementy jednej listy, a wartościami elementy drugiej listy.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


3
Klucz to imię, wartość lista wypożyczonych książek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Usuń ze słownika.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Lista pracowników.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


6
Histogram znaków w słowie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


7
Histogram słów w tekście.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


8
Najczęściej występująca litera w zdaniu.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


9
Powtarzające się znaki.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


10
Anagramy w tekście.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


11
Sortowanie względem kluczy/wartości.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


12
Czy słowniki są identyczne?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆

## Klasy



#
Tytuł
Rozwiązania
Poziom




1
Zaprojektuj klasę *Koło*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


2
Zaprojektuj klasę *Punkt*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


3
Prostokąt powstały z nałożenia się dwóch prostokątów.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


4
Zaprojektuj klasy *Wektor2d* oraz *Wektor3D*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


5
Zaprojektuj klasę *Zespolona*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


6
Zaprojektuj klasę *Macierz.*
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


7
Znajdź liczbę instancji klasy w programie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆

## Dziedziczenie



#
Tytuł
Rozwiązania
Poziom




1
Wywołaj metodę klasy bazowej w klasie potomnej.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Zaprojektuj klasę bazową *Kształt* oraz klasy potomne *Koło* i *Kwadrat*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


3
Polimorfizm.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


4
Dziedziczenie wielopoziomowe.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


5
Dziedziczenie wielokrotne.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆

## Operacje na plikach



#
Tytuł
Rozwiązania
Poziom




1
Sprawdź, czy ścieżka należy do pliku/folderu.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Znajdź w folderze wszystkie pliki z danym rozszerzeniem.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


3
Znajdź ścieżkę pliku o danej nazwie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


4
Wczytaj i wypisz treść pliku.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Plik z listą adresów ip.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


6
Statystyki dla pliku tekstowego.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


7
Dodaj wiersz do pliku.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


8
Znajdź i zmodyfikuj pliki spełniające warunek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


9
Usuń pliki spełniające warunek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


10
Skopiuj pliki.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


11
Podmień treści.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


12
Przesuń wszystkie pliki csv do jednego folderu.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆

## Sortowanie - algorytmy



#
Tytuł
Rozwiązania
Poziom




1
Sortowanie bąbelkowe.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Sortowanie przez wybieranie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


3
Sortowanie przez wstawianie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


4
Sortowanie przez scalanie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


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

## Sortowanie - praktyka



#
Tytuł
Rozwiązania
Poziom




1
Posortuj znaki w słowie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


2
Posortuj słowa w zdaniu
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


3
Posortuj listę par względem jednej z kategorii.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Posortuj względem długości napisy w liście.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Sortowanie listy obiektów.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


6
Tablica binarna.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


7
Tablica składająca się wyłącznie z zer, jedynek i dwójek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


8
Tablica cykliczna.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆

## Wyrażenia regularne



#
Tytuł
Rozwiązania
Poziom




1
Sprawdź poprawność adresu email.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


2
Sprawdź poprawność hasła.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


3
Czy napis składa się wyłącznie z cyfr?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


4
Czy słowo należy do zdania?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


5
Odfiltruj cyfry z tekstu.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


6
Wiersze kończące się napisem.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


7
Podziel względem znaków interpunkcyjnych.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★☆☆


8
Cyfry będące częścią słów.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


9
Usuń część wiersza.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


10
Podmień napisy z listy *A* na napisy z listy *B*.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


11
Nazwa pliku ze ścieżki.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆

## Listy - trudne



#
Tytuł
Rozwiązania
Poziom




1
Najdłuższy nieprzerwany ciąg jedynek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


2
Przesuń zera.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


3
Trójka o minimalnym iloczynie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


4
Wspólny podciąg o największej sumie.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★


5
Zbiór potęgowy.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


6
*M* posortowanych list.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★


7
Woda.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★


8
Sznurek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★


9
Najdłuższy naprzemienny podciąg.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★

## Napisy - trudne



#
Tytuł
Rozwiązania
Poziom




1
Podmiana wszystkich wystąpień słowa.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


2
Usuń wszystkie wystąpienia podnapisu.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


3
Czy napis *A* stanowi początek napisu *B*?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★☆


4
Usuń powtórzenia z napisu.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★


5
Znaki stojące obok siebie nie mogą się powtarzać.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★


6
Czy napisy są swoimi rotacjami?
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★


7
Znajdź powtórzenia.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★


8
Najdłuższy wspólny przedrostek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★


9
Najdłuższy wspólny potomek.
Python
Cpp
Java
JavaScript
Bash
Haskell
Rust
★★★

## Literatura

* Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. "*Introduction to Algorithms, 3rd Edition (The MIT Press)*"
* Steven Halim "*Competitive Programming 3*"
* Narasimha Karumanchi "*Data Structures and Algorithms Made Easy: Data Structures and Algorithmic Puzzles*"
* Brian Kernighan, Dennis Ritchie "*The C Programming Language*"
* Steven Skiena, Miguel Revilla "*Programming Challenges: The Programming Contest Training Manual*"
* Antti Laaksonen "* Guide to Competitive Programming: Learning and Improving Algorithms Through Contests (Undergraduate Topics in Computer Science) *"
* Nite Nimajneb "*The Hitchhiker’s Guide to the Programming Contests*"