Ввести два числа a и b . Меньшее заменить полусуммой, а большее удвоенным произведением. (паскаль)
Answers & Comments
heyanniemoran
Var a, b, c: real; readln(a); readln(b); c := 0; if a > b then begin c := a; a := 2*a*b; b := (c + b) / 2; end else if a < b then begin c := a; a := (a + b) / 2; b := 2* a*b; end else writeln('Числа равны'); writeln(' a = ', a, 'b = ', b);
кажется так но чето могу напутать, не сидел с паскалем года 3
1 votes Thanks 1
heyanniemoran
Нашел, не double, а real и возможно не readln, а read/
ManulTheLiar
Нужно вводить доп. переменную. Сначала заменяешь а, а потом его же используешь в b.
heyanniemoran
зачем? О.о можно же и просто переменную заменить, зачем дополнительные переменные, если мы меняем значение переменных
ManulTheLiar
Ага, в этом вся и суть. Заменив переменную а ты используешь уже замененное значение в другой формуле.
heyanniemoran
а, ну кстати да, чот в концу дня голова не варит
write('a = '); readln(a); write('b = '); readln(b); if (a>b) then begin t:=a; a:=2*a*b; b:=(t+b)/2; end; if (a<b) then begin t:=b; b:=2*a*b; a:=(t+a)/2; end; if(a=b) then writeln('Числа равны') else writeln('a = ', a, ', b = ', b); end.
Answers & Comments
readln(a);
readln(b);
c := 0;
if a > b then
begin
c := a;
a := 2*a*b;
b := (c + b) / 2;
end
else
if a < b then
begin
c := a;
a := (a + b) / 2;
b := 2* a*b;
end
else
writeln('Числа равны');
writeln(' a = ', a, 'b = ', b);
кажется так
но чето могу напутать, не сидел с паскалем года 3
uses crt;
var a,b,t: real;
begin
clrscr;
write('a = ');
readln(a);
write('b = ');
readln(b);
if (a>b) then
begin
t:=a;
a:=2*a*b;
b:=(t+b)/2;
end;
if (a<b) then
begin
t:=b;
b:=2*a*b;
a:=(t+a)/2;
end;
if(a=b) then
writeln('Числа равны')
else
writeln('a = ', a, ', b = ', b);
end.