Традиционное решение: var n,d1,d2,d3,d4:integer; begin Write('Введите четырехзначное натуральное число: '); Readln(n); d1:=n div 1000; d4:=n mod 10; d3:=(n mod 100) div 10; d2:=(n mod 1000) div 100; n:=1000*d1+100*d3+10*d2+d4; Writeln('Результат: ',n) end.
Решение с использованием символьного представления числа: var s:string; begin Write('Введите четырехзначное натуральное число: '); Readln(s); Writeln('Результат: ',s[1]+s[3]+s[2]+s[4]) end.
USES CRT,Graph;VAR Device,Mode:Integer; i,x,y,s:Integer;BEGINCLRSCR; Device:=0; InitGraph(Device,Mode,''); s:=100; x:=320; y:=240; for i:=1 to 9 do begin SetLineStyle(0,0,ThickWidth); Circle(x,y,s); Delay(200); SetColor(Black); Circle(x,y,s); s:=s-10; SetColor(White); end; for i:=1 to 9 do begin SetLineStyle(0,0,ThickWidth); Circle(x,y,s); Delay(200); SetColor(Black); Circle(x,y,s); s:=s+10; SetColor(White); end; Circle(x,y,s);Readln;END.
Логическая операция ⊕ - это "исключающее ИЛИ" (xor в языках Паскаль, Бейсик и т.д.), а → операция присваивания. Тогда a⊕b→a; a⊕b→b; a⊕b→a - это был обмен значениями a ↔ b Теперь по этой же схеме обменяем местами b и с: b⊕c→b; b⊕c→с; b⊕c→b. Результат: b→a; c→b; a→c
Программа для иллюстрации: // PascalABC.NET 3.1, сборка 1218 от 12.04.2016 begin var a:=50; var b:=-20; var c:=0; Println('Исходные значения: a=',a,'b=',b,'c=',c); a:=a xor b; b:=a xor b; a:=a xor b; b:=b xor c; c:=b xor c; b:=b xor c; Println('Результат обмена: a=',a,'b=',b,'c=',c) end.
var
n,d1,d2,d3,d4:integer;
begin
Write('Введите четырехзначное натуральное число: ');
Readln(n);
d1:=n div 1000; d4:=n mod 10;
d3:=(n mod 100) div 10;
d2:=(n mod 1000) div 100;
n:=1000*d1+100*d3+10*d2+d4;
Writeln('Результат: ',n)
end.
Тестовое решение:
Введите четырехзначное натуральное число: 4567
Результат: 4657
Решение с использованием символьного представления числа:
var
s:string;
begin
Write('Введите четырехзначное натуральное число: ');
Readln(s);
Writeln('Результат: ',s[1]+s[3]+s[2]+s[4])
end.