From 982a62c63c3eac183339c08713b8197f046b08e8 Mon Sep 17 00:00:00 2001 From: jakub Date: Tue, 9 Dec 2025 21:04:59 +0100 Subject: [PATCH] 09.12 --- Zadania/Z100 - suma nad przekątną/index.php | 94 ++++++ Zadania/Z100 - suma nad przekątną/style.css | 300 ++++++++++++++++++ Zadania/Z101 - tablica potęgowa/index.php | 94 ++++++ Zadania/Z101 - tablica potęgowa/style.css | 300 ++++++++++++++++++ Zadania/Z102 - lewy górny/index.php | 66 ++++ Zadania/Z102 - lewy górny/style.css | 300 ++++++++++++++++++ Zadania/Z103 - tablica znaków/index.php | 73 +++++ Zadania/Z103 - tablica znaków/style.css | 300 ++++++++++++++++++ Zadania/Z34 - Proste równoległe/index.php | 45 +++ Zadania/Z34 - Proste równoległe/style.css | 300 ++++++++++++++++++ .../Z97 - suma w wierszu tablicy/index.php | 9 +- Zadania/Z98 - indeksy parzystych/index.php | 107 +++++++ Zadania/Z98 - indeksy parzystych/style.css | 300 ++++++++++++++++++ Zadania/Z99 - podzielne przez 3 i 5/index.php | 107 +++++++ Zadania/Z99 - podzielne przez 3 i 5/style.css | 300 ++++++++++++++++++ 15 files changed, 2689 insertions(+), 6 deletions(-) create mode 100644 Zadania/Z100 - suma nad przekątną/index.php create mode 100644 Zadania/Z100 - suma nad przekątną/style.css create mode 100644 Zadania/Z101 - tablica potęgowa/index.php create mode 100644 Zadania/Z101 - tablica potęgowa/style.css create mode 100644 Zadania/Z102 - lewy górny/index.php create mode 100644 Zadania/Z102 - lewy górny/style.css create mode 100644 Zadania/Z103 - tablica znaków/index.php create mode 100644 Zadania/Z103 - tablica znaków/style.css create mode 100644 Zadania/Z34 - Proste równoległe/index.php create mode 100644 Zadania/Z34 - Proste równoległe/style.css create mode 100644 Zadania/Z98 - indeksy parzystych/index.php create mode 100644 Zadania/Z98 - indeksy parzystych/style.css create mode 100644 Zadania/Z99 - podzielne przez 3 i 5/index.php create mode 100644 Zadania/Z99 - podzielne przez 3 i 5/style.css diff --git a/Zadania/Z100 - suma nad przekątną/index.php b/Zadania/Z100 - suma nad przekątną/index.php new file mode 100644 index 0000000..1019cdd --- /dev/null +++ b/Zadania/Z100 - suma nad przekątną/index.php @@ -0,0 +1,94 @@ + + + + + + + + Z100 - suma nad przekątną + + + +
+

Zadanie Z100

+

Autor: Jakub Grzegorczyk

+
+
+

Napisz program, który wypełnia liczbami tablicę o wymiarach n x n i oblicza sumę elementów nad główną przekątną. Główną przekątną kwadratowej tablicy rozumiemy jako łączącą lewy górny róg tablicy z prawym dolnym (czyli elementy [0][0], [1][1], ..., [n-1][n-1]). Użytkownik podaje n oraz wprowadza liczby do komponentu textarea oddzielone przecinkami. Program powinien zweryfikować, czy n jest liczbą całkowitą, czy podane wartości są liczbami, czy ich liczba zgadza się z n x n, a następnie wyświetlić tablicę i sumę elementów nad główną przekątną.

+

Wskazówki dla ucznia:

+ +
+
+
+
+ Wymiar tablicy + + +
+
+ Wartości tablicy (liczby oddzielone przecinkami): + + +
+ +
+
+ 0; + + $n = (int)$nInput; + + $values = array_map('trim', explode(',', $valuesInput)); + $count = count($values); + $isCountValid = $count === $n*$n; + + $areAllValuesValid = true; + foreach ($values as $value) { + if (!is_numeric($value)) { $areAllValuesValid = false; } + else { $value = (int)$value;} + } + echo '
'; + if ($areAllValuesValid && $isValidDimensions && $isCountValid) { + $values2d = array_chunk($values, $n); + $diagonalSum = 0; + for ($i = 0; $i < $n; $i++) { + $diagonalSum += $values2d[$i][$i]; + } + echo "Wymiar tablicy: n = $n
"; + echo "Wprowadzone liczby: "; + echo implode(', ', $values); + echo "
Tablica $n x $n:"; + echo ''; + for ($i = 0; $i < $n; $i++) { + echo ''; + for ($j = 0; $j < $n; $j++) { + echo ''; + } + echo ''; + } + echo '
' . $values2d[$i][$j] . '
'; + echo "Suma elementów nad główną przekątną: $diagonalSum"; + echo '
'; + } else { + echo 'Dane wejściowe nie są poprawne! Sprawdź wymiary, liczbę wartości lub czy wszystkie są liczbami.'; + } + echo ''; +} +?> + + diff --git a/Zadania/Z100 - suma nad przekątną/style.css b/Zadania/Z100 - suma nad przekątną/style.css new file mode 100644 index 0000000..458b193 --- /dev/null +++ b/Zadania/Z100 - suma nad przekątną/style.css @@ -0,0 +1,300 @@ +/* === UNIVERSAL SCHOOL TEMPLATE CSS (BLACK & WHITE EDITION) === */ +/* clean, modern, and copy-paste friendly for all projects */ + +/* === RESET === */ +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +/* === VARIABLES === */ +:root { + --accent: #000; + --border: #000; + --bg: #fff; + --bg-alt: #f7f7f7; + --text: #111; + --shadow: rgba(0, 0, 0, 0.15) 3px 3px 6px; + --radius: 1em; + --max-width: 1300px; +} + +/* === PAGE === */ +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Verdana, sans-serif; + background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%); + color: var(--text); + display: flex; + flex-direction: column; + align-items: center; + min-height: 100vh; + line-height: 1.6; +} + +/* === HEADER === */ +header { + border: 2px solid var(--border); + border-radius: var(--radius); + padding: 20px 30px; + box-shadow: var(--shadow); + background: var(--bg); + width: 95%; + max-width: var(--max-width); + text-align: center; + margin-top: 25px; + transition: box-shadow 0.3s ease, transform 0.2s ease; +} + +header:hover { + box-shadow: rgba(0, 0, 0, 0.25) 4px 4px 10px; + transform: translateY(-2px); +} + +header h1 { + font-size: 2.2rem; +} + +header h2 { + margin-top: 0.5rem; + font-weight: 400; + font-size: 1.1rem; + color: #444; +} + +/* === BOX === */ +.box { + border: 2px solid var(--border); + border-radius: var(--radius); + padding: 25px 35px; + margin-top: 25px; + background: var(--bg); + box-shadow: var(--shadow); + width: 95%; + max-width: var(--max-width); + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.box:hover { + transform: translateY(-2px); + box-shadow: rgba(0, 0, 0, 0.25) 4px 4px 10px; +} + +/* === TEXT ELEMENTS === */ +p { + margin-bottom: 1rem; +} + +.box > p:last-child { + margin-bottom: 0; +} + +h1, h2, h3, h4 { + margin-bottom: 0.5rem; + font-weight: 600; +} + +a { + color: #000; + text-decoration: underline; + font-weight: 500; +} + +a:hover { + opacity: 0.7; +} + +/* === LISTS === */ +ul, ol { + margin: 1rem 0 1rem 1.5rem; +} + +li { + margin-bottom: 0.4rem; +} + +/* === TABLES === */ +table { + width: 100%; + border-collapse: collapse; + margin: 1rem 0; + background: var(--bg); + border: 2px solid var(--border); + border-radius: 0.6em; + overflow: hidden; + box-shadow: var(--shadow); +} + +th, td { + padding: 10px 12px; + border-bottom: 1px solid #ccc; + text-align: center; +} + +th { + background: var(--bg-alt); + font-weight: bold; + text-align: left; +} + +tr:hover { + background: #f2f2f2; +} + +/* === FORMS === */ +form { + display: flex; + flex-direction: column; + gap: 1.4rem; +} + +.box:has(> form) { + padding: 35px 35px; +} + +fieldset { + border: 2px solid var(--border); + border-radius: 0.8em; + padding: 1.2rem 1.5rem; + background: var(--bg-alt); +} + +legend { + font-weight: bold; + color: #000; + padding: 0 0.4rem; + font-size: 1.05rem; +} + +label { + font-weight: 500; +} + +input[type="text"], +input[type="email"], +input[type="password"], +input[type="number"], +input[type="tel"], +input[type="date"], +textarea, +select { + width: 100%; + font-size: 1rem; + margin-top: 6px; + margin-bottom: 8px; + border: 2px solid var(--border); + border-radius: 0.5em; + padding: 0.4rem 0.5rem; + transition: all 0.2s ease; + background: var(--bg); +} + +textarea { + resize: vertical; + min-height: 100px; +} + +input:focus, +textarea:focus, +select:focus { + outline: none; + border-color: #000; + box-shadow: 0 0 6px rgba(0, 0, 0, 0.4); + background: #f9f9f9; +} + +input[type="radio"], +input[type="checkbox"] { + accent-color: #000; + transform: scale(1.2); + margin-right: 0.3rem; +} + +/* === BUTTONS === */ +button, +input[type="submit"], +input[type="button"], +input[type="reset"] { + padding: 10px 20px; + border: 2px solid var(--border); + border-radius: 0.5em; + font-weight: bold; + font-size: 1rem; + background: linear-gradient(180deg, #fff 0%, #f2f2f2 100%); + cursor: pointer; + transition: all 0.2s ease; + align-self: flex-start; +} + +button { + width: 100%; +} + +button:hover, +input[type="submit"]:hover, +input[type="button"]:hover, +input[type="reset"]:hover { + background: #eaeaea; + box-shadow: rgba(0, 0, 0, 0.25) 3px 3px 6px; + transform: translateY(-2px); +} + +button:active, +input[type="submit"]:active, +input[type="button"]:active, +input[type="reset"]:active { + transform: translateY(0); + box-shadow: rgba(0, 0, 0, 0.15) 1px 1px 3px; + background: #f7f7f7; +} + +/* === HR, CODE, ETC. === */ +hr { + border: 0; + border-top: 2px solid var(--border); + margin: 1.5rem 0; +} + +img { + max-width: 100%; + border-radius: 0.5em; +} + +code, pre { + background: #f4f4f4; + border: 1px solid #ccc; + border-radius: 0.4em; + padding: 0.3em 0.5em; + font-family: "Courier New", monospace; +} + +pre { + padding: 1em; + overflow-x: auto; +} + +/* === RESPONSIVE === */ +@media (max-width: 900px) { + header, .box { + width: 95%; + padding: 20px; + } + + button { + width: 100%; + } + + textarea { + width: 100%; + } +} + +@media (max-width: 600px) { + header h1 { + font-size: 1.7rem; + } + + header h2 { + font-size: 0.95rem; + } +} diff --git a/Zadania/Z101 - tablica potęgowa/index.php b/Zadania/Z101 - tablica potęgowa/index.php new file mode 100644 index 0000000..73260fb --- /dev/null +++ b/Zadania/Z101 - tablica potęgowa/index.php @@ -0,0 +1,94 @@ + + + + + + + + Z101 - tablica potęgowa + + + +
+

