Модель "Движение автобусов по маршруту №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 час работы пассажиров было наооборот недостаточно. Следовательно, в данное время нужно пустить автобусы небольшие (маленькой вместимости) для того, чтобы снизить расходы за счет меньшего потребления горючего маленьким автобусом.
var i,j,k,shlth:integer; letter:char; name,minword,s1,x,x1:string; f1,f2:text; f:boolean; arr:array [1..100] of string; label 1;
begin writeln('Введіть імя файлу введення:'); readln(name); assign(f1,name); reset(f1); writeln('Введіть імя файлу виводу:'); readln(name); assign(f2,name); rewrite(f2); writeln('Введіть букву для пошуку:'); readln(letter); letter:=lowercase(letter); j:=1;
while not eof(f1) do begin readln(f1,x1); x:=lowercase(x1); i:=1; while (i<=length(x)) and (x[i] <> letter) do begin while (i<=length(x)) and (x[i] = ' ') do inc(i); if (i<=length(x)) and (x[i] <> letter) then while (i<=length(x)) and (x[i] <> ' ') do inc(i); end; if i>length(x) then begin writeln(f2,x1); arr[j]:=x1; inc(j); end; end;
f:=false; for k:=1 to j do begin i:=1; while (i<=length(arr[k])) and (arr[k][i] = ' ') and not f do inc(i); if i<length(arr[k])+1 then begin f:=true; goto 1; end; end;
1: if not f then writeln('У файлі f2 немає слова, відповідного умові вибору') else begin while (arr[k][i]<>' ') and (i<=length(arr[k])) do begin minword:=minword+arr[k][i]; inc(i); end; for k:=1 to j do begin i:=1; while i<=length(arr[k]) do begin while (i<=length(arr[k])) and (arr[k][i] = ' ') do inc(i); if i<=length(arr[k]) then begin shlth:=1; s1:=arr[k][i]; end; while (i<=length(arr[k])) and (arr[k][i] <> ' ') do begin s1:=s1+arr[k][i]; inc(i); inc(shlth); end; if shlth<length(minword) then minword:=s1; end; end; writeln('Найкоротша слово у файлі f2: ',minword); end;
Цель моделирования: составить оптимальный график интервалов движения автобусов по данному маршруту.
Задача: составить информационную модель для расчета интервалов движения автобуса по маршруту №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 час работы пассажиров было наооборот недостаточно. Следовательно, в данное время нужно пустить автобусы небольшие (маленькой вместимости) для того, чтобы снизить расходы за счет меньшего потребления горючего маленьким автобусом.
var i,j,k,shlth:integer;
letter:char;
name,minword,s1,x,x1:string;
f1,f2:text;
f:boolean;
arr:array [1..100] of string;
label 1;
begin
writeln('Введіть імя файлу введення:');
readln(name);
assign(f1,name); reset(f1);
writeln('Введіть імя файлу виводу:');
readln(name);
assign(f2,name); rewrite(f2);
writeln('Введіть букву для пошуку:');
readln(letter);
letter:=lowercase(letter);
j:=1;
while not eof(f1) do
begin
readln(f1,x1);
x:=lowercase(x1);
i:=1;
while (i<=length(x)) and (x[i] <> letter) do
begin
while (i<=length(x)) and (x[i] = ' ') do inc(i);
if (i<=length(x)) and (x[i] <> letter) then
while (i<=length(x)) and (x[i] <> ' ') do inc(i);
end;
if i>length(x) then
begin
writeln(f2,x1);
arr[j]:=x1;
inc(j);
end;
end;
f:=false;
for k:=1 to j do
begin
i:=1;
while (i<=length(arr[k])) and (arr[k][i] = ' ') and not f do inc(i);
if i<length(arr[k])+1 then begin f:=true; goto 1; end;
end;
1: if not f then writeln('У файлі f2 немає слова, відповідного умові вибору') else
begin
while (arr[k][i]<>' ') and (i<=length(arr[k])) do
begin
minword:=minword+arr[k][i];
inc(i);
end;
for k:=1 to j do
begin
i:=1;
while i<=length(arr[k]) do
begin
while (i<=length(arr[k])) and (arr[k][i] = ' ') do inc(i);
if i<=length(arr[k]) then begin shlth:=1; s1:=arr[k][i]; end;
while (i<=length(arr[k])) and (arr[k][i] <> ' ') do begin s1:=s1+arr[k][i]; inc(i); inc(shlth); end;
if shlth<length(minword) then minword:=s1;
end;
end;
writeln('Найкоротша слово у файлі f2: ',minword);
end;
close(f1); close(f2);
end.