Предмет: Информатика,
автор: tatianabichuren
Приведен фрагмент программы на паскале:
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
Похожие вопросы
Предмет: Английский язык,
автор: XooooSpuxt
Предмет: Химия,
автор: dariya0208051
Предмет: Математика,
автор: coliamar4encko
Предмет: География,
автор: ДмитрийМаликов