Zadanie Z101

+

Autor: Jakub Grzegorczyk

+
+
+

Napisz program, który wypełnia liczbami tablicę o wymiarach n x 3. W pierwszej kolumnie znajduje się liczba podana przez użytkownika, w drugiej jej druga potęga, a w trzeciej trzecia potęga. Użytkownik podaje n oraz wprowadza n liczb do pierwszej kolumny w komponencie textarea oddzielonych przecinkami. Program powinien zweryfikować, czy n jest liczbą całkowitą, czy podane wartości są liczbami, czy ich liczba zgadza się z n, a następnie wyświetlić tablicę z wyliczonymi potęgami.

+

Wskazówki dla ucznia:

+ +
+
+
+
+ Wymiar tablicy + + +
+
+ Wartości tablicy (liczby oddzielone przecinkami): + + +
+ +
+
+ 0; + + $n = (int)$nInput; + + $values = array_map('trim', explode(',', $valuesInput)); + $count = count($values); + $isCountValid = $count === $n; + + $areAllValuesValid = true; + foreach ($values as $value) { + if (!is_numeric($value)) { $areAllValuesValid = false; } + else { $value = (int)$value;} + } + echo '
'; + if ($areAllValuesValid && $isValidDimensions && $isCountValid) { + $values2d[$n] = array(); + for ($i = 0; $i < $n; $i++) { + $values2d[$i][0] = $values[$i]; + $values2d[$i][1] = pow($values[$i], 2); + $values2d[$i][2] = pow($values[$i], 3); + } + echo "Wymiar tablicy: n = $n
"; + echo "Wprowadzone liczby: "; + echo implode(', ', $values); + echo "
Tablica $n x 3:"; + echo ''; + for ($i = 0; $i < $n; $i++) { + echo ''; + for ($j = 0; $j < 3; $j++) { + echo ''; + } + echo ''; + } + echo '
' . $values2d[$i][$j] . '
'; + echo '
'; + } else { + echo 'Dane wejściowe nie są poprawne! Sprawdź wymiary, liczbę wartości lub czy wszystkie są liczbami.'; + } + echo ''; +} +?> + + diff --git a/Zadania/Z101 - tablica potęgowa/style.css b/Zadania/Z101 - tablica potęgowa/style.css new file mode 100644 index 0000000..458b193 --- /dev/null +++ b/Zadania/Z101 - tablica potęgowa/style.css @@ -0,0 +1,300 @@ +/* === UNIVERSAL SCHOOL TEMPLATE CSS (BLACK & WHITE EDITION) === */ +/* clean, modern, and copy-paste friendly for all projects */ + +/* === RESET === */ +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +/* === VARIABLES === */ +:root { + --accent: #000; + --border: #000; + --bg: #fff; + --bg-alt: #f7f7f7; + --text: #111; + --shadow: rgba(0, 0, 0, 0.15) 3px 3px 6px; + --radius: 1em; + --max-width: 1300px; +} + +/* === PAGE === */ +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Verdana, sans-serif; + background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%); + color: var(--text); + display: flex; + flex-direction: column; + align-items: center; + min-height: 100vh; + line-height: 1.6; +} + +/* === HEADER === */ +header { + border: 2px solid var(--border); + border-radius: var(--radius); + padding: 20px 30px; + box-shadow: var(--shadow); + background: var(--bg); + width: 95%; + max-width: var(--max-width); + text-align: center; + margin-top: 25px; + transition: box-shadow 0.3s ease, transform 0.2s ease; +} + +header:hover { + box-shadow: rgba(0, 0, 0, 0.25) 4px 4px 10px; + transform: translateY(-2px); +} + +header h1 { + font-size: 2.2rem; +} + +header h2 { + margin-top: 0.5rem; + font-weight: 400; + font-size: 1.1rem; + color: #444; +} + +/* === BOX === */ +.box { + border: 2px solid var(--border); + border-radius: var(--radius); + padding: 25px 35px; + margin-top: 25px; + background: var(--bg); + box-shadow: var(--shadow); + width: 95%; + max-width: var(--max-width); + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.box:hover { + transform: translateY(-2px); + box-shadow: rgba(0, 0, 0, 0.25) 4px 4px 10px; +} + +/* === TEXT ELEMENTS === */ +p { + margin-bottom: 1rem; +} + +.box > p:last-child { + margin-bottom: 0; +} + +h1, h2, h3, h4 { + margin-bottom: 0.5rem; + font-weight: 600; +} + +a { + color: #000; + text-decoration: underline; + font-weight: 500; +} + +a:hover { + opacity: 0.7; +} + +/* === LISTS === */ +ul, ol { + margin: 1rem 0 1rem 1.5rem; +} + +li { + margin-bottom: 0.4rem; +} + +/* === TABLES === */ +table { + width: 100%; + border-collapse: collapse; + margin: 1rem 0; + background: var(--bg); + border: 2px solid var(--border); + border-radius: 0.6em; + overflow: hidden; + box-shadow: var(--shadow); +} + +th, td { + padding: 10px 12px; + border-bottom: 1px solid #ccc; + text-align: center; +} + +th { + background: var(--bg-alt); + font-weight: bold; + text-align: left; +} + +tr:hover { + background: #f2f2f2; +} + +/* === FORMS === */ +form { + display: flex; + flex-direction: column; + gap: 1.4rem; +} + +.box:has(> form) { + padding: 35px 35px; +} + +fieldset { + border: 2px solid var(--border); + border-radius: 0.8em; + padding: 1.2rem 1.5rem; + background: var(--bg-alt); +} + +legend { + font-weight: bold; + color: #000; + padding: 0 0.4rem; + font-size: 1.05rem; +} + +label { + font-weight: 500; +} + +input[type="text"], +input[type="email"], +input[type="password"], +input[type="number"], +input[type="tel"], +input[type="date"], +textarea, +select { + width: 100%; + font-size: 1rem; + margin-top: 6px; + margin-bottom: 8px; + border: 2px solid var(--border); + border-radius: 0.5em; + padding: 0.4rem 0.5rem; + transition: all 0.2s ease; + background: var(--bg); +} + +textarea { + resize: vertical; + min-height: 100px; +} + +input:focus, +textarea:focus, +select:focus { + outline: none; + border-color: #000; + box-shadow: 0 0 6px rgba(0, 0, 0, 0.4); + background: #f9f9f9; +} + +input[type="radio"], +input[type="checkbox"] { + accent-color: #000; + transform: scale(1.2); + margin-right: 0.3rem; +} + +/* === BUTTONS === */ +button, +input[type="submit"], +input[type="button"], +input[type="reset"] { + padding: 10px 20px; + border: 2px solid var(--border); + border-radius: 0.5em; + font-weight: bold; + font-size: 1rem; + background: linear-gradient(180deg, #fff 0%, #f2f2f2 100%); + cursor: pointer; + transition: all 0.2s ease; + align-self: flex-start; +} + +button { + width: 100%; +} + +button:hover, +input[type="submit"]:hover, +input[type="button"]:hover, +input[type="reset"]:hover { + background: #eaeaea; + box-shadow: rgba(0, 0, 0, 0.25) 3px 3px 6px; + transform: translateY(-2px); +} + +button:active, +input[type="submit"]:active, +input[type="button"]:active, +input[type="reset"]:active { + transform: translateY(0); + box-shadow: rgba(0, 0, 0, 0.15) 1px 1px 3px; + background: #f7f7f7; +} + +/* === HR, CODE, ETC. === */ +hr { + border: 0; + border-top: 2px solid var(--border); + margin: 1.5rem 0; +} + +img { + max-width: 100%; + border-radius: 0.5em; +} + +code, pre { + background: #f4f4f4; + border: 1px solid #ccc; + border-radius: 0.4em; + padding: 0.3em 0.5em; + font-family: "Courier New", monospace; +} + +pre { + padding: 1em; + overflow-x: auto; +} + +/* === RESPONSIVE === */ +@media (max-width: 900px) { + header, .box { + width: 95%; + padding: 20px; + } + + button { + width: 100%; + } + + textarea { + width: 100%; + } +} + +@media (max-width: 600px) { + header h1 { + font-size: 1.7rem; + } + + header h2 { + font-size: 0.95rem; + } +} diff --git a/Zadania/Z102 - lewy górny/index.php b/Zadania/Z102 - lewy górny/index.php new file mode 100644 index 0000000..58c1546 --- /dev/null +++ b/Zadania/Z102 - lewy górny/index.php @@ -0,0 +1,66 @@ + + + + + + + + Z102 - lewy górny + + + +
+

