Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Эля Зубова Ученик (142), открыт 1 неделю назад
Надо, чтобы числа поменялись местами, вот программа:

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.

Но она, почему-то, не работает, где ошибка?
4 ответа
Сергей Мудрец (17213) 1 неделю назад
Логика обмена верна, но в выводе после обмена вы забыли добавить переменные 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, и программа должна корректно выводить обмененные значения.
Эля ЗубоваУченик (142) 1 неделю назад
Спасибо!
Сергей Мудрец (17213) Эля Зубова, Пожалуйста
Богдан Хен Знаток (397) 1 неделю назад
Так ты в вывод переменные добавь, че ему выводить то?
Андрей Высший разум (430590) 1 неделю назад
 program task1; 
Идентификатор не может начинаться с цифры.
Юрий Семыкин Искусственный Интеллект (189991) 1 неделю назад
Грубая ошибка - в названии программы.
Тонкая ошибка - не для всего диапазона целых чисел ваша программа сработает из-за
x := x + y; Для чисел у верхней границы возникнет переполнение.
Попробуйте заменить сложение-вычитание на
x := x xor y;
y := x xor y;
x := x xor y;
Похожие вопросы