Kategoria: 8 klasa

  • Lekcja 1 — BHP i regulamin pracowni komputerowej

    Lekcja 1 — BHP i regulamin pracowni komputerowej

    Cel lekcji

    Ta lekcja przypomina zasady bezpiecznej i odpowiedzialnej pracy w pracowni komputerowej oraz wyjaśnia wymagania i kryteria oceniania na informatyce. Zasady obowiązują wszystkie klasy przez cały rok szkolny.

    Po lekcji potrafisz przygotować stanowisko do pracy, bezpiecznie korzystać ze sprzętu i swojego konta oraz odpowiednio zareagować, gdy pojawi się problem.

    Regulamin pracowni komputerowej

    1. Z pracowni korzystamy wyłącznie w obecności nauczyciela lub osoby upoważnionej. Zachowujemy spokój i porządek.
    2. Każdy uczeń pracuje przy stanowisku wyznaczonym przez nauczyciela. Zmiana miejsca wymaga jego zgody.
    3. Przed rozpoczęciem zajęć sprawdzamy swoje stanowisko. Uszkodzenia, brakujące elementy i inne nieprawidłowości od razu zgłaszamy nauczycielowi.
    4. Każdy uczeń otrzymuje indywidualny login i hasło. Logujemy się wyłącznie na własne konto.
    5. Dane logowania zapisujemy w notesie przeznaczonym do szkoły. Notes mamy przy sobie i chronimy przed dostępem innych osób. Nie udostępniamy hasła kolegom i koleżankom.
    6. Brak możliwości zalogowania się z powodu zapomnienia loginu lub hasła traktowany jest jako nieprzygotowanie do zajęć. Problemy techniczne zgłaszamy nauczycielowi od razu.
    7. Uczeń może zgłosić jedno nieprzygotowanie w semestrze. Zgłasza je na początku lekcji, przed rozpoczęciem pracy.
    8. Dbamy o przydzielone stanowisko. Jeśli nieprawidłowość zostanie zauważona dopiero podczas zajęć, nauczyciel może poprosić ucznia o wyjaśnienie sytuacji. Odpowiedzialność dotyczy szkód wynikających z niewłaściwego użytkowania sprzętu.
    9. Nie przestawiamy, nie podłączamy, nie odłączamy ani nie demontujemy sprzętu komputerowego. Nie manipulujemy przy przewodach, gniazdach i elementach zasilania.
    10. Nie instalujemy oprogramowania ani nie zmieniamy ustawień systemu i przeglądarek bez zgody nauczyciela.
    11. Z programów, aplikacji i internetu korzystamy zgodnie z poleceniami nauczyciela i celem lekcji. Gry, filmy i portale społecznościowe są dozwolone tylko wtedy, gdy stanowią część zadania.
    12. Nie wchodzimy na strony związane z pornografią, hazardem, przemocą ani innymi treściami nieodpowiednimi do zajęć szkolnych.
    13. Korzystamy z legalnych materiałów i przestrzegamy praw autorskich. Nie przedstawiamy cudzej pracy jako własnej.
    14. W pracowni nie jemy i nie pijemy.
    15. Po zakończeniu zajęć zapisujemy pliki, wylogowujemy się ze swojego konta i porządkujemy stanowisko. Komputer wyłączamy zgodnie z poleceniem nauczyciela.
    Sześć zasad bezpiecznej pracy przy komputerze: sprawdź stanowisko, usiądź prawidłowo, chroń hasło, nie jedz i nie pij, zgłaszaj usterki, zapisz pracę i wyloguj się.
    Najważniejsze zasady bezpiecznej pracy w pracowni komputerowej.

    Bezpieczeństwo i higiena pracy

    BHP oznacza bezpieczeństwo i higienę pracy. Obejmuje ostrożne korzystanie ze sprzętu, prawidłową postawę oraz porządek wokół stanowiska.

    • Siedzimy z plecami opartymi o oparcie krzesła i stopami opartymi o podłogę lub podnóżek.
    • Ustawiamy ekran tak, aby czytać bez pochylania się i nadmiernego zbliżania twarzy do monitora.
    • Podczas pisania i korzystania z myszy nie napinamy ramion i nie wyginamy mocno nadgarstków.
    • Nie bujamy się na krzesłach, nie biegamy i nie przepychamy się między stanowiskami.
    • Plecaki odkładamy tak, aby nie blokowały przejść ani wyjścia z sali.
    • Podczas przerw wskazanych przez nauczyciela odrywamy wzrok od ekranu i zmieniamy pozycję ciała.
    • Złe samopoczucie lub dyskomfort podczas pracy zgłaszamy nauczycielowi.

    Co robić w razie problemu

    Jeżeli komputer nie działa, program się zawiesił lub logowanie jest niemożliwe, zgłaszamy problem nauczycielowi. Wyjaśniamy, co się wydarzyło i jaki komunikat pojawił się na ekranie. Dalsze czynności wykonujemy zgodnie z jego wskazówkami.

    Nie próbujemy samodzielnie naprawiać sprzętu.

    Jeśli zauważymy uszkodzony przewód, rozlany płyn w pobliżu urządzeń, dym lub poczujemy zapach spalenizny:

    1. Przerywamy pracę.
    2. Odsuwamy się od zagrożenia i nie dotykamy urządzeń ani przewodów.
    3. Natychmiast powiadamiamy nauczyciela.

    W razie alarmu słuchamy poleceń nauczyciela i opuszczamy salę zgodnie z zasadami ewakuacji. Nie zatrzymujemy się, aby zapisywać pliki lub zabierać rzeczy.

    Reagowanie na zagrożenie: przerwij pracę, odsuń się od zagrożenia i powiadom nauczyciela. Nie naprawiaj sprzętu samodzielnie. Podczas alarmu wykonuj polecenia nauczyciela.
    W razie zagrożenia przerwij pracę i natychmiast poinformuj nauczyciela.

    Jak pracujemy na lekcji

    Pracujemy spokojnie, słuchamy poleceń i czytamy instrukcję przed rozpoczęciem zadania. Staramy się samodzielnie rozwiązywać problemy, a gdy czegoś nie rozumiemy, pytamy. Korzystamy ze wskazówek i poprawiamy zauważone błędy.

    Regularnie zapisujemy pliki we wskazanym miejscu i nadajemy im nazwy zgodne z poleceniem. Przed oddaniem pracy sprawdzamy, czy zawiera wszystkie wymagane elementy i czy można ją otworzyć.

    Szanujemy swoją pracę oraz pracę innych osób. Nie otwieramy, nie zmieniamy i nie usuwamy cudzych plików. Podczas pracy zespołowej dzielimy się zadaniami i odpowiadamy za swoją część.

    Bezpieczeństwo konta i korzystanie z internetu

    Konto szkolne służy do nauki. Chronimy dostęp do niego i nie pozwalamy innym pracować w naszym imieniu.

    • Nie udostępniamy hasła i nie zapisujemy go w widocznym miejscu przy komputerze.
    • Nie korzystamy z kont innych uczniów.
    • Nie podajemy danych osobowych na przypadkowych stronach.
    • Nie otwieramy podejrzanych linków ani nie pobieramy nieznanych plików.
    • Niepokojące treści i wiadomości zgłaszamy nauczycielowi.
    • Po zakończeniu pracy wylogowujemy się z konta i używanych usług.

    Wymagania na lekcjach informatyki

    Uczeń powinien:

    • mieć potrzebne materiały oraz notes z danymi logowania,
    • być przygotowany do rozpoczęcia pracy,
    • wykonywać zadania zgodnie z instrukcją,
    • pracować systematycznie i zapisywać efekty swojej pracy,
    • oddawać zadania w ustalonym terminie,
    • przestrzegać regulaminu pracowni,
    • powtarzać materiał z kolejnych lekcji.

    Comiesięczny sprawdzian online

    Raz w miesiącu odbywa się sprawdzian w wersji online, obejmujący materiał z czterech ostatnich lekcji.

    Sprawdzian sprawdza wiedzę i umiejętności związane z omawianymi tematami. Uczeń wykonuje go samodzielnie, zgodnie z instrukcją nauczyciela.

    Aby się przygotować, warto przejrzeć notatki, przypomnieć sobie poznane pojęcia oraz ponownie przeanalizować zadania wykonywane podczas czterech ostatnich lekcji. Problemy techniczne podczas sprawdzianu należy natychmiast zgłosić nauczycielowi.

    Kryteria oceniania

    Ocena z informatyki obejmuje wiedzę, umiejętności praktyczne, efekt wykonanej pracy oraz sposób realizacji zadań. Uwzględniane są również wkład pracy ucznia, jego postępy i osiągnięte wyniki.

    Obszar Co jest oceniane
    Przygotowanie Uczeń ma potrzebne materiały i dane logowania oraz sprawnie rozpoczyna pracę.
    Aktywność i zaangażowanie Wykonuje zadania, uczestniczy w rozmowie na temat lekcji, zadaje pytania i podejmuje próby rozwiązania problemów.
    Zadania praktyczne Praca jest poprawna, dokładna, kompletna i zgodna z instrukcją. Uczeń właściwie wykorzystuje poznane narzędzia.
    Wiedza teoretyczna Rozumie poznane pojęcia oraz zasady działania sprzętu, systemów i programów.
    Sprawdziany online Wykazuje się wiedzą i umiejętnościami z czterech ostatnich lekcji podczas sprawdzianu odbywającego się raz w miesiącu.
    Umiejętności techniczne Obsługuje poznane programy, zarządza plikami i folderami oraz rozpoznaje typowe problemy w zakresie wskazanym przez nauczyciela.
    Samodzielność Podejmuje własne próby wykonania zadania, korzysta ze wskazówek i poprawia błędy.
    Systematyczność i organizacja Pracuje podczas lekcji, regularnie zapisuje pliki i oddaje zadania w terminie.
    Projekty Oceniane są zgodność z tematem, poprawność, estetyka, pomysłowość i wykorzystanie zdobytej wiedzy.
    Współpraca i kultura pracy Uczestniczy w podziale zadań, wywiązuje się ze swojej części, szanuje innych i nie przeszkadza im w pracy.
    Bezpieczeństwo i odpowiedzialność Przestrzega regulaminu, chroni swoje konto, dba o stanowisko i zgłasza nieprawidłowości.
    Dodatkowe osiągnięcia Uwzględniane są dodatkowe zadania, projekty, konkursy i inne inicjatywy związane z informatyką.

    Oceny są wystawiane zgodnie ze szkolnym systemem oceniania. Samodzielna praca nie wyklucza proszenia o pomoc — ważne jest rozumienie wykonywanych czynności i korzystanie z otrzymanych wskazówek.

    Na co zwracam uwagę

    • Czy uczeń zna i stosuje zasady pracowni.
    • Czy bezpiecznie korzysta ze swojego konta i chroni hasło.
    • Czy pracuje przy wyznaczonym stanowisku i dba o sprzęt.
    • Czy rozumie zadanie i właściwie wykorzystuje poznane narzędzia.
    • Czy wykonuje pracę starannie, samodzielnie i terminowo.
    • Czy zapisuje pliki we właściwym miejscu.
    • Czy systematycznie powtarza materiał i przygotowuje się do sprawdzianów online.
    • Czy współpracuje z innymi i szanuje ich pracę.
    • Czy poprawia błędy i robi postępy.
    • Czy reaguje odpowiedzialnie, gdy pojawi się problem.

    Konsekwencje nieprzestrzegania regulaminu

    Naruszenie zasad może skutkować upomnieniem lub zgłoszeniem sprawy wychowawcy. W przypadku powtarzających się naruszeń stosowane są dalsze działania zgodne z regulaminem szkoły.

    Pytania kontrolne z BHP

    1. W czyjej obecności można korzystać z pracowni komputerowej?
    2. Co należy sprawdzić przy swoim stanowisku przed rozpoczęciem pracy?
    3. Co robisz, gdy zauważysz uszkodzenie sprzętu lub przewodu?
    4. Dlaczego nie wolno samodzielnie podłączać, odłączać ani naprawiać urządzeń?
    5. Dlaczego w pracowni komputerowej nie wolno jeść ani pić?
    6. Jak powinna wyglądać prawidłowa pozycja ciała podczas pracy przy komputerze?
    7. Gdzie należy odłożyć plecak, aby nie stwarzał zagrożenia?
    8. Jak należy postąpić, gdy zauważysz dym lub poczujesz zapach spalenizny?
    9. Jak należy zachować się po ogłoszeniu alarmu i poleceniu ewakuacji?
    10. Jakie czynności należy wykonać przed opuszczeniem stanowiska po zakończeniu lekcji?
  • Lekcja 2 — Programowanie: zmienne

    Lekcja 2 — Programowanie: zmienne

    https://www.youtube.com/watch?v=wVIvbzgm5cA

    W języku C++, zmienne i stałe to podstawowe elementy przechowywania danych. Oto krótka charakteryzacja tych pojęć:

    1. Stałe (const):
      • Stałe są to wartości, które nie mogą być modyfikowane po zainicjowaniu.
      • W języku C++, stałe definiowane są przy użyciu słowa kluczowego const.
      • Przykład: const int liczba = 5; definiuje stałą liczba o wartości 5, która nie może zostać zmieniona w trakcie działania programu.
    2. Zmienne (variables):
      • Zmienne są to miejsca w pamięci, w których można przechowywać i zmieniać dane.
      • Zmienne muszą być zadeklarowane z określonym typem danych, który określa, jakie wartości mogą być w nich przechowywane.
      • Przykład: int x = 10; definiuje zmienną x o typie int i przypisuje jej wartość 10.
    3. Typy zmiennych:
      • Typy zmiennych określają, jakie rodzaje danych mogą być przechowywane w danej zmiennej.
      • W języku C++ istnieje wiele różnych typów zmiennych, w tym:
        • int: Przechowuje liczby całkowite (np. int liczba = 5;).
        • double: Przechowuje liczby zmiennoprzecinkowe (np. double liczba = 3.14;).
        • char: Przechowuje pojedyncze znaki (np. char litera = 'A';).
        • bool: Przechowuje wartości logiczne true lub false (np. bool prawda = true;).
        • i wiele innych.

    Przykłady:

    const int stala = 100;
    int zmienna = 42;
    double liczba_zmiennoprzecinkowa = 3.14;
    char znak = 'X’;
    bool prawda = true;

    Typ danych zmiennej określa, jakie operacje można na niej wykonywać, jakie wartości może przyjąć i ile pamięci zajmuje. Warto wybrać odpowiedni typ danych w zależności od rodzaju informacji, którą chcemy przechowywać, aby zoptymalizować wykorzystanie pamięci i zapewnić poprawność operacji na tych zmiennych.

    1. int:

      • int to skrót od „integer”, czyli liczby całkowitej.
      • Ten typ danych służy do przechowywania liczb całkowitych, czyli liczb bez części dziesiętnej.
      • Przykład: int liczba = 42;
    2. float:

      • float to typ danych używany do przechowywania liczb zmiennoprzecinkowych (lub liczb zmiennoprzecinkowych jedno-precyzyjnych).
      • Zazwyczaj zajmuje 4 bajty pamięci.
      • Przykład: float liczba = 3.14;
    3. string:

      • string to typ danych używany do przechowywania ciągów znaków, czyli tekstowych danych.
      • Jest to część standardowej biblioteki C++ (STL).
      • Przykład: string napis = "Hello, World!";
    4. char:

      • char to typ danych używany do przechowywania pojedynczego znaku.
      • Zmienna typu char przechowuje jeden znak w kodzie ASCII.
      • Przykład: char litera = 'A';
    5. bool:

      • bool to typ danych używany do przechowywania wartości logicznych.
      • Może przyjmować jedną z dwóch wartości: true (prawda) lub false (fałsz).
      • Przykład: bool prawda = true;

    Te typy danych stanowią podstawę do przechowywania różnych rodzajów informacji w języku C++. Wybór odpowiedniego typu zależy od rodzaju danych, które chcesz przechowywać oraz od zakresu wartości, które mają być obsługiwane przez zmienną.

    kod na zajęcia:
    #include <iostream>
    int main() {
    int a = 2;
    int b = 4;
    int c = 1;
    int d = 6;
    std::cout << a+b << "n";
    std::cout << c-d << "n";
    }

    Zmienna to nazwana informacja

    Program komputerowy często musi zapamiętać wynik obliczenia, liczbę punktów albo imię gracza. Zmienna pozwala nadać takiej informacji nazwę. Dzięki temu zamiast wielokrotnie przepisywać wartość możemy odwoływać się do niej w kolejnych instrukcjach. W języku C++ zapis int punkty = 0; tworzy zmienną o nazwie punkty, przeznaczoną do przechowywania liczby całkowitej. Zero jest jej wartością początkową. Średnik kończy instrukcję, a znak równości oznacza tutaj przypisanie wartości, nie pytanie o równość dwóch liczb.

    Warto odróżniać deklarację od późniejszej zmiany wartości. Przy deklaracji podajemy typ i nazwę, ponieważ informujemy kompilator o nowym elemencie programu. Później możemy napisać punkty = 10; bez ponownego podawania typu. Ta instrukcja zastępuje wcześniejszą wartość dziesiątką. Jeżeli następnie wykonamy punkty = punkty + 5;, program najpierw odczyta dotychczasową wartość, doda pięć i zapisze wynik w tej samej zmiennej. Po tej operacji punkty będą miały wartość piętnaście.

    Typ dobieramy do znaczenia danych

    Typ int stosujemy do liczb całkowitych, na przykład liczby uczniów albo trafień w grze. Typ double pozwala zapisywać liczby z częścią ułamkową, takie jak temperatura lub długość odcinka. W kodzie część ułamkową oddzielamy kropką: double temperatura = 21.5;. Typ bool opisuje dwie możliwości: true albo false. Nadaje się do informacji, czy gracz ma klucz lub czy drzwi są otwarte. Pojedynczy znak zapisujemy w typie char, a dłuższy tekst możemy przechowywać w std::string po dołączeniu nagłówka string.

    Typ nie jest tylko ozdobą nazwy. Wpływa na sposób przechowywania informacji i wynik działań. Jeżeli obliczamy średnią ocen, sama liczba całkowita może nie wystarczyć. Dzielenie dwóch wartości typu int wykonuje dzielenie całkowite: wynik działania 5 / 2 to 2. Z kolei 5.0 / 2 daje wynik 2.5. Liczby zmiennoprzecinkowe mogą być przybliżeniami, dlatego nie należy zakładać, że każde działanie na nich jest idealnie dokładne. Na pierwszych lekcjach najważniejsze jest świadome wybieranie typu pasującego do zadania.

    Czytelne nazwy i wartości początkowe

    Nazwa powinna mówić, do czego służy zmienna. LiczbaPunktow jest bardziej zrozumiała niż przypadkowe x, jeśli program liczy wynik rozgrywki. Nazwa nie może zaczynać się cyfrą ani zawierać spacji. C++ rozróżnia wielkie i małe litery, więc punkty i Punkty to dwie różne nazwy. Dobrą praktyką na początku nauki jest używanie liter alfabetu łacińskiego i jednej, konsekwentnej konwencji zapisu. Nie używamy jako nazw słów zarezerwowanych, takich jak int, return czy if.

    Zawsze nadaj lokalnej zmiennej wartość początkową, zanim spróbujesz ją odczytać. Zapis int wynik; nie oznacza automatycznie, że wynik wynosi zero. Odczyt niezainicjalizowanej lokalnej zmiennej jest błędem i może powodować nieprzewidywalne zachowanie programu. Jeżeli wiesz, że jakaś informacja nie powinna się zmienić, możesz użyć const, na przykład const int liczbaDniTygodnia = 7;. Taka stała wyjaśnia znaczenie liczby i pomaga uniknąć przypadkowego nadpisania jej w dalszej części programu.

    Ćwiczenie: licznik punktów

    Przygotuj program, w którym gracz zaczyna z dwunastoma punktami. Utwórz zmienną punkty, następnie dodaj osiem punktów za wykonanie zadania i odejmij trzy za pomyłkę. Po każdej zmianie wypisz aktualną wartość. Zanim uruchomisz kod, zapisz przewidywane wyniki w zeszycie. Powinieneś otrzymać kolejno dwanaście, dwadzieścia i siedemnaście. Takie ręczne śledzenie programu pomaga zauważyć, czy instrukcje występują we właściwej kolejności i czy zmieniasz właściwą zmienną.

    Rozszerz ćwiczenie o drugą zmienną, opisującą liczbę wykonanych zadań. Wyświetl końcowy komunikat zawierający obie informacje, na przykład wynik oraz liczbę ukończonych zadań. Nie łącz różnych znaczeń w jednej zmiennej: liczba zadań i liczba punktów mogą przypadkiem być równe, ale opisują coś innego. Na koniec zmień wartość początkową i ponownie przewidź wynik. Jeśli program działa poprawnie dla różnych danych, masz mocniejszy dowód jego poprawności niż po jednym uruchomieniu.

    Jak szukać błędu

    Gdy kompilator zgłasza problem z nazwą, sprawdź literówki, wielkość liter i miejsce deklaracji. Zmienna zadeklarowana wewnątrz pary klamer zwykle jest dostępna tylko w tym bloku. Kiedy wynik jest niepoprawny, wypisz wartości po kolejnych instrukcjach i porównaj je z obliczeniami na kartce. Nie poprawiaj wielu miejsc naraz. Zmień jedną rzecz, uruchom program i sprawdź, jaki przyniosła efekt. Ta metoda ułatwia rozpoznanie przyczyny i jest przydatna również podczas późniejszej nauki warunków oraz pętli.

  • Lekcja 3 — Programowanie: operatory arytmetyczne

    Lekcja 3 — Programowanie: operatory arytmetyczne

    https://www.youtube.com/watch?v=iZfMV0BH8p0 

    Operatory arytmetyczne w C++ to symbole, które służą do wykonywania działań matematycznych na liczbach. Do podstawowych operatorów arytmetycznych należą:

    • Dodawanie: +
    • Odejmowanie: -
    • Mnożenie: *
    • Dzielenie: /
    • Reszta z dzielenia: %

    Przykłady użycia operatorów arytmetycznych w C++.

    // Dodawanie
    int a = 10;
    int b = 20;
    int c = a + b; // c = 30
    // Odejmowanie
    int d = 30;
    int e = 10;
    int f = d - e; // f = 20
    // Mnożenie
    int g = 5;
    int h = 2;
    int i = g * h; // i = 10
    // Dzielenie
    float j = 10.0;
    float k = 2.0;
    float l = j / k; // l = 5.0
    // Reszta z dzielenia
    int m = 10;
    int n = 3;
    int o = m % n; // o = 1
    Kod z zajęć:

    #include <iostream>
    #include <string>

    int main()
    {
    int a = 2;
    int b = 4;


    std::cout << „witaj swiecie” << „!n”;

    }


    ćwiczenie 2

    Operatory opisują działania na danych

    Operator to znak określający działanie, które program ma wykonać na wartościach. W C++ dodawanie zapisujemy plusem, odejmowanie minusem, mnożenie gwiazdką, a dzielenie ukośnikiem. Na przykład wyrażenie 8 + 3 daje jedenaście, a 8 * 3 daje dwadzieścia cztery. Możemy wykonywać działania na liczbach zapisanych bezpośrednio w kodzie, na zmiennych albo na połączeniu obu tych elementów. Instrukcja koszt = cena * liczbaSztuk; oblicza iloczyn i dopiero potem zapisuje wynik w zmiennej koszt.

    Najpierw spróbuj opisać zadanie zwykłym zdaniem. Jeśli chcesz policzyć cenę pięciu zeszytów, pomnóż cenę jednego zeszytu przez liczbę zeszytów. Jeśli masz policzyć resztę z zapłaty, odejmij łączny koszt od wręczonej kwoty. Dopiero po ustaleniu sensu działania wybierz właściwy operator. Samo użycie poprawnego znaku nie wystarczy, kiedy dane wejściowe oznaczają coś innego, niż zakłada autor programu. Czytelne nazwy zmiennych pomagają sprawdzić, czy obliczenie naprawdę odpowiada treści zadania.

    Dzielenie całkowite i dzielenie z ułamkiem

    Wynik dzielenia zależy od typów danych. Jeśli obie wartości są liczbami całkowitymi, C++ wykonuje dzielenie całkowite. Wyrażenie 17 / 5 daje 3: część ułamkowa nie zostaje zachowana. Nie jest to zaokrąglenie do najbliższej liczby. Dla dodatnich liczb możemy myśleć o tym jako o liczbie pełnych grup. Jeżeli siedemnaście cukierków rozdzielamy po pięć, utworzymy trzy pełne grupy i zostaną dwa cukierki. Kiedy potrzebujemy wyniku z ułamkiem, co najmniej jeden argument powinien mieć odpowiedni typ, na przykład 17.0 / 5.

    Przypisanie wyniku dzielenia całkowitego do zmiennej double nie odzyskuje utraconej części ułamkowej. Zapis double wynik = 17 / 5; nadal daje wartość 3.0, ponieważ najpierw wykonano działanie na dwóch liczbach całkowitych. Poprawna wersja to na przykład double wynik = 17.0 / 5;. Tę różnicę łatwo zobaczyć w programie obliczającym średnią. Zanim zaczniesz liczyć średnią ocen albo cenę jednostkową, zastanów się, czy wynik może zawierać część ułamkową i w jakim typie wykonasz obliczenie.

    Reszta z dzielenia: operator procent

    Operator % zwraca resztę z dzielenia liczb całkowitych. Dla dodatnich wartości 17 % 5 daje 2, ponieważ po wydzieleniu trzech pełnych piątek zostają dwie jednostki. Ten operator przydaje się podczas sprawdzania parzystości. Jeżeli liczba % 2 jest równe zero, liczba jest parzysta. Jeżeli reszta wynosi jeden, dodatnia liczba jest nieparzysta. Nie myl zapisu % z obliczaniem procentu ceny. Dziesięć procent kwoty obliczamy przez pomnożenie jej przez 0.10, a nie przez zastosowanie operatora reszty.

    Resztę można wykorzystać do zamiany czasu na minuty i sekundy. Jeśli nagranie trwa sto czterdzieści pięć sekund, liczba pełnych minut to 145 / 60, czyli dwie. Pozostałe sekundy to 145 % 60, czyli dwadzieścia pięć. Otrzymujemy zapis dwie minuty i dwadzieścia pięć sekund. Najpierw policz ten przykład na kartce, a dopiero potem zapisz program. Spróbuj też czasu krótszego niż minuta oraz dokładnie sześćdziesięciu sekund. Takie przypadki pokazują, czy rozwiązanie poprawnie obsługuje granice między kolejnymi minutami.

    Kolejność działań i nawiasy

    Podobnie jak na matematyce, mnożenie i dzielenie mają pierwszeństwo przed dodawaniem i odejmowaniem. Wyrażenie 2 + 3 * 4 daje czternaście. Wyrażenie (2 + 3) * 4 daje dwadzieścia, ponieważ nawias wymusza wcześniejsze dodawanie. Gdy obliczenie jest dłuższe, używaj nawiasów, aby jasno pokazać zamiar. Nie dodawaj ich przypadkowo. Przeczytaj wyrażenie na głos i sprawdź, czy jego kolejność odpowiada opisowi zadania. Przy obliczaniu średniej dwóch liczb poprawny zapis to (a + b) / 2.0.

    Niektóre operatory skracają częste instrukcje. Zapis punkty += 5; oznacza dodanie pięciu do bieżącej wartości punktów. Zapis punkty -= 2; odejmuje dwa. Operator ++ zwiększa wartość o jeden, a — zmniejsza ją o jeden. Na początku używaj ich jako osobnych instrukcji, żeby uniknąć dodatkowych trudności związanych z kolejnością obliczeń w złożonych wyrażeniach. Znak = przypisuje wartość. Do sprawdzenia, czy wartości są równe, służy ==. Pomylenie tych znaków może zmienić dane zamiast wykonać oczekiwane porównanie.

    Dzielenie przez zero i sprawdzanie danych

    Przed dzieleniem sprawdź, czy dzielnik jest różny od zera. Dzielenie całkowite przez zero nie jest poprawną operacją, a program nie powinien zakładać, że użytkownik zawsze poda właściwą liczbę. Jeżeli zadanie polega na obliczeniu ceny przypadającej na jedną osobę, liczba osób musi być dodatnia. Zapisz tę zasadę w warunku przed obliczeniem wyniku. Gdy dane są błędne, wyświetl jasny komunikat i poproś o poprawienie wartości, zamiast pokazywać przypadkowy wynik lub dopuszczać do błędnego wykonania programu.

    Projekt: rozliczenie zakupów

    Zaprojektuj program dla klasowego sklepiku. Ustal cenę jednego zeszytu na sześć złotych i liczbę kupowanych zeszytów na cztery. Oblicz łączny koszt, a następnie resztę z trzydziestu złotych. Wyniki powinny wynosić odpowiednio dwadzieścia cztery i sześć złotych. Następnie zmień liczbę zeszytów i sprawdź, czy otrzymujesz właściwą odpowiedź. Jeśli kwota zapłaty jest mniejsza od kosztu, opisz tę sytuację jako brakującą kwotę, zamiast nazywać ujemny wynik resztą.

    W drugim etapie dodaj cenę produktu z groszami i wyjaśnij, dlaczego potrzebny jest inny sposób reprezentacji kwoty. W prostym ćwiczeniu można użyć double, pamiętając o przybliżeniach. W dokładnych rozliczeniach często wygodniej przechowywać kwoty jako całkowitą liczbę groszy. Na przykład sześć złotych i pięćdziesiąt groszy zapisujemy jako sześćset pięćdziesiąt groszy. Dopiero podczas wyświetlania dzielimy tę liczbę na złote i grosze. To dobry przykład tego, że wybór reprezentacji danych wpływa na niezawodność obliczeń.

    Sprawdź rozwiązanie różnymi przykładami

    Nie kończ sprawdzania na jednym zestawie danych. Przetestuj zakup jednej sztuki, kilku sztuk i sytuację bez zakupu. Sprawdź zapłatę dokładnie równą kosztowi oraz zapłatę większą i mniejszą. Dla każdego przypadku zapisz przewidywany wynik przed uruchomieniem programu. Jeśli wynik się nie zgadza, wypisz wartości pośrednie: cenę, liczbę sztuk, koszt i kwotę zapłaty. Dzięki temu ustalisz, czy problem wynika z błędnego działania, niewłaściwego typu danych, czy z pomylenia znaczenia zmiennych.

  • Lekcja 4 — Programowanie: warunki

    Lekcja 4 — Programowanie: warunki

    https://www.youtube.com/watch?v=FMoM5GHbesI 

    Warunki w języku C++ to mechanizm, który umożliwia programom podejmowanie decyzji na podstawie określonych warunków i wykonanie różnych działań w zależności od spełnienia tych warunków. W języku C++, warunki są często wykorzystywane w instrukcjach warunkowych, takich jak if, else if i else, oraz w pętlach, takich jak while i for. Oto krótka charakteryzacja warunków w C++:

    1. Instrukcja warunkowa if:

      • Instrukcja warunkowa if pozwala na wykonanie bloku kodu tylko wtedy, gdy określony warunek jest spełniony.
      • Przykład:
        cpp
      • if (warunek) {
        // Ten kod zostanie wykonany, jeśli warunek jest spełniony.
        }
    • Instrukcja warunkowa else if:

      • Instrukcja else if pozwala na sprawdzenie kolejnych warunków, jeśli poprzedni warunek nie jest spełniony.
      • Jest używana po if i przed opcjonalnym blokiem else.
      • Przykład:
        cpp
      • if (warunek1) {
        // Ten kod zostanie wykonany, jeśli warunek1 jest spełniony.
        } else if (warunek2) {
        // Ten kod zostanie wykonany, jeśli warunek2 jest spełniony, a warunek1 nie jest.
        }
    • Instrukcja warunkowa else:

      • Instrukcja else definiuje blok kodu, który zostanie wykonany, jeśli żaden z poprzednich warunków nie jest spełniony.
      • Jest opcjonalna i pojawia się po if lub else if.
      • Przykład:
        cpp
      • if (warunek) {
        // Ten kod zostanie wykonany, jeśli warunek jest spełniony.
        } else {
        // Ten kod zostanie wykonany, jeśli żaden warunek nie jest spełniony.
        }

    Warunki są fundamentalnym elementem programowania w C++ i pozwalają na tworzenie programów, które reagują na zmienne warunki i podejmują odpowiednie akcje. Dzięki nim możesz tworzyć bardziej elastyczne i inteligentne programy, które dostosowują się do różnych sytuacji.

    kod do zajęć:
    #include <iostream>
    #include <cmath>

    int main() {
    int a = 3;
    int b = 2;
    int c = 4;
    int delta = (b*b)-4*a*c;
    int pir_delta = sqrt(delta);
    int x1 = 0;
    int x2 = 0;

    if(delta < 0) {
    std::cout << "delta mniejsza od zera" << "n";

    } else {
    std::cout << "delta wieksza od zera" << "n";
    x1 =(-b - pir_delta)/2*a;
    x2 =(-b + pir_delta)/2*a;
    }
    std::cout << x1 << "n";
    std::cout << x2 << "n";
    }

    Warunek pozwala wybrać właściwe działanie

    Program nie musi wykonywać zawsze tych samych instrukcji. Czasem powinien podjąć decyzję zależną od danych: przyznać punkt, wyświetlić ostrzeżenie albo poprosić o poprawienie liczby. Instrukcja if wykonuje wskazany fragment kodu tylko wtedy, gdy warunek jest prawdziwy. Możemy porównać to do zasady: jeśli pada deszcz, zabierz parasol. W programie warunek umieszczamy w nawiasie po słowie if, a wykonywane instrukcje w klamrach. Warto od początku używać klamer nawet wtedy, gdy wewnątrz znajduje się tylko jedna instrukcja.

    Zapis if (punkty >= 10) oznacza sprawdzenie, czy liczba punktów jest większa lub równa dziesięć. Jeśli tak, program może wyświetlić komunikat o zdobyciu odznaki. Jeśli nie, ten fragment zostanie pominięty. Słowo else pozwala opisać drugą możliwość: co zrobić, kiedy warunek nie został spełniony. Obie gałęzie tworzą wtedy jeden wybór. Program wykona odpowiednią gałąź, zamiast uruchamiać oba komunikaty niezależnie od wyniku porównania.

    Porównania muszą pasować do treści zadania

    Operatory < i > sprawdzają, czy jedna wartość jest mniejsza albo większa od drugiej. Operatory <= i >= uwzględniają także równość. To ważne na granicy przedziału. Jeśli do zaliczenia potrzeba co najmniej dziesięciu punktów, zapis punkty > 10 jest błędny, bo nie uznaje wyniku równego dziesięć. Właściwy warunek to punkty >= 10. Zawsze sprawdzaj trzy przykłady: wartość trochę poniżej granicy, dokładnie równą granicy i trochę powyżej niej.

    Równość porównujemy operatorem ==, natomiast nierówność operatorem !=. Pojedynczy znak = służy do przypisywania wartości. Zapisanie przypisania zamiast porównania może spowodować zmianę zmiennej i nieoczekiwany wybór gałęzi. Zwracaj uwagę na ostrzeżenia kompilatora, ponieważ często pomagają zauważyć taki błąd. Warunek nie jest poleceniem ustalenia wartości, lecz pytaniem, na które komputer odpowiada logicznym true albo false.

    Kilka wymagań naraz

    Operator && oznacza logiczne „i”. Warunek temperatura >= 18 && temperatura <= 25 jest prawdziwy tylko wtedy, gdy temperatura spełnia oba ograniczenia. Tak zapisujemy przedział zamknięty od osiemnastu do dwudziestu pięciu. Operator || oznacza logiczne „lub”: wystarczy spełnienie przynajmniej jednego warunku. Znak ! odwraca wartość logiczną. Jeśli zmienna maKlucz ma wartość false, wyrażenie !maKlucz jest prawdziwe. Dobrze dobrane nazwy sprawiają, że takie wyrażenia można odczytać prawie jak zdanie.

    Nie zapisuj w C++ przedziału jako 18 <= temperatura <= 25. Taki zapis nie oznacza dwóch porównań w sensie znanym z matematyki. Potrzebne są dwa osobne porównania połączone operatorem &&. W dłuższych warunkach dodawaj nawiasy, aby pokazać grupowanie. Pamiętaj też, że operatory && oraz || mogą nie obliczać drugiej części wyrażenia, jeśli wynik jest już rozstrzygnięty. Dzięki temu warunek dzielnik != 0 && licznik / dzielnik > 2 nie wykonuje dzielenia przez zero.

    Kolejność sprawdzania ma znaczenie

    Gdy możliwych wyników jest więcej, stosujemy if, następnie else if i na końcu else. Komputer wybiera pierwszą pasującą gałąź. Jeśli sprawdzasz progi punktowe od najwyższego, zacznij od największego wymagania, na przykład dziewięćdziesięciu punktów. Gdy rozpoczniesz od niższego progu, wynik dziewięćdziesiąt pięć może trafić do pierwszej gałęzi i nigdy nie dotrzeć do właściwej nagrody. Osobne instrukcje if mają inne znaczenie: każda z nich jest sprawdzana niezależnie.

    Zagnieżdżenie oznacza umieszczenie kolejnej decyzji wewnątrz wybranej gałęzi. Na przykład najpierw sprawdzamy, czy gracz ma klucz, a dopiero potem, czy stoi przy drzwiach. Nie warto jednak tworzyć wielu poziomów klamer, jeśli prosty warunek logiczny opisuje sytuację czytelniej. Najważniejszy jest zrozumiały przepływ programu. Wcięcia pomagają zobaczyć, które instrukcje należą do danej gałęzi, chociaż to klamry wyznaczają ich rzeczywisty zakres.

    Ćwiczenie: decyzja o wejściu do gry

    Przygotuj program, który otrzymuje wiek uczestnika i informację, czy uczestnik zna regulamin. Ustal dla tego fikcyjnego ćwiczenia minimalny wiek na dwanaście lat. Wejście jest możliwe, gdy wiek wynosi co najmniej dwanaście i znajomość regulaminu jest potwierdzona. Przetestuj cztery przypadki: młodszy uczestnik znający regulamin, starszy uczestnik nieznający regulaminu, uczestnik dokładnie w wymaganym wieku oraz starszy uczestnik spełniający oba wymagania.

    Przed uruchomieniem wypisz przewidywane decyzje w tabeli. Następnie porównaj je z komunikatami programu i wyjaśnij każdy wynik. W drugim etapie dodaj kontrolę błędnych danych, na przykład ujemnego wieku. Program powinien odróżniać niespełnienie warunków wejścia od niepoprawnej informacji. Takie rozróżnienie jest ważne w rzeczywistych formularzach: użytkownik powinien wiedzieć, czy musi poprawić dane, czy otrzymał decyzję wynikającą z zasad zadania.

    Dodatkowy sprawdzian decyzji

    Wybierz jedną granicę z własnego programu i zapisz pięć wartości po obu jej stronach. Dla każdej uzasadnij wybór gałęzi. Jeśli uzasadnienie nie pasuje do kodu, popraw warunek przed dodawaniem następnej funkcji.

  • Lekcja 5 — Programowanie: pętle

    Lekcja 5 — Programowanie: pętle

    Pętle w C++ to konstrukcje językowe służące do zdefiniowania szeregu instrukcji, które będą powtarzane wielokrotnie. Pętle są niezbędne do wykonywania wielu zadań w programowaniu, takich jak:

    • Wyświetlanie liczb od 1 do 10
    • Pobieranie od użytkownika danych z klawiatury
    • Przeszukiwanie tablicy
    • Sortowanie danych

    W języku C++ istnieje trzy rodzaje pętli:

    • Pętla for
    • Pętla while
    • Pętla do...while

    Pętla for

    Pętla for jest najbardziej popularnym rodzajem pętli w C++. Ma następującą składnię:

    for (inicjalizacja; warunek; zmiana) {
      // instrukcje do wykonania
    }

    Pętle w C++ to konstrukcje językowe służące do zdefiniowania szeregu instrukcji, które będą powtarzane wielokrotnie. Pętle są niezbędne do wykonywania wielu zadań w programowaniu, takich jak:

    Wyświetlanie liczb od 1 do 10
    Pobieranie od użytkownika danych z klawiatury
    Przeszukiwanie tablicy
    Sortowanie danych

    W języku C++ istnieje trzy rodzaje pętli:

    Pętla for
    Pętla while
    Pętla do…while

    Pętla for

    Pętla for jest najbardziej popularnym rodzajem pętli w C++. Ma następującą składnię:
    C++

    for (inicjalizacja; warunek; zmiana) {
    // instrukcje do wykonania
    }

    W pętli for kolejno wykonywane są następujące kroki:

    Wykonywane są instrukcje w bloku inicjalizacja.
    Sprawdzany jest warunek. Jeśli warunek jest prawdziwy, to wykonywane są instrukcje w bloku instrukcje do wykonania.
    Wykonywane są instrukcje w bloku zmiana.
    Powtarzane są kroki 2-3, dopóki warunek jest prawdziwy.

    Przykład użycia pętli for:

    #include <iostream>
    int main() {
      for (int i = 0; i < 10; i++) {
        std::cout << i << std::endl;
      }
    }

    Ten kod wypisze na ekran liczby od 0 do 9.

    Pętla  while

    Pętla while wykonuje instrukcje w jej bloku tak długo, jak długo warunek jest prawdziwy. Ma następującą składnię:

    while (warunek) {
      // instrukcje do wykonania
    }

    Przykład użycia pętli while:

    #include <iostream>
    int main() {
      int i = 0;
      while (i < 10) {
        std::cout << i << std::endl;
        i++;
      }
    }

    Ten kod jest równoważny poprzedniemu przykładowi użycia pętli for.

    Pętla do...while

    Pętla do...while jest podobna do pętli while, ale instrukcje w jej bloku są wykonywane przynajmniej raz, nawet jeśli warunek jest od razu fałszywy. Ma następującą składnię:

    do {
      // instrukcje do wykonania
    } while (warunek);


    Przykład użycia pętli do...while:

    #include <iostream>
    int main() {
      int i = 10;
      do {
        std::cout << i << std::endl;
        i--;
      } while (i >= 0);
    }
    

    ten kod wypisze na ekran liczby od 10 do 1.

    Wybór rodzaju pętli

    Dobór rodzaju pętli zależy od konkretnego zadania. Pętla for jest najczęściej używana, ponieważ jest najprostsza w użyciu. Pętla while jest dobrym wyborem, gdy warunek może zmieniać się w trakcie wykonywania pętli. Pętla do...while jest dobrym wyborem, gdy instrukcje w bloku pętli powinny zostać wykonane przynajmniej raz.

    Po co programowi powtarzanie

    Pętla wykonuje ten sam fragment programu wiele razy. Zamiast przepisywać instrukcję wyświetlającą komunikat dziesięć razy, określamy zasadę powtarzania. Pętla przydaje się podczas sumowania liczb, przeglądania wyników uczniów, odliczania czasu i rysowania powtarzalnego wzoru. Powtarzanie nie oznacza jednak braku kontroli. Trzeba wiedzieć, od czego zaczynamy, kiedy kończymy i co zmienia się po każdym wykonaniu. Te trzy pytania pomagają zaprojektować rozwiązanie jeszcze przed zapisaniem kodu.

    Pętla for jest wygodna, gdy znamy liczbę powtórzeń. Zapis for (int i = 0; i < 5; i++) opisuje pięć wykonań dla wartości i równych zero, jeden, dwa, trzy i cztery. Pierwsza część tworzy licznik, druga jest warunkiem kontynuacji, a trzecia zwiększa licznik po wykonaniu instrukcji w klamrach. Gdy licznik osiągnie pięć, warunek i < 5 staje się fałszywy i pętla się kończy. Zero jest częstym początkiem licznika, szczególnie podczas pracy z tablicami.

    Pętla while i zmieniający się warunek

    Pętla while sprawdza warunek przed każdym wykonaniem. Jeśli warunek od początku jest fałszywy, instrukcje wewnątrz nie wykonają się ani razu. Taka pętla pasuje do sytuacji, w której nie znamy z góry liczby prób: użytkownik podaje odpowiedź, dopóki nie trafi, albo program przetwarza dane, dopóki są dostępne. W środku musi nastąpić zmiana, która kiedyś pozwoli zakończyć powtarzanie. Może to być zwiększenie licznika, zmiana odpowiedzi albo odczyt kolejnego elementu.

    Jeżeli zmienna kontrolująca warunek nigdy się nie zmienia, może powstać pętla nieskończona. Program będzie wykonywał te same instrukcje bez końca albo przestanie reagować. Zanim uruchomisz pętlę, wskaż dokładnie instrukcję odpowiedzialną za postęp. W ćwiczeniach używaj małych zakresów i wypisuj licznik. Nie próbuj naprawiać zawieszonego programu przypadkowym klikaniem. Zatrzymaj jego wykonanie w środowisku programistycznym, sprawdź warunek i popraw sposób aktualizowania danych.

    Sumowanie i wartości początkowe

    Przy sumowaniu potrzebujemy zmiennej, która przechowuje narastający wynik. Zaczynamy zwykle od zera. Jeżeli chcemy dodać liczby od jeden do pięć, tworzymy suma = 0, a w kolejnych przebiegach wykonujemy suma += i. Po dodaniu kolejnych liczb suma wynosi jeden, trzy, sześć, dziesięć i piętnaście. Nie zeruj sumy wewnątrz pętli, bo wtedy po każdym przebiegu stracisz poprzednio zebrany wynik. Zmienna pomocnicza powinna być utworzona w miejscu odpowiadającym jej roli.

    Inną sytuacją jest liczenie iloczynu. Wtedy wartością początkową jest zazwyczaj jeden, ponieważ mnożenie przez zero wyzerowałoby cały wynik. To pokazuje, że wartości początkowej nie wybieramy mechanicznie. Musi pasować do wykonywanego działania. Podobnie licznik znalezionych elementów zaczyna od zera i rośnie dopiero wtedy, gdy dany element spełnia warunek. Możemy więc połączyć pętlę z instrukcją if, aby policzyć tylko dodatnie liczby albo tylko parzyste wyniki.

    Granice i najczęstsza pomyłka

    Błąd o jedno powtórzenie pojawia się często przez pomylenie < i <=. Pętla przechodząca od zera do wartości mniejszej niż pięć ma pięć przebiegów. Jeśli dopuścimy także wartość pięć, otrzymamy sześć przebiegów. Narysuj tabelę wartości licznika i policz wiersze. Przy pracy z tablicą liczącą pięć elementów prawidłowe indeksy to zero, jeden, dwa, trzy i cztery. Próba dostępu do elementu o indeksie pięć wychodzi poza ten zakres i jest błędem.

    Ćwiczenie: tabela i ręczne śledzenie

    Napisz program wyświetlający pięć kolejnych wielokrotności liczby siedem. Dla każdej wartości licznika od jeden do pięć oblicz iloczyn licznika i siedmiu. Oczekiwane wyniki to siedem, czternaście, dwadzieścia jeden, dwadzieścia osiem i trzydzieści pięć. Następnie zmień program tak, aby liczbę powtórzeń podawał użytkownik. Sprawdź przypadek jednego powtórzenia, kilku powtórzeń i zera. Zastanów się, jak zareagować na liczbę ujemną, zanim rozpoczniesz wykonywanie pętli.

    Na kartce przygotuj kolumny: numer przebiegu, wartość licznika, wynik działania i aktualna suma. Wypełnij je dla pierwszych trzech powtórzeń, a następnie porównaj z wynikiem programu. Ręczne śledzenie nie jest stratą czasu. Uczy przewidywania zmian i pomaga zauważyć błąd, zanim rozwiązanie stanie się długie. Na koniec wyjaśnij, kiedy użyłbyś for, a kiedy while. Uzasadnij odpowiedź tym, czy liczba powtórzeń jest znana, czy zależy od zdarzeń podczas działania programu.

  • Lekcja 6 — Budujemy stronę: div i struktura dokumentu

    Lekcja 6 — Budujemy stronę: div i struktura dokumentu

    Klasa 8 · Lekcja 3 z 6 · HTML i CSS w CodePen

    Cel lekcji

    • Grupujesz elementy za pomocą div i klas.
    • Rozróżniasz neutralny kontener div od header, main, section i footer.
    • Tworzysz dwie karty z powtarzalnym stylem.
    • Sprawdzasz układ przy szerokim i wąskim podglądzie.

    Wstęp

    Na stronie Klubu Odkrywców są już teksty i kolory. Teraz potrzebujesz porządku: wprowadzenia, głównej treści, opisu projektu i stopki. Struktura ułatwia rozbudowę. Jeśli każdą część oznaczysz konsekwentnie, później dodasz menu bez szukania przypadkowych miejsc w kodzie.

    Kontynuujesz ten sam projekt. Zachowaj kopię etapu 2. Dzisiejsza zmiana polega na przeniesieniu istniejących treści do odpowiednich kontenerów, a nie na skasowaniu własnych opisów. Wzorcowy kod pokazuje kompletny układ, ale możesz pozostawić swój temat i zdania.

    Div jako pojemnik na elementy

    div jest neutralnym kontenerem: grupuje inne elementy, lecz sam nie mówi, czy zawiera menu, artykuł lub stopkę. Domyślnie jest wyświetlany blokowo. Możesz nadać mu klasę i wspólny wygląd. Nie staje się przyciskiem tylko dlatego, że ma kolor i obramowanie.

    <div class="karta">
      <h3>Obserwacja</h3>
      <p>Porównujemy kształty liści.</p>
    </div>

    Oba elementy są dziećmi kontenera div. Jeśli ustawisz mu tło i padding, obejmą one wspólny obszar karty. Druga karta z tą samą klasą otrzyma te same style. Dzięki temu nie musisz powtarzać arkusza dla każdego fragmentu.

    Kiedy użyć znacznika o konkretnym znaczeniu

    header oznacza część wprowadzającą, nav grupę odsyłaczy nawigacyjnych, main główną treść, section część tematyczną, a footer stopkę. W naszym projekcie każda sekcja ma nagłówek h2. Gdy znaczenie fragmentu jest znane, wybieramy właściwy znacznik zamiast nazywać wszystko div.

    Kontener div class="strona" posłuży do ograniczenia szerokości całego układu, a div class="karty" do rozłożenia kart. Identyfikatory o-klubie, projekt i zrodla przygotują cele menu z następnej lekcji. Nazwy zapisujemy bez spacji. Każde id występuje tylko raz.

    Układ kart i szerokość strony

    max-width ogranicza maksymalną szerokość; margin: 0 auto pozwala wyśrodkować kontener, gdy ma miejsce po bokach. display: flex włącza układ elastyczny, gap daje odstęp między kartami, a flex-wrap: wrap pozwala im przechodzić do kolejnego wiersza.

    W zapisie flex: 1 1 240px karta może rosnąć i się kurczyć, a punktem wyjścia jest 240 pikseli. Nie musisz dziś pamiętać wszystkich wariantów tej właściwości: sprawdź praktycznie, jak zachowują się dwie karty. box-sizing: border-box sprawia, że zadana szerokość obejmuje treść, padding i obramowanie; margines pozostaje poza nią.

    Schemat strony: header, nav, main z sekcjami i kartami div oraz footer. Div grupuje elementy.

    Ćwiczenie krok po kroku

    Zadanie: zbuduj trzy sekcje, dwie karty i stopkę. Zaplanuj około 8 minut na szkic, 27 minut na kod i 10 minut na test.

    1. Na kartce narysuj cztery prostokąty: nagłówek, miejsce na przyszłe menu, treść główna i stopka. W treści zaznacz trzy sekcje.
    2. W panelu HTML przebuduj poprzedni kod zgodnie z poniższym przykładem. Zachowaj własne zdania. Nie wklejaj drugiego kompletnego projektu pod pierwszym.
    3. Przenieś elementy razem z ich znacznikami zamykającymi. Każdy nowy poziom zagnieżdżenia oznacz wcięciem.
    4. Na końcu arkusza z etapu 2 dodaj przedstawione reguły CSS.
    5. Zmień padding klasy karta. Sprawdź, czy obie karty zmieniły się jednakowo.
    6. Zwęź podgląd. Karty powinny ustawić się jedna pod drugą, gdy zabraknie miejsca. Nie wprowadzaj sztywnej szerokości większej od ekranu.
    7. Zapisz etap 3. Poproś drugą osobę, aby wskazała w kodzie kontener, sekcję i kartę.
    <div class="strona" lang="pl">
      <header id="start">
        <p class="etykieta">Projekt klasy 8</p>
        <h1>Klub Odkrywców</h1>
        <p class="wprowadzenie">To miejsce dla osób, które lubią poznawać świat.</p>
      </header>
      <main>
        <section id="o-klubie">
          <h2>O klubie</h2>
          <p>Łączymy <strong>ciekawość</strong> z uważną obserwacją.</p>
        </section>
        <section id="projekt">
          <h2>Nasz projekt</h2>
          <p>Przygotowujemy atlas drzew. Najpierw obserwujemy, potem opisujemy.</p>
          <div class="karty">
            <div class="karta">
              <h3>Obserwacja</h3>
              <p>Porównujemy kształty liści i opisujemy ich cechy.</p>
            </div>
            <div class="karta">
              <h3>Ilustracja</h3>
              <p>Rysujemy własne ilustracje i zapisujemy wnioski.</p>
            </div>
          </div>
          <ul>
            <li>Rozpoznajemy kształty liści.</li>
            <li>Rysujemy własne ilustracje.</li>
            <li>Porównujemy wyniki obserwacji.</li>
          </ul>
        </section>
        <section id="zrodla">
          <h2>Źródła</h2>
          <p>Teksty projektu przygotowujemy samodzielnie.</p>
        </section>
      </main>
      <footer><p>Klub Odkrywców — szkolny projekt HTML i CSS.</p></footer>
    </div>

    CSS do dopisania pod arkuszem z lekcji 2

    * { box-sizing: border-box; }
    .strona { max-width: 960px; margin: 0 auto; }
    header, footer { padding: 24px; background-color: #dcebe8; }
    section { margin: 24px 0; }
    .etykieta { font-weight: bold; }
    .karty { display: flex; flex-wrap: wrap; gap: 16px; }
    .karta {
      flex: 1 1 240px;
      background-color: #ffffff;
      border: 1px solid #bac8d3;
      border-radius: 12px;
      padding: 20px;
    }
    .karta h3 { margin-top: 0; }

    Własna modyfikacja: dodaj trzecią kartę „Wnioski” z nagłówkiem h3 i akapitem. Wykorzystaj istniejącą klasę. Nie twórz id=”karta” dla wszystkich kart, ponieważ identyfikatory nie powinny się powtarzać.

    Gdy układ się rozsypie: sprawdź, czy obie karty znajdują się wewnątrz kontenera karty oraz czy zamknąłeś wszystkie div. Samo wcięcie nie zmienia zagnieżdżenia — robią to znaczniki. Nie wkładaj całej sekcji ani div do środka akapitu p.

    Struktura pomaga także czytelnikowi

    Przed napisaniem kodu narysuj prosty plan strony: nagłówek, nawigacja, najważniejsza treść i stopka. Następnie wybierz znaczniki opisujące rolę każdej części. Element main powinien obejmować główną treść dokumentu, a nav obszar najważniejszych odsyłaczy. Div jest neutralnym pojemnikiem, dlatego nie zastępuje automatycznie znacznika o konkretnym znaczeniu. Sensowna struktura pomaga osobom korzystającym z czytników ekranu i ułatwia późniejsze dodawanie stylów.

    W ćwiczeniu zbuduj stronę szkolnego koła zainteresowań. Umieść jeden główny nagłówek h1 oraz nagłówki h2 dla informacji o spotkaniach i projektach. Otwórz stronę bez arkusza CSS i sprawdź, czy nadal rozumiesz kolejność treści. Jeżeli tekst jest czytelny także bez dekoracji, struktura prawdopodobnie jest dobrze przemyślana. Na koniec sprawdź, czy każdemu otwartemu elementowi wymagającemu zamknięcia odpowiada właściwy znacznik kończący.

    Sprawdź swoją pracę

    • Mam jeden main i trzy sekcje z nagłówkami.
    • Każda karta ma klasę karta i znajduje się w kontenerze karty.
    • Identyfikatory sekcji są unikalne.
    • Nagłówek i stopka mają odpowiednie znaczniki.
    • Układ pozostaje czytelny po zwężeniu podglądu.

    Podsumowanie

    Div pomaga grupować elementy do wspólnego układu, a znaczniki semantyczne opisują rolę części strony. Masz już szkielet gotowy do nawigacji. Na kolejnej lekcji menu będzie prowadzić bezpośrednio do przygotowanych sekcji.

    Materiały i źródła

    Pytania kontrolne

    1. Do czego służy div?
    2. Czy każdy fragment strony należy budować wyłącznie z div?
    3. Jaką rolę pełni main?
    4. Czym różni się section od neutralnego kontenera?
    5. Dlaczego karty mają wspólną klasę?
    6. Dlaczego identyfikator projekt powinien wystąpić tylko raz?
    7. Co daje flex-wrap?
    8. Jak rozpoznać, czy element jest dzieckiem innego kontenera?
  • Lekcja 7 — Menu, odsyłacze, załączniki i przyciski

    Lekcja 7 — Menu, odsyłacze, załączniki i przyciski

    Klasa 8 · Lekcja 4 z 6 · HTML i CSS w CodePen

    Cel lekcji

    • Tworzysz menu z odsyłaczy prowadzących do sekcji tej samej strony.
    • Odróżniasz link, link wyglądający jak przycisk i prawdziwy button.
    • Dodajesz odsyłacz do pliku oraz opisujesz możliwe zachowanie przeglądarki.
    • Sprawdzasz nawigację klawiaturą i używasz details.

    Wstęp

    Strona może mieć dobrą treść, a mimo to być niewygodna. Czytelnik powinien szybko przejść do interesującej go części. Dzisiaj wykorzystasz identyfikatory z lekcji 3 i zbudujesz menu. Dodasz również odsyłacz do materiału PDF i prosty element rozwijany. Wszystkie te działania oprzesz na możliwościach HTML i CSS.

    Otwórz etap 3. Nie tworzysz nowej witryny: rozwijasz stronę Klubu Odkrywców. Korzystaj z elementów HTML i reguł CSS pokazanych w ćwiczeniu.

    Odsyłacz łączy miejsce startu i cel

    <a href="#projekt">Nasz projekt</a>
    <section id="projekt">
      <h2>Nasz projekt</h2>
    </section>

    Element a z atrybutem href jest odsyłaczem. Wartość #projekt wskazuje element o id=”projekt” w bieżącym dokumencie. Krzyżyk wpisujemy w href, ale nie w id. Literówka albo różnica wielkości liter może przerwać połączenie. Widoczny tekst powinien mówić, dokąd prowadzi link; „Nasz projekt” jest bardziej zrozumiałe niż „Kliknij tutaj”.

    Pełny adres zaczynający się od https:// prowadzi do innej strony. W projekcie domyślnie otwieramy linki w tej samej karcie. Jeśli cel ma się otworzyć w nowej, można dodać target=”_blank” oraz rel=”noopener” i poinformować o nowej karcie w treści linku.

    Załącznik to także cel odsyłacza

    Link może prowadzić do PDF, obrazu lub innego pliku. Plik musi znajdować się pod rzeczywistym adresem dostępnym dla odbiorcy. Ścieżka z Twojego komputera, np. C:\Dokumenty\plik.pdf, nie udostępnia go w CodePen. Korzystamy z materiału umieszczonego przez nauczyciela albo z publicznego źródła.

    <a href="https://uodo.gov.pl/pl/file/6079">Poradnik UODO o wizerunku dziecka (PDF)</a>

    Po kliknięciu przeglądarka może pokazać PDF lub go pobrać. Zależy to od ustawień i odpowiedzi serwera. Atrybut download nie gwarantuje pobrania dowolnego obcego pliku; jego działanie jest ograniczone m.in. pochodzeniem adresu. Dlatego w ćwiczeniu podajemy uczciwie typ pliku zamiast obiecywać wymuszone pobieranie.

    Przycisk i link mają inne zadania

    Odsyłacz prowadzi do miejsca. Przycisk wykonuje działanie, np. wysłanie albo reset formularza. CSS może nadać linkowi wygląd przycisku, ale nie zmienia jego roli. Nie wkładaj button do środka a i nie rób przycisku z przypadkowego div.

    button type="button" bez przypisanego zachowania nie wykona w tym ćwiczeniu żadnej akcji. Żeby pokazać prawdziwe działanie, wykorzystamy type="reset" wewnątrz formularza. Przywraca on wartości początkowe pól; nasza początkowo pusta notatka zostanie wyczyszczona. To demonstracja, nie system wysyłania lub zapisywania wiadomości.

    Elementy details i summary umożliwiają natywne rozwijanie treści. Działają dzięki funkcjom przeglądarki. Summary jest etykietą, którą użytkownik aktywuje myszą lub klawiaturą.

    Nawigacja: odsyłacz prowadzi do sekcji, przycisk resetuje pole formularza, menu łączy części strony.

    Ćwiczenie krok po kroku

    Zadanie: dodaj menu, dwa rodzaje odsyłaczy i działający przycisk resetowania. Na wyjaśnienia przeznacz około 10 minut, na rozbudowę 25 minut, a na test klawiatury 10 minut.

    1. Między zamknięciem header a otwarciem main wstaw poniższe menu. Sprawdź zgodność href z identyfikatorami istniejących sekcji.
    2. W sekcji projekt pod jej akapitem, przed kontenerem karty, dodaj link wyróżniony klasą przycisk, details oraz formularz demonstracyjny.
    3. W sekcji zrodla dodaj link do W3Schools i link do PDF z przykładu powyżej. Zachowaj informację, że własne teksty przygotowujesz samodzielnie.
    4. Dopisz CSS z tej lekcji do dotychczasowego arkusza.
    5. Kliknij każdy element menu. Jeżeli strona jest krótka, powiększ treść akapitów lub zwęź podgląd, aby zauważyć przewijanie.
    6. Wpisz do pola tylko próbne słowo, kliknij Wyczyść notatkę i sprawdź rezultat. Rozwiń i zwiń details. Nie wpisuj danych osobowych.
    7. Kliknij obszar podglądu i przejdź po elementach klawiszem Tab. Link aktywuj Enterem; przycisk sprawdź także spacją. Fokus powinien być widoczny.
    8. Zapisz etap 4 oraz kopie HTML i CSS.

    Menu do wstawienia przed main

    <nav aria-label="Menu główne">
        <ul class="menu">
          <li><a href="#o-klubie">O klubie</a></li>
          <li><a href="#projekt">Projekt</a></li>
          <li><a href="#zrodla">Źródła</a></li>
        </ul>
      </nav>

    Elementy do dodania w sekcji projekt

    <p><a class="przycisk" href="#zrodla">Zobacz źródła</a></p>
          <details>
            <summary>Jak przygotować obserwację?</summary>
            <p>Wybierz drzewo, obejrzyj liście i zapisz trzy dostrzeżone cechy.</p>
          </details>
          <form aria-label="Ćwiczenie przycisku resetowania">
            <p><label for="notatka">Próbna notatka — bez danych osobowych</label></p>
            <textarea id="notatka" rows="3"></textarea>
            <p><button type="reset">Wyczyść notatkę</button></p>
          </form>

    CSS do dopisania

    .menu { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; padding: 0; }
    a { color: #124d75; text-decoration: underline; }
    .menu a, .przycisk, button {
      display: inline-block;
      padding: 10px 16px;
      border: 2px solid #12395b;
      border-radius: 8px;
      background-color: #12395b;
      color: #ffffff;
      font: inherit;
    }
    .menu a:hover, .przycisk:hover, button:hover { background-color: #20577c; }
    a:focus-visible, button:focus-visible, summary:focus-visible, textarea:focus-visible {
      outline: 3px solid #9b3c00;
      outline-offset: 3px;
    }
    summary, button { cursor: pointer; }
    details, form { margin: 20px 0; }
    textarea { display: block; max-width: 100%; width: 100%; font: inherit; }

    Ważne: pole demonstracyjne nie ma przycisku wysyłania i nie służy do kontaktu. Sam HTML nie zapewnia skrzynki odbiorczej ani przechowywania wiadomości. Użyty textarea nie ma atrybutu name, ponieważ nie przygotowujemy wysyłki danych.

    Dla chętnych: dodaj w stopce odsyłacz „Wróć na górę” prowadzący do #start. Sprawdź, czy nagłówek ma dokładnie takie id. Nie usuwaj obramowania fokusu, nawet jeśli jego wygląd różni się od stanu hover.

    Sprawdź swoją pracę

    • Wszystkie trzy linki menu prowadzą do odpowiednich sekcji.
    • Link do PDF ma opis i informację o typie pliku.
    • Potrafię wskazać link wyglądający jak przycisk oraz prawdziwy button.
    • Przycisk resetowania działa w formularzu, a details rozwija treść.
    • Elementy interaktywne mają widoczny fokus i działają z klawiatury.
    • Wykonałem ćwiczenie za pomocą HTML i CSS.

    Podsumowanie

    Nawigację tworzymy za pomocą HTML i CSS. HTML zapewnia odsyłacze, podstawowe działania formularza i rozwijanie treści. O funkcji elementu decyduje jego znaczenie i konfiguracja, a nie sam wygląd. Na kolejnej lekcji sprawdzisz działanie całego projektu i poprawisz usterki.

    Materiały i źródła

    Pytania kontrolne

    1. Co oznacza #projekt w href?
    2. Dlaczego id nie zawiera znaku #?
    3. Czym różni się odsyłacz od przycisku?
    4. Czy klasa przycisk zamienia link w element button?
    5. Co resetuje button type=”reset”?
    6. Dlaczego plik z dysku nie staje się załącznikiem dostępnym dla wszystkich?
    7. Czy download zawsze wymusza pobranie pliku z innej domeny?
    8. Po co sprawdzać menu klawiszem Tab?
  • Lekcja 8 — Podsumowanie, prawo w internecie i sprawdzian

    Lekcja 8 — Podsumowanie, prawo w internecie i sprawdzian

    Klasa 8 · Lekcja 6 z 6 · HTML i CSS w CodePen

    Cel lekcji

    • Wyjaśniasz działanie własnej strony i rolę użytych znaczników oraz reguł CSS.
    • Odróżniasz dostępność materiału w internecie od prawa do jego ponownej publikacji.
    • Sprawdzasz licencję, autorstwo, źródła i prywatność przed udostępnieniem projektu.
    • Przygotowujesz się do sprawdzianu i oceniasz własne postępy na podstawie konkretnych przykładów.

    Wstęp

    Zbudowałeś stronę, która ma treść, układ, menu i elementy działające. Ostatnim krokiem nie jest kolejny efekt wizualny. Musisz jeszcze sprawdzić, czy możesz udostępniać użyte materiały i czy nie publikujesz danych innych osób. Twórca strony odpowiada nie tylko za kod, lecz także za decyzje dotyczące treści.

    Dzisiaj prezentujesz końcową wersję Klubu Odkrywców. Nie rozpoczynasz nowego projektu. Otwórz etap 5 oraz swoje notatki z debugowania. Przygotuj się do wyjaśnienia kodu własnymi słowami, także wtedy, gdy korzystałeś z przykładów lub pomocy.

    Co już potrafisz

    HTML porządkuje znaczenie informacji. CSS ustala wygląd i układ. Class łączy elementy ze wspólnymi stylami, id oznacza konkretne miejsce, a href wskazuje cel odsyłacza. Div jest kontenerem, natomiast main i nav opisują rolę zawartości. Link może wyglądać jak przycisk, ale nadal służy do nawigacji.

    W naszym projekcie menu przewija do sekcji, details rozwija instrukcję, a reset przywraca początkową pustą notatkę. Każdą z tych funkcji zapewniły elementy HTML. To dobry moment, by odróżnić zrozumienie kodu od jego mechanicznego przepisania: pokaż jedną linijkę HTML, jedną regułę CSS i skutek ich zmiany.

    Dostępne w internecie nie oznacza dowolne do wykorzystania

    Zdjęcie, rysunek, tekst lub kod mogą być chronione prawem autorskim. Wynik wyszukiwarki nie jest zgodą na ich skopiowanie. Przed publikacją potrzebujesz odpowiedniej podstawy, np. własnego autorstwa, zgody uprawnionej osoby, licencji lub mającego zastosowanie wyjątku ustawowego. Samo dopisanie nazwiska autora nie zastępuje takiej podstawy.

    Prawo cytatu ma warunki: cytat musi służyć uzasadnionemu celowi, np. wyjaśnianiu lub analizie, i występować w utworze stanowiącym samoistną całość; należy też oznaczyć autora i źródło, gdy jest to możliwe. Nie jest to pozwolenie na skopiowanie całego cudzego artykułu ani na dowolną dekorację strony zdjęciami. To, że zadanie jest szkolne, nie daje automatycznie prawa do publicznego udostępniania każdej znalezionej treści.

    W naszym ćwiczeniu najprościej pisać własne zdania i korzystać z własnych ilustracji bez danych innych osób. Jeśli nie potrafisz ustalić pochodzenia materiału, zastąp go przed publikacją. Podstawowe przepisy znajdziesz w ustawie o prawie autorskim i prawach pokrewnych, w szczególności w regulacjach dotyczących utworu, cytatu i wskazywania źródła.

    Jak czytać licencje Creative Commons

    Licencja określa warunki korzystania. Sprawdzaj konkretny wariant i wersję, nie tylko znaczek CC. BY wymaga uznania autorstwa; SA dotyczy udostępniania adaptacji na tej samej lub zgodnej licencji; NC ogranicza użycie do celów niekomercyjnych; ND nie pozwala udostępniać adaptacji w ramach tej licencji. Warunki mogą występować razem. CC0 jest narzędziem służącym możliwie szerokiemu zrzeczeniu się praw, a nie kolejnym wariantem CC BY.

    Dla materiału na CC BY 4.0 podaj odpowiednie informacje o autorze i źródle, odnośnik do licencji oraz informację o zmianach, jeśli je wprowadziłeś. Sprawdź także inne prawa, np. do wizerunku. Ćwicz odczytywanie warunków na oficjalnym opisie CC BY 4.0, a nie na przypadkowym podpisie pod obrazkiem.

    Wzór notatki o zasobie: „Tytuł — autor — adres źródła — licencja i jej adres — opis zmian”. Jest to schemat do uzupełnienia rzeczywistymi danymi, nie gotowy podpis dowolnej ilustracji.

    Prywatność i wizerunek

    Nie publikuj nazwisk, adresów, numerów telefonu, planów dnia ani zdjęć kolegów tylko dlatego, że przygotowujesz pracę szkolną. Zgoda na zrobienie zdjęcia nie jest tym samym co zgoda na jego publiczne udostępnienie. Przy wizerunku dzieci szkoła musi uwzględniać właściwe zasady i prawa dziecka. W tym projekcie używamy fikcyjnego klubu i nie umieszczamy rozpoznawalnych osób.

    Przejrzyj także zrzuty ekranu: mogą zawierać nazwę konta, otwarte wiadomości lub inne dane. Publiczny Pen jest publiczną publikacją, a nie prywatnym zeszytem. Poradnik UODO o wizerunku dziecka w internecie pomaga zrozumieć, dlaczego sprawdzenie prywatności powinno nastąpić przed udostępnieniem.

    Sytuacje do wspólnego rozstrzygnięcia

    1. Znajdujesz zdjęcie drzewa w wyszukiwarce, ale nie znasz autora i licencji. Czy możesz je wkleić? Najpierw znajdź źródło i warunki; jeśli ich nie ustalisz, wybierz inny materiał.
    2. Znajdujesz ilustrację CC BY 4.0. Co zapiszesz w źródłach? Wskaż autora, źródło, licencję i ewentualne zmiany.
    3. Kolega zgadza się na zdjęcie podczas lekcji. Czy oznacza to zgodę na publiczny Pen? Nie zakładaj tego; w naszym projekcie nie publikuj jego wizerunku.
    4. Kopiujesz całą stronę koleżanki i zmieniasz kolor tła. Czy możesz przedstawić ją jako własną? Nie. Opisz swój rzeczywisty wkład i wykonaj własne zadanie.
    Przed publikacją sprawdź autora, licencję i źródło oraz chroń prywatność. Podanie źródła nie zastępuje zgody ani licencji.

    Ćwiczenie krok po kroku

    Zadanie: przeprowadź końcowy audyt i krótką prezentację. Proponowany podział: 10 minut powtórzenia, 15 minut audytu, 10 minut prezentacji i 10 minut pytań. Czas sprawdzianu ustala nauczyciel.

    1. Zrób listę wszystkich treści zewnętrznych wykorzystanych w projekcie. Dla każdej zapisz adres źródła i podstawę wykorzystania. Odsyłacz do cudzej strony odróżnij od skopiowania jej treści.
    2. Sprawdź sekcję Źródła. Zastąp robocze podpisy rzeczywistymi informacjami. Jeżeli wszystkie teksty są własne, napisz to zgodnie z prawdą.
    3. Usuń materiały o nieustalonym pochodzeniu oraz dane osobowe. Nie dopisuj fikcyjnej licencji do znalezionego zdjęcia.
    4. Powtórz test trzech linków menu, details, resetowania i wąskiego podglądu.
    5. Przygotuj minutowe omówienie: cel strony, zastosowany kontener, jedna reguła CSS, jedna poprawiona usterka i sposób sprawdzenia źródeł.
    6. Oddaj końcowy projekt oraz krótką samoocenę: co umiesz samodzielnie, z czym potrzebowałeś pomocy i co chcesz przećwiczyć.

    Sprawdzian wiedzy online

    Link do testu zostanie dodany przez nauczyciela.

    Zgodnie z wymaganiami przedmiotu raz w miesiącu odbywa się sprawdzian online z czterech ostatnich lekcji. Jeżeli zostanie przeprowadzony po tej lekcji, obejmie lekcje 3–6: strukturę strony, div i znaczniki semantyczne, menu i odsyłacze, przyciski, debugowanie oraz prawo i prywatność. Poniższe pytania podsumowują cały cykl i służą także do samodzielnej powtórki.

    Przygotowując się, nie ucz się kodu na pamięć. Wyjaśnij działanie krótkiego fragmentu, znajdź literówkę w selektorze, dopasuj link do sekcji i uzasadnij decyzję dotyczącą cudzej ilustracji. Podczas testu pracuj samodzielnie według instrukcji, a problem techniczny zgłoś od razu.

    Dla chętnych: przygotuj trzy pytania dla drugiej osoby: jedno o HTML, jedno o CSS i jedno o odpowiedzialnej publikacji. Do każdego dopisz poprawną odpowiedź z krótkim uzasadnieniem.

    Sprawdź swoją pracę

    • Potrafię objaśnić własny HTML i CSS.
    • Dla zewnętrznych materiałów znam pochodzenie i warunki wykorzystania.
    • Nie ma cudzych danych osobowych ani roboczych podpisów.
    • Strona przechodzi końcowe testy, a źródła są czytelne.
    • Oddałem projekt i samoocenę; wiem, gdzie pojawi się link do testu.

    Podsumowanie

    Masz za sobą pełny proces tworzenia prostej strony: treść, styl, struktura, nawigacja, testy i odpowiedzialna publikacja. Umiejętność pracy z dokumentacją i szukania błędów przyda się również w kolejnym dziale, w którym będziemy poznawać C++ w cpp.sh.

    Materiały i źródła

    Pytania kontrolne

    1. Za co odpowiada HTML, a za co CSS?
    2. Kiedy zastosujesz div, a kiedy nav lub main?
    3. Czym różnią się class i id?
    4. Jak działa href=”#projekt”?
    5. Jakie działanie wykonuje przycisk resetowania?
    6. Dlaczego jedna zmiana naraz ułatwia debugowanie?
    7. Czy zdjęcie dostępne w wyszukiwarce można dowolnie opublikować?
    8. Co sprawdzasz przy materiale CC BY 4.0?
    9. Czy podanie źródła zastępuje licencję lub zgodę?
    10. Jakie dane należy usunąć ze strony lub zrzutu ekranu przed publikacją?
  • Lekcja 9 — HTML: znaczniki i pierwsza strona w CodePen

    Lekcja 9 — HTML: znaczniki i pierwsza strona w CodePen

    Klasa 8 · Lekcja 1 z 6 · HTML i CSS w CodePen

    Cel lekcji

    • Wyjaśniasz, do czego służy HTML i jak przeglądarka odczytuje znaczniki.
    • Rozpoznajesz znacznik otwierający, treść, znacznik zamykający i atrybut.
    • Budujesz nagłówki, akapity i listę z zachowaniem prawidłowego zagnieżdżenia.
    • Korzystasz z W3Schools, aby znaleźć przykład i samodzielnie go zmienić.

    Wstęp

    Gdy otwierasz stronę, widzisz tekst, ilustracje i odsyłacze. Przeglądarka potrzebuje informacji, które fragmenty są tytułem, które akapitami, a które listą. Tę strukturę opisuje HTML. Podczas sześciu lekcji zbudujesz stronę fikcyjnego Klubu Odkrywców. Dzisiaj przygotujesz jej treść; wygląd dopracujesz później. Nie musisz od razu znać wszystkich znaczników. Ważniejsze jest rozumienie kilku podstawowych elementów i obserwowanie skutków własnych zmian.

    Pracujemy w CodePen, w sposobie dostępu ustalonym przez nauczyciela. Nie zakładaj samodzielnie konta, jeśli nauczyciel nie ustalił zasad korzystania z usługi dla Twojego wieku. Publiczny projekt może zobaczyć każdy: używaj fikcyjnych treści i nie wpisuj nazwiska, adresu ani danych logowania.

    HTML opisuje znaczenie i strukturę

    HTML, czyli HyperText Markup Language, jest językiem znaczników. Nie jest językiem programowania takim jak C++. W tym dziale nie piszemy algorytmów: opisujemy zawartość strony. CSS będzie odpowiadał za wygląd. Przez cały cykl korzystamy z HTML i CSS.

    <p>Odkrywamy świat.</p>

    <p> otwiera akapit, tekst jest jego zawartością, a </p> go zamyka. Całość to element HTML. Ukośnik w znaczniku zamykającym ma znaczenie. Stosuj małe litery i zwykłe cudzysłowy kodu, a nie ozdobne cudzysłowy z edytora tekstu.

    <p class="wprowadzenie">Poznaj nasz klub.</p>

    class to atrybut zapisany w znaczniku otwierającym. Jego wartością jest wprowadzenie. Atrybut przekazuje dodatkową informację o elemencie; w kolejnej lekcji wykorzystasz klasę do nadania wyglądu.

    Nagłówki, akapity i listy

    W projekcie używamy jednego h1 jako tytułu strony. Nagłówki h2 rozpoczynają główne części, a h3 mogą rozpoczynać ich podczęści. Poziom nagłówka wybieramy według struktury treści, a nie oczekiwanego rozmiaru liter. Rozmiar zmienia CSS.

    p oznacza akapit, strong ważny fragment, a em zaakcentowanie wypowiedzi. ul tworzy listę wypunktowaną, ol numerowaną, a każdy punkt obu list zapisujemy w li. Wcięcia pomagają zobaczyć, co znajduje się wewnątrz czego. Poprawnie: <p>To <strong>ważne</strong>.</p>. Zamykamy najpierw element wewnętrzny.

    Nie każdy element ma znacznik zamykający: img i br są elementami pustymi. br oznacza złamanie wiersza, a nie narzędzie do tworzenia odstępów między sekcjami.

    Pełny dokument a panel CodePen

    Samodzielny plik strony ma deklarację typu dokumentu, element html, część head z informacjami o stronie oraz body z treścią. Poniższy szkielet służy do zrozumienia budowy pliku; nie wklejaj go w całości do panelu HTML CodePen.

    <!doctype html>
    <html lang="pl">
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>Klub Odkrywców</title>
    </head>
    <body>
      <h1>Klub Odkrywców</h1>
    </body>
    </html>

    W standardowym edytorze Pen wpisujesz do panelu HTML zawartość, która trafi do body. CodePen przygotowuje dokument podglądu. title określa tytuł dokumentu, a h1 nagłówek widoczny w jego treści. To różne zadania.

    W3Schools i film do lekcji

    W3Schools to serwis edukacyjny z opisami i przykładami. Nie jest organizacją W3C i nie tworzy standardów internetu. W razie wątpliwości porównujemy informacje z dokumentacją MDN. Aby skorzystać z W3Schools: otwórz dział HTML, wybierz temat „HTML Headings”, przeczytaj przykład, uruchom „Try it Yourself” i zmień jedną rzecz. Najpierw przewidź wynik, potem go sprawdź. Nie kopiuj całych stron bez czytania.

    Materiał wideo wskazany do lekcji: Znaczniki HTML — film na YouTube. Obejrzyj go z nauczycielem. Zapisz dwa przykłady znaczników i jedno pytanie, które chcesz wyjaśnić. Następnie sprawdź te przykłady w swoim edytorze.

    Budowa elementu HTML: znacznik otwierający, treść i znacznik zamykający; HTML opisuje treść odczytywaną przez przeglądarkę.

    Ćwiczenie krok po kroku

    Zadanie: przygotuj pierwszą wersję strony „Klub Odkrywców”. Przewidywany przebieg: około 10 minut wprowadzenia, 25 minut ćwiczenia i 10 minut sprawdzenia.

    1. Otwórz nowy Pen zgodnie z instrukcją nauczyciela. Rozpoznaj panel HTML, panel CSS i podgląd. Panel CSS na razie pozostaw pusty.
    2. Wpisuj poniższy kod w panelu HTML małymi fragmentami. Po każdym nagłówku i akapicie sprawdź podgląd.
    3. Zmień opis klubu na dwa własne zdania. Zachowaj fikcyjny charakter projektu.
    4. Dodaj czwarty punkt listy oraz jedno wyróżnienie em. Wyjaśnij, dlaczego wyróżniasz właśnie ten fragment.
    5. Sprawdź, czy każdy punkt listy znajduje się wewnątrz ul i ma znaczniki li.
    6. Zapisz projekt nazwą „Klub Odkrywców — etap 1” w ustalonym trybie. Zapisz również kopię kodu w szkolnym folderze. Jeśli nie masz możliwości zapisu Pena, przekaż nauczycielowi plik tekstowy z kodem.
    <h1>Klub Odkrywców</h1>
    <p>To miejsce dla osób, które lubią poznawać świat.</p>
    <h2>O klubie</h2>
    <p>Łączymy <strong>ciekawość</strong> z uważną obserwacją.</p>
    <h2>Nasz projekt</h2>
    <p>Przygotowujemy atlas drzew. Najpierw obserwujemy, potem opisujemy.</p>
    <ul>
      <li>Rozpoznajemy kształty liści.</li>
      <li>Rysujemy własne ilustracje.</li>
      <li>Porównujemy wyniki obserwacji.</li>
    </ul>
    <h2>Źródła</h2>
    <p>Teksty projektu przygotowujemy samodzielnie.</p>

    Dla chętnych: dodaj pod nagłówkiem „Nasz projekt” podtytuł h3 „Plan obserwacji” i listę numerowaną trzech czynności. Nie zmieniaj poziomów nagłówków tylko po to, aby uzyskać mniejszą czcionkę.

    Gdy coś nie działa: sprawdź nawiasy ostrokątne i ukośniki. Sam Enter w kodzie zwykle nie tworzy nowego akapitu na stronie. Jeżeli przeglądarka pokazuje wynik mimo błędu, nie oznacza to, że zapis jest poprawny.

    Sprawdź stronę poza podglądem edytora

    Podgląd w CodePen pomaga szybko zobaczyć efekt, ale nie zastępuje sprawdzenia struktury dokumentu. Upewnij się, że nagłówki opisują kolejne części tekstu i nie wybierasz ich tylko ze względu na wielkość liter. Wielkość można później zmienić przez CSS. Zapisz prosty przykład zawierający nagłówek, akapit, listę i odsyłacz. Następnie wyjaśnij, jaką rolę pełni każdy z tych elementów. To lepszy sprawdzian rozumienia HTML niż samo kopiowanie gotowego kodu.

    Sprawdź swoją pracę

    • Mam jeden tytuł h1, trzy główne części h2, akapity i listę.
    • Potrafię wskazać treść elementu i objaśnić jego znaczniki.
    • Dodałem własne zdania, a nie tylko skopiowałem przykład.
    • Zachowałem kod i potrafię znaleźć go na następną lekcję.

    Podsumowanie

    HTML pomaga czytelnikowi i przeglądarce rozpoznać znaczenie treści. Dobra strona zaczyna się od logicznych nagłówków, akapitów i list. Na następnej lekcji wykorzystasz tę samą treść i dodasz CSS.

    Materiały i źródła

    Pytania kontrolne

    1. Do czego służy HTML?
    2. Czym różni się znacznik od całego elementu?
    3. Po co w znaczniku zamykającym znajduje się ukośnik?
    4. Czym różnią się h1 i h2?
    5. Jak zbudować listę z trzema punktami?
    6. Gdzie zapisujemy atrybut class?
    7. Dlaczego do panelu HTML CodePen nie wklejamy całego szkieletu dokumentu?
    8. Jak użyć W3Schools, żeby nauczyć się czegoś zamiast tylko skopiować kod?
  • Lekcja 10 — CSS: reguły, selektory i wygląd strony

    Lekcja 10 — CSS: reguły, selektory i wygląd strony

    Klasa 8 · Lekcja 2 z 6 · HTML i CSS w CodePen

    Cel lekcji

    • Rozpoznajesz selektor, deklarację, właściwość i wartość w regule CSS.
    • Łączysz atrybut class w HTML z selektorem klasy w CSS.
    • Zmieniasz kolory, krój i rozmiar pisma bez zmieniania znaczenia HTML.
    • Odróżniasz padding, border i margin oraz wyjaśniasz prosty konflikt reguł.

    Wstęp

    Twoja strona ma już treść, ale wygląda podobnie do wielu dokumentów bez formatowania. Dzisiaj nadasz jej czytelny wygląd. Wyobraź sobie tablicę ogłoszeń: nawet wartościowa informacja może być trudna do odczytania, jeśli litery są za małe, kolory zlewają się ze sobą, a tekst dotyka krawędzi. CSS pomaga rozwiązać te problemy. Pracujesz dalej nad stroną Klubu Odkrywców z pierwszej lekcji.

    Otwórz poprzedni projekt i zachowaj kopię etapu 1. W CodePen kod HTML pozostaje w panelu HTML, a reguły stylu wpisujesz w panelu CSS. Nie dodawaj tam znaczników <style>. Nie włączamy preprocesorów ani bibliotek; używamy zwykłego CSS.

    Jak czytać regułę CSS

    h1 {
      color: #12395b;
      font-size: 36px;
    }

    h1 jest selektorem: wybiera elementy do stylowania. Nawiasy klamrowe obejmują deklaracje. W zapisie color: #12395b; właściwością jest color, wartością #12395b, dwukropek je rozdziela, a średnik kończy deklarację. Właściwość rozmiaru pisma nazywa się font-size, nie size. Przy długościach takich jak 36 pikseli zapisujemy jednostkę px.

    CSS nie zmienia akapitu w nagłówek. Możesz powiększyć litery w p, ale dla struktury dokumentu pozostanie on akapitem. Dlatego najpierw wybieramy właściwy element HTML, a dopiero później styl.

    Element, klasa i identyfikator

    <p class="wprowadzenie">Poznaj nasz klub.</p>
    .wprowadzenie { background-color: white; }

    Selektor elementu p wybiera akapity. Selektor klasy .wprowadzenie wybiera elementy z taką klasą; kropka występuje w CSS, a nie w wartości atrybutu HTML. Klasy można powtarzać. Identyfikator, np. id="projekt", powinien być unikalny w dokumencie; w CSS wskazuje się go przez #projekt. W naszych ćwiczeniach klasy służą przede wszystkim do wyglądu, a identyfikatory później pomogą w nawigacji.

    Odstępy wewnątrz i na zewnątrz

    Element można wyobrazić sobie jako pudełko. W środku jest treść. padding to przestrzeń między treścią a obramowaniem. border to obramowanie. margin tworzy odstęp na zewnątrz obramowania. Margines nie oznacza wyłącznie odległości od okna przeglądarki: może oddzielać element od sąsiadów.

    Sprawdź to na białym akapicie wprowadzenia. Zwiększenie padding odsunie tekst od jego krawędzi. Zwiększenie margin-bottom odsunie następny element. Nie zastępuj tych właściwości wieloma spacjami i znacznikami br.

    Skąd przeglądarka wie, którą regułę zastosować

    Niektóre właściwości, np. kolor i krój pisma, są dziedziczone przez potomków. Dlatego ustawienie font-family w body porządkuje wygląd większości tekstu. Obramowania nie są w ten sposób automatycznie dziedziczone.

    W prostym arkuszu bez stylów liniowych i specjalnych reguł selektor klasy ma większą szczegółowość niż selektor elementu. Jeśli dwie zwykłe reguły mają taką samą szczegółowość i dotyczą tej samej właściwości, zadziała późniejsza. To uproszczony fragment zasad kaskady, a nie reguła „ostatnia linijka zawsze wygrywa”. Na tym etapie nie używaj !important do ukrywania przyczyny problemu.

    Reguła CSS składa się z selektora, właściwości i wartości. Model pudełkowy: treść, padding, border i margin.

    Ćwiczenie krok po kroku

    Zadanie: nadaj stronie spokojny, czytelny wygląd i wyróżnij wprowadzenie. Poświęć około 10 minut na składnię, 25 minut na własne próby i 10 minut na kontrolę.

    1. W pierwszym akapicie pod h1 dodaj class="wprowadzenie". Pozostałą treść etapu 1 zachowaj.
    2. W panelu CSS wpisz poniższy arkusz. Po każdej regule sprawdzaj podgląd.
    3. Odczytaj na głos jedną deklarację: „właściwość — wartość”. Wskaż, które elementy wybiera jej selektor.
    4. Zmień padding wprowadzenia z 20px na 32px. Zaobserwuj wnętrze ramki. Następnie przywróć 20px i zmień margin-bottom z 24px na 40px. Opisz różnicę.
    5. Wybierz własny kolor nagłówków, zachowując wyraźną różnicę między tekstem a tłem. Nie stosuj jasnego tekstu na jasnym tle.
    6. Zapisz etap 2 i kopie obu paneli. Przekaż nauczycielowi link lub pliki zgodnie z ustalonym sposobem oddawania prac.
    body {
      font-family: Arial, sans-serif;
      font-size: 18px;
      line-height: 1.6;
      color: #172033;
      background-color: #f1f5f9;
      margin: 0;
      padding: 24px;
    }
    h1 { color: #12395b; font-size: 36px; }
    h2 { color: #12645c; }
    p { margin-bottom: 16px; }
    .wprowadzenie {
      background-color: #ffffff;
      padding: 20px;
      border: 2px solid #12645c;
      margin-bottom: 24px;
    }

    Małe doświadczenie z kaskadą

    h2 { color: green; }
    h2 { color: navy; }

    Dopisz obie reguły na końcu arkusza. Zanim spojrzysz na stronę, przewidź kolor h2. Następnie zamień kolejność i sprawdź wynik. Po doświadczeniu usuń próbne reguły, aby nie pozostawić przypadkowych nadpisań.

    Dla chętnych: utwórz klasę wazne i zastosuj ją do dwóch różnych akapitów. Pokaż, że jedna reguła może zmienić wygląd obu elementów.

    Gdy styl nie działa: sprawdź kropkę przed nazwą klasy, zgodność pisowni, średniki, klamry i jednostki. Kolor tła to background-color, a kolor tekstu to color.

    Specyficzność i kaskada w praktyce

    Kiedy kilka reguł opisuje ten sam element, przeglądarka musi wybrać wartość właściwości. Znaczenie mają między innymi pochodzenie stylu, ważność reguły i specyficzność selektora. W prostym arkuszu selektor klasy jest bardziej szczegółowy niż selektor samego znacznika. Jeżeli dwie porównywalne reguły mają tę samą specyficzność, zwykle rozstrzyga późniejsza pozycja w arkuszu. Nie naprawiaj każdego konfliktu przez dopisywanie !important. Najpierw sprawdź, która reguła rzeczywiście działa.

    Przygotuj akapit z klasą informacja. Nadaj wszystkim akapitom kolor granatowy, a klasie informacja kolor zielony. Obejrzyj wynik w narzędziach deweloperskich i znajdź przekreśloną deklarację. Potem zmień kolejność reguł i sprawdź, czy bardziej szczegółowy selektor nadal wygrywa. Dzięki temu poznasz różnicę między kolejnością zapisu a specyficznością. Na koniec dodaj padding i border, aby zobaczyć, że wygląd pudełka nie sprowadza się do samego koloru tekstu.

    Sprawdź swoją pracę

    • Wiem, gdzie wpisywać HTML i CSS.
    • Mam czytelną czcionkę, tło i wyraźne nagłówki.
    • Potrafię pokazać działanie klasy na konkretnym elemencie.
    • Potrafię wyjaśnić różnicę między padding i margin na swojej stronie.
    • Usunąłem próbne nadpisania po doświadczeniu.

    Podsumowanie

    CSS składa się z reguł, które wybierają elementy i określają ich wygląd. Dobre formatowanie ułatwia czytanie. W następnej lekcji uporządkujesz treść w większe części i zbudujesz układ kart.

    Materiały i źródła

    Pytania kontrolne

    1. Z jakich części składa się reguła CSS?
    2. Co rozdziela właściwość i wartość?
    3. Dlaczego przed nazwą klasy w CSS zapisujemy kropkę?
    4. Czym różni się kolor tekstu od koloru tła?
    5. Co się zmieni po zwiększeniu padding?
    6. Co się zmieni po zwiększeniu margin-bottom?
    7. Kiedy późniejsza reguła może nadpisać wcześniejszą?
    8. Dlaczego duży rozmiar pisma nie czyni akapitu nagłówkiem HTML?