Zadanie Z102

+

Autor: Jakub Grzegorczyk

+
+
+

Napisz program, który do dwuwymiarowej tablicy o wymiarach 3 x 3 wpisuje liczby pseudolosowe z zakresu <0,9>, wyświetla tą tablicę, a następnie oblicza sumę liczb rozmieszczonych wzdłuż przekątnych:

+ +

Program wyświetla te sumy i odpowiada na pytanie, która z nich jest większa, lub czy są równe.

+
+
+
+ +
+
+'; + echo "Tablica 3 x 3:"; + echo ''; + for ($i = 0; $i < 3; $i++) { + echo ''; + for ($j = 0; $j < 3; $j++) { + echo ''; + } + echo ''; + } + echo '
' . $values[$i][$j] . '
'; + echo "LG_PD: " . $sumLG_PD . '
'; + echo "LD_PG: " . $sumLD_PG . '
'; + echo '
'; + if ($sumLD_PG > $sumLG_PD) { + echo "LG_PD < LD_PG"; + } else if ($sumLD_PG == $sumLG_PD) { + echo "LG_PD = LD_PG"; + } else { + echo "LG_PD > LD_PG"; + } + echo ''; +} +?> + + diff --git a/Zadania/Z102 - lewy górny/style.css b/Zadania/Z102 - lewy górny/style.css new file mode 100644 index 0000000..458b193 --- /dev/null +++ b/Zadania/Z102 - lewy górny/style.css @@ -0,0 +1,300 @@ +/* === UNIVERSAL SCHOOL TEMPLATE CSS (BLACK & WHITE EDITION) === */ +/* clean, modern, and copy-paste friendly for all projects */ + +/* === RESET === */ +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +/* === VARIABLES === */ +:root { + --accent: #000; + --border: #000; + --bg: #fff; + --bg-alt: #f7f7f7; + --text: #111; + --shadow: rgba(0, 0, 0, 0.15) 3px 3px 6px; + --radius: 1em; + --max-width: 1300px; +} + +/* === PAGE === */ +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Verdana, sans-serif; + background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%); + color: var(--text); + display: flex; + flex-direction: column; + align-items: center; + min-height: 100vh; + line-height: 1.6; +} + +/* === HEADER === */ +header { + border: 2px solid var(--border); + border-radius: var(--radius); + padding: 20px 30px; + box-shadow: var(--shadow); + background: var(--bg); + width: 95%; + max-width: var(--max-width); + text-align: center; + margin-top: 25px; + transition: box-shadow 0.3s ease, transform 0.2s ease; +} + +header:hover { + box-shadow: rgba(0, 0, 0, 0.25) 4px 4px 10px; + transform: translateY(-2px); +} + +header h1 { + font-size: 2.2rem; +} + +header h2 { + margin-top: 0.5rem; + font-weight: 400; + font-size: 1.1rem; + color: #444; +} + +/* === BOX === */ +.box { + border: 2px solid var(--border); + border-radius: var(--radius); + padding: 25px 35px; + margin-top: 25px; + background: var(--bg); + box-shadow: var(--shadow); + width: 95%; + max-width: var(--max-width); + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.box:hover { + transform: translateY(-2px); + box-shadow: rgba(0, 0, 0, 0.25) 4px 4px 10px; +} + +/* === TEXT ELEMENTS === */ +p { + margin-bottom: 1rem; +} + +.box > p:last-child { + margin-bottom: 0; +} + +h1, h2, h3, h4 { + margin-bottom: 0.5rem; + font-weight: 600; +} + +a { + color: #000; + text-decoration: underline; + font-weight: 500; +} + +a:hover { + opacity: 0.7; +} + +/* === LISTS === */ +ul, ol { + margin: 1rem 0 1rem 1.5rem; +} + +li { + margin-bottom: 0.4rem; +} + +/* === TABLES === */ +table { + width: 100%; + border-collapse: collapse; + margin: 1rem 0; + background: var(--bg); + border: 2px solid var(--border); + border-radius: 0.6em; + overflow: hidden; + box-shadow: var(--shadow); +} + +th, td { + padding: 10px 12px; + border-bottom: 1px solid #ccc; + text-align: center; +} + +th { + background: var(--bg-alt); + font-weight: bold; + text-align: left; +} + +tr:hover { + background: #f2f2f2; +} + +/* === FORMS === */ +form { + display: flex; + flex-direction: column; + gap: 1.4rem; +} + +.box:has(> form) { + padding: 35px 35px; +} + +fieldset { + border: 2px solid var(--border); + border-radius: 0.8em; + padding: 1.2rem 1.5rem; + background: var(--bg-alt); +} + +legend { + font-weight: bold; + color: #000; + padding: 0 0.4rem; + font-size: 1.05rem; +} + +label { + font-weight: 500; +} + +input[type="text"], +input[type="email"], +input[type="password"], +input[type="number"], +input[type="tel"], +input[type="date"], +textarea, +select { + width: 100%; + font-size: 1rem; + margin-top: 6px; + margin-bottom: 8px; + border: 2px solid var(--border); + border-radius: 0.5em; + padding: 0.4rem 0.5rem; + transition: all 0.2s ease; + background: var(--bg); +} + +textarea { + resize: vertical; + min-height: 100px; +} + +input:focus, +textarea:focus, +select:focus { + outline: none; + border-color: #000; + box-shadow: 0 0 6px rgba(0, 0, 0, 0.4); + background: #f9f9f9; +} + +input[type="radio"], +input[type="checkbox"] { + accent-color: #000; + transform: scale(1.2); + margin-right: 0.3rem; +} + +/* === BUTTONS === */ +button, +input[type="submit"], +input[type="button"], +input[type="reset"] { + padding: 10px 20px; + border: 2px solid var(--border); + border-radius: 0.5em; + font-weight: bold; + font-size: 1rem; + background: linear-gradient(180deg, #fff 0%, #f2f2f2 100%); + cursor: pointer; + transition: all 0.2s ease; + align-self: flex-start; +} + +button { + width: 100%; +} + +button:hover, +input[type="submit"]:hover, +input[type="button"]:hover, +input[type="reset"]:hover { + background: #eaeaea; + box-shadow: rgba(0, 0, 0, 0.25) 3px 3px 6px; + transform: translateY(-2px); +} + +button:active, +input[type="submit"]:active, +input[type="button"]:active, +input[type="reset"]:active { + transform: translateY(0); + box-shadow: rgba(0, 0, 0, 0.15) 1px 1px 3px; + background: #f7f7f7; +} + +/* === HR, CODE, ETC. === */ +hr { + border: 0; + border-top: 2px solid var(--border); + margin: 1.5rem 0; +} + +img { + max-width: 100%; + border-radius: 0.5em; +} + +code, pre { + background: #f4f4f4; + border: 1px solid #ccc; + border-radius: 0.4em; + padding: 0.3em 0.5em; + font-family: "Courier New", monospace; +} + +pre { + padding: 1em; + overflow-x: auto; +} + +/* === RESPONSIVE === */ +@media (max-width: 900px) { + header, .box { + width: 95%; + padding: 20px; + } + + button { + width: 100%; + } + + textarea { + width: 100%; + } +} + +@media (max-width: 600px) { + header h1 { + font-size: 1.7rem; + } + + header h2 { + font-size: 0.95rem; + } +} diff --git a/Zadania/Z103 - tablica znaków/index.php b/Zadania/Z103 - tablica znaków/index.php new file mode 100644 index 0000000..ee56714 --- /dev/null +++ b/Zadania/Z103 - tablica znaków/index.php @@ -0,0 +1,73 @@ + + + + + + + + Z103 - tablica znaków + + + +
+

