--PAGE_BREAK--1.2 Программа решения задачи на языке Паскаль
Program perevozki;
uses crt;
const n=10;
Type Mas=array[1..n,1..n]of real;
Var i,j,k:byte;
S:real;
A:mas;
f1,f2:text;
sum_po_strokam:array[1..n] of real;
sum_po_stolscam:array[1..n] of real;
sum_po_stolscam_bez_MC:array[1..n] of real;
max:real;
jmax:byte;
imax:byte;
Reg:array[1..n] of string;
Procedure name;
begin
for i:=1 to n do
begin
Writeln('введите название i-региона ');
read(Reg[i]);
end;
end;
{ввод таблицы грузоперевозок в регионах РБ}
Procedure vvod(n:byte; var A:mas);
begin
reset(f1);
for i:=1 to n do
begin
for j:=1 to n do
read(f1,A[i,j]);
readln(f1);
end;
close(f1);
end;
{вывод таблицы грузоперевозок по пунктам в файл f2}
Procedure Vivodvfile(n:byte; A:Mas);
begin
writeln(f2,' _________________________________________________________________');
writeln(f2);
write(f2, ' ');
for i:=1 to n do
write(f2,Reg[i]:7,' ');
writeln(f2);
writeln(f2,' _________________________________________________________________');
for i:=1 to n do
begin
write(f2, Reg[i]:12,' ');
for j:=1 to n do
write(f2,A[i,j]:8:1);
writeln(f2);
end;
writeln(f2,' _________________________________________________________________');
writeln(f2);
end;
{вывод данной программы}
Procedure Schit (n:byte; A:Mas);
begin
write(' ');
for i:=1 to n do
write( reg[i]:10);
writeln;
writeln;
for i:=1 to n do
begin
write(reg[i]:10,' !') ;
for j:=1 to n do
write(A[i,j]:10:1);
write(' !') ;
writeln;
writeln();
end;
end;
{определение количества грузов, перевозимых в местном сообщение в регионах РБ}
Function diag(n:byte; A:Mas):real;
var i,j:byte;s:real;
begin
s:=0;
for i:=1 to n do
s:=s+A[i,i];
diag:=s;
writeln('Cумма количества грузов, перевозимых в местном сообщении по всем регионам равна ', s);
writeln;
end;
{нахождение итогов по регионам вывоза грузов}
Procedure Sum_strok(n:byte;A:Mas);
begin
for j:=1 to n do
sum_po_strokam[i]:=0;
for j:=1 to n do
for i:=1 to n do
sum_po_strokam[j]:=sum_po_strokam[j]+A[i,j];
for i:=1 to n do
writeln(sum_po_strokam[j]:19:1);
writeln();
writeln(f2,'Итоги количества грузов прибыло из регионов');
write(f2,' ');
for j:=1 to n do
write(f2,Reg[j]:7,'/');
writeln();
for j:=1 to n do
write(f2,sum_po_strokam[j]:8:1);
writeln(f2);
end;
{нахождение итогов количества грузов отправленных в регионы}
Procedure Sum_stolbzov(n:byte;A:Mas);
begin
for i:=1 to n do
sum_po_stolscam[i]:=0;
for i:=1 to n do
for j:=1 to n do
sum_po_stolscam[i]:=sum_po_stolscam[i]+A[i,j];
for i:=1 to n do
writeln(sum_po_stolscam[i]:19:1);
writeln();
writeln(f2,'Итоги количества грузов отправленных в регионы ');
write(f2,' ');
for i:=1 to n do
write(f2,Reg[i]:7,'/');
writeln();
for i:=1 to n do
write(f2,sum_po_stolscam[i]:8:1);
writeln(f2);
end;
{Сумма столбцов без местного сообщения}
Procedure Sum_po_stolbcam_bez_MC(n:byte;A:mas);
Begin
for j:=1 to n do
sum_po_stolscam_bez_MC[j]:=sum_po_strokam[j]-A[j,j];
writeln('Сумма по столбцам таблицы без учета грузов, перевозимых в местном сообщении');
for i:=1 to n do
writeln(reg[j]:18, ' ',sum_po_stolscam_bez_MC[j]:8:1);
writeln();
writeln(f2,'Итоги количества грузов прибывших из регионов');
write(f2,' ');
for j:=1 to n do
write(f2,Reg[j]:7,'/');
writeln();
for j:=1 to n do
write(f2,sum_po_stolscam_bez_MC[j]:8:1);
writeln(f2);
end;
{нахождение регионов, между которыми установлена максимальная перевозка груза}
Procedure Max_perevozka(n:byte;A:mas);
begin
max:=sum_po_stolscam_bez_MC[1];
imax:=1;
for i:=1 to n do
if sum_po_stolscam_bez_MC[i]>max then
begin
max:=sum_po_stolscam_bez_MC[i];
imax:=i;
k:=imax;
end;
Writeln('в регионе',' ', Reg[imax],' установлена минимальная перевозка, которая составляет',' ', max:5:0 ,' ','тонн');
writeln(f2);
writeln(f2,'регионы, между которыми установлена минимальная перевозка груза — ',Reg[imax]);
writeln(f2);
end;
{по региону прибытия минимального груза, все размеры прибытия груза уменьшить на 10%}
Procedure Umengruz(n,k:byte; var A:mas);
begin
for i:=1 to n do
A[i,k]:=(A[i,k])*0.9;
Writeln('------------------------------------------------------------------------------');
writeln('Новый объём груза, прибывшего в регион, ',Reg[k],' будет составлять');
writeln;
end;
{главная программа}
begin
writeln(' к у р с о в а я р а б о т а в а р и а н т — 6 ');
Writeln;
Writeln('Индивидуальное задание:');
Writeln('Определить регионы(исключая местное сообщение)между которыми установлена максимальная перевозка(корреспонденция)груза ');
Writeln('По региону, прибытия данного груза, все размеры прибытия уменьшить на 10%!');
Writeln;
assign(f1,'D:\sazan.txt');
assign(f2,'D:\sazan2.txt');
{открытие файла для записи}
rewrite(f2);
name;
writeln(f2,' Курсовая работа Сазановича К.В.');
{вызов процедуры VVODзаполнения таблицы грузоперевозок в регионах РБ}
vvod(n,A);
{вызов процедуры Schitвывода таблицы грузоперевозок в регионах РБ}
writeln(' исходная таблица перевозок грузов');
writeln;
Schit(n,A);
Writeln(f2, ' исходная таблица перевозок грузов');
vivodvfile(n,A);
Writeln(f2);
Writeln('итоги по регионам прибытия грузов');
Sum_strok(n,A);
Writeln('итоги по регионам вывоза грузов');
Sum_stolbzov(n,A);
writeln('сумма количества грузов в местном сообщении по всем регионам ',diag(n,A),' тонн');
writeln(f2,' ');
writeln(f2,'сумма количества грузов в местном сообщении по всем регионам ',diag(n,a),'тонн');
{вызов процедуры Min_perevozka}
Sum_po_stolbcam_bez_MC(n,A);
Max_perevozka(n,A);
Umengruz(n,k,A);
Schit(n,A);
writeln(f2,' Таблица грузоперевозок в регионах');
writeln(f2,' (таблица после корректировки объёмов прибытия грузов в пункт — ',Reg[k],')');
vivodvfile(n,A);
Writeln('Работу выполнил Сазановича К.В.');
Writeln(f2, 'Курсовую работу выполнил Сазановича К.В.');
{закрытиефайлаf2}
close(f2); end.
1.3 Результаты решения задачи
Курсовая работа Сазановича К.В.
Исходная таблица перевозок грузов
Итоги количества грузов прибыло из регионов
Итоги количества грузов отправленных в регионы
сумма количества грузов в местном сообщении по всем регионам 445тонн
Итоги количества грузов прибывших из регионов
регионы, между которыми установлена минимальная перевозка груза — 9
Раздел 2. Решение задачи средствами Microsoft Excel
Исходная таблица
При помощи функции “СУММ(ячейка1: ячейка2)” мы высчитали суммы столбцов, суммы столбцов без местного сообщения и суммы строк. Таблица приведена ниже:
Таблица с формулами
При помощи функций “ИНДЕКС”, “ПОИСКПОЗ” и “МАКС” находим следующие значения в расчетах:
Таблица с формулами
После нахождения максимального региона уменьшаем максимальный столбец на 10% и получаем таблицу:
Таблица в формулах
При построении использовались гистограммы с группировкой, отображающие количество отправленного и принятого груза в каждом регионе до и после уменьшения грузопотока в регионе с максимальным местным сообщением.
продолжение
--PAGE_BREAK--