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

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

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

> Задача на работу с матрицой.Сортировка.
сообщение
Сообщение #1


Бывалый
***

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

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


Задача такова :
Дана квадратная матрица MxN. Есле в главной диагонали присутствует отрицательный элемент,то выписать тот столбик,в котором этот отрицательный элемент стоит,и отсортировать его по убыванию.
Вот типа графически как это выглядит
1 5 3
1 -2 3
1 3 3

выписывается 2ой столбик
5
-2
3

и отсортировывается в ввиде
-2
5
3

Проблема возникает в следующем :
не понимаю как выписать этот столбик,главную диагональ нахожу,нахожу в ней отриц. элемент.
Я понимаю что надо сначала этот столбик записать в отдельный массив однамерный(вектор),потом отсортировать и вставить обратно..
вот с отбором столбика,сортировкой и вставкой у меня проблемы.

вот мой код..

uses crt;
const
n=3;
m=3;
l=3;
k=3;
type
matr = array [1..n,1..m] of integer;
stolb = array [1..l,1..k] of integer;
var
a:matr;
i,j,buf:integer;
ot:stolb;


begin
clrscr;
writeln('el-ti matrici vvedite plz');
for i:=1 to n do
for j:=1 to m do
begin
write('A[',i,j,']=');read(a[i,j]);
end;
for i:=1 to n do begin
for j:=1 to m do
write(a[i,j],' ');
writeln;
end;

readkey;
writeln;
{=========================}
for I:=1 to n do
for j:=1 to m do
begin
if i=j then
if a[i,j] <0 then begin {таким образом я записываю только главную диагональ,а как сделать что бы записывался стобец...=/ }
buf:=a[i,j];
ot[i,j]:=buf;
end
else
buf:=a[i,j];
ot[i,j]:=buf;
end;
for i:=1 to n do
begin
write(ot[i,j],' ');
writeln;
end;
readkey;
end.


Сообщение отредактировано: Andrewshkovskii -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Бывалый
***

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

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


║for i := 1 to n do
║ if a[i, i] < 0 then
║ for j:=1 to n do
║ begin
║ buf[j]:=a[j,i]
║ end;
║ for i:=1 to n do
║ for j:=1 to n do
║ if buf[i]>buf[j] then begin
║ temp_var:=buf[i];
║ buf[i]:=buf[j];
║ buf[j]:=temp_var;
║ end;

║for j := 1 to n do a[j, i] := buf[j];




вот что я делаю.
результат...
el-ti matrici vvedite plz
A[11]=-1
A[12]=1
A[13]=2
A[21]=6
A[22]=4
A[23]=7
A[31]=8
A[32]=5
A[33]=3
-1 1 2
6 4 7
8 5 3


-1 1 8
6 4 6
8 5 -1
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Andrewshkovskii   Задача на работу с матрицой.Сортировка.   30.11.2006 16:11
volvo   var buffer: array[1 .. n] of integer; ... for i :=…   30.11.2006 16:23
Andrewshkovskii   ааа,спасибо!=)Вы настоящий мужтчина=)) только …   30.11.2006 20:31
мисс_граффити   у элементов на главной диагонали номер столбца и н…   30.11.2006 21:26
Andrewshkovskii   хм..после сортировки получаеться так,что отсортиро…   30.11.2006 23:25
volvo   Занчит, при сортировке ты изменяешь значение i, чт…   30.11.2006 23:55
Andrewshkovskii   в сортировке не изменял,а так делал как ты писал..   1.12.2006 0:33
Andrewshkovskii   ║for i := 1 to n do ║ if a[i, i] …   1.12.2006 0:55
volvo   Ну, как же "не изменял"? Ты же запускаеш…   1.12.2006 1:15
мисс_граффити   компилятор не виноват... тут же вложенности нет: …   1.12.2006 1:39
Andrewshkovskii   for i := 1 to n do begin if a[i, i] < 0 then…   1.12.2006 1:43
мисс_граффити   я в этом куске вставку вообще не вижу. а курсы ясн…   1.12.2006 1:57
Andrewshkovskii   сори) шас for i := 1 to n do begin if a[i, i]…   1.12.2006 2:01
volvo   Andrewshkovskii, послушай !!! Ты что, …   1.12.2006 2:07
Andrewshkovskii   Не кипятись,пожалуйста,я понимаю что с новичками п…   1.12.2006 2:49


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

 





- Текстовая версия 2.12.2021 22:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name