6

6 задание ОГЭ информатика

Выполнение программы

1 балл ≈ 4 мин уровень Б Исполнение программы на языке программирования

Задание 6 – дана короткая программа (на Python, Паскале, C++, Бейсике и Алгоритмическом языке – выбирай знакомый) с условием if. Её запускали несколько раз с разными парами (s, t). Спрашивают: сколько раз программа напечатала «YES»/«NO», или при каком значении параметра A программа напечатает «YES» нужное число раз. 1 балл, ответ – число.

Что нужно знать

  • and (И) – верно, если верны обе части; or (ИЛИ) – если верна хотя бы одна.
  • Отрицание условия: НЕ (s > A или t > 12) = (s ≤ A) и (t ≤ 12). Знак переворачивается, И и ИЛИ меняются местами.

Алгоритм

  1. Выпиши условие для «YES». Если спрашивают про «NO» – построй отрицание.
  2. Выпиши все пары (s, t) столбиком.
  3. Отметь пары, где сработает часть условия, не зависящая от A (например, t > 12).
  4. Для остальных пар выпиши значения, которые сравниваются с A, и упорядочи их.
  5. Подбери A, при котором выполняется ровно нужное число раз. Проверь границу: при A на 1 больше и на 1 меньше ответ должен меняться.

Разобранный пример.

s = int(input())
t = int(input())
if s > 10 and t < A:
    print("YES")
else:
    print("NO")

Пары: (1, 2); (11, 2); (12, 6); (15, 10); (–11, 9); (20, 5); (11, 11); (10, 1); (13, 7). Найдите наименьшее целое A, при котором «YES» напечатано ровно 3 раза.

  • s > 10 только у пар: (11, 2), (12, 6), (15, 10), (20, 5), (11, 11), (13, 7). Пара (10, 1) не подходит: 10 > 10 ложно.
  • Их t по возрастанию: 2, 5, 6, 7, 10, 11.
  • Нужно ровно три t < A: 2, 5, 6 < A, а 7 ≥ A. Значит 6 < A ≤ 7, A = 7.

Ответ: 7.

Ловушки

  • Строгий и нестрогий знак: s > 10 при s = 10 ложно. Граничные пары проверяй отдельно.
  • Отрицательные числа в парах – аккуратно сравнивай (–11 < 10).
  • Перепутал «наибольшее» и «наименьшее» A – перечитай вопрос.
  • Посчитал «YES», а спрашивали «NO» (или наоборот).
На экзамене
  • Выпиши пары столбиком и ставь плюсы/минусы у каждой – так ничего не потеряешь.
  • Для «NO» сразу запиши отрицание условия: знаки переворачиваются, and ↔ or.
  • Проверь ответ: подставь A и A ± 1 – число «YES» должно меняться на границе.

Разобранные задания 6 из открытого банка ФИПИ

Пример 1 · код ФИПИ 4EA117

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

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

Паскаль

алг

нач

цел s, t, A

ввод s

ввод t

ввод A

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

  то вывод "YES"

  иначе вывод "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.

Бейсик

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")

C++

#include <iostream>

using namespace std;

int main() {

   int s, t, A;

   cin >> s;

   cin >> t;

   cin >> A;

   if (s > A || 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).

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

Показать ответ и решение

Ответ: 8

Условие «YES»: (s > A) или (t > 12). Пары: (13, 2); (11, 12); (-12, 12); (2, -2); (-10, -10); (6, -5); (2, 8); (9, 10); (1, 13).

Перебираем целые A и считаем, сколько раз напечатается «NO». Ровно 5 раз(а) получается при A от 6 до 8.

Нужно наибольшее: 8.

Пример 2 · код ФИПИ 7D61A1

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

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

Паскаль

алг

нач

цел s, t, A

ввод s

ввод t

ввод A

если s > А или t > 11

то вывод "YES"

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

все

кон

var s, t, A: integer;

begin

readln(s);

readln(t);

readln(A);

if (s > А) or (t > 11)

  then writeln('YES')

  else writeln('NO')

end.

Бейсик

Python

DIM s, t, A AS INTEGER

INPUT s

INPUT t

INPUT A

IF s > А OR t > 11 THEN

  PRINT "YES"

ELSE

  PRINT "NO"

ENDIF

s = int(input())

t = int(input())

A = int(input())

if (s > А) or (t > 11):

    print("YES")

else:

    print("NO")

C++

#include <iostream>

using namespace std;

int main(){

   int s, t, A;

   cin >> s;

   cin >> t;

   cin >> A;

   if (s > А || t > 11)

     cout << "YES" << endl;

   else

     cout << "NO" << endl;

   return 0;

 }

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

(–9, 11); (2, 7); (5, 12); (2, –2); (7, –9); (12, 6); (9, –1); (7, 11); (11, –5).

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

Показать ответ и решение

Ответ: 6

Условие «YES»: (s > A) или (t > 11). Пары: (-9, 11); (2, 7); (5, 12); (2, -2); (7, -9); (12, 6); (9, -1); (7, 11); (11, -5).

Перебираем целые A и считаем, сколько раз напечатается «YES». Ровно 6 раз(а) получается при A от 2 до 6.

Нужно наибольшее: 6.

Пример 3 · код ФИПИ 93329D

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

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

Паскаль

алг

нач

цел s, t, A

ввод s

ввод t

ввод A

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

  то вывод "YES"

  иначе вывод "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.

Бейсик

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")

C++

#include <iostream>

using namespace std;

int main() {

   int s, t, A;

   cin >> s;

   cin >> t;

   cin >> A;

   if (s > A || 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).

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

Показать ответ и решение

Ответ: 5

Условие «YES»: (s > A) или (t > 12). Пары: (13, 2); (11, 12); (-12, 12); (2, -2); (-10, -10); (6, -5); (2, 8); (9, 10); (1, 13).

Перебираем целые A и считаем, сколько раз напечатается «YES». Ровно 5 раз(а) получается при A от 2 до 5.

Нужно наибольшее: 5.

Частые вопросы о задании 6

Сколько баллов даёт задание 6 ОГЭ по информатике?

Максимум – 1 первичный балл. Норма времени на экзамене – около 4 мин. Уровень сложности – Б.

Что проверяет задание 6?

Задание 6 – дана короткая программа (на Python, Паскале, C++, Бейсике и Алгоритмическом языке – выбирай знакомый) с условием if. Её запускали несколько раз с разными парами (s, t). Спрашивают: сколько раз программа напечатала «YES»/«NO», или при каком значении параметра A программа напечатает «YES» нужное число раз. 1 балл, ответ – число.

Как подготовиться к заданию 6?

Прочитайте теорию выше: алгоритм, нужные факты и ловушки. Затем решите подход из 10 заданий с автопроверкой и разбором – первые без регистрации – и вернитесь к ошибкам. В пробниках Сотки номер встречается в полных вариантах ФИПИ с подсчётом баллов.

Упражнения к заданию 6

10 заданий подряд с проверкой и разбором · первые 7 – без регистрации