Экономика

Перевести код из Pascal в C, C++ или С#: program PrResh; ///////////////Подключение графического модуля/////////////// var n, m, r: Integer; A: array [1..100, 1..100] of Real; o: char; w: text; ///////////////Процедура ввода значений/////////////// procedure Vvod(n, m: integer); var i, j: integer; begin assign (w, 'PrResh.txt'); rewrite (w); for i := 1 to n do begin for j := 1 to m do begin Write('A[', i, ',', j, ']='); Read(A[i, j]); end; end; writeln('Матрица:'); writeln(w, 'Матрица:'); for i := 1 to n do begin for j := 1 to m do begin write(A[i, j], ' '); write(w, A[i, j], ' '); end; writeln; writeln(w); end; writeln(w); close(w); end; ///////////////Критерий Сэвиджа/////////////// procedure Sevi(n, m: integer); var B: array [1..100] of real; Q: array [1..100, 1..100] of real; i, j: integer; c: real; begin assign (w, 'PrResh.txt'); append(w); writeln(w, 'Критерий Сэвиджа.'); writeln(w, 'Наибольшее значение каждого столбца.'); for j := 1 to n do begin c := A[1, j]; for i := 1 to m do begin if A[i, j] > c then c := A[i, j]; end; B[j] := c; writeln(w, 'Значение ', j, ' столбца = ', B[j]); end; writeln(w, 'Вычтем из наибольшего значения столбца, каждое значение столбца.'); writeln(w, 'Сформируем новую матрицу из полученных значений.'); for i := 1 to m do begin for j := 1 to n do begin Q[i, j] := B[j] - A[i, j]; write(w, Q[i,j], ' '); end; writeln(w); end; writeln(w, 'Наибольшее значение каждой строки.'); for i := 1 to n do begin c := Q[i, 1]; for j := 1 to m do begin if Q[i, j] > c then c := Q[i, j]; end; B[i] := c; writeln(w, 'Значение ', i, ' строки = ', B[i]); end; for i := 1 to n do begin Writeln('B[', i, ']=', B[i]); end; c := B[1]; for i := 1 to n do begin if B[i] < c then c := B[i]; end; writeln('Ответ:'); writeln(w, 'Ответ:'); for i := 1 to n do begin if B[i] = c then begin writeln('B[', i, ']=', B[i]); writeln(w, 'E', i,'=', B[i]); end; end; close(w); end; ///////////////Критерий Гермейера/////////////// procedure Ger(n, m: integer); var i, j : integer; u:real; V1, V2: array [1..100, 1..100] of real; q, B: array [1..100] of real; c: real; begin assign (w, 'PrResh.txt'); append(w); writeln(w, 'Критерий Гермейера.'); Writeln('Для решения необходимы сведенья о вероятности принятия каждого решения.'); Writeln(w, 'Вероятности принятия решения:'); Readln (u); for j := 1 to m do begin q[j]:=u; //Write('q', j, '='); //Readln(q[j]); Write(w, 'q', j, ' = ', q[j], ' '); end; writeln(w); c := A[1, 1]; for i := 1 to n do begin for j := 1 to m do begin if A[i, j] > c then c := A[i, j]; end; end; writeln(w, 'Наибольшее значение в матрице = ', c); c := c + 1; writeln(w, 'Необходимо из каждого элемента матрицы вычесть ', c); writeln(w, 'Полученная матрица:'); for i := 1 to n do begin for j := 1 to m do begin V1[i, j] := A[i, j] - c; write(w, V1[i,j], ' '); V2[i, j] := V1[i, j] * q[j]; end; writeln(w); end; writeln(w, 'Умножаем каждый элемент матрицы на соответствующую вероятность.'); writeln(w, 'Выбираем наименьший результат каждой строки.'); for i := 1 to n do begin c := V2[i, 1]; for j := 1 to m do begin if V2[i, j] < c then c := V2[i, j]; end; B[i] := c; writeln(w, 'Значение ', i, ' строки = ', B[i]); end; for i := 1 to n do begin Writeln('B[', i, ']=', B[i]); end; c := B[1]; for i := 1 to n do begin if B[i] > c then c := B[i]; end; writeln('Ответ:'); writeln(w, 'Ответ:'); for i := 1 to n do begin if B[i] = c then begin writeln('B[', i, ']=', B[i]); writeln(w, 'E', i,'=', B[i]); end; end; close(w); end; ///////////////Начальный ввод в прогамму/////////////// begin assign (w, 'PrResh.txt'); rewrite (w); write(w, 'Матрица:'); close(w); Write('Введите количество строк матрицы '); Readln(n); Write('Введите количество столбцов матрицы '); Readln(m); Vvod(n, m); o := 'y'; while o <> 'n' do begin if o = 'y' then begin writeln(''); writeln('Методы выбора:'); writeln('1. Критерий Сэвиджа;'); writeln('2. Критерий Гермейера;'); Write('Введите номер метода: '); Readln(r); case r of 1: Sevi(n, m); 2: Ger(n, m); 3: o := 'n'; end; end; if o = 'y' then begin Writeln('Решить пример другим методом?'); Writeln('Да - y! Нет - n!'); Read(o); end; //clrscr; end; end.