1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Помогите пожалуйста решить задачки чтоб на их основе хоть что-нибудь понять (Скоро зачет) Я понимаю что они должны быть простыми но потратьте чуточку времени чтоб помочь.
Среди элементов главной диагонали найти такие значения которых больше среднего арифметического для всех элементов матрицы.
В каждом столбце над побочной диагональю найти минимальные элементы.Сформировать из них масив,упорядочить его по убыванию и напечатать номера столбцов,соответсвуюшие этому масиву.
Ну первое я произвольно заполняю матрицу с данными размерами числами от 0 до 100,
program matrica; uses crt; type arrsort= array[0..100,1..100] of integer;{100 элементов в строке и столбце думаю хватит} var matr : arrsort; n,m : integer;{размеры матрицы} S : real;
Procedure CreateMatr(var matr :arrsort;n,m : integer); var i,j : integer; begin for i:=1 to n do begin for j:=1 to m do begin matr[i,j]:=random(100); write(matr[i,j],' '); end; writeln; end; end;
Procedure FindMiddle(var matr :arrsort;n,m : integer;Var S : real); var i,j : integer; begin S:=0; for i:=1 to n do for j:=1 to m do S:=S+matr[i,j];{суммируем все элементы матрицы}
S:=S/(n*m);{Находим среднее арифметическое}
end;
Procedure FindElem(var matr :arrsort;n,m : integer; S : real); var i : integer; begin 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; end;
begin randomize; write('Введите размеры матрицы'); read(n,m); CreateMatr(matr,n,m); FindMiddle(matr,n,m,S); FindElem(matr,n,m,S); readkey; end.
Вроде все,если ничего не напутал,то будет работать.Со вторым заданием,я чето особо не понял.насчет побочной диагонали надо просто поменять порядок прохода цикла и в сравнении поставить знак минус.сформировать массив тоже несложно,надо просто перед строчкой печати в процедуре поиска элемента организовать заполнение массива,и перед этим создать этот пустой массив.насчет сортировки уточните,их очень много видов.насчет печати,извините голова не очень ясная,сообразить пока не могу, что вы хотите.