Загрузка данных


Да. Если ориентироваться именно на последнюю лекцию, то предыдущий вариант был чуть сложнее, чем нужно: я использовал тернарный оператор и некоторые конструкции, которые тебе сейчас вообще не нужны.

В лекции 4 есть if, if-else, else if, switch, while, do while, for, break, continue, логические &&, ||, !.    

Поэтому сделаем прям совсем студенческий код: a, b, c, без наворотов.


---

1 задание

#include <iostream>
using namespace std;

int main() {
    int a, b;

    while (true) {
        cin >> a;

        if (a == 0)
            break;

        cin >> b;

        if (a < 5)
            cout << "Вход запрещен" << endl;
        else if (a <= 12 && b == 2)
            cout << "Вход разрешен: детский билет" << endl;
        else if (a >= 13 && a <= 49 && (b == 1 || b == 4))
            cout << "Вход разрешен" << endl;
        else if (a >= 50 && a <= 64 && b != 2)
            cout << "Вход разрешен" << endl;
        else if (a >= 65 && (b == 3 || b == 4))
            cout << "Вход разрешен" << endl;
        else
            cout << "Вход запрещен" << endl;
    }

    return 0;
}

Тут:

a — возраст

b — билет

while — повторяет программу

break — выход из программы.



---

2 задание

#include <iostream>
using namespace std;

int main() {
    int a, b, c;

    while (true) {
        cin >> a;

        if (a == -1)
            break;

        cin >> b >> c;

        a = a + b * 3;

        if (c == 1)
            a = a + 15;

        if (a > 100)
            a = 100;

        if (a >= 90)
            cout << "Отлично" << endl;
        else if (a >= 75)
            cout << "Хорошо" << endl;
        else if (a >= 60)
            cout << "Удовлетворительно" << endl;
        else
            cout << "Неудовлетворительно" << endl;
    }

    return 0;
}

Тут:

a — балл

b — количество дополнительных заданий

c — бонус (1 есть, 0 нет).



---

3 задание

Здесь в самом задании цены напитков не указаны, поэтому поставим простые цены сами. 

#include <iostream>
using namespace std;

int main() {
    int a, c;
    char b;
    double d;

    while (true) {
        cin >> a;

        if (a == 0)
            break;

        if (a == 1)
            d = 100;
        else if (a == 2)
            d = 150;
        else if (a == 3)
            d = 140;
        else if (a == 4)
            d = 80;
        else if (a == 5)
            d = 130;
        else {
            cout << "Ошибка" << endl;
            continue;
        }

        cin >> b;

        if (b == 'M')
            d = d * 1.3;
        else if (b == 'L')
            d = d * 1.5;
        else if (b != 'S') {
            cout << "Ошибка" << endl;
            continue;
        }

        cin >> c;

        if (c == 2)
            d = d + 10;
        else if (c == 3)
            d = d + 15;
        else if (c == 4)
            d = d + 20;
        else if (c != 1) {
            cout << "Ошибка" << endl;
            continue;
        }

        cout << "Цена: " << d << endl;
    }

    return 0;
}

Тут уже есть всё, что проходили:

if

else if

else

while

break

continue.



---

4 задание

Здесь обязательно используется for, потому что по условию нужно через него вводить цены. 

#include <iostream>
using namespace std;

int main() {
    int a, b;
    double c, d = 0, e;

    cin >> a;

    for (b = 0; b < a; b++) {
        cin >> c;
        d = d + c;
    }

    cout << "Без скидки: " << d << endl;

    e = d;

    if (d > 5000)
        d = d * 0.9;

    cin >> b;

    if (b == 1)
        d = d * 0.95;

    cout << "Скидка: " << e - d << endl;
    cout << "К оплате: " << d << endl;

    cin >> c;

    cout << "Сдача: " << c - d << endl;

    return 0;
}

Здесь:

a — количество товаров

b — счётчик for, потом карта

c — цена товара, потом деньги

d — итоговая сумма

e — сумма до скидки.


b = 1 — есть карта, b = 0 — нет.


---

5 задание

Тут есть один момент: в условии действительно сказано, что компьютер загадывает число от 1 до 20, но в самой лекции нет rand() и srand(). 

Поэтому, если делать строго только по изученной лекции, можно пока взять конкретное число:

#include <iostream>
using namespace std;

int main() {
    int a, b = 7, c = 0;

    while (true) {
        cin >> a;

        if (a < 1 || a > 20) {
            cout << "Ошибка! Введите число от 1 до 20." << endl;
            continue;
        }

        c++;

        if (a > b)
            cout << "Слишком много! Попробуйте ещё." << endl;
        else if (a < b)
            cout << "Слишком мало! Попробуйте ещё." << endl;
        else {
            cout << "Поздравляем, вы угадали!" << endl;
            cout << "Попыток: " << c << endl;
            break;
        }
    }

    return 0;
}

Здесь b = 7 — загаданное число.


---

Итого

Вот именно такой стиль я бы держал для твоей работы:

#include <iostream>
using namespace std;

int main() {
    int a, b, c;

    // код

    return 0;
}

Без bool, без функций, без массивов, без сложных конструкций, без лишних переменных и с обычными буквенными названиями. Это намного ближе к уровню вашей лекции 4. 

Единственное исключение — double в 3–4 заданиях нужен, потому что там могут получаться дробные цены.