
У меня есть матрица. По определенному закону я должен переназначить значения элементов между собой.
Допустим у меня есть х=1 и у=2, как мне «поменять» у них значения между собой? Вот кусок кода допустим, в котором я не уверен for i=1 to n do if x[i] Begin x[i]:=y[i]; y[i]:=x[i]; end; Получу ли я ожидаемый результат?

Ответы на вопрос

Не получишь. Во-первых, не знаю, законно или нет, но у тебя нет логического выражения в условной конструкции(if).
Во-вторых, опять же, не знаю, если ли в твоем языке функция swap(), которое меняет содержимое, но я бы сделал так:
temp := x[i]; //объяви сначала дополнительную переменную
x[i] = y[i];
y[i] = temp;
Ибо, если судить по твоему коду, ты присваиваешь переменной X значение переменной Y(получается, что теперь X = Y), а затем присваиваешь переменной Y значение переменной X(хотя они уже равны).



В представленном куске кода есть ошибка, из-за которой вы не получите ожидаемый результат. Проблема заключается в том, что вы присваиваете новое значение переменной x[i]
переменной y[i]
, а затем сразу же присваиваете значение переменной x[i]
обратно переменной y[i]
. В результате оба значения останутся неизменными.
Если вы хотите поменять значения между переменными x
и y
, вам понадобится дополнительная временная переменная, чтобы сохранить одно из значений перед переназначением. Вот исправленный код:
plaintextfor i = 1 to n do if x[i] then temp := x[i]; x[i] := y[i]; y[i] := temp; end if end for
Этот код сохраняет значение x[i]
во временной переменной temp
, затем присваивает значение y[i]
переменной x[i]
и, наконец, присваивает сохраненное значение temp
переменной y[i]
. Таким образом, значения x[i]
и y[i]
будут поменяны между собой.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili