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


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Я бы делал так:

{$B-}
uses crt;

const
n = 5; // размерность матрицы

type
TMatrix = array[1..n, 1..n] of Integer; // тип - матрица

(*
функция возвращает TRUE, если строка с номером ROW матрицы M
упорядочена по возрастанию
*)
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;

(*
Функция возвращает номер строки из упорядоченных по возрастанию,
в которой находится макс. элемент,
если упорядоченных по вохрастанию строк нет,
функция вернет 0
*)

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;
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.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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