Предмет: Информатика,
автор: fobas22
У меня есть матрица. По определенному закону я должен переназначить значения элементов между собой. Допустим у меня есть х=1 и у=2, как мне «поменять» у них значения между собой?
Вот кусок кода допустим, в котором я не уверен
for i=1 to n do
if x[i]
Begin
x[i]:=y[i];
y[i]:=x[i];
end;
Получу ли я ожидаемый результат?
fobas22:
if x[i] < y[i] to do
y[i]:=x[i]; - это неверно, сначала y попадет в х, потом скопируется назад. х пропадет, везде будет y.
Ответы
Автор ответа:
2
Не получишь. Во-первых, не знаю, законно или нет, но у тебя нет логического выражения в условной конструкции(if).
Во-вторых, опять же, не знаю, если ли в твоем языке функция swap(), которое меняет содержимое, но я бы сделал так:
temp := x[i]; //объяви сначала дополнительную переменную
x[i] = y[i];
y[i] = temp;
Ибо, если судить по твоему коду, ты присваиваешь переменной X значение переменной Y(получается, что теперь X = Y), а затем присваиваешь переменной Y значение переменной X(хотя они уже равны).
Похожие вопросы
Предмет: Русский язык,
автор: MoS23
Предмет: Математика,
автор: alihanzalelov6
Предмет: Алгебра,
автор: tatjanamakarenko1980
Предмет: Математика,
автор: ПолинкаМашинка1116