Приведен фрагмент программы на паскале:
readln(a);
b:=30;
a=-a-3*b;
if a<b then c:=b+45
else
c:=b-50;
При каком наибольшем числе а после выполнения программы с будет равно -20?
С решением, пожалуйста
Ответы
Ответ дал:
0
код программы
var
a: integer;
function c(a: integer): integer;
var
b: integer;
begin
b := 30;
a := -a - 3 * b;
if a < b then
c := b + 45
else
c := b - 50;
end;
begin
for a := 1000 downto -1000 do
if c(a) = -20 then begin
writeln('a=', a, ' c(a)=', c(a));
break;
end;
end.
Вывод
a=-120 c(a)=-20
Аналитическое решение.
Видно что c:=b - 50 = 30 - 50 = -20 при a>=b
-a-3*b>=b
-a-3*30>=30
-a-90>=30
-a>=120
a<=-120
var
a: integer;
function c(a: integer): integer;
var
b: integer;
begin
b := 30;
a := -a - 3 * b;
if a < b then
c := b + 45
else
c := b - 50;
end;
begin
for a := 1000 downto -1000 do
if c(a) = -20 then begin
writeln('a=', a, ' c(a)=', c(a));
break;
end;
end.
Вывод
a=-120 c(a)=-20
Аналитическое решение.
Видно что c:=b - 50 = 30 - 50 = -20 при a>=b
-a-3*b>=b
-a-3*30>=30
-a-90>=30
-a>=120
a<=-120
Вас заинтересует
2 года назад
7 лет назад
9 лет назад
9 лет назад
10 лет назад