IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Матрица, максимум строк
mikle
сообщение 25.02.2007 12:40
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: миша

Репутация: -  0  +


Пожалуйста, помогите исправить программу. Просто перемкнуло на ней. mega_chok.gif
Текст задания:
Найти max среди всех элементов тех строк заданной матрицы, которые упорядочены по возрастанию.

program pract11_4;
const n=3;m=3;
type mas=array[1..n,1..m] of integer;
mas2=array[1..n] of integer;
function max(n:byte;a:mas):integer;
var i,j:integer;mix:integer;
begin
mix:=a[1,j];
for i:=2 to n do
for j:=1 to m do begin
if a[i,j]>mix then mix:=a[i,j];
max:=mix;
end;
end;
var i,j:integer;k1:byte;a:mas;
begin
for i:=1 to n do
for j:=1 to m do
begin
writeln('wwedite ',i,',',j,' element matrici');
read(a[i,j]);end;
for i:=1 to n-1 do
for j:=1 to m do begin
if a[i,j]<a[i+1,j] then begin
k1:=k1+1;end;end;
if k1=n-1 then begin max(n,a);
end;
writeln('max= ',max(n,a):6);
end.
.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
mikle
сообщение 25.02.2007 18:12
Сообщение #2





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: миша

Репутация: -  0  +


При ввводе таким образом получаем ошибку №85 на строке var M:TMatrix=((3,4,55,112,442),(2,3,1,0,4),(3,5,15,16,500),(1,10,9,0,110),(4,44,45,
46,47));


program pract11_4;
uses crt;
const n=5;
type tmatrix=array[1..n,1..n] of integer;
function IsSorted(const M:tmatrix;const row:byte):boolean;
var i:byte;
begin
i:=1;
while (i<=n-1) and (M[row,i]<M[row,i+1]) do inc(i);
IsSorted:=(i=n);end;
function FindResult(const M:TMatrix):integer;
var i,row:byte;
begin
row:=0;
for i:=1 to n do
if IsSorted(M,i) and ((row=0) or (M[i,n]>M[row,n])) then row:=i;
row:=i; FindResult:=row;end;
var M:TMatrix=((3,4,55,112,442),(2,3,1,0,4),(3,5,15,16,500),(1,10,9,0,110),(4,44,45,
46,47));
maxRow:byte;
begin
clrscr;
maxRow:=FindResult(M);
if maxrow=0 then writeln('No') else writeln(M[maxrow,n]);
readln;
end.
.


При этои варианте выводит последний элемент матрицы
program pract11_4;
uses crt;
const n=5;
type tmatrix=array[1..n,1..n] of integer;
function IsSorted(const M:tmatrix;const row:byte):boolean;
var i:byte;
begin
i:=1;
while (i<=n-1) and (M[row,i]<M[row,i+1]) do inc(i);
IsSorted:=(i=n);
end;
function FindResult(const M:TMatrix):integer;
var i,row:byte;
begin
row:=0;
for i:=1 to n do
if IsSorted(M,i) and ((row=0) or (M[i,n]>M[row,n])) then row:=i;
row:=i; FindResult:=row;
end;
var M:TMatrix;
maxRow:byte;i,j:integer;
begin
clrscr;
for i:=1 to n do
for j:=1 to n do
begin
writeln('vvedite ',i,',',j,' element matrici');
read(M[i,j]);
end;
maxRow:=FindResult(M);
if maxrow=0 then writeln('No') else writeln(M[maxrow,n]);
readln;
end.
.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 17:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"