- •Введение
- •Постановка задачи
- •Исходные данные
- •Решение задачи управления процессами перевозок в среде Pascal
- •Алгоритм решения задачи
- •Текст программы
- •Результаты работы программы
- •Решение задачи средствами ms Excel
- •Исходные данные и итоги по строкам и столбцам
- •Расчёты по заданию
- •Диаграмма по результатам расчета
- •Решение задачи средствами mathcad
- •Заключение
- •Список литературы
-
Текст программы
Program Perevozki;
Const N=7;
Type Mas=array[1..N,1..N] of real;
Var A:Mas;
V_stolbcov:array [1..N] of real;
V_strok:array [1..N] of real;
S, max: real;
i, j, imax, jmax: integer;
Orig:array [1..8] of string;
input, output: text;
{вывод таблицы грузоперевозок}
Procedure Raschet;
Var i, j: integer;
Begin
{находим сумму по строкам}
For i:=1 to N do
Begin
V_strok[i]:=0;
For j:=1 to N do
V_strok[i]:=A[i,j]+V_strok[i];
end;
{находим сумму по столбцам}
For i:=1 to N do
Begin
V_stolbcov[i]:=0;
For j:=1 to N do
V_stolbcov[i]:=A[j,i]+V_stolbcov[i];
end;
end;
Procedure Vivodfile(N: integer; A:Mas);
Var i, j: integer;
Begin
For i:=1 to N do
begin
For j:=1 to N do write (A[i,j]:7:1);
writeln;
end;
end;
Procedure region;
Begin
Orig[1]:=('Бургун');
Orig[2]:=('Корсик');
Orig[3]:=('Гвадел');
Orig[4]:=('Мартин');
Orig[5]:=('Гвиана');
Orig[6]:=('Пикард');
Orig[7]:=('Майотт');
Orig[8]:=('Сумма ');
end;
Procedure Vivod(N: integer; A:Mas);
Var i, j: integer;
Begin
writeln('------------------------------------------------------------------------------------------------------');
write ( '| ',Orig[1],'|',Orig[2],'|',Orig[3],'|',Orig[4],'|’,Orig[5],'|',Orig[6],’ |',Orig[7],' | ',Orig[8],' | ' );
writeln;
writeln('------------------------------------------------------------------------------------------------------');
For i:=1 to N do
Begin
write(Orig[i]);
For j:=1 to N do
write (' |',A[i,j]:7:1);
write(' | ',V_strok[i]:7:1);
writeln (' |');
if i=N then
Begin
For j:=1 to N do
Begin
if j=1 then
Begin
writeln('----------------------------------------------------------------------------------------');
write('Сумма ');
end;
write(' |',V_stolbcov[j]:7:1);
end;
writeln('|');
end;
writeln('------------------------------------------------------------------------------------------------');
end;
writeln;
end;
Procedure Vivod1(N: integer; A:Mas);
Var i, j: integer;
Begin
writeln('---------------------------------------------------------------------------------------------------');
write ('|',Orig[1],'|',Orig[2],'|',Orig[3],’|',Orig[4],'|' ,Orig[5],' |',Orig[6],'|' ,Orig[7],'| ',Orig[8],' | ');
writeln;
writeln('---------------------------------------------------------------------------------------------------');
For i:=1 to N do
Begin
write(Orig[i]);
For j:=1 to N do
write (' |',A[i,j]:7:1);
writeln (' |');
writeln('-------------------------------------------------------------------------------------------------');
writeln;
end;
end;
{главная программа}
Begin
cls;
{создание и распечатка исходной таблицы грузоперевозок}
assign (input, 'F:\variant13.txt');
assign (output, 'F:\результаты variant13.out');
reset (input); rewrite (output);
For i:=1 to N do
Begin
For j:=1 to N do read (input, A[i,j]);
readln(input);
end;
writeln;
region;
writeln (output, ' Обратная матрица:');
for i:=1 to n do
Begin
for j:=1 to n do write (output, A[i,j]:4:1);
writeln (output)
end;
close (output);
writeln ('Исходная таблица грузоперевозок с суммой:');
Raschet;
Vivod (N,A);
{найдем сумму грузоперевозок в местном сообщении}
S:=0;
For i:=1 to N do
S:=S+A[i,i];
writeln ('Сумма эл-тов главной диагонали = ', S,'.');
writeln;
max:=0;
{найдем максимальный элемент таблицы грузоперевозок выше главной диагонали}
For i:=1 to N do
For j:=1 to N do
if(i<j)and (A[i,j]>=max) then
Begin
max:=A[i,j];
imax:=i;
jmax:=j;
end;
writeln ('Значение макс. эл-та табл. выше глав. диагонали = ', max:6:3,'.');
writeln;
writeln ('Значение номера строки с максимальным элементом = ', imax,'.');
writeln;
writeln ('Значение номера столбца с максимальным элементом = ', jmax,'.');
writeln;
{ Уменьшение перевозок по наиденному региону на 9%}
For j:=1 to N do
A[imax,j]:=A[imax,j]-0.09*A[imax,j];
writeln ('Матрица пересчета = ');
Vivod (N,A);
writeln; writeln
End.
