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

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

 

Бей­сикPython

DIM s, t AS INTEGER

INPUT s

INPUT t

IF s > 2 AND t < 5 THEN

    PRINT ‘YES’

ELSE

    PRINT ‘NO’

ENDIF

s = int(input())

t = int(input())

if s > 2 and t < 5:

    print("YES")

else:

    print("NO")

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

var s, t: integer;

begin

    readln(s);

    readln(t);

    if (s > 2) and (t < 5)

        then writeln('YES')

        else writeln('NO')

end.

алг

нач

цел s, t

ввод s

ввод t

если s > 2 и t < 5

    то вывод "YES"

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

все

кон

С++

#include <iostream>

using namespace std;

int main() {

    int s, t;

    cin >> s;

    cin >> t;

    if (s > 2 && t < 5)

        cout << "YES";

    else

        cout << "NO";

return 0;

}

 

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

(–2, 3); (2, 5); (0, 3); (5, –3); (5, 4); (11, 4); (8, –6); (1, 7); (9, 1).

Сколь­ко было за­пус­ков, при ко­то­рых про­грам­ма на­пе­ча­та­ла «NO»?

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

Ре­ше­ние.

За­ме­тим, что про­грам­ма на­пе­ча­та­ет «NO», если пе­ре­мен­ная s будет мень­ше или равна 2 или пе­ре­мен­ная t будет боль­ше или равна 5. Зна­чит, было 4 за­пус­ка, при ко­то­рых про­грам­ма на­пе­ча­та­ла «NO». В ка­че­стве зна­че­ний пе­ре­мен­ных s и t в этих слу­ча­ях вво­ди­лись сле­ду­ю­щие пары чисел:

(–2, 3); (2, 5); (0, 3); (1, 7).

Ответ: 4.

 

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

1.  Конъ­юнк­ция (ло­ги­че­ское умно­же­ние, пе­ре­се­че­ние)  — and. Вы­ра­же­ние a and b дает зна­че­ние true толь­ко в том слу­чае, если a и b имеют зна­че­ние true. Во всех осталь­ных слу­ча­ях зна­че­ния вы­ра­же­ния a and b дает false.

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

 

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

def f(s, t):

if s > 2 and t < 5:

return 0

else:

return 1

 

a = ((-2, 3), (2, 5), (0, 3), (5, -3), (5, 4), (11, 4), (8, -6), (1, 7), (9, 1))

kol = 0

for i in range(9):

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

print(kol)


Аналоги к заданию № 10891: 10892 10893 Все

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