Zadanie Z103

+

Autor: Jakub Grzegorczyk

+
+
+

Napisz program, który do dwuwymiarowej tablicy o wymiarach 7 x 7 wpisze wygenerowane losowo znaki w zakresie <'a','e'>, wyświetli tę tablicę, a następnie:

+ +

Program wyświetla te sumy i odpowiada na pytanie, która z nich jest większa, lub czy są równe.

+
+
+
+ +
+
+ $row) { + $rowCounts[$i] = 0; + foreach ($row as $value) { + if ($value == 'b') { + $rowCounts[$i]++; + } + if ($value == 'a') { + $countA++; + } + } + } + $maxCount = max($rowCounts); + $rowsWithMax = array_keys($rowCounts, $maxCount); + echo '
'; + echo "Tablica 7 x 7:"; + echo ''; + for ($i = 0; $i < 7; $i++) { + echo ''; + for ($j = 0; $j < 7; $j++) { + echo ''; + } + echo ''; + } + echo '
' . $values[$i][$j] . '
'; + echo "Litera 'a' wystąpiła $countA razy.
"; + echo "Najwięcej liter 'b' wystąpiło w wierszu/wierszach: "; + foreach($rowsWithMax as $rowIndex) {echo $rowIndex + 1; if($rowIndex != end($rowsWithMax)) {echo ', ';}} + echo " ($maxCount razy)" . '
'; + echo '
'; +} +?> + + diff --git a/Zadania/Z103 - tablica znaków/style.css b/Zadania/Z103 - tablica znaków/style.css new file mode 100644 index 0000000..458b193 --- /dev/null +++ b/Zadania/Z103 - tablica znaków/style.css @@ -0,0 +1,300 @@ +/* === UNIVERSAL SCHOOL TEMPLATE CSS (BLACK & WHITE EDITION) === */ +/* clean, modern, and copy-paste friendly for all projects */ + +/* === RESET === */ +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +/* === VARIABLES === */ +:root { + --accent: #000; + --border: #000; + --bg: #fff; + --bg-alt: #f7f7f7; + --text: #111; + --shadow: rgba(0, 0, 0, 0.15) 3px 3px 6px; + --radius: 1em; + --max-width: 1300px; +} + +/* === PAGE === */ +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Verdana, sans-serif; + background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%); + color: var(--text); + display: flex; + flex-direction: column; + align-items: center; + min-height: 100vh; + line-height: 1.6; +} + +/* === HEADER === */ +header { + border: 2px solid var(--border); + border-radius: var(--radius); + padding: 20px 30px; + box-shadow: var(--shadow); + background: var(--bg); + width: 95%; + max-width: var(--max-width); + text-align: center; + margin-top: 25px; + transition: box-shadow 0.3s ease, transform 0.2s ease; +} + +header:hover { + box-shadow: rgba(0, 0, 0, 0.25) 4px 4px 10px; + transform: translateY(-2px); +} + +header h1 { + font-size: 2.2rem; +} + +header h2 { + margin-top: 0.5rem; + font-weight: 400; + font-size: 1.1rem; + color: #444; +} + +/* === BOX === */ +.box { + border: 2px solid var(--border); + border-radius: var(--radius); + padding: 25px 35px; + margin-top: 25px; + background: var(--bg); + box-shadow: var(--shadow); + width: 95%; + max-width: var(--max-width); + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.box:hover { + transform: translateY(-2px); + box-shadow: rgba(0, 0, 0, 0.25) 4px 4px 10px; +} + +/* === TEXT ELEMENTS === */ +p { + margin-bottom: 1rem; +} + +.box > p:last-child { + margin-bottom: 0; +} + +h1, h2, h3, h4 { + margin-bottom: 0.5rem; + font-weight: 600; +} + +a { + color: #000; + text-decoration: underline; + font-weight: 500; +} + +a:hover { + opacity: 0.7; +} + +/* === LISTS === */ +ul, ol { + margin: 1rem 0 1rem 1.5rem; +} + +li { + margin-bottom: 0.4rem; +} + +/* === TABLES === */ +table { + width: 100%; + border-collapse: collapse; + margin: 1rem 0; + background: var(--bg); + border: 2px solid var(--border); + border-radius: 0.6em; + overflow: hidden; + box-shadow: var(--shadow); +} + +th, td { + padding: 10px 12px; + border-bottom: 1px solid #ccc; + text-align: center; +} + +th { + background: var(--bg-alt); + font-weight: bold; + text-align: left; +} + +tr:hover { + background: #f2f2f2; +} + +/* === FORMS === */ +form { + display: flex; + flex-direction: column; + gap: 1.4rem; +} + +.box:has(> form) { + padding: 35px 35px; +} + +fieldset { + border: 2px solid var(--border); + border-radius: 0.8em; + padding: 1.2rem 1.5rem; + background: var(--bg-alt); +} + +legend { + font-weight: bold; + color: #000; + padding: 0 0.4rem; + font-size: 1.05rem; +} + +label { + font-weight: 500; +} + +input[type="text"], +input[type="email"], +input[type="password"], +input[type="number"], +input[type="tel"], +input[type="date"], +textarea, +select { + width: 100%; + font-size: 1rem; + margin-top: 6px; + margin-bottom: 8px; + border: 2px solid var(--border); + border-radius: 0.5em; + padding: 0.4rem 0.5rem; + transition: all 0.2s ease; + background: var(--bg); +} + +textarea { + resize: vertical; + min-height: 100px; +} + +input:focus, +textarea:focus, +select:focus { + outline: none; + border-color: #000; + box-shadow: 0 0 6px rgba(0, 0, 0, 0.4); + background: #f9f9f9; +} + +input[type="radio"], +input[type="checkbox"] { + accent-color: #000; + transform: scale(1.2); + margin-right: 0.3rem; +} + +/* === BUTTONS === */ +button, +input[type="submit"], +input[type="button"], +input[type="reset"] { + padding: 10px 20px; + border: 2px solid var(--border); + border-radius: 0.5em; + font-weight: bold; + font-size: 1rem; + background: linear-gradient(180deg, #fff 0%, #f2f2f2 100%); + cursor: pointer; + transition: all 0.2s ease; + align-self: flex-start; +} + +button { + width: 100%; +} + +button:hover, +input[type="submit"]:hover, +input[type="button"]:hover, +input[type="reset"]:hover { + background: #eaeaea; + box-shadow: rgba(0, 0, 0, 0.25) 3px 3px 6px; + transform: translateY(-2px); +} + +button:active, +input[type="submit"]:active, +input[type="button"]:active, +input[type="reset"]:active { + transform: translateY(0); + box-shadow: rgba(0, 0, 0, 0.15) 1px 1px 3px; + background: #f7f7f7; +} + +/* === HR, CODE, ETC. === */ +hr { + border: 0; + border-top: 2px solid var(--border); + margin: 1.5rem 0; +} + +img { + max-width: 100%; + border-radius: 0.5em; +} + +code, pre { + background: #f4f4f4; + border: 1px solid #ccc; + border-radius: 0.4em; + padding: 0.3em 0.5em; + font-family: "Courier New", monospace; +} + +pre { + padding: 1em; + overflow-x: auto; +} + +/* === RESPONSIVE === */ +@media (max-width: 900px) { + header, .box { + width: 95%; + padding: 20px; + } + + button { + width: 100%; + } + + textarea { + width: 100%; + } +} + +@media (max-width: 600px) { + header h1 { + font-size: 1.7rem; + } + + header h2 { + font-size: 0.95rem; + } +} diff --git a/Zadania/Z34 - Proste równoległe/index.php b/Zadania/Z34 - Proste równoległe/index.php new file mode 100644 index 0000000..a60db04 --- /dev/null +++ b/Zadania/Z34 - Proste równoległe/index.php @@ -0,0 +1,45 @@ + + + + + + + + Z34 - Proste równoległe + + + +
+

