Gotowy, sprawdzony materiał — bez konta i bez opłat. Poniżej rozwiązania krok po kroku, ćwiczenia i quiz.
Zadania z rozwiązaniem krok po kroku
Zadanie 1
Opisz krok po kroku algorytm, który z listy liczb wybiera największą. Zapisz go w pseudokodzie i wyjaśnij, dlaczego działa także dla samych liczb ujemnych.
Zakładamy, że rekordzistą jest PIERWSZY element listy. To kluczowa decyzja — zaraz zobaczymy dlaczego. zmienna rekord = lista[0]
Przechodzimy po wszystkich elementach i za każdym razem sprawdzamy, czy bieżący jest większy od rekordu. dla x w lista → jeśli x > rekord → rekord = x
Po przejściu całej listy rekord na pewno zawiera największą wartość: każdy element został z nim porównany, a rekord zmieniał się tylko w górę. zwróć rekord
DLACZEGO OD lista[0], A NIE OD ZERA: gdyby rekord zaczynał od 0, to dla listy samych liczb ujemnych, np. [-8, -2, -30], wynikiem byłoby 0 — liczba, której w liście w ogóle nie ma.
SPRAWDZENIE SKRAJNE: lista jednoelementowa zwróci swój jedyny element (pętla nic nie zmieni). Lista pusta wymaga osobnej decyzji — lista[0] nie istnieje.
Wynik: Przejście po liście z jedną zmienną pomocniczą, ustawioną na początku na lista[0]. Złożoność: jedno przejście, czyli tyle porównań, ile elementów.
Zadanie 2
Prześledź sortowanie bąbelkowe na liście [5, 2, 9, 1]. Zapisz stan listy po każdym pełnym przejściu i wyjaśnij, dlaczego każde kolejne przejście może być krótsze.
Przejście 1: porównujemy sąsiadów i zamieniamy tych w złej kolejności. 5>2 zamiana; 5<9 nie; 9>1 zamiana. [5,2,9,1] → [2,5,9,1] → [2,5,9,1] → [2,5,1,9]
Największa liczba (9) jest już na końcu — i tam zostanie. To nie przypadek: w każdym przejściu największa z pozostałych „wypływa” na koniec jak bąbelek.
Przejście 2 (bez ostatniego elementu): 2<5 nie; 5>1 zamiana. [2,5,1,9] → [2,1,5,9]
Przejście 3 (bez dwóch ostatnich): 2>1 zamiana. [2,1,5,9] → [1,2,5,9]
DLACZEGO KRÓTSZE: po k przejściach k ostatnich elementów jest już na swoich miejscach, więc porównywanie ich znowu byłoby pracą bez efektu. Stąd w kodzie „minus i” w granicy wewnętrznej pętli. dla j od 0 do dlugosc(lista) - 2 - i
Wynik: [1, 2, 5, 9] po trzech przejściach. Sortowanie bąbelkowe wykonuje w najgorszym razie około n² porównań — dlatego dla dużych list używa się szybszych metod.
Zadanie 3
Napisz zapytanie SQL, które dla każdej kategorii produktów poda liczbę produktów i średnią cenę, ale tylko dla kategorii mających więcej niż dwa produkty. Wyjaśnij, dlaczego warunku „więcej niż dwa” nie wolno postawić w WHERE.
Grupujemy po kategorii — jedna grupa na każdą wartość kolumny kategoria. SELECT kategoria, COUNT(*) AS ile, ROUND(AVG(cena), 2) AS srednia FROM produkty GROUP BY kategoria
Warunek na wyniku grupowania stawiamy w HAVING. HAVING COUNT(*) > 2
DLACZEGO NIE W WHERE: baza wykonuje zapytanie w ustalonej kolejności FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. WHERE działa ZANIM powstaną grupy, na pojedynczych wierszach — w tym momencie COUNT(*) jeszcze nie istnieje, bo nie ma czego liczyć. FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
Praktyczny wniosek: WHERE odsiewa WIERSZE przed grupowaniem, HAVING odsiewa GRUPY po grupowaniu. Oba mogą wystąpić w jednym zapytaniu i wtedy robią dwie różne rzeczy.
Wynik: SELECT kategoria, COUNT(*) AS ile, ROUND(AVG(cena), 2) AS srednia FROM produkty GROUP BY kategoria HAVING COUNT(*) > 2
Wzory i reguły
Pętla licząca
dla i od POCZĄTEK do KONIEC [co KROK] … koniec — Wykonuje ciało pętli dla kolejnych wartości licznika, włącznie z wartością końcową. Krok może być ujemny — wtedy pętla liczy w dół.
Pętla warunkowa
dopóki WARUNEK … koniec — Powtarza ciało, dopóki warunek jest prawdziwy. Warunek sprawdzany jest PRZED każdym obiegiem.
Kolejność wykonania zapytania SQL
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY — Baza wykonuje części zapytania w tej kolejności, a NIE w kolejności, w jakiej je zapisujemy.
Łączenie tabel
FROM tabelaA a JOIN tabelaB b ON b.klucz_obcy = a.id — JOIN zwraca tylko pary, które do siebie pasują. LEFT JOIN zachowuje wszystkie wiersze z lewej tabeli, nawet bez pary — brakujące kolumny są wtedy puste (NULL).
Sprawdzanie braku wartości
WHERE kolumna IS NULL (nigdy: kolumna = NULL) — NULL oznacza „nie wiadomo”. Porównanie czegokolwiek z „nie wiadomo” daje „nie wiadomo”, a nie prawdę — dlatego istnieje osobny zapis IS NULL.
Definicje
Algorytm
Skończony i jednoznaczny przepis postępowania, który dla podanych danych wejściowych daje wynik po skończonej liczbie kroków.
Z definicji wynikają trzy wymagania: • SKOŃCZONOŚĆ — postępowanie musi się kiedyś zakończyć; • JEDNOZNACZNOŚĆ — każdy krok musi być określony tak, żeby nie było wątpliwości, co zrobić; • OKREŚLONE DANE I WYNIK — wiadomo, co dostajemy na wejściu i co ma powstać.
Algorytm jest niezależny od języka programowania: ten sam przepis można zapisać w pseudokodzie, w Pythonie albo wykonać ręcznie na kartce.
Złożoność obliczeniowa
Miara tego, jak szybko rośnie nakład pracy algorytmu wraz ze wzrostem ilości danych.
Nie mierzymy w sekundach, bo te zależą od komputera. Liczymy operacje w zależności od rozmiaru danych n: • wyszukiwanie liniowe wykonuje około n porównań; • wyszukiwanie binarne około log n — dla tysiąca elementów to około 10; • sortowanie bąbelkowe około n² — dla tysiąca elementów to milion.
Dlatego dla dużych danych wybór algorytmu jest ważniejszy niż szybkość komputera.
Relacyjna baza danych
Sposób przechowywania danych w tabelach powiązanych ze sobą przez wspólne wartości.
Każda tabela ma stałe kolumny o określonych typach i dowolnie wiele wierszy. KLUCZ GŁÓWNY jednoznacznie wskazuje wiersz w swojej tabeli; KLUCZ OBCY to kolumna wskazująca na klucz główny innej tabeli.
Sens tego podziału: dane zapisujemy raz. Imię klienta jest w tabeli klientów, a każde jego zamówienie tylko na nie wskazuje. Zmiana imienia to poprawka w jednym miejscu, a nie w tysiącu zamówień.
Typowe pułapki
Numerowanie od jedynki zamiast od zera. Jak uniknąć: Pierwszy element listy ma numer 0, a ostatni dlugosc(lista) − 1. Pisząc pętlę po indeksach, sprawdź oba końce na kartce dla listy trzyelementowej.
Pętla wykonująca się o jeden raz za dużo lub za mało. Jak uniknąć: To ten sam błąd co wyżej, w innym przebraniu. Zawsze prześledź pętlę dla listy o długości 1 i 2 — tam widać go od razu.
Rekord ustawiony na zero przy szukaniu największej wartości. Jak uniknąć: Zacznij od pierwszego elementu listy. Dla samych liczb ujemnych rekord zaczynający od 0 zwróci 0 — liczbę, której w liście nie ma.
Pętla nieskończona, bo nic nie zmienia warunku. Jak uniknąć: Zanim uruchomisz „dopóki”, wskaż palcem linijkę w ciele, która przybliża warunek do fałszu. Jeśli takiej nie ma — pętla się nie skończy.
Zmienianie listy w trakcie przechodzenia po niej. Jak uniknąć: Dopisywanie albo usuwanie elementów podczas pętli przesuwa numery pozostałych. Buduj nową listę zamiast przerabiać starą w miejscu.
W SQL: UPDATE albo DELETE bez WHERE. Jak uniknąć: Bez warunku polecenie obejmuje CAŁĄ tabelę. Zanim wykonasz zmianę, uruchom ten sam warunek jako SELECT i zobacz, ilu wierszy dotyczy.
W SQL: porównywanie z NULL przez znak równości. Jak uniknąć: „kolumna = NULL” nigdy nie jest prawdą, więc zapytanie zwraca zero wierszy i wygląda na zepsute. Brak wartości sprawdza się przez IS NULL.
Mylenie przypisania z porównaniem. Jak uniknąć: Jeden znak „=” przypisuje wartość, podwójny „==” porównuje. W warunku prawie zawsze chodzi o porównanie.
Słowniczek
Zmienna
Nazwane miejsce na wartość, którą można zmieniać.
Pętla
Powtarzanie zestawu poleceń.
Warunek
Wyrażenie dające prawdę albo fałsz.
Funkcja
Nazwany fragment programu przyjmujący dane i zwracający wynik.
Parametr
Dana przekazywana funkcji przy wywołaniu.
Indeks
Numer elementu w liście; liczony od zera.
Iteracja
Pojedynczy obieg pętli.
Rekurencja
Funkcja wywołująca samą siebie; wymaga warunku zakończenia.
Tabela
Zbiór wierszy o tych samych kolumnach.
Klucz główny
Kolumna jednoznacznie wskazująca wiersz; wartości się nie powtarzają.
Klucz obcy
Kolumna wskazująca wiersz w innej tabeli.
NULL
Brak wartości — „nie wiadomo”, a nie zero i nie pusty tekst.
Zapytanie
Polecenie wysłane do bazy, np. SELECT albo INSERT.
Debugowanie
Szukanie i usuwanie błędów w programie.
Zrób zdjęcie zadania — zobaczysz rozwiązanie krok po kroku
Do tego trening na nowych liczbach i plan na egzamin ósmoklasisty. Matematyka, polski, angielski, fizyka, chemia i więcej.
Rozumie, a nie przepisuje. Każdy krok z wyjaśnieniem, a zadanie można rozwiązać samemu, z podpowiedziami.
Ćwiczy tam, gdzie się myli. Po błędzie dostaje podobne zadanie z nowymi liczbami. Ćwiczenia działają bez internetu.
Spokojnie, bez presji. Bez konta i bez rankingów. Ustawienia dla ADHD, dysleksji i stresu przed sprawdzianem.
Przykłady działają od razu — bez konta i bez opłat.
Otworzy się gotowy materiał: rozwiązania, ćwiczenia i quiz. Potem spróbuj sam.
Twoje zadanie
Na komputerze możesz też przeciągnąć zdjęcie albo wkleić je ze schowka. Tekst wpisz poniżej.
Analizuję zadania…
Tu zbiorą się Twoje postępy
Rozwiąż pierwszy quiz albo ćwiczenie — pojawi się dziennik, historia i to, co warto powtórzyć.
Koszty
Historia zapytań
Szacunek na podstawie liczby tokenów i cennika Anthropic. Faktyczne koszty sprawdź w konsoli Anthropic.
Historia zadań
Zapisane lokalnie w przeglądarce. Kliknij „Otwórz”, aby wczytać gotowe materiały bez ponownego pytania (bez kosztu).
Postępy w ćwiczeniach
Zapisywane lokalnie w przeglądarce. Na tej podstawie działa przycisk „Trenuj słabe punkty” w zakładce Egzamin / Kartkówka.
Historia ćwiczeń
Czas liczymy jako czas aktywny: przerwa dłuższa niż 3 minuty nie jest wliczana,
więc odejście od komputera nie zawyża wyniku. Trzymamy ostatnie 400 sesji — lokalnie,
a po zalogowaniu także na koncie.
Ćwicz
Wszystko liczy się w przeglądarce — działa bez internetu i nic nie kosztuje.
Spokój i odporność na stres
Dwie rzeczy naraz: skrzynka spokoju (oddech, uziemienie, plan na pustkę
w głowie) i trening odporności — krótkie zestawy łatwych rachunków
w warunkach, które stopniowo robią się bardziej „sprawdzianowe”. Chodzi o to, żeby zegar
i presja przestały być czymś nowym dopiero w szkole. Wyjść można w każdej chwili,
a wyniki nie wchodzą do żadnych statystyk ani ocen.
To ćwiczenie samoregulacji, nie terapia i nie diagnoza. Jeśli stres przy
matematyce oznacza unikanie szkoły, płacz, bóle brzucha albo napady paniki — to sygnał do
rozmowy z psychologiem szkolnym lub specjalistą, a nie do trenowania w aplikacji.
Słówka — fiszki z powtórkami
Wklej listę słówek (albo weź gotowy zestaw) i ćwicz w trzech trybach. Aplikacja sama pilnuje,
kiedy pokazać słówko ponownie: trafione wraca coraz rzadziej, pomylone — jutro.
Powtórki liczą się lokalnie, bez kosztów API.
Mapa — znajdź rzekę, miasto, państwo
Sześć zestawów: rzeki, miasta wojewódzkie i jeziora Polski, sąsiedzi, państwa i stolice Europy.
Dwa tryby: wskazujesz na mapie albo nazywasz zaznaczony obiekt.
Mapy pochodzą z Natural Earth (domena publiczna) i są zaszyte w aplikacji — działają offline.
Trening rytmu — wystukaj do metronomu
Jedyne ćwiczenie, którego nie da się rozwiązać na kartce. Wybierz rytm, ustaw tempo
i wystukaj go razem z metronomem. Tryb bez pomocy wizualnych uczy czytania
zapisu — z pomocami łatwiej złapać koordynację.
Informatyka — programowanie i bazy danych
Wszystko liczy się w przeglądarce: własny pseudojęzyk po polsku
z panelem debugowania, prawdziwa baza SQL z wykresami i mini-sklepem, robot na siatce
i gra w wieże, w której programujesz obie strony. Bez klucza API i bez kosztów.
Konto
Kopia danych
Profil, dziennik ćwiczeń, historia materiałów i ustawienia siedzą w tej przeglądarce.
Wyczyszczenie danych witryny kasuje je bezpowrotnie — zrób kopię, zanim to się stanie.
Materiał wygenerowany przez AI — może zawierać błędy.