Загрузка данных
Да. Если ориентироваться именно на последнюю лекцию, то предыдущий вариант был чуть сложнее, чем нужно: я использовал тернарный оператор и некоторые конструкции, которые тебе сейчас вообще не нужны.
В лекции 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 заданиях нужен, потому что там могут получаться дробные цены.