Модель "Движение автобусов по маршруту №13"
Цель моделирования: составить оптимальный график интервалов движения автобусов по данному маршруту.
Задача: составить информационную модель для расчета интервалов движения автобуса по маршруту №13.
Тип: табличная информационная модель.
Модель:
Количество перевезенных пассажиров
1 час 2 час 3 час 4 час 5 час 6 час
Автобус 1 15 58 120 55 20 6
Автобус 2 4 65 140 70 21 3
Автобус 3 24 73 200 45 19 11
Автобус 4 12 80 170 60 39 8
Автобус 5 13 67 210 71 24 5
Сумма (чел) 68 343 840 301 123 33
Анализ модели:
1) наибольшее количество человек автобусы перевезли в 3 час работы. автобусы скорей всего были переполнены. Следовательно, в данное время необходимы дополнительные рейсы, возможно использовать большие по размеру автобусы.
2) В 1, 5 и 6 час работы пассажиров было наооборот недостаточно. Следовательно, в данное время нужно пустить автобусы небольшие (маленькой вместимости) для того, чтобы снизить расходы за счет меньшего потребления горючего маленьким автобусом.
Первое решение понятно, но это только общие мысли, в целом оно ошибочно по двум пунктам
1. В задании идёт речь о 20 веке, а это года 1901,19022000. Поэтому в объявлении массива нужно указать именно эти интервалы. Или просто 1 - 100, понятно же, что это один век, а при отображении года следует отображать (1900+i).
2. В задании не определено, с какой точностью это самое население считается, если с точностью до человека, то INTEGER не хватит, поэтому этот вопрос нужно уточнить и в зависимости от точности (до тысяч, до десятков или сотен тысяч человек) выбрать соответствующий формат представления данных.
3. Странно писать 100 одинаковых операторов присваивания(кстати в тексте ещё ошибка - присваивается ОДНО И ТО ЖЕ значение, ведь оператора ввода данных НЕТ!).
Такие вещи делаются в цикле по индексам. Внутри цикла 2 оператора
Ввод()
Присваивание
Опять же в задании не сказано, откуда берутся данные, ведь они могут браться с клавиатуры, с внешнего устройства(диска) или с какого-нибудь другого устройства ввода, например, сканера. Эти вводы реализуются похожими, но РАЗНЫМИ операторами.
Вот мои замечания, хотя, если формально точно реализовывать предложенное задание, нужно всего лишь описать массив, в котором будут храниться некоторые данные. В этом случае действительны лишь замечания 1 и 2.
И ещё. Я не помню, что такое INTEGER. INTEGER 2-байтный точно не хватит, INTEGER 4-байтный должно хватить.
Успехов!
// Внимание! Если программа не работает, обновите версию!
function IsArmstrong(n:integer):boolean;
// Является ли n числом Армстронга?
begin
var a:=n.ToString.Select(c->c.ToDigit).ToArray;
Result := n=(a.Select(d->Round(Power(d,a.Length))).Sum);
end;
begin
Range(100,9999).Where(i->IsArmstrong(i)).Println
end.
Результат
153 370 371 407 1634 8208 9474