Приведен фрагмент программы на паскале:
readln(a);
b:=30;
a=-a-3*b;
if aelse
c:=b-50;
При каком наибольшем числе а после выполнения программы с будет равно -20?
С решением, пожалуйста

Код программы
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

Оцени ответ
Подпишись на наш канал в телеграм. Там мы даём ещё больше полезной информации для школьников!

Загрузить картинку