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

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

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

> Задача на работу с матрицой.Сортировка.
Andrewshkovskii
сообщение 30.11.2006 12:11
Сообщение #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 - 30.11.2006 12:16
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 30.11.2006 19:55
Сообщение #2


Гость






Занчит, при сортировке ты изменяешь значение i, что недопустимо... Используй другую переменную.
 К началу страницы 
+ Ответить 

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


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

 



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