Задания
Версия для печати и копирования в MS Word
Тип 6 № 16014
i

Ниже при­ве­де­на про­грам­ма, за­пи­сан­ная на пяти язы­ках про­грам­ми­ро­ва­ния.

 

Бей­сикPython

DIM s, t, A AS INTEGER

INPUT s

INPUT t

INPUT A

IF s > 10 OR t > A THEN

    PRINT "YES"

ELSE

     PRINT "NO"

ENDIF

s = int(input())

t = int(input())

A = int(input())

if (s > 10) or (t > A):

    print("YES")

else:

    print("NO")

Пас­кальАл­го­рит­ми­че­ский язык

var s,t,A: integer;

begin

    readln(s);

    readln(t);

    readln(A);

    if (s > 10) or (t > A)

        then

writeln ('YES')

        else

writeln ('NO')

end.

алг

нач

цел s, t, A

ввод s

ввод t

ввод A

если s > 10 или t > A

    то вывод "YES"

    иначе вывод "NO"

все

кон

С++

#include <iostream>

using namespace std;

int main() {

    int s, t, A;

    cin >> s;

    cin >> t;

    cin >> A;

    if(s > 10) || (t > A)

        cout << "YES" << endl;

    else

         cout << "NO" << endl;

    return 0;

}

 

Было про­ве­де­но 9 за­пус­ков про­грам­мы, при ко­то­рых в ка­че­стве зна­че­ний пе­ре­мен­ных s и t вво­ди­лись сле­ду­ю­щие пары чисел:

(1, 2); (11, 2); (1, 12); (11, 12); (−11, −12); (−11, 12); (−12, 11); (10, 10); (10, 5).

Ука­жи­те ко­ли­че­ство целых зна­че­ний па­ра­мет­ра A, при ко­то­рых для ука­зан­ных вход­ных дан­ных про­грам­ма на­пе­ча­та­ет «NO» три раза.

Спрятать решение

Ре­ше­ние.

За­ме­тим, что про­грам­ма на­пе­ча­та­ет «NO», если пе­ре­мен­ная s будет мень­ше или равна 10, а пе­ре­мен­ная t будет мень­ше или равна А.

Из пер­вой части усло­вия по­лу­ча­ем, что при вводе зна­че­ний s и t (11, 2) и (11, 12) про­грам­ма на­пе­ча­та­ет «YES» вне за­ви­си­мо­сти от зна­че­ния A.

За­ме­тим, что при A  =  1 про­грам­ма на­пе­ча­та­ет «NO» один раз, при 2 ≤ A ≤ 4 про­грам­ма на­пе­ча­та­ет «NO» два раза, при 5 ≤ A ≤ 9 про­грам­ма на­пе­ча­та­ет «NO» три раза, а при A > 9 про­грам­ма будет пе­ча­тать «NO» че­ты­ре и более раз. Таким об­ра­зом, су­ще­ству­ет 5 зна­че­ний па­ра­мет­ра A, при ко­то­рых «NO» будет на­пе­ча­та­но три раза, а имен­но 5, 6, 7, 8, 9, сле­до­ва­тель­но, ответ  — 5.

 

Ответ: 5.

 

При­ме­ча­ние.

За­ме­тим, что в С++ для ||  — опе­ра­то­ра ло­ги­че­ско­го ИЛИ может быть ис­поль­зо­ва­но аль­тер­на­тив­ное обо­зна­че­ние or.

 

При­ве­дем дру­гое ре­ше­ние на языке Python.

def f(s, t, A):

if (s > 10) or (t > A):

return 0

else:

return 1

a = ((1, 2), (11, 2), (1, 12), (11, 12), (-11, -12), (-11, 12), (-12, 11), (10, 10), (10, 5))

kol = 0

for A in range(100):

count = 0

for i in range(9):

count += f(a[i][0], a[i][1], A)

if count == 3:

kol += 1

print(kol)

Источники:
Раздел кодификатора ФИПИ: 1.3.1 Об­ра­бот­ка ин­фор­ма­ции. Ал­го­рит­мы и их свой­ства.