ZSEiO w Krośnie

TECHNIK INFORMATYK

 

Lekcja  nr:

4

Nazwa przedmiotu:
Aplikacje internetowe  

Temat: Tablice – numeryczne, asocjacyjne, tekst jako tablice, tablice jedno i dwuwymiarowe   

Czas trwanie

45 min

 

Autor materiałów: dr Marcin Skuba

 

1. Treści programowe: 

Język PHP, tablice numeryczne, tablice indeksowane, tworzenie tablic, odwoływanie się do wybranego elementu tablicy

 

2. Cel zajęć:

Celem zajęć jest zrozumienie działania tablicy w php oraz nabycie umiejętności posługiwania się tablicami do przechowywania danych

 

3. Materiały dydaktyczne

W PHP tablice (ang. arrays) to struktury danych, które pozwalają na przechowywanie wielu wartości w jednej zmiennej. Są one niezwykle elastyczne i można ich używać na dwa główne sposoby: jako listy lub jako słowniki.

 

1. Tablice indeksowane numerycznie (Listy)

To najprostszy typ tablicy. Elementy są przechowywane w kolejności i dostępne przez numeryczny indeks, który domyślnie zaczyna się od 0.

Tablica przechowująca wartości tekstowe:

Obraz zawierający tekst, Czcionka, zrzut ekranu

Zawartość wygenerowana przez AI może być niepoprawna.

Tablica przechowująca wartości liczbowe

Obraz zawierający tekst, zrzut ekranu, Czcionka

Zawartość wygenerowana przez AI może być niepoprawna.

Wyświetlanie elementów tablicy za pomocą pętli for

Funkcja print_r() w PHP służy do wyświetlania czytelnej dla człowieka reprezentacji zmiennej. Jest ona niezwykle przydatna podczas debugowania (czyli szukania błędów w kodzie), zwłaszcza gdy pracujemy z tablicami lub obiektami.

Funkcja number_format($srednia, 2) służy do zaokrąglenia i sformatowania wyniku do dwóch miejsc po przecinku.

 


2. Tablice asocjacyjne (Słowniki)

W tych tablicach wartościom przypisuje się klucze tekstowe, a nie numeryczne indeksy. Umożliwia to tworzenie bardziej czytelnych i opisowych zbiorów danych.

Obraz zawierający tekst, zrzut ekranu, Czcionka

Zawartość wygenerowana przez AI może być niepoprawna.

3. Kluczowe cechy tablic w PHP

 


4. Sortowanie elementów tablicy

Sortowanie tablicy indeksowanej

Do posortowania prostej tablicy numerycznej lub tekstowej w porządku rosnącym użyj funkcji sort(). Ta funkcja zmienia oryginalną tablicę, a jej indeksy zostaną zresetowane.

Do posortowania prostej tablicy numerycznej lub tekstowej w porządku malejącym użyj funkcji rsort() (od reverse sort)

Obraz zawierający tekst, zrzut ekranu, Czcionka

Zawartość wygenerowana przez AI może być niepoprawna.

Obraz zawierający tekst, zrzut ekranu, Czcionka, czarne

Zawartość wygenerowana przez AI może być niepoprawna.

5. Sortowanie tablicy asocjacyjnej

Jeśli chcesz posortować tablicę asocjacyjną według wartości, zachowując powiązania między kluczami a wartościami, użyj funkcji asort().

Obraz zawierający tekst, zrzut ekranu, Czcionka

Zawartość wygenerowana przez AI może być niepoprawna.

Obraz zawierający tekst, Czcionka, zrzut ekranu, design

Zawartość wygenerowana przez AI może być niepoprawna.

Jeśli chciałbyś posortować tablicę asocjacyjną według kluczy (np. alfabetycznie po imieniu), zamiast asort() użyj funkcji ksort().

 


6. Tekst jako tablica

W PHP możesz łatwo traktować ciąg tekstowy jako tablicę, ponieważ każdy znak w tekście jest dostępny za pomocą swojego indeksu. To tak, jakbyś miał tablicę znaków, gdzie indeks 0 to pierwszy znak, indeks 1 to drugi i tak dalej.

o   Funkcja strlen() służy do liczenia znaków w ciągu tekstowym (stringu). Zwraca liczbę całkowitą reprezentującą długość tekstu.

 


7. Tablica dwuwymiarowa z kluczami liczbowymi

Ten przykład tworzy tablicę reprezentującą dane, np. oceny uczniów w kilku przedmiotach.

Obraz zawierający tekst, zrzut ekranu, Czcionka

Zawartość wygenerowana przez AI może być niepoprawna.

 

8. Tablica dwuwymiarowa z kluczami tekstowymi (asocjacyjna)

Tutaj używamy tablic asocjacyjnych, co sprawia, że kod jest bardziej czytelny. Możesz łatwo odwołać się do danych, używając sensownych kluczy, takich jak imię ucznia i nazwa przedmiotu.

Obraz zawierający tekst, zrzut ekranu, Czcionka

Zawartość wygenerowana przez AI może być niepoprawna.

W obu przypadkach tablica dwuwymiarowa to po prostu tablica, której elementy są same w sobie tablicami. Dostęp do pojedynczego elementu wymaga podania dwóch kluczy w nawiasach kwadratowych: pierwszy dla zewnętrznej tablicy (np. wiersz), a drugi dla wewnętrznej (np. kolumna).

 

4. Zadania

Zadanie 1: Lista zakupów (Tablica indeksowana)

