Главная » Экономика |
1. Постановка задачи. Даны: вектор непроизводственного потребления , матрицы межотраслевого баланса и . Рассчитать матрицу В. Все расчеты произвести с использованием программы, написанной на алгоритмическом языке ПАСКАЛЬ. № варианта Вектор потребления, Матрица межотраслевого баланса Матрица межотраслевого баланса 1 1/3 1/3 1/6 ½ ¼ ½ ¼ ¼ 1/4 [Овал: Начало]
1 11 да нет 5 Х=B*C Х1=B1*C 4 B=Br-1 B1=Br1-1 3 Br=E-A Br1=E-A/ 2 Em(l,n) [Подпись: Хa≥C] [Подпись: Хa1≥C]
[Овал: Конец]
program KURSOVOJ_PROJECT; uses crt; type int=0..10; vec=array [0..10] of real; matr=array [0..10,0..10] of real; var x,x_1,ax,ax_1,c:vec; e,a,a_1,b,b_1,br,br_1: matr; m,n:int; name:char; procedure readvec (var x:vec; name:char; n:int); var i:int; begin writeln(' Ввести вектор ',name,' размера n=', n); for i:=0 to n-1 do begin write (' ',name,'[',i:2,']='); readln(x[i]) end; end;readvec procedure writevec (var x:vec; name:char; n:int); var i:int; begin writeln(' Вывести вектор ',name, ' размера n=', n); for i:=0 to n-1 do begin write (' ',name,'[',i:2,']='); writeln(x[i]:10:5) end; end;writevec procedure readmatr(var y:matr; name:char; n,m:int); var i,j:int; begin writeln (' Ввести матрицу ',name, ' размера : n=' ,n,', * m=' ,m); for i:=0 to n-1 do for j:=0 to m-1 do begin write(' ',name, '[' ,i:2,' ,' ,j:2, ']= '); readln (y[i,j]) end; end;readmatr procedure writematr(var y:matr; name:char; n,m:int); var i,j:int; begin writeln (' Вывести матрицу ',name, ' размера: n=' ,n,', * m=' ,m); for i:=0 to n-1 do for j:=0 to m-1 do begin write(' ',name, '[' ,i:2,' ,' ,j:2, ']= '); writeln (y[i,j]:8:4) end; end;writematr procedure Em (var E:matr; n:int); var i,j:int; begin for i:=0 to n do for j:=0 to n do if i=j then E[i,j]:=1 else E[i,j]:=0; end;end E procedure Rmatr(var a,b,c:matr; n,m:int); var i,j:int; begin for i:=0 to n do for j:=0 to m do c[i,j]:=a[i,j]-b[i,j]; end;Rmatr procedure obrmatr (Var AIS,AP: matr; n:int); var i,j,k,l:integer; a:matr; begin a:=AIS; n:=n-1; for k:=0 to n do begin for j:=0 to n do if (j<>k) then AP[k,j]:=-a[k,j]/a[k,k]; for i:=0 to n do if (i<>k) then AP [i,k]:=a[i,k]/a[k,k]; for i:=0 to n do for j:=0 to n do if (i<>k) and (j<>k) then AP[i,j]:= a[i,j]-a[i,k]*a[k,j]/a[k,k]; AP[k,k]:=1/a[k,k]; a:=AP; end; end; end obrmatr procedure matrvec(var b:matr; var c,x:vec; n:int); var i,j:int; begin for j:=0 to n-1 do begin x[j]:=0; for i:=0 to n-1 do x[j]:=x[j]+b[i,j]*c[i] end; end; end matrvec { ТЕЛО ПРОГРАММЫ } begin clrscr; readvec (c,'C',2); readmatr (a,'A',2,2); readmatr (a_1,'Z',2,2); Em(e,2); rmatr(e,a,br,2,2); rmatr(e,a_1,br_1,2,2); obrmatr(br,b,2); obrmatr(br_1,b_1,2); matrvec (B,C,x,2); matrvec (B_1,C,x_1,2); matrvec (A,x,ax,2); matrvec (A_1,x_1,ax_1,2); if (ax[0]<=c[0]) and (ax[1]<=c[1]) then writeln (' Экономика матрица A - эффективна') else writeln (' Экономика матрица A - не эффективна'); if (ax_1[0]<=c[0]) and (ax_1[1]<=c[1]) then writeln (' Экономика матрица A_1 - эффективна') else writeln (' Экономика матрица A_1 - не эффективна'); readln write matr(B,’B’,2,2); write matr (B1,’Z’,2,2); write vec (x,’x’.2); write vec(x1,’y’,2); end. {Окончание программы} 1.Процедура ввода вектора Ввод вектора X размерностью n Для I от n до n-1 с шагом 1 делать Ввести значение элемента массива X[i] 2.Процедура вывода вектора Вывод вектора X размерностью n Для i от 0 до n-1 с шагом 1 делать Вывести вектор X[i;j] 3.Процедура ввода матрицы Ввод размерности n,m ввод элементов массива Y[i;j] Для i от 0 до n-1 с шагом 1 делать Для i от 0 до m-1 с шагом 1 делать Ввести значение элемента массива Y[i;j] 4.Процедура вывода матрицы Вывод массива Y[i;j] размерностью n,m Для i от 0 до n-1 с шагом 1 делать Для i от 0 до m-1 с шагом 1 делать Вывести массив Y[i;j] 5.Процедура вывода единичной матрицы Вывод массива E[i;j] размерностью n Для i от 0 до n-1 с шагом 1 делать Для i от 0 до m-1 с шагом 1 делать I=j Да Нет E [I;j] = 1 F[j;j]=0 Вывести матрицу E [i;j] 6.Процедура умножения вектора на матрицу Для i от 0 до n-1 с шагом 1 делать Для i от 0 до m-1 с шагом 1 делать C[i;j]:=a[i;j]-b[i;j] 7.Процедура умножения вектора на матрицу Для i от 0 до n-1 с шагом 1 делать X[i;j]:=0 Для i от 0 до n-1 с шагом 1 делать X[j]:=x[j]+c[i]*b[i;j] 8.Процедура образования матрицы А=ais;n:=n-1 Для k от 0 до n с шагом 1 делать Для i от 0 до n с шагом 1 делать j≠k true Ap[k;j]:=-a[k;j]/a[k;k] Для I от 1 до n с шагом 1 делать i≠k true Ap[i;k]:=A [i;k]/A[k;k] Для i от 0 до n с шагом 1 делать Для j от 0 до nс шагом 1 делать i≠k;j≠k true AP[i;j]:=a[i;j]-a[i;j]*a[k;j]/a[k;k] AP[k;k]:=1/a[k;k] Q:=AP Расчеты при вводе значений При добавлении: B[0,0]=4.6154 B[0,1]=1,0462 B[1,0]=3,0769 B[1,1]=2,0308 Вывести матрицу Z размера :n=2,m=2 Z[0,0]=2,400 Z[0,1]=0,800 Z[1,0]=0,800 Z[1,1]=1,600 Вывести вектор Х размера n=2 Х[0]=13,84615 Х[1]=7,13846 Вывести вектор x размера n=2 Y[0]=4,8000 Y[1]=5,6000 Скачать архив (16.3 Kb) Схожие материалы: |
Всего комментариев: 0 | |