Menu
Coddy logo textTech

Recap - Simple Logic

Часть раздела Основы путешествия по PHP на Coddy — урок 27 из 71.

challenge icon

Задание

Легко

Прочитайте пять значений из ввода: целое число age, целое число balance, строку isStudent (либо "true", либо "false"), строку hasPromoCode (либо "true", либо "false") и целое число itemPrice.

Преобразуйте строковые значения в булевы, сравнивая их с "true".

Оцените следующие три условия и выведите результат каждого с помощью var_dump(), каждое на новой строке:

  1. Проверьте, имеет ли человек право на молодежную скидку: age меньше 25 И является студентом
  2. Проверьте, может ли человек позволить себе товар со скидкой: balance больше или равно itemPrice ИЛИ (balance не менее половины itemPrice И hasPromoCode истинно)
  3. Проверьте, получает ли человек приоритетное обслуживание: (age не менее 65 ИЛИ isStudent истинно) И balance больше 0 И НЕ hasPromoCode

Пример:

Если входные данные 22, 50, true, false и 80, то вывод должен быть:

bool(true)
bool(false)
bool(true)

Пояснение:

  • age < 25 && isStudent → 22 < 25 && true → true
  • balance >= itemPrice || (balance >= itemPrice / 2 && hasPromoCode) → 50 >= 80 || (50 >= 40 && false) → false || false → false
  • (age >= 65 || isStudent) && balance > 0 && !hasPromoCode → (false || true) && true && true → true

Попробуйте сами

<?php
// Читаем входные значения
$age = intval(fgets(STDIN));
$balance = intval(fgets(STDIN));
$isStudentStr = trim(fgets(STDIN));
$hasPromoCodeStr = trim(fgets(STDIN));
$itemPrice = intval(fgets(STDIN));

// Преобразуем строковые значения в булевы
$isStudent = $isStudentStr === "true";
$hasPromoCode = $hasPromoCodeStr === "true";

// TODO: Напишите свой код ниже
// 1. Проверить, имеет ли человек право на скидку для молодежи

// 2. Проверить, может ли человек позволить себе товар со скидкой

// 3. Проверить, получает ли человек приоритетную кассу

?>

Все уроки раздела Основы