Utwórz tablicę o nazwie $zakupy i w linii deklaracji dodaj do niej co najmniej 3 produkty spożywczych (np. "chleb", "mleko", "jajka"). Następnie, za pomocą pętli foreach, wyświetl całą listę na stronie w formie nieuporządkowanej (<ul>) z użyciem znaczników <li>.

Następnie dodaj do tej samej listy dwa kolejne produkty i jeszcze raz wyświetl całą listę.


Zadanie 2: Obliczenie średniej oceny (Tablica indeksowana)

Zadeklaruj tablicę $oceny i przypisz jej 10 losowych wartości liczbowych. Napisz program, który za pomocą pętli for obliczy średnią arytmetyczną tych ocen i wyświetli wynik z dokładnością do dwóch miejsc po przecinku. Na stronie wyświetl również wszystkie wylosowane oceny w kolorze zielonym.


Zadanie 3: Kopiowanie elementów tablicy  (Tablica indeksowana)

Zadeklaruj tablicę $liczby i przypisz jej losowe wartości liczbowe. Utwórz drugą tablicę $liczby_odwrotnie oraz przypisz jej wartości z tablicy $liczby w odwrotnej kolejności. Ostatni element tablicy $liczby przypisz do pierwszego tablicy $liczby_odwrotnie itd… Wyświetl elementy dwóch tablic na stronie jedna pod drugą. Wynik wyświetl w kontenerze, który odpowiednio wystylizuj. 


Zadanie 4: Znajdowanie najmniejszej i największej wartości (Tablica i pętla)

Utwórz tablicę $temperatury i wypełnij ją 15 losowymi liczbami z zakresu od -10 do 35. Napisz program, który przejdzie przez tablicę i znajdzie najniższą oraz najwyższą temperaturę, a następnie wyświetli obie wartości. Wskazówka: Do znalezienia wartości użyj pętli i dwóch zmiennych, które będą przechowywać aktualne minimum i maksimum.


Zadanie 5: Generator kuponu rabatowego (Tablica i losowanie)

Napisz program, który wygeneruje losowy kod rabatowy składający się z 8 znaków. Kod powinien zawierać losowe litery (wielkie) i cyfry. Wykorzystaj tablicę, w której przechowasz wszystkie możliwe znaki (np. od 'A' do 'Z' i od '0' do '9'), a następnie w pętli wylosuj 8 razy znak z tej tablicy i dodaj go do zmiennej. Na końcu wyświetl wygenerowany kod. Wskazówka: Użyj funkcji strlen() do określenia liczby znaków w ciągu, a następnie rand() do losowania indeksu.


Zadanie 6: Sprawdzanie dostępności

Utwórz tablicę $produkty_sklep z co najmniej 5 produktami. Zadeklaruj zmienną $szukany_produkt i przypisz jej nazwę produktu, który chcesz sprawdzić. Napisz kod sprawdzający czy $szukany_produkt znajduje się w tablicy. Wyświetl odpowiedni komunikat: "Produkt jest dostępny." lub "Produkt nie jest dostępny.".



 

Zadanie 7: Wizytówka ucznia (Tablica asocjacyjna)

Utwórz tablicę asocjacyjną $dane_ucznia, w której kluczami będą imie, nazwisko, klasa i specjalizacja. Przypisz do nich przykładowe wartości. Następnie wyświetl wszystkie dane w formie czytelnego tekstu, np. "Imię: Jan, Nazwisko: Kowalski, Klasa: 3A, Specjalizacja: Technik Informatyk".


 

Zadanie 8: Tabele z danymi osobowymi (Tablice wielowymiarowe)

Utwórz tablicę wielowymiarową $uczniowie, w której każdy element będzie tablicą asocjacyjną z danymi jednego ucznia (np. imie, nazwisko, ocena). Zdefiniuj dane dla co najmniej trzech uczniów. Następnie, za pomocą zagnieżdżonych pętli foreach, wyświetl dane wszystkich uczniów w formie tabeli HTML.


Zadanie 9: Analiza tekstu

Napisz program PHP, który przeanalizuje podany tekst i zliczy w nim wystąpienia każdej samogłoski. Program ma działać jak prosty analizator tekstu.

Warunki:

  1. Zadeklaruj zmienną $tekst i przypisz do niej dowolny, dłuższy ciąg znaków, np. "Programowanie jest ciekawe i przydatne.".
  2. Wykorzystaj tekst jako tablicę znaków, aby przejść przez każdy znak w tekście za pomocą pętli.
  3. Zadeklaruj tablicę asocjacyjną $samogloski z kluczami reprezentującymi samogłoski (a, e, i, o, u, y) i początkowymi wartościami ustawionymi na 0.
  4. W pętli, w każdej iteracji, sprawdź, czy dany znak jest samogłoską. Pamiętaj o obsłudze małych i wielkich liter (np. zmień znak na małą literę za pomocą strtolower()).
  5. Jeśli znak jest samogłoską, zwiększ wartość odpowiedniego klucza w tablicy $samogloski.
  6. Na koniec, po przejściu przez cały tekst, wyświetl wyniki zliczeń w czytelnej formie.

Zadanie 10: Analiza macierzy z losowymi wartościami

Napisz program, który będzie analizował macierz liczb. Macierz zostanie wypełniona losowymi wartościami.

Warunki:

  1. Zadeklaruj dwuwymiarową tablicę o nazwie $macierz i wymiarach 3x3.
  2. Wypełnij macierz losowymi liczbami całkowitymi z zakresu od 1 do 10, używając zagnieżdżonych pętli i funkcji rand().
  3. Napisz kod, który obliczy i wyświetli: