Перевести код из 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.
107
110
Ответы на вопрос:
Using system; using system.linq; using system.text; namespace test1 { class program { static string file_name = "prresh.txt"; static bool handfree = true; //определяет вручную ли вводятся данные или рандомом static void main() { console.writeline("введите размеры матрицы (строки x столбцы)"); int rows = convert.toint32(console.; int columns = convert.toint32(console.; var m = initmatrix(rows, columns, handfree); int reply; do { console.writeline(); console.writeline("выбирите метод решения: "); console.writeline("1. критерий сэвиджа"); console.writeline("2. критерий гермейера"); console.writeline("3. выход"); reply = convert.toint32(console.; switch (reply) { case 1: { savagecriterion(m); break; } case 2: { var q = new double[m.getlength(1)]; if (handfree) { var r = new random(datetime.now.millisecond); for (var j = 0; j < q.length; j++) { q[j] = r.nextdouble(); } } else { console.writeline("введите вероятности"); for (var j = 0; j < q.length; j++) { q[j] = convert.todouble(console.; } } germeiercriterion(m, q); break; } default: { reply = -1; break; } } } while (reply > 0); console.readkey(); } static double[,] initmatrix(int rows, int columns, bool handfree = false) { var m = new double[rows, columns]; var sb = new stringbuilder(); sb.appendline("матрица [" + rows + "x" + columns + "] : "); if (handfree) { var random = new random(datetime.now.millisecond); for (var i = 0; i < rows; i++) { for (var j = 0; j < columns; j++) { m[i, j] = random.nextdouble() * random.next(-50, 50); sb.append(m[i, j] + " "); } sb.appendline(); } } else { for (var i = 0; i < rows; i++) { for (var j = 0; j < columns; j++) { console.write("m[" + i + ", " + j + "] = "); m[i, j] = convert.todouble(console.; sb.append(m[i, j] + " "); } console.writeline(); sb.appendline(); } } outputtoconsoleandlog(sb.; return m; } static double savagecriterion(double[,] m) { outputtoconsoleandlog("критерий сэвиджа."); outputtoconsoleandlog("наибольшее значение каждого столбца."); var max = new double[m.getlength(1)]; for (var j = 0; j < max.length; j++) { max[j] = m[0, j]; for (var i = 1; i < m.getlength(0); i++) { if (max[j] < m[i, j]) max[j] = m[i, j]; } outputtoconsoleandlog("max[" + j + " столбца] = " + max[j]); } outputtoconsoleandlog("вычтем из наибольшего значения столбца, каждое значение столбца."); outputtoconsoleandlog("сформируем новую матрицу из полученных значений."); var sb = new stringbuilder(); for (var i = 0; i < m.getlength(0); i++) { for (var j = 0; j < m.getlength(1); j++) { m[i, j] = max[j] - m[i, j]; sb.append(m[i, j] + " "); } sb.appendline(); } outputtoconsoleandlog(sb.; outputtoconsoleandlog("наибольшее значение каждой строки."); max = new double[m.getlength(0)]; for (var i = 0; i < m.getlength(0); i++) { max[i] = m[i, 0]; for (var j = 0; j < m.getlength(1); j++) { if (max[i] < m[i, j]) max[i] = m[i, j]; } outputtoconsoleandlog("max[" + i + " строки] = " + max[i]); } outputtoconsoleandlog("ответ: " + max.; return max.last(); } static double germeiercriterion(double[,] m, double[] q) { outputtoconsoleandlog("критерий гермейера."); outputtoconsoleandlog("для решения необходимы сведенья о вероятности принятия каждого решения."); outputtoconsoleandlog("вероятности принятия решения: "); for (var j = 0; j < q.length; j++) { outputtoconsoleandlog("q[" + j + "] = " + q[j]); } var max = m[0, 0]; for (var i = 0; i < m.getlength(0); i++) { for (var j = 0; j < m.getlength(1); j++) { if (max < m[i, j]) max = m[i, j]; } } outputtoconsoleandlog("наибольшее значение в матрице = " + max); max += 1; outputtoconsoleandlog("необходимо из каждого элемента матрицы вычесть " + max); outputtoconsoleandlog("полученная матрица: "); var sb = new stringbuilder(); for (var i = 0; i < m.getlength(0); i++) { for (var j = 0; j < m.getlength(1); j++) { m[i, j] -= max; sb.append(m[i, j] + " "); m[i, j] *= q[j]; } sb.appendline(); } outputtoconsoleandlog(sb.; outputtoconsoleandlog("умножаем каждый элемент матрицы на соответствующую вероятность."); outputtoconsoleandlog("выбираем наименьший результат каждой строки."); var min = new double[m.getlength(0)]; for (var i = 0; i < m.getlength(0); i++) { m[i, 0] *= q[0]; min[i] = m[i, 0]; for (var j = 1; j < m.getlength(1); j++) { m[i, j] *= q[j]; if (min[i] > m[i, j]) min[i] = m[i, j]; } outputtoconsoleandlog("min[" + i + " строки] = " + min[i]); } outputtoconsoleandlog("ответ: " + min.; return min.max(); } static void outputtoconsoleandlog(string text) { console.writeline(text); using (var file = new system.io.streamwriter(file_name, true)) { file.writeline(text); } } } }
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Zaminaej26.02.2022 11:34
-
orlovapolina1428.03.2021 12:52
-
dreytes06.03.2021 20:29
-
иван205422.09.2020 07:36
-
artyom1111111228.08.2021 07:13
-
alinka1215200206.09.2021 20:20
-
gurboolga09.04.2023 21:35
-
anghelina112.10.2021 08:38
-
мангл6328.05.2021 15:17
-
Shark23824.07.2020 16:12
![Caktus Image](/tpl/img/cactus.png)
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.