IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Нужна помощь в решении!, Матрицы
Plushka
сообщение 23.05.2009 19:11
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Женский
Реальное имя: Рита

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


Помогите пожалуйста решить задачки чтоб на их основе хоть что-нибудь понять smile.gif(Скоро зачет)
Я понимаю что они должны быть простыми но потратьте чуточку времени чтоб помочь.

Среди элементов главной диагонали найти такие значения которых больше среднего арифметического для всех элементов матрицы.


В каждом столбце над побочной диагональю найти минимальные элементы.Сформировать из них масив,упорядочить его по убыванию и напечатать номера столбцов,соответсвуюшие этому масиву.

Сообщение отредактировано: Plushka - 24.05.2009 8:23
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Krjuger
сообщение 23.05.2009 21:04
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

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


Ну первое я произвольно заполняю матрицу с данными размерами числами от 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.


Вроде все,если ничего не напутал,то будет работать.Со вторым заданием,я чето особо не понял.насчет побочной диагонали надо просто поменять порядок прохода цикла и в сравнении поставить знак минус.сформировать массив тоже несложно,надо просто перед строчкой печати в процедуре поиска элемента организовать заполнение массива,и перед этим создать этот пустой массив.насчет сортировки уточните,их очень много видов.насчет печати,извините голова не очень ясная,сообразить пока не могу, что вы хотите.

Сообщение отредактировано: Krjuger - 23.05.2009 22:52
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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