СЛОЖНОЕ ЗАДАНИЕ! ДАЮ 60 БАЛЛОВ!! С++
Грузовой самолет летит из пункта A в пункт C через пункт B. Емкость бака для топлива у самолета 360 000 литров. Потребление топлива на 1 км в зависимости от веса груза у самолета следующее: до 50 000 кг: 13.53 литров от 50 000 до 100 000 кг: 15.29 литров от 100 000 до 200 000 кг: 17.06 литров от 200 000 до 250 000 кг: 18.71 литров Пользователь вашей программы вводит такие данные, как расстояние от пункта A до пункта B и от пункта B до пункта C, вес груза в пункте A, погрузка/разгрузка в пункте B (если пользователь вашей программы введет, например: -26 000, то значит в пункте B была разгрузка и дальше от пункта B до пункта C грузовой самолет летел с меньшим весом груза и, соответственно, он сжигал меньше топлива на 1 км оставшегося пути). Также пользователь вводит на сколько % были заполнены баки грузового самолета в пункте A. Ваша программа должна рассчитать минимальное кол-во литров топлива на которое должны дозаправить самолет в пункте B, чтобы он успешно долетел до конечного пункта C его маршрута. Если пользователь введет некорректные данные, то вывести сообщение в консоль "Вы ввели некорректные данные. Полет самолета по заданному маршруту не возможен!!!" Входные данные: В пункте A баки самолета заполнили на (%): 65 Расстояние от пункта A до пункта B (км): 9800 Вес груза в точке A (кг): 125 000 Погрузка/Разгрузка в точке B: -26 000 Расстояние от пункта B в пункт C (км): 7200 Выходные данные: В пункте B самолет необходимо дозаправить на минимум (л): 43 276
Если можно, то скиньте файл с кодом, заранее спасибо!)
Answers & Comments
Ответ + объяснение: ( отдельно код не вместился :( - больше 5.000 символов Знания не пропускают )
#include <iostream> // Библиотека ввода - вывода
using namespace std; // Пространство имен
double fuel_consumption(int weight) // Функция fuel_consumption для вычисления потребления топлива с аргументом weight, который содержит в себе вес груза
{
double fuel_consumption = 0; // Создание вещественной переменной fuel_consumption для хранения потребления топлива на 1 км
if (weight <= 50000) fuel_consumption = 13.53; // Если вес < или = 50.000, тогда потребление топлива на 1 км = 13.53
else if (weight > 50000 && weight <= 100000) fuel_consumption = 15.29; // Иначе, если вес > 50.000 И вес < или = 100.000, тогда потребление топлива на 1 км = 15.29
else if (weight > 100000 && weight <= 200000) fuel_consumption = 17.06; // Иначе, если вес > 100.000 И вес < или = 200.000, тогда потребление топлива на 1 км = 17.06
else if (weight > 200000 && weight <= 250000) fuel_consumption = 18.71; // Иначе, если вес > 200.000 И вес < или = 250.000, тогда потребление топлива на 1 км = 18.71
return fuel_consumption; // Возвращаем значение переменной fuel_consumption
}
int main()
{
int percent; // Создание целочисленной переменной, хранящей заполненность бака в %
double fuel_cons; // Создание вещественной переменной для хранения потребления топлива на 1 км (хранение результата функции fuel_consumption)
double fuel = 360000; // Создание вещественной переменной, хранящей текущее количество топлива.
cout << "Баки самолета заполнены на (%): "; // Вывод сообщения в консоль
cin >> percent; // Ввод значения переменной percent с клавиатуры
fuel = fuel / 100 * percent; // Вычисление количества бензина в баке по формуле: количество бензина = бензин ÷ 100 · 65 (процентов)
int distance_a_b, weight_a; // Создание целочисленных переменных:
cout << "Расстояние от пункта A до пункта B (км): "; // Вывод сообщения в консоль
cin >> distance_a_b; // Ввод с клавиатуры расстояния из пункта А в пункт В
cout << "Вес груза в точке A(кг): "; // Вывод сообщения в консоль
cin >> weight_a; // Ввод с клавиатуры веса груза в пункте А
fuel_cons = fuel_consumption(weight_a); // Переменной fuel_cons присваиваем возвращаемое значение из функции fuel_consumption (расход топлива на 1 км)
if (fuel_cons * distance_a_b > fuel) // Проверка на некорректные данные:
Если расход топлива на 1 км * дистанция из пункта А в пункт Б > значения переменной, хранящей текущее количества топлива
{
cout << "Вы ввели некорректные данные. Полет самолета по заданному маршруту не возможен!!!"; // Вывод сообщения в консоль
return 1; // Конец программы с кодом ошибки
}
else // Иначе
{
fuel -= fuel_cons * distance_a_b; // Емкость бака = емкость бака - расход топлива на 1 км * расстояние из пункта А в пункт В (узнаем количеств оставшегося топлива)
}
int distance_b_c, weight_b; // Создание целочисленных переменных:
cout << "Погрузка/Разгрузка в точке B: "; // Вывод сообщения в консоль
cin >> weight_b; // Ввод с клавиатуры веса груза в пункте В
weight_a += weight_b; // Выясняем, на сколько был дозагружен/разгружен самолет в пункте В (Вес в пункте А + Вес в пункте В)
fuel_cons = fuel_consumption(weight_a); // Переменной fuel_cons присваиваем возвращаемое значение из функции fuel_consumption (расход топлива на 1 км)
cout << "Расстояние от пункта B в пункт C (км): "; // Вывод сообщения в консоль
cin >> distance_b_c; // Ввод с клавиатуры расстояния из пункта В в пункт С
fuel = (distance_b_c * fuel_cons - fuel); // Выясняем, на сколько необходимо дозаправить самолет, чтобы долететь до пункта С (Емкость бака = расстояние из пункта В в пункт С * расход на 1 км - емкость бака)
cout << "В пункте B самолет необходимо дозаправить на минимум (л): "; // Вывод сообщения в консоль
cout << fuel; // Вывод значения переменной fuel
}