Составить программу, которая меняет местами значения переменных a и b, введенных с клавиатуры, без использования дополнительных переменных
вот прога которую я нашёл в инете и разбирал не понимаю одного как она вычисляет по формулам
begin
a:=a+b;
b:=a-b;
a:=a-b;
end;
объясните плиз если например a= 23, b=45
PascalВыделить код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var a,b:real;
procedure change(var a,b:real);
begin
a:=a+b;
b:=a-b;
a:=a-b;
end;
begin
writeln(' Г*,ГЎ');
readln(a,b);
writeln('a=',a);
writeln ('b=',b);
change(a,b);
writeln('a=',a);
writeln ('b=',b);
readln;
end.
A B F
0 0 1
0 1 1
1 0 1
1 1 0
1 - в
2 - в
3 - б (если только текстовый редактор - не стандартный блокнот)
4 - б
5 - а
6 - в
7 - а
8 - б*
Да, дело в цикле. Там он специально настроен на этот пункт. Замените его на
for i := 1 to n do
for j := i to n do
if (i+j>n) then sum := sum + a[i, j];
И все заработает. Надеюсь, Вам можно применять ветвления. Циклом я отбираю пункт Б, и ветвлением отбираю пункт Г. Их слиянием как раз и есть пункт К.
Var s,gl: string;
<span> i: integer;
</span><span> ps: set of integer;
</span><span>begin
</span><span> gl:='аеёийоуыэюя';
</span><span> write('строка: ');
</span><span> readln(s);
</span><span> ps:=[];
</span><span> i:=2;
</span><span> repeat
</span><span> if pos(s[i],gl)>0 then ps:=ps+[i];
</span><span> i:=i+2;
</span><span> until i>length(s);
</span><span> write('множество четных позиций с гласными: ');
</span><span> foreach i in ps do write(i,' ');
</span><span>end.
</span>
Результат работы:
строка: Это строка для проверки
<span>множество четных позиций с гласными: 20 18 10 8 14
</span>