Zadanie Z34

+

Autor: Jakub Grzegorczyk

+
+
+

Napisz program, który dla podanych dwóch równań prostych odpowie czy proste te są równoległe.

+ +
+
+
+
+ Dane dla pierwszej prostej y1 = a1x + b1 + + + + +
+
+ Dane dla drugiej prostej y2 = a2x + b2 + + + + +
+ +
+
+ + + diff --git a/Zadania/Z34 - Proste równoległe/style.css b/Zadania/Z34 - Proste równoległe/style.css new file mode 100644 index 0000000..125c287 --- /dev/null +++ b/Zadania/Z34 - Proste równoległe/style.css @@ -0,0 +1,300 @@ + +/* === UNIVERSAL SCHOOL TEMPLATE CSS (BLACK & WHITE EDITION) === */ +/* clean, modern, and copy-paste friendly for all projects */ + +/* === RESET === */ +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +/* === VARIABLES === */ +:root { + --accent: #000; + --border: #000; + --bg: #fff; + --bg-alt: #f7f7f7; + --text: #111; + --shadow: rgba(0, 0, 0, 0.15) 3px 3px 6px; + --radius: 1em; + --max-width: 1300px; +} + +/* === PAGE === */ +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Verdana, sans-serif; + background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%); + color: var(--text); + display: flex; + flex-direction: column; + align-items: center; + min-height: 100vh; + line-height: 1.6; +} + +/* === HEADER === */ +header { + border: 2px solid var(--border); + border-radius: var(--radius); + padding: 20px 30px; + box-shadow: var(--shadow); + background: var(--bg); + width: 95%; + max-width: var(--max-width); + text-align: center; + margin-top: 25px; + transition: box-shadow 0.3s ease, transform 0.2s ease; +} + +header:hover { + box-shadow: rgba(0, 0, 0, 0.25) 4px 4px 10px; + transform: translateY(-2px); +} + +header h1 { + font-size: 2.2rem; +} + +header h2 { + margin-top: 0.5rem; + font-weight: 400; + font-size: 1.1rem; + color: #444; +} + +/* === BOX === */ +.box { + border: 2px solid var(--border); + border-radius: var(--radius); + padding: 25px 35px; + margin-top: 25px; + background: var(--bg); + box-shadow: var(--shadow); + width: 95%; + max-width: var(--max-width); + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.box:hover { + transform: translateY(-2px); + box-shadow: rgba(0, 0, 0, 0.25) 4px 4px 10px; +} + +/* === TEXT ELEMENTS === */ +p { + margin-bottom: 1rem; +} + +.box > p:last-child { + margin-bottom: 0; +} + +h1, h2, h3, h4 { + margin-bottom: 0.5rem; + font-weight: 600; +} + +a { + color: #000; + text-decoration: underline; + font-weight: 500; +} + +a:hover { + opacity: 0.7; +} + +/* === LISTS === */ +ul, ol { + margin: 1rem 0 1rem 1.5rem; +} + +li { + margin-bottom: 0.4rem; +} + +/* === TABLES === */ +table { + width: 100%; + border-collapse: collapse; + margin: 1rem 0; + background: var(--bg); + border: 2px solid var(--border); + border-radius: 0.6em; + overflow: hidden; + box-shadow: var(--shadow); +} + +th, td { + padding: 10px 12px; + border-bottom: 1px solid #ccc; +} + +th { + background: var(--bg-alt); + font-weight: bold; + text-align: left; +} + +tr:hover { + background: #f2f2f2; +} + +/* === FORMS === */ +form { + display: flex; + flex-direction: column; + gap: 1.4rem; +} + +.box:has(> form) { + padding: 35px 35px; +} + +fieldset { + border: 2px solid var(--border); + border-radius: 0.8em; + padding: 1.2rem 1.5rem; + background: var(--bg-alt); +} + +legend { + font-weight: bold; + color: #000; + padding: 0 0.4rem; + font-size: 1.05rem; +} + +label { + font-weight: 500; +} + +input[type="text"], +input[type="email"], +input[type="password"], +input[type="number"], +input[type="tel"], +input[type="date"], +textarea, +select { + width: 100%; + font-size: 1rem; + margin-top: 6px; + margin-bottom: 8px; + border: 2px solid var(--border); + border-radius: 0.5em; + padding: 0.4rem 0.5rem; + transition: all 0.2s ease; + background: var(--bg); +} + +textarea { + resize: vertical; + min-height: 100px; +} + +input:focus, +textarea:focus, +select:focus { + outline: none; + border-color: #000; + box-shadow: 0 0 6px rgba(0, 0, 0, 0.4); + background: #f9f9f9; +} + +input[type="radio"], +input[type="checkbox"] { + accent-color: #000; + transform: scale(1.2); + margin-right: 0.3rem; +} + +/* === BUTTONS === */ +button, +input[type="submit"], +input[type="button"], +input[type="reset"] { + padding: 10px 20px; + border: 2px solid var(--border); + border-radius: 0.5em; + font-weight: bold; + font-size: 1rem; + background: linear-gradient(180deg, #fff 0%, #f2f2f2 100%); + cursor: pointer; + transition: all 0.2s ease; + align-self: flex-start; +} + +button { + width: 100%; +} + +button:hover, +input[type="submit"]:hover, +input[type="button"]:hover, +input[type="reset"]:hover { + background: #eaeaea; + box-shadow: rgba(0, 0, 0, 0.25) 3px 3px 6px; + transform: translateY(-2px); +} + +button:active, +input[type="submit"]:active, +input[type="button"]:active, +input[type="reset"]:active { + transform: translateY(0); + box-shadow: rgba(0, 0, 0, 0.15) 1px 1px 3px; + background: #f7f7f7; +} + +/* === HR, CODE, ETC. === */ +hr { + border: 0; + border-top: 2px solid var(--border); + margin: 1.5rem 0; +} + +img { + max-width: 100%; + border-radius: 0.5em; +} + +code, pre { + background: #f4f4f4; + border: 1px solid #ccc; + border-radius: 0.4em; + padding: 0.3em 0.5em; + font-family: "Courier New", monospace; +} + +pre { + padding: 1em; + overflow-x: auto; +} + +/* === RESPONSIVE === */ +@media (max-width: 900px) { + header, .box { + width: 95%; + padding: 20px; + } + + button { + width: 100%; + } + + textarea { + width: 100%; + } +} + +@media (max-width: 600px) { + header h1 { + font-size: 1.7rem; + } + + header h2 { + font-size: 0.95rem; + } +} diff --git a/Zadania/Z97 - suma w wierszu tablicy/index.php b/Zadania/Z97 - suma w wierszu tablicy/index.php index 709d019..8079307 100644 --- a/Zadania/Z97 - suma w wierszu tablicy/index.php +++ b/Zadania/Z97 - suma w wierszu tablicy/index.php @@ -68,12 +68,9 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') { $isCountValid = $count === ($n*$m); $areAllValuesValid = true; - for ($i = 0; $i < $count; $i++) { - if (!is_numeric($values[$i])) { - $areAllValuesValid = false; - } else { - $values[$i] = (int)$values[$i]; - } + foreach ($values as $value) { + if (!is_numeric($value)) { $areAllValuesValid = false; } + else { $value = (int)$value;} } echo '
'; if ($areAllValuesValid && $isValidDimensions && $isCountValid && $isRowNumValid) { diff --git a/Zadania/Z98 - indeksy parzystych/index.php b/Zadania/Z98 - indeksy parzystych/index.php new file mode 100644 index 0000000..a0aedb9 --- /dev/null +++ b/Zadania/Z98 - indeksy parzystych/index.php @@ -0,0 +1,107 @@ + + + + + + + + Z98 - indeksy parzystych + + + +
+

Zadanie Z98

+

Autor: Jakub Grzegorczyk

+
+
+

Napisz program, który wczytuje liczby całkowite do tablicy o wymiarach n x m i wyświetla wskaźniki liczb parzystych w tablicy. Użytkownik podaje n i m oraz wprowadza liczby do komponentu textarea oddzielone przecinkami. Program powinien zweryfikować, czy n i m są liczbami całkowitymi, czy podane wartości są liczbami całkowitymi, czy ich liczba zgadza się z n x m, a następnie wyświetlić tablicę i indeksy (w formacie [wiersz][kolumna]) wszystkich liczb parzystych.

+

Wskazówki dla ucznia:

+
    +
  • Sprawdź, czy n i m są liczbami całkowitymi (is_numeric() i is_int() po konwersji).
  • +
  • Użyj explode(), aby rozdzielić ciąg z textarea na tablicę liczb na podstawie przecinków.
  • +
  • Zweryfikuj, czy każda wartość jest liczbą całkowitą za pomocą is_numeric() i sprawdzenia, czy po konwersji na int nie traci wartości dziesiętnej.
  • +
  • Przekształć jednowymiarową tablicę na dwuwymiarową, rozdzielając ją na wiersze po m elementów.
  • +
  • Przeszukaj tablicę dwuwymiarową pętlami i sprawdź parzystość za pomocą operatora % (modulo).
  • +
  • Zabezpiecz dane wejściowe za pomocą htmlspecialchars() przy pobieraniu, aby chronić przed XSS.
  • +
+
+
+
+
+ Wymiary tablicy + + + + +
+
+ Wartości tablicy (liczby całkowite oddzielone przecinkami): + + +
+ +
+
+ 0 && + (int)$mInput > 0; + + $n = (int)$nInput; + $m = (int)$mInput; + + $values = array_map('trim', explode(',', $valuesInput)); + $count = count($values); + $isCountValid = $count === ($n*$m); + + $areAllValuesValid = true; + foreach ($values as $value) { + if (!is_numeric($value)) { $areAllValuesValid = false; } + else { $value = (int)$value;} + } + echo '
'; + if ($areAllValuesValid && $isValidDimensions && $isCountValid) { + $values2d = array_chunk($values, $m); + $maxIndexes = array(); + for ($i = 0; $i < $n; $i++) { + for ($j = 0; $j < $m; $j++) { + if ($values2d[$i][$j] % 2 == 0) { + $maxIndexes[] = array($i, $j); + } + } + } + echo "Wymiary tablicy: n = $n, m = $m
"; + echo "Wprowadzone liczby: "; + echo implode(', ', $values); + echo "
Tablica $n x $m:"; + echo ''; + for ($i = 0; $i < $n; $i++) { + echo ''; + for ($j = 0; $j < $m; $j++) { + echo ''; + } + echo ''; + } + echo '
' . $values2d[$i][$j] . '
'; + echo "Indeksy liczb parzystych:"; + foreach ($maxIndexes as $index) { + echo "(" . $index[0] . ", " . $index[1] . ") "; + } + echo '
'; + } else { + echo 'Dane wejściowe nie są poprawne! Sprawdź wymiary, liczbę wartości lub czy wszystkie są liczbami.'; + } + echo '
'; +} +?> + + diff --git a/Zadania/Z98 - indeksy parzystych/style.css b/Zadania/Z98 - indeksy parzystych/style.css new file mode 100644 index 0000000..458b193 --- /dev/null +++ b/Zadania/Z98 - indeksy parzystych/style.css @@ -0,0 +1,300 @@ +/* === UNIVERSAL SCHOOL TEMPLATE CSS (BLACK & WHITE EDITION) === */ +/* clean, modern, and copy-paste friendly for all projects */ + +/* === RESET === */ +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +/* === VARIABLES === */ +:root { + --accent: #000; + --border: #000; + --bg: #fff; + --bg-alt: #f7f7f7; + --text: #111; + --shadow: rgba(0, 0, 0, 0.15) 3px 3px 6px; + --radius: 1em; + --max-width: 1300px; +} + +/* === PAGE === */ +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Verdana, sans-serif; + background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%); + color: var(--text); + display: flex; + flex-direction: column; + align-items: center; + min-height: 100vh; + line-height: 1.6; +} + +/* === HEADER === */ +header { + border: 2px solid var(--border); + border-radius: var(--radius); + padding: 20px 30px; + box-shadow: var(--shadow); + background: var(--bg); + width: 95%; + max-width: var(--max-width); + text-align: center; + margin-top: 25px; + transition: box-shadow 0.3s ease, transform 0.2s ease; +} + +header:hover { + box-shadow: rgba(0, 0, 0, 0.25) 4px 4px 10px; + transform: translateY(-2px); +} + +header h1 { + font-size: 2.2rem; +} + +header h2 { + margin-top: 0.5rem; + font-weight: 400; + font-size: 1.1rem; + color: #444; +} + +/* === BOX === */ +.box { + border: 2px solid var(--border); + border-radius: var(--radius); + padding: 25px 35px; + margin-top: 25px; + background: var(--bg); + box-shadow: var(--shadow); + width: 95%; + max-width: var(--max-width); + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.box:hover { + transform: translateY(-2px); + box-shadow: rgba(0, 0, 0, 0.25) 4px 4px 10px; +} + +/* === TEXT ELEMENTS === */ +p { + margin-bottom: 1rem; +} + +.box > p:last-child { + margin-bottom: 0; +} + +h1, h2, h3, h4 { + margin-bottom: 0.5rem; + font-weight: 600; +} + +a { + color: #000; + text-decoration: underline; + font-weight: 500; +} + +a:hover { + opacity: 0.7; +} + +/* === LISTS === */ +ul, ol { + margin: 1rem 0 1rem 1.5rem; +} + +li { + margin-bottom: 0.4rem; +} + +/* === TABLES === */ +table { + width: 100%; + border-collapse: collapse; + margin: 1rem 0; + background: var(--bg); + border: 2px solid var(--border); + border-radius: 0.6em; + overflow: hidden; + box-shadow: var(--shadow); +} + +th, td { + padding: 10px 12px; + border-bottom: 1px solid #ccc; + text-align: center; +} + +th { + background: var(--bg-alt); + font-weight: bold; + text-align: left; +} + +tr:hover { + background: #f2f2f2; +} + +/* === FORMS === */ +form { + display: flex; + flex-direction: column; + gap: 1.4rem; +} + +.box:has(> form) { + padding: 35px 35px; +} + +fieldset { + border: 2px solid var(--border); + border-radius: 0.8em; + padding: 1.2rem 1.5rem; + background: var(--bg-alt); +} + +legend { + font-weight: bold; + color: #000; + padding: 0 0.4rem; + font-size: 1.05rem; +} + +label { + font-weight: 500; +} + +input[type="text"], +input[type="email"], +input[type="password"], +input[type="number"], +input[type="tel"], +input[type="date"], +textarea, +select { + width: 100%; + font-size: 1rem; + margin-top: 6px; + margin-bottom: 8px; + border: 2px solid var(--border); + border-radius: 0.5em; + padding: 0.4rem 0.5rem; + transition: all 0.2s ease; + background: var(--bg); +} + +textarea { + resize: vertical; + min-height: 100px; +} + +input:focus, +textarea:focus, +select:focus { + outline: none; + border-color: #000; + box-shadow: 0 0 6px rgba(0, 0, 0, 0.4); + background: #f9f9f9; +} + +input[type="radio"], +input[type="checkbox"] { + accent-color: #000; + transform: scale(1.2); + margin-right: 0.3rem; +} + +/* === BUTTONS === */ +button, +input[type="submit"], +input[type="button"], +input[type="reset"] { + padding: 10px 20px; + border: 2px solid var(--border); + border-radius: 0.5em; + font-weight: bold; + font-size: 1rem; + background: linear-gradient(180deg, #fff 0%, #f2f2f2 100%); + cursor: pointer; + transition: all 0.2s ease; + align-self: flex-start; +} + +button { + width: 100%; +} + +button:hover, +input[type="submit"]:hover, +input[type="button"]:hover, +input[type="reset"]:hover { + background: #eaeaea; + box-shadow: rgba(0, 0, 0, 0.25) 3px 3px 6px; + transform: translateY(-2px); +} + +button:active, +input[type="submit"]:active, +input[type="button"]:active, +input[type="reset"]:active { + transform: translateY(0); + box-shadow: rgba(0, 0, 0, 0.15) 1px 1px 3px; + background: #f7f7f7; +} + +/* === HR, CODE, ETC. === */ +hr { + border: 0; + border-top: 2px solid var(--border); + margin: 1.5rem 0; +} + +img { + max-width: 100%; + border-radius: 0.5em; +} + +code, pre { + background: #f4f4f4; + border: 1px solid #ccc; + border-radius: 0.4em; + padding: 0.3em 0.5em; + font-family: "Courier New", monospace; +} + +pre { + padding: 1em; + overflow-x: auto; +} + +/* === RESPONSIVE === */ +@media (max-width: 900px) { + header, .box { + width: 95%; + padding: 20px; + } + + button { + width: 100%; + } + + textarea { + width: 100%; + } +} + +@media (max-width: 600px) { + header h1 { + font-size: 1.7rem; + } + + header h2 { + font-size: 0.95rem; + } +} diff --git a/Zadania/Z99 - podzielne przez 3 i 5/index.php b/Zadania/Z99 - podzielne przez 3 i 5/index.php new file mode 100644 index 0000000..0785178 --- /dev/null +++ b/Zadania/Z99 - podzielne przez 3 i 5/index.php @@ -0,0 +1,107 @@ + + + + + + + + Z99 - podzielne przez 3 i 5 + + + +
+

Zadanie Z99

+

Autor: Jakub Grzegorczyk

+
+
+

Napisz program, który wczytuje liczby całkowite do tablicy o wymiarach n x m i wyświetla wskaźniki liczb podzielnych jednocześnie przez 3 i 5 (np. 15, 30). Użytkownik podaje n i m oraz wprowadza liczby do komponentu textarea oddzielone przecinkami. Program powinien zweryfikować, czy n i m są liczbami całkowitymi, czy podane wartości są liczbami całkowitymi, czy ich liczba zgadza się z n x m, a następnie wyświetlić tablicę i indeksy (w formacie [wiersz][kolumna]) wszystkich liczb podzielnych przez 3 i 5.

+

Wskazówki dla ucznia:

+ +
+
+
+
+ Wymiary tablicy + + + + +
+
+ Wartości tablicy (liczby całkowite oddzielone przecinkami): + + +
+ +
+
+ 0 && + (int)$mInput > 0; + + $n = (int)$nInput; + $m = (int)$mInput; + + $values = array_map('trim', explode(',', $valuesInput)); + $count = count($values); + $isCountValid = $count === ($n*$m); + + $areAllValuesValid = true; + foreach ($values as $value) { + if (!is_numeric($value)) { $areAllValuesValid = false; } + else { $value = (int)$value;} + } + echo '
'; + if ($areAllValuesValid && $isValidDimensions && $isCountValid) { + $values2d = array_chunk($values, $m); + $maxIndexes = array(); + for ($i = 0; $i < $n; $i++) { + for ($j = 0; $j < $m; $j++) { + if ($values2d[$i][$j] % 3 == 0 && $values2d[$i][$j] % 5 == 0) { + $maxIndexes[] = array($i, $j); + } + } + } + echo "Wymiary tablicy: n = $n, m = $m
"; + echo "Wprowadzone liczby: "; + echo implode(', ', $values); + echo "
Tablica $n x $m:"; + echo ''; + for ($i = 0; $i < $n; $i++) { + echo ''; + for ($j = 0; $j < $m; $j++) { + echo ''; + } + echo ''; + } + echo '
' . $values2d[$i][$j] . '
'; + echo "Indeksy liczb podzielnych przez 3 i 5:"; + foreach ($maxIndexes as $index) { + echo "(" . $index[0] . ", " . $index[1] . ") "; + } + echo '
'; + } else { + echo 'Dane wejściowe nie są poprawne! Sprawdź wymiary, liczbę wartości lub czy wszystkie są liczbami.'; + } + echo ''; +} +?> + + diff --git a/Zadania/Z99 - podzielne przez 3 i 5/style.css b/Zadania/Z99 - podzielne przez 3 i 5/style.css new file mode 100644 index 0000000..458b193 --- /dev/null +++ b/Zadania/Z99 - podzielne przez 3 i 5/style.css @@ -0,0 +1,300 @@ +/* === UNIVERSAL SCHOOL TEMPLATE CSS (BLACK & WHITE EDITION) === */ +/* clean, modern, and copy-paste friendly for all projects */ + +/* === RESET === */ +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +/* === VARIABLES === */ +:root { + --accent: #000; + --border: #000; + --bg: #fff; + --bg-alt: #f7f7f7; + --text: #111; + --shadow: rgba(0, 0, 0, 0.15) 3px 3px 6px; + --radius: 1em; + --max-width: 1300px; +} + +/* === PAGE === */ +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Verdana, sans-serif; + background: linear-gradient(180deg, #ffffff 0%, #f5f5f5 100%); + color: var(--text); + display: flex; + flex-direction: column; + align-items: center; + min-height: 100vh; + line-height: 1.6; +} + +/* === HEADER === */ +header { + border: 2px solid var(--border); + border-radius: var(--radius); + padding: 20px 30px; + box-shadow: var(--shadow); + background: var(--bg); + width: 95%; + max-width: var(--max-width); + text-align: center; + margin-top: 25px; + transition: box-shadow 0.3s ease, transform 0.2s ease; +} + +header:hover { + box-shadow: rgba(0, 0, 0, 0.25) 4px 4px 10px; + transform: translateY(-2px); +} + +header h1 { + font-size: 2.2rem; +} + +header h2 { + margin-top: 0.5rem; + font-weight: 400; + font-size: 1.1rem; + color: #444; +} + +/* === BOX === */ +.box { + border: 2px solid var(--border); + border-radius: var(--radius); + padding: 25px 35px; + margin-top: 25px; + background: var(--bg); + box-shadow: var(--shadow); + width: 95%; + max-width: var(--max-width); + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.box:hover { + transform: translateY(-2px); + box-shadow: rgba(0, 0, 0, 0.25) 4px 4px 10px; +} + +/* === TEXT ELEMENTS === */ +p { + margin-bottom: 1rem; +} + +.box > p:last-child { + margin-bottom: 0; +} + +h1, h2, h3, h4 { + margin-bottom: 0.5rem; + font-weight: 600; +} + +a { + color: #000; + text-decoration: underline; + font-weight: 500; +} + +a:hover { + opacity: 0.7; +} + +/* === LISTS === */ +ul, ol { + margin: 1rem 0 1rem 1.5rem; +} + +li { + margin-bottom: 0.4rem; +} + +/* === TABLES === */ +table { + width: 100%; + border-collapse: collapse; + margin: 1rem 0; + background: var(--bg); + border: 2px solid var(--border); + border-radius: 0.6em; + overflow: hidden; + box-shadow: var(--shadow); +} + +th, td { + padding: 10px 12px; + border-bottom: 1px solid #ccc; + text-align: center; +} + +th { + background: var(--bg-alt); + font-weight: bold; + text-align: left; +} + +tr:hover { + background: #f2f2f2; +} + +/* === FORMS === */ +form { + display: flex; + flex-direction: column; + gap: 1.4rem; +} + +.box:has(> form) { + padding: 35px 35px; +} + +fieldset { + border: 2px solid var(--border); + border-radius: 0.8em; + padding: 1.2rem 1.5rem; + background: var(--bg-alt); +} + +legend { + font-weight: bold; + color: #000; + padding: 0 0.4rem; + font-size: 1.05rem; +} + +label { + font-weight: 500; +} + +input[type="text"], +input[type="email"], +input[type="password"], +input[type="number"], +input[type="tel"], +input[type="date"], +textarea, +select { + width: 100%; + font-size: 1rem; + margin-top: 6px; + margin-bottom: 8px; + border: 2px solid var(--border); + border-radius: 0.5em; + padding: 0.4rem 0.5rem; + transition: all 0.2s ease; + background: var(--bg); +} + +textarea { + resize: vertical; + min-height: 100px; +} + +input:focus, +textarea:focus, +select:focus { + outline: none; + border-color: #000; + box-shadow: 0 0 6px rgba(0, 0, 0, 0.4); + background: #f9f9f9; +} + +input[type="radio"], +input[type="checkbox"] { + accent-color: #000; + transform: scale(1.2); + margin-right: 0.3rem; +} + +/* === BUTTONS === */ +button, +input[type="submit"], +input[type="button"], +input[type="reset"] { + padding: 10px 20px; + border: 2px solid var(--border); + border-radius: 0.5em; + font-weight: bold; + font-size: 1rem; + background: linear-gradient(180deg, #fff 0%, #f2f2f2 100%); + cursor: pointer; + transition: all 0.2s ease; + align-self: flex-start; +} + +button { + width: 100%; +} + +button:hover, +input[type="submit"]:hover, +input[type="button"]:hover, +input[type="reset"]:hover { + background: #eaeaea; + box-shadow: rgba(0, 0, 0, 0.25) 3px 3px 6px; + transform: translateY(-2px); +} + +button:active, +input[type="submit"]:active, +input[type="button"]:active, +input[type="reset"]:active { + transform: translateY(0); + box-shadow: rgba(0, 0, 0, 0.15) 1px 1px 3px; + background: #f7f7f7; +} + +/* === HR, CODE, ETC. === */ +hr { + border: 0; + border-top: 2px solid var(--border); + margin: 1.5rem 0; +} + +img { + max-width: 100%; + border-radius: 0.5em; +} + +code, pre { + background: #f4f4f4; + border: 1px solid #ccc; + border-radius: 0.4em; + padding: 0.3em 0.5em; + font-family: "Courier New", monospace; +} + +pre { + padding: 1em; + overflow-x: auto; +} + +/* === RESPONSIVE === */ +@media (max-width: 900px) { + header, .box { + width: 95%; + padding: 20px; + } + + button { + width: 100%; + } + + textarea { + width: 100%; + } +} + +@media (max-width: 600px) { + header h1 { + font-size: 1.7rem; + } + + header h2 { + font-size: 0.95rem; + } +}