Информатика (Анализ программ с циклами и подпрограммами)


1
2
3
4
5
6
7
8
9
10
  • 1
  • 2

Вопрос 21

Какое число будет напечатано в результате работы следующей программы? Для Вашего удобства программа приведена на пяти языках программирования. 

БейсикPython
DIM A, B, T, M, R AS INTEGER
 A =11: B = 11
 M = A : R = F(A)
 FOR T = A TO B
    IF F(T) < R THEN
        M = T
        R = F(T)
    END IF
 NEXT T
 PRINT M+R
 
 FUNCTION F(x)
    IF X > 0 THEN
        F = x * x + 4
    ELSE
        F = x * x + 5
    END IF
 END FUNCTION

def F(x):

    if x > 0:

        return x * x + 4

    else:

        return x * x + 5

 

a = −11; b = 11

M = a; R = F(a)


for t in range(a,b+1):

    if F(t) < R:

        M = t; R = F(t)

print(M+R)

 

 

 

ПаскальАлгоритмический язык
var
    a, b, t, M, R: integer;
 
function F(x: integer): integer;
begin
    if x > 0
        then F := x * x + 4
        else F := x * x + 5;
end;
 
begin
    a :=11; b := 11;
    M := a; R:= F(a)
    for t := a to b do begin
        if F(t) < R then begin
            M := t;
            R := F(t);
        end;
    end;
    write(M+R);
end.
 
алг
нач
    цел a, b, t, M, R
    a :=11; b := 11 
    M := a; R := F(a)
    нц для t от a до b
        если F(t) < R
            то M := t; R := F(t)
        все
    кц
    вывод M + R
кон
 
алг цел f(цел x)
нач
    если x > 0
        то знач := x * x + 4
        иначе знач := x * x + 5
    все
кон
 
С++
#include  
using namespacestd;
long f(int x) {
    if (x > 0) return x * x + 4;
    else return x * x + 5;
}
 
int main()
{
    int a, b, t, M, R; 
    a =11; b = 11;
    M = a; R = f(a);
    for (t = a; t <=b; ++t) {
        if (f(t) < R) {
            M = t; R = f(t);
        }
    }
    cout << M + R;
    return 0;
}