1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Люди, помогите, пожалуйста, написать программу! Очень надо!
Даны две действительные матрицы разной размерности. Используя процедуры реорганизовать массивы следующим образом: каждый столбец массива упорядочить по невозрастанию, если его предпоследний элемент отличается более чем на 15% от среднего арифметического элементов столбца, находящихся в нечетных строках, в противном случае столбец упорядочить по неубыванию. Использование вспомогательных рабочих массивов допускается.
procedure print(const mx: array of real; m, n: integer); var i, j: integer; begin for i := 0 to pred(m) do begin for j := 0 to pred(n) do write(mx[i * n + j]:5:2); writeln; end; end;
procedure sort(var mx: array of real; m, n: integer; in_col: integer; by: boolean); var T: real; i, j: integer; begin for i := 1 to m do for j := m downto i + 1 Do if (mx[(in_col) + pred(j - 1) * n] > mx[(in_col) + pred(j) * n]) = by then begin T := mx[(in_col) + pred(j - 1) * n]; mx[(in_col) + pred(j - 1) * n] := mx[(in_col) + pred(j) * n]; mx[(in_col) + pred(j) * n] := T; end; end;
procedure convert(var mx: array of real; m, n: integer); var rows, cols, count: integer; before_last, s: real; begin for cols := 0 to pred(n) do begin s := 0; count := 0; for rows := 0 to pred(m) do if odd(rows + 1) then begin s := s + mx[rows * n + cols]; inc(count); end; s := s / count;
before_last := mx[(m - 2)*n + 0]; sort(mx, m, n, cols, abs(before_last - s) / s > 0.15);
VOLVO! Cпасибо огромное!!! Вчера добавил еще одну матрицу, все работает. Но не все понятно. С процедурой принт все ясно, а вот дальше Что обозначено за in_col? Что такое by: boolean? Нам такое не давали. rows - ряды, cols-столбцы,count-счетчик - так? И напишите, пожалуйста где что считается