3 / 3 / 0
Регистрация: 20.01.2009
Сообщений: 6
|
||||||
1 | ||||||
Найти элементы матрицы, которые являются наименьшими в своей строке и наибольшими в своем столбце20.01.2009, 19:44. Показов 1980. Ответов 5
Метки нет (Все метки)
В квадратной матрице нужно найти элементы (и запомнить их значения и координаты), которые являются наименьшими в своей строке и наибольшими в своем столбце одновременно.
Организовать ввод и вывод из файла, для нахождения этих элементов использовать подпрограмму. Запрещен обмен глобальными переменными между программой и подпрограммой (вот тут я мож чуток неправильно написала... не знаю, как это точно звучит))). Вот прога, помогите исправить ошибку, пожалуйста... и может там что-то неправильно, напишите плз
помогите плз, оч срочно...
0
|
20.01.2009, 19:44 | |
Ответы с готовыми решениями:
5
Найти элементы матрицы, которые одновременно являются минимальными в своей строке и максимальными в своем столбце Найти элементы матрицы, которые одновременно являются min в своей строке и max в своем столбце Найти элементы, которые одновременно являются минимальными в своей строке и максимальными в своем столбце Найти числа, которые являются одновременно максимальными в своем столбце и минимальными в своей строке |
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
|
|
20.01.2009, 20:00 | 2 |
z должно быть типа real, также и в процедуре нужно y зделать real. При сохранении файла что-то вообще ничего не понятно много лишних begin'ов и end'дов. Программу не проверял.
0
|
3 / 3 / 0
Регистрация: 20.01.2009
Сообщений: 6
|
|
20.01.2009, 20:30 [ТС] | 3 |
а почему количество элементов типа real?...
а можешь всё-таки проверить программу? у меня недостаточно знаний, чтобы самой это всё исправить, без помощи не обойтись Добавлено через 3 минуты 11 секунд з.ы. ошибку выдает на переменную i в 28 строке
0
|
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
|
|
20.01.2009, 22:31 | 4 |
Потомучто сохраняеш в файл z а файл типа real. Вот переписал сохранение в файл матрици, решение оставляю на твою совесть помучаешся немножко, порешаеш, я не проверял правильно решает или нет.
Код
Program prog; uses crt; const Nmax = 100; type massiv = array[1..Nmax, 1..Nmax] of real; mas = array[1..Nmax] of real; var a: massiv; c: mas; z, l, i, j, n, y: integer; f2, f: file of real; put, put2: string; s: real; ch: char; procedure raschet(var b: massiv; m: integer; var y: integer); var i, j, im, jm, k: integer; begin b[im, jm]:=b[1, 1]; im:=1; jm:=1; k:=0; y:=0; for i:=1 to m do begin for j:=1 to m do begin if b[i, j]<b[im, jm] then begin im:=i; jm:=j; end; b[im, jm]:=b[i, j]; for i:=im+1 to m do if b[i, j]>b[im, jm] then k:=k+1; if k=m-1 then y:=y+1; writeln ('нименьший в своей строке и наибольший в столбце элемент:'); writeln ('b[', im, jm, ']=', b[im, jm]:4:4); end; end; end; begin writeln ('vvesti massiv vrychnyu - 1, iz faila - lubaya klavisha'); ch:=readkey; if (ch=#49) then begin writeln ('vvedite razmernost matrici'); readln (n); for i:=1 to n do for j:=1 to n do begin writeln ('a[', i, j, ']='); readln (a[i, j]); end; end else begin writeln ('vvedite put k faily'); readln (put); assign (f, put); reset (f); i:=1; j:=1; n:=FileSize(f) div 2; while not eof (f) do begin if j>n then begin j:=1; inc(i); writeln; end; read(f, s); a[i, j]:=s; write ('a[', i, j, ']=', a[i, j]:4:4); inc(j); end; close(f); end; writeln; writeln('Massiv a:'); for i:=1 to n do begin for j:=1 to n do write(a[i, j]); writeln; end; raschet (a, n, z); writeln ('sohranit v faile - 1'); ch:=readkey; if (ch=#49) then begin writeln ('vvedite put k faily'); readln (put2); assign (f2,put2); rewrite (f2); for i:=1 to n do begin for j:=1 to n do write(f2, a[i, j]); end; close(f2); end; end. Извеняюсь конечно за ошибку не знаю о чем думал. но нужно убрать Код
n:=FileSize(f) div 2;
1
|
3 / 3 / 0
Регистрация: 20.01.2009
Сообщений: 6
|
|
20.01.2009, 22:52 [ТС] | 5 |
спасибо огромнейшее! сча буду разбираться))
0
|
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
|
|
20.01.2009, 23:29 | 6 |
Ну это еще не все так как написал не думая о программе то получилось много ошибок, вот убрал ошибки где были, в сохранении и чтении файла добавил размерность массива.
Код
Program prog; uses crt; const Nmax = 100; type massiv = array[1..Nmax, 1..Nmax] of real; mas = array[1..Nmax] of real; var a: massiv; c: mas; z, l, i, j, n, y: integer; f2, f: file of real; put, put2: string; s: real; ch: char; procedure raschet(var b: massiv; m: integer; var y: integer); var i, j, im, jm, k: integer; begin b[im, jm]:=b[1, 1]; im:=1; jm:=1; k:=0; y:=0; for i:=1 to m do begin for j:=1 to m do begin if b[i, j]<b[im, jm] then begin im:=i; jm:=j; end; b[im, jm]:=b[i, j]; for i:=im+1 to m do if b[i, j]>b[im, jm] then k:=k+1; if k=m-1 then y:=y+1; writeln ('нименьший в своей строке и наибольший в столбце элемент:'); writeln ('b[', im, jm, ']=', b[im, jm]:4:4); end; end; end; begin writeln ('vvesti massiv vrychnyu - 1, iz faila - lubaya klavisha'); ch:=readkey; if (ch=#49) then begin writeln ('vvedite razmernost matrici'); readln (n); for i:=1 to n do for j:=1 to n do begin writeln ('a[', i, j, ']='); readln (a[i, j]); end; end else begin writeln ('vvedite put k faily'); readln (put); assign (f, put); reset (f); i:=1; j:=1; read(f, s); n:=round(s); writeln('n=', n); while not eof (f) do begin if j>n then begin j:=1; inc(i); writeln; end; read(f, s); a[i, j]:=s; write ('a[', i, ',', j, ']=', a[i, j]:4:4); inc(j); end; close(f); end; writeln; raschet (a, n, z); writeln ('sohranit v faile - 1'); ch:=readkey; if (ch=#49) then begin writeln ('vvedite put k faily'); readln (put2); assign (f2, put2); rewrite (f2); s:=n; write(f2, s); for i:=1 to n do for j:=1 to n do write(f2, a[i, j]); close(f2); end; end.
0
|
20.01.2009, 23:29 | |
20.01.2009, 23:29 | |
Помогаю со студенческими работами здесь
6
Найти элемент матрицы, являющийся максимальным в своей строке и минимальным в своем столбце Найти элемент матрицы, являющийся максимальным в своей строке и минимальным в своем столбце Найти элемент матрицы, являющийся максимальным в своей строке и минимальным в своем столбце Найти элемент матрицы, являющийся максимальным в своей строке и минимальным в своем столбце Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |