MatSolver nauka krok po kroku

Ustawienia

Wygląd
Większa czcionka, mniej ruchu i łagodniejsze kolory ustawia się w profilu ucznia poniżej.
Dostępność
Konto
Profil ucznia — jak tłumaczyć i prowadzić ćwiczenia

To nie jest test ani narzędzie diagnostyczne. Ustawienia mówią aplikacji, jak tłumaczyć materiał i prowadzić ćwiczenia — nie zmieniają zakresu materiału ani zasad oceniania. Jeśli podejrzewasz u dziecka trudności rozwojowe, skonsultuj się z poradnią psychologiczno-pedagogiczną.

Zasady i prywatność · MatSolver

Test

Przykłady — gotowe, bez kosztu

Gotowe materiały dla każdego przedmiotu. Każde demo wypełnia komplet zakładek: drzewko umiejętności z testami, rozwiązania krok po kroku, wzory, pułapki, ćwiczenia, quiz i słowniczek — dokładnie to, co dostaniesz z własnego zdjęcia.

Wszystkie przykłady na osobnej stronie — każdy ma własny adres, który można wysłać albo zapisać.

Ćwiczenia, które i tak działają bez klucza

Liczą się lokalnie — wchodzą do dziennika, historii i odznak jak każde inne.

Zgłoś błąd w materiale

Dostępność

Ustawienia działają od razu i zostają zapamiętane w tej przeglądarce.

Informatyka · Szkoła podstawowa, klasy 7–8

Algorytmy i bazy danych

Sortowanie, wyszukiwanie i SQL — z wyjaśnieniem, dlaczego COUNT nie działa w WHERE.

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.

  1. Zakładamy, że rekordzistą jest PIERWSZY element listy. To kluczowa decyzja — zaraz zobaczymy dlaczego. zmienna rekord = lista[0]
  2. 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
  3. 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
  4. 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.
  5. 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.

  1. 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]
  2. 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.
  3. Przejście 2 (bez ostatniego elementu): 2<5 nie; 5>1 zamiana. [2,5,1,9] → [2,1,5,9]
  4. Przejście 3 (bez dwóch ostatnich): 2>1 zamiana. [2,1,5,9] → [1,2,5,9]
  5. 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.

  1. 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
  2. Warunek na wyniku grupowania stawiamy w HAVING. HAVING COUNT(*) > 2
  3. 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
  4. 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.

Twoje zadanie

Na komputerze możesz też przeciągnąć zdjęcie albo wkleić je ze schowka. Tekst wpisz poniżej.

Tu zbiorą się Twoje postępy

Rozwiąż pierwszy quiz albo ćwiczenie — pojawi się dziennik, historia i to, co warto powtórzyć.

Ć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.