This commit is contained in:
2p01
2025-05-30 13:22:26 +02:00
parent 9907ff2521
commit ab0a0976f9
6 changed files with 341 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
<!doctype html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>T55.1</title>
<link rel="stylesheet" href="../style.css">
</head>
<body>
<header>
<h1>Zadanie T55.1</h1>
<h2>Autor: Jakub Grzegorczyk</h2>
</header>
<div class="box">
<p>Dana jest tablica zawierająca liczby. Napisz funkcję, która po otrzymaniu tej tablicy jako argumentu zwraca sumę dwóch najmniejszych liczb zapisanych w tablicy.</p>
</div>
<div class="box">
<?php
$tablica = [5, 3, 8, 1, 4, 2];
function sumaNajmniejszych($tablica) {
sort($tablica);
return $tablica[0] + $tablica[1];
}
function splitInput($input): array
{
$numbers = explode(',', $input);
return array_map('trim', $numbers);
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$input = htmlspecialchars($_POST['tablica']);
$tablica = splitInput($input);
$tablica = array_map('intval', $tablica); // Konwersja do liczb całkowitych
if (count($tablica) < 2) {
echo "Podaj co najmniej dwie liczby.<br>";
echo "<button><a href='index.php'>Powrót do formularza</a></button>";
} else {
$suma = sumaNajmniejszych($tablica);
echo "Podane liczby: " . implode(', ', $tablica) . "<br>";
echo "Suma dwóch najmniejszych liczb: $suma<br>";
echo "<button><a href='index.php'>Powrót do formularza</a></button>";
}
} else {
echo '<form action="index.php" method="post">
<label for="tablica">Podaj liczby oddzielone przecinkami: </label><br>
<input type="text" name="tablica" id="tablica" placeholder="1,2,3,4,5,6" required><br><br>
<button type="submit">Oblicz</button>
<br>
</form>';
}
?>
</div>
</body>
</html>

View File

@@ -0,0 +1,54 @@
<!doctype html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>T55.2</title>
<link rel="stylesheet" href="../style.css">
</head>
<body>
<header>
<h1>Zadanie T55.2</h1>
<h2>Autor: Jakub Grzegorczyk</h2>
</header>
<div class="box">
<p>Dana jest tablica zawierająca imiona. Napisz funkcję, która wypisuje ilość imion żeńskich zapisanych w tablicy. Dla uproszczenia zakładamy, że imiona żeńskie to te, które kończą się na literę "a". Proszę uwzględnić imiona Kuba i Barnaba.</p>
</div>
<div class="box">
<?php
function splitAndLowerText($imiona): array
{
$imiona = strtolower($imiona);
$imiona = explode(", ", $imiona);
return $imiona;
}
function ktoreZenskie($imiona): int
{
$imiona = splitAndLowerText($imiona);
$licznik = 0;
foreach ($imiona as $imie) {
if (mb_substr($imie, -1) == "a" && $imie != "kuba" && $imie != "barnaba") {
$licznik++;
}
}
return $licznik;
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$imiona = htmlspecialchars($_POST["imiona"]);
$liczbaZenskich = ktoreZenskie($imiona);
echo "Podane imiona: " . htmlspecialchars($imiona) . "<br>";
echo "Liczba imion żeńskich: " . $liczbaZenskich . "<br>";
echo '<button><a href="index.php">Powrót do formularza</a></button>';
} else {
echo '<form action="index.php" method="post">
<label for="imiona">Podaj imiona oddzielone przecinkami: </label><br>
<input type="text" name="imiona" id="imiona" placeholder="Anna, Kasia, Kuba, Barnaba" required><br>
<button type="submit">Oblicz</button>
</form>';
}
?>
</div>
</body>
</html>

View File

@@ -0,0 +1,43 @@
<!doctype html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>T55.3</title>
<link rel="stylesheet" href="../style.css">
</head>
<body>
<header>
<h1>Zadanie T55.3</h1>
<h2>Autor: Jakub Grzegorczyk</h2>
</header>
<div class="box">
<p>Dane dwie tablice. Napisz funkcję, która otrzymuje obie tablice w argumencie i zwraca posortowaną tablicę zawierającą wszystkie elementy z pierwszej i drugiej tablicy.</p>
</div>
<div class="box">
<?php
function mergeAndSort($tab1, $tab2) {
$result = array_merge($tab1, $tab2);
sort($result);
return $result;
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$tab1 = htmlspecialchars($_POST['tab1']) !== null;
$tab2 = htmlspecialchars($_POST['tab2']) !== null;
echo "<p>Posortowana tablica: " . implode(', ', mergeAndSort($tab1, $tab2)) . "</p>";
echo '<button><a href="index.php">Powrót do formularza</a></button>';
} else {
echo '<form method="post" action="">
<label for="tab1">Tablica 1 (oddzielona przecinkami):</label><br>
<input type="text" id="tab1" name="tab1" placeholder="1,2,3" required><br><br>
<label for="tab2">Tablica 2 (oddzielona przecinkami):</label><br>
<input type="text" id="tab2" name="tab2" placeholder="4,5,6" required><br><br>
<button type="submit">Sortuj i połącz</button>
</form>';
}
?>
</div>
</body>
</html>

