Вопрос Не работает программа, где ошибка?

Регистрация
13 Ноя 2013
Сообщения
74
Репутация
-3
Спасибо
0
Монет
0
Надо, чтобы числа поменялись местами, вот программа:



program 1;

var x, y: integer;

begin

write ('x= '); readln (x);

write ('y= '); readln (y);

x:= x+y;

y:= x-y;

x:= x-y;

writeln ('new x= ');

writeln ('new y= ');

end.



Но она, почему-то, не работает, где ошибка?
 
Грубая ошибка - в названии программы.
Тонкая ошибка - не для всего диапазона целых чисел ваша программа сработает из-за
x := x + y; Для чисел у верхней границы возникнет переполнение.
Попробуйте заменить сложение-вычитание на
x := x xor y;
y := x xor y;
x := x xor y;
 
Так ты в вывод переменные добавь, че ему выводить то?
 
Логика обмена верна, но в выводе после обмена вы забыли добавить переменные x и y, чтобы показать новые значения. Вот исправленный вариант программы:

program SwapNumbers;
var x, y: integer;
begin
write ('x= '); readln (x);
write ('y= '); readln (y);
x := x + y;
y := x - y;
x := x - y;
writeln ('new x= ', x);
writeln ('new y= ', y);
end.

Теперь после строки writeln добавлены переменные x и y, и программа должна корректно выводить обмененные значения.
 
program task1; Идентификатор не может начинаться с цифры.
 
Назад
Сверху