Przejdź do głównej zawartości

Kalkulator procentow

Stworzysz Kalkulator procentow - aplikacje umozliwiajaca wykonywanie różnych obliczen procentowych. Użytkownik wybiera tryb obliczen (np. “ile to X% z Y”, “X jest jakim procentem Y”, “wzrost o X%”), wprowadza wartości liczbowe, a system automatycznie oblicza i wyświetla wynik. Historia wszystkich obliczen jest zapisywana do pliku JSON.

Czego się nauczysz?

  • Obsługi formularzy HTML z dynamicznym wyborem trybu
  • Operacji matematycznych na procentach
  • Walidacji danych liczbowych w PHP
  • Zapisu i odczytu historii operacji z plikow JSON

W prawdziwej pracy...

Obliczenia procentowe sa wszedzie - rabaty w sklepach, marze w systemach sprzedazy, wskazniki wzrostu w raportach finansowych, VAT w fakturach. Każdy system e-commerce, aplikacja bankowa czy narzedzie analityczne wymaga precyzyjnych obliczen procentowych. Umiejetnosc tworzenia takich kalkulatorow to podstawa w pracy programisty.

  1. Formularz z wyborem trybu Użytkownik wybiera rodzaj obliczenia z listy rozwijanej (np. “Oblicz X% z liczby Y”) i wprowadza odpowiednie wartości liczbowe.

  2. Obliczenie wyniku System przelicza wartości zgodnie z wybranym trybem i wyświetla wynik w czytelnej formie z odpowiednim opisem.

  3. Zapis do historii Każde obliczenie jest zapisywane do pliku JSON wraz z trybem, wartosciami wejsciowymi, wynikiem i data wykonania.

Przykładowa struktura pliku JSON:

{
"calculations": [
{
"id": 1,
"mode": "percent_of",
"description": "Ile to X% z Y",
"value_a": 20,
"value_b": 150,
"result": 30,
"created_at": "2026-02-13 10:30:00"
},
{
"id": 2,
"mode": "what_percent",
"description": "X jest jakim % z Y",
"value_a": 25,
"value_b": 100,
"result": 25,
"created_at": "2026-02-13 11:45:00"
},
{
"id": 3,
"mode": "increase_by",
"description": "Wzrost o X%",
"value_a": 100,
"value_b": 15,
"result": 115,
"created_at": "2026-02-13 12:00:00"
}
]
}

Wymagane funkcje:

  • Formularz z jednym trybem: oblicz X% z liczby Y
  • Walidacja danych w PHP (liczby dodatnie)
  • Obliczenie i wyświetlenie wyniku
  • Zapis każdego obliczenia do pliku JSON
  • Prosty interfejs CSS (czytelny formularz)

Przykładowy scenariusz:

Użytkownik wchodzi na strone i widzi formularz. Wpisuje procent 20 i liczbe 150. Po kliknieciu “Oblicz” widzi wynik: “20% z 150 to 30”. Obliczenie zostaje zapisane do pliku JSON.

Ocena: 3.0

Walidacja danych wejsciowych:

$value_a = filter_var($_POST['value_a'], FILTER_VALIDATE_FLOAT);
$value_b = filter_var($_POST['value_b'], FILTER_VALIDATE_FLOAT);
if ($value_a === false || $value_b === false) {
$errors[] = "Wprowadz poprawne wartości liczbowe";
}

Obliczenia procentowe - różne tryby:

function calculatePercent($mode, $a, $b) {
switch ($mode) {
case 'percent_of':
// Ile to X% z Y: (X / 100) * Y
return ($a / 100) * $b;
case 'what_percent':
// X jest jakim % z Y: (X / Y) * 100
if ($b == 0) return null; // dzielenie przez zero
return ($a / $b) * 100;
case 'increase_by':
// Wzrost o X%: Y + (Y * X / 100)
return $b + ($b * $a / 100);
case 'decrease_by':
// Spadek o X%: Y - (Y * X / 100)
return $b - ($b * $a / 100);
default:
return null;
}
}

Zapis do JSON:

$data = json_decode(file_get_contents('history.json'), true) ?? ['calculations' => []];
$data['calculations'][] = [
'id' => count($data['calculations']) + 1,
'mode' => $mode,
'value_a' => $value_a,
'value_b' => $value_b,
'result' => $result,
'created_at' => date('Y-m-d H:i:s')
];
file_put_contents('history.json', json_encode($data, JSON_PRETTY_PRINT));

Formatowanie wyniku:

$formatted_result = number_format($result, 2, ',', ' ');
echo "Wynik: " . $formatted_result . "%";

Wykorzystaj lekcje!

Cotygodniowe spotkania podczas lekcji to idealny moment, by:

  • Pokazac postepy - nawet małe kroki się licza
  • Wyjaśnić watpliwosci - pytaj, nie zgaduj
  • Skonsultowac rozwiązania - feedback pomoze Ci się rozwijac

Pracuj iteracyjnie - lepiej mieć działający wariant A niz niedokonczony C!