• Предмет: Информатика
  • Автор: dimkayou123321
  • Вопрос задан 2 года назад

СЛОЖНОЕ ЗАДАНИЕ! ДАЮ 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
Если можно, то скиньте файл с кодом, заранее спасибо!)

Ответы

Ответ дал: uplmtq
0

Ответ + объяснение: ( отдельно код не вместился :( - больше 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;  // Создание целочисленных переменных:

  • 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;   // Создание целочисленных переменных:

  • 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

}

Приложения:
Вас заинтересует