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

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

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

 
 Ответить  Открыть новую тему 
> Объясните строку из программы, Двумерные массивы
Neon6868
сообщение 22.03.2007 18:25
Сообщение #1


Пионер
**

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

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


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

Надо объяснить как меняются элементы в выделенном красным цветом месте!

Вот программа:

program sortirovka;
const
n=5;
type
mas=array[ L n, L .n] of integer;
var
ij: integer;
a:mas;
procedure sort(var a:mas);
var
k,l,m,z,x, i,j : integer;
begin
m:=1;
while m<=n do begin
k:=m;
L=m;
for i:=1 to n do
for j:=1 to n do
if ((i<>j) or ((i=j) and (i>m))) and (a[i,j]>a[k,l]) then begin
k:=i;
l:=j
end;
if not ((k=m) and (l=m)) then begin
a[m,m]:=a[k,l]-a[m,m];
a[k,l]:=a[k,l]-a[m,m];
a[m,m]:=a[k,l]+a[m,m]

end;
inc(m);
end;
end;
begin
randomize:
for i:=1 ton do
for j:=1 to n do a[i,j]:=random(10);
for i:=1 to n do begin
for j:=1 to n do write(a[ij],' ');
writeln;
end;
writeln;
sort(a);
for i:=1 to n do begin
for j:= 1 to n do
write(a[i,j],' ');
writeln;
end;
end.



Сообщение отредактировано: Neon6868 - 22.03.2007 18:38
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 22.03.2007 18:37
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


внутри тегов code жирный не сделаешь...
напиши эту загадочную строку отдельно.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 22.03.2007 18:44
Сообщение #3


Профи
****

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

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


Цитата(Neon6868 @ 22.03.2007 18:25) *

Надо объяснить как меняются элементы в выделенном красным цветом месте!

В этом месте просто съэкономили на одной переменной, попробуй произвести эти операции вручную на 2-х числах. Они тоже поменяются..
например:
a=1, b=5;
a=b-a; a=5-1=4;
b=b-a; b=5-4=1;
a=a+b; a=4+1=5;
a=5, b=1.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
St@senk@
сообщение 22.03.2007 19:49
Сообщение #4


Новичок
*

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

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


Или в общем виде, пусть A,B - переменные, а a и b их значения вначале соответственно.
A=B-A=b-a;
B=B-A=b-(b-a)=b-b+a=a;
A=A+B=(b-a)+a=b

врезультате значения переменных а и b поменялись местами

Но как говорил Volvo, этот метод - не эффективен.
Улучшение кода

Сообщение отредактировано: St@senk@ - 22.03.2007 20:05


--------------------
Три пути ведут к знанию: путь размышления - это путь самый благородный, путь подражания - это путь самый легкий и путь опыта - это путь самый горький.
Конфуций
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Neon6868
сообщение 22.03.2007 23:53
Сообщение #5


Пионер
**

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

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


Всем спасибо yes2.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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