Грубая ошибка - в названии программы.
Тонкая ошибка - не для всего диапазона целых чисел ваша программа сработает из-за
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 ;
x := x + y;
y := x - y;
x := x - y;
writeln ('new x= ', x);
writeln ('new y= ', y);
end.
Теперь после строки writeln добавлены переменные x и y, и программа должна корректно выводить обмененные значения.