1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Помогите пожалуйста решить задачки чтоб на их основе хоть что-нибудь понять (Скоро зачет) Я понимаю что они должны быть простыми но потратьте чуточку времени чтоб помочь.
Среди элементов главной диагонали найти такие значения которых больше среднего арифметического для всех элементов матрицы.
В каждом столбце над побочной диагональю найти минимальные элементы.Сформировать из них масив,упорядочить его по убыванию и напечатать номера столбцов,соответсвуюшие этому масиву.
Какую печать? С какой подписью? Это две разных задачи, на всякий случай... Приведенное решение - только для первой из них. Причем, решение просто блещет программерскими находками, вроде:
Цитата
if n<=m then begin write('Элементы больше среднего:'); for i:=1 to n do if matr[i,i]>S then write(matr[i,i],' '); end else begin write('Элементы больше среднего:'); for i:=1 to m do if matr[i,i]>S then write(matr[i,i],' '); end;
, но это пусть остается на совести автора.
Теперь о второй части: поскольку в задании явно не указано, что за матрица, и откуда она берется - то вот это:
const n = 10; m = 10;
type arrtype = array[1 .. n, 1 .. m] of integer; vectype = array[1 .. m - 1] of integer;
procedure sort(const arr: vectype; var ix: vectype; n: integer); var i, j, T: integer; begin for i := 1 to n do for j := n downto i + 1 Do if arr[ix[j - 1]] < arr[ix[j]] then begin T := ix[j - 1]; ix[j - 1] := ix[j]; ix[j] := T end; end;
var arr: arrtype; mins, index: vectype; i, j, min: integer;
begin for i := 1 to n do begin for j := 1 to m do begin arr[i, j] := random(100); write(arr[i, j]:4); end; writeln; end;
writeln; writeln;
for j := 1 to m - 1 do begin min := maxint; for i := 1 to (n - j) do begin if min > arr[i, j] then min := arr[i, j]; end; mins[j] := min; index[j] := j; end;
sort(mins, index, m - 1); for i := 1 to m - 1 do begin write(mins[index[i]], '(', index[i], ') '); end;
end.
не противоречит ни одной букве задания:
Цитата
В каждом столбце над побочной диагональю найти минимальные элементы.Сформировать из них масив,упорядочить его по убыванию и напечатать номера столбцов,соответсвуюшие этому масиву