View File

@@ -0,0 +1,64 @@
<!doctype html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>T55.4</title>
<link rel="stylesheet" href="../style.css">
</head>
<body>
<header>
<h1>Zadanie T55.4</h1>
<h2>Autor: Jakub Grzegorczyk</h2>
</header>
<div class="box">
<p>Napisz funkcję, która dla podanej daty w postaci mm, dd, YY sprawdzi, czy jest to prawidłowa data i jeśli tak sprawdzi, czy jest to data z przeszłości. Jeśli tak funkcja wypisze słowo „historia”, a jeśli nie wypisze „teraźniejszość lub przyszłość”. W przypadku błędnej danej funkcja kończy działanie i wyświetla komunikat o błędnej dacie.</p>
</div>
<div class="box">
<?php
function sprawdzDate($data) {
$data = explode(" ", $data);
if (count($data) != 3) {
return "Błędny format daty. Użyj formatu mm dd YY.";
}
list($mm, $dd, $yy) = $data;
if (!checkdate($mm, $dd, $yy)) {
return "Błędna data.";
}
$currentDate = new DateTime();
$inputDate = strlen($yy) === 2
? DateTime::createFromFormat('m d y', "$mm $dd $yy")
: DateTime::createFromFormat('m d Y', "$mm $dd $yy");
if ($inputDate === false) {
return "Błędna data.";
}
if ($inputDate < $currentDate) {
return "historia";
} else {
return "teraźniejszość lub przyszłość";
}
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$data = htmlspecialchars($_POST['data']);
$result = sprawdzDate($data);
echo htmlspecialchars($result) . '<br>';
echo '<button><a href="index.php">Powrót do formularza</a></button>';
} else {
echo '<form action="index.php" method="post">
<label for="data">Wprowadź datę w formacie mm dd YY</label><br>
<input type="text" name="data" id="data" placeholder="mm dd YY" required><br>
<button type="submit">Sprawdź datę</button>
</form>';
}
?>
</div>
</body>
</html>

View File

@@ -0,0 +1,54 @@
<!doctype html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>T55.5</title>
<link rel="stylesheet" href="../style.css">
</head>
<body>
<header>
<h1>Zadanie T55.5</h1>
<h2>Autor: Jakub Grzegorczyk</h2>
</header>
<div class="box">
<p>Napisz funkcję, która na podstawie danych pobranych z tablicy zwracanej przez funkcję getdate() wyświetli bieżącą datę. W dacie miesiąc ma być wyświetlony w postaci tekstu w języku polskim.</p>
</div>
<div class="box">
<?php
function getPolishMonth($month): string
{
$months = [
1 => 'styczeń',
2 => 'luty',
3 => 'marzec',
4 => 'kwiecień',
5 => 'maj',
6 => 'czerwiec',
7 => 'lipiec',
8 => 'sierpień',
9 => 'wrzesień',
10 => 'październik',
11 => 'listopad',
12 => 'grudzień'
];
return $months[$month];
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$data = getdate();
$dzien = $data['mday'];
$miesiac = getPolishMonth($data['mon']);
$rok = $data['year'];
echo "Bieżąca data to: $dzien $miesiac $rok<br>";
echo '<button><a href="index.php">Powrót do formularza</a></button>';
} else {
echo '<form method="post" action="index.php">
<button class="aloneButton" type="submit">Pobierz datę</button>
</form>';
}
?>
</div>
</body>
</html>

71
Tematy/T55/style.css Normal file
View File

@@ -0,0 +1,71 @@
* {
box-sizing: border-box;
}
body {
font-family: Verdana, serif;
background: #ffffff;
margin: 15px;
font-size: 0.9em;
}
header {
border: 2px solid black;
border-radius: 1em;
padding: 10px 20px;
box-shadow: rgba(0, 0, 0, 0.2) 3px 3px 5px;
background: #f0f0f0;
}
input {
margin-top: 5px;
margin-bottom: 5px;
width: 30%;
border: black 2px solid;
border-radius: 0.5em;
height: 2em;
}
button {
padding: 5px;
width: 30%;
border: black 2px solid;
border-radius: 0.5em;
font-weight: bold;
margin-top: 5px;
}
pre {
font-family: Verdana, serif;
}
.box {
border: 2px solid black;
padding: 15px 20px;
border-radius: 1em;
margin: 15px 0 10px 0;
box-shadow: rgba(0, 0, 0, 0.2) 3px 3px 5px;
}
.box h3 {
cursor: pointer;
}
td {
width: 50px;
height: 50px;
margin: 0;
padding: 0;
}
tr {
padding: 0;
}
.y {
background: yellow;
}
.b {
background:blue;
}
.aloneButton {
margin: 0;
}