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

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

 

Бей­сикPython

DIM s, t, A AS INTEGER

INPUT s

INPUT t

INPUT A

IF s > A OR t > 12 THEN

    PRINT "YES"

ELSE

     PRINT "NO"

ENDIF

s = int(input())

t = int(input())

A = int(input())

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

    print("YES")

else:

    print("NO")

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

var s,t,A: integer;

begin

    readln(s);

    readln(t);

    readln(A);

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

        then

writeln ('YES')

        else

writeln ('NO')

end.

алг

нач

цел s, t, A

ввод s

ввод t

ввод A

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

    то вывод "YES"

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

все

кон

С++

#include <iostream>

using namespace std;

int main() {

    int s, t, A;

    cin >> s;

    cin >> t;

    cin >> A;

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

        cout << "YES" << endl;

    else

         cout << "NO" << endl;

    return 0;

}

 

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

(13, 2); (11, 12); (–12, 12); (2, –2); (–10, –10); (6, –5); (2, 8); (9, 10); (1, 13).

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

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

Ре­ше­ние.

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

Из пер­вой части усло­вия по­лу­ча­ем, что при вводе зна­че­ний s и t (1, 13) про­грам­ма на­пе­ча­та­ет «YES» вне за­ви­си­мо­сти от зна­че­ния A. При от­ри­ца­тель­ных зна­че­ни­ях A про­грам­ма будет вы­во­дить «YES» боль­ше од­но­го раза.

За­ме­тим, что при A  =  1 про­грам­ма на­пе­ча­та­ет «NO» два раза, при 2 ≤ A ≤ 5 про­грам­ма на­пе­ча­та­ет «NO» че­ты­ре раза, при 6 ≤ A ≤ 8 про­грам­ма на­пе­ча­та­ет «NO» пять раз, при 9 ≤ A ≤ 10 про­грам­ма будет пе­ча­тать «NO» шесть раз, при 11 ≤ A ≤ 12 про­грам­ма будет пе­ча­тать «NO» семь раз, а при A  =  13 про­грам­ма будет пе­ча­тать «NO» во­семь раз. Таким об­ра­зом, ответ  — 13.

 

Ответ: 13.

 

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

def f(s, t, A):

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

return 0

else:

return 1

a = ((13, 2), (11, 12), (-12, 12), (2, -2), (-10, -10), (6, -5), (2, 8), (9, 10), (1, 13))

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 == 8:

print(A)

break

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

1.  Дру­гой спо­соб ре­ше­ния и пра­ви­ла за­ме­ны ло­ги­че­ских усло­вий на про­ти­во­по­лож­ные при­ве­де­ны в за­да­нии 10955.

2.  Ло­ги­че­ский опе­ра­тор «OR» в про­цес­се вы­пол­не­ния при­ни­ма­ет зна­че­ние «true», если x или y равен true; в про­тив­ном слу­чае  —  «false»


Аналоги к заданию № 18036: 43771 Все

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