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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
мисс_граффити
сообщение 25.02.2007 12:48
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


1. Сделай нормальное форматирование - не видно, какой begin к какому end относится
2.
function max(n:byte;a:mas):integer;
var i,j:integer;mix:integer;
begin
mix:=a[1,j]; {чему здесь, по-твоему, равно j?}
for i:=2 to n do {почему с 2?}
for j:=1 to m do begin
if a[i,j]>mix then mix:=a[i,j];
max:=mix;
end;
end;

3.
k1:=k1+1;end;end;
if k1=n-1 then begin max(n,a);

а обнулять k1 для каждой строчки кто будет?
и ты, кстати, m и n не перепутал? n-это число строк, а не число элементов в строке... то есть ты сравниваешь не по строкам, а по столбцам.

Сообщение отредактировано: мисс_граффити - 25.02.2007 12:50


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bokul
сообщение 25.02.2007 18:40
Сообщение #3


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

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


Цитата
При ввводе таким образом получаем ошибку №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));



Замени var на const, но потом все равно не забудь поставить var. Хотя результат и так будет не верным.

PS хочешь помощи, обращай внимание на замечания:

Цитата(мисс_граффити @ 25.02.2007 4:48) *

1. Сделай нормальное форматирование - не видно, какой begin к какому end относится



--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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