Егэ информатика 2 задание pascal

На уроке рассматривается разбор 2 задания ЕГЭ по информатике, дается подробное объяснение того, как решать подобные задачи

Содержание:

  • Объяснение задания 2 ЕГЭ по информатике
    • Таблицы истинности и порядок выполнения логических операций
  • Решение заданий 2 ЕГЭ по информатике
    • Задания для тренировки

2-е задание: «Таблицы истинности»

Уровень сложности

— базовый,

Требуется использование специализированного программного обеспечения

— нет,

Максимальный балл

— 1,

Примерное время выполнения

— 3 минуты.

  
Проверяемые элементы содержания: Умение строить таблицы истинности и логические схемы

Типичные ошибки и рекомендации по их предотвращению:

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

ФГБНУ «Федеральный институт педагогических измерений»

Таблицы истинности и порядок выполнения логических операций

Для логических операций приняты следующие обозначения:

операция пояснение в программировании
¬ A, A не A (отрицание, инверсия) not(A)
A ∧ B, A ⋅ B A и B (логическое умножение, конъюнкция) A and B
A ∨ B, A + B A или B (логическое сложение, дизъюнкция) A or B
A → B импликация (следование) A <= B
A ↔ B, A ≡ B, A ∼ B эквиваленция (эквивалентность, равносильность) A==B (python)
A=B(pascal)
A ⊕ B строгая дизъюнкция A != B (python)
A <> B (pascal)

Егифка ©:

теория таблицы истинности

Отрицание (НЕ):

Таблица истинности операции НЕ

Таблица истинности операции НЕ

Конъюнкция (И):

Таблица истинности операции И (конъюнкция)

Таблица истинности операции И (конъюнкция)

Дизъюнкция (ИЛИ):

Таблица истинности операции ИЛИ (дизъюнкция)

Таблица истинности операции ИЛИ (дизъюнкция)

Импликация (если…, то…):

Таблица истинности операции Импликация (если..., то...)

Таблица истинности операции Импликация (если…, то…)

Эквивалентность (тогда и только тогда, …):

Таблица истинности операции Эквивалентность (тогда и только тогда, ...)

Таблица истинности операции Эквивалентность (тогда и только тогда, …)

Сложение по модулю 2 (XOR):

A B A ⊕ B
0 0 0
0 1 1
1 0 1
1 1 0

Порядок выполнения операций:

  • если нет скобок, сначала выполняются все операции «НЕ», затем – «И», затем – «ИЛИ», импликация, равносильность

Еще о логических операциях:

  • логическое произведение X∙Y∙Z∙… равно 1, т.е. выражение является истинным, только тогда, когда все сомножители равны 1 (а в остальных случаях равно 0)
  • логическая сумма X+Y+Z+… равна 0, т.е. выражение является ложным только тогда, когда все слагаемые равны 0 (а в остальных случаях равна 1)

О преобразованиях логических операций читайте здесь.

Егифка ©:

решение 2 задания ЕГЭ

Решение заданий 2 ЕГЭ по информатике


Задание 2_11: Решение 2 задания ЕГЭ по информатике:

Логическая функция F задается выражением

(¬x ∨ y ∨ z) ∧ (x ∨ ¬z ∨ ¬w)

Ниже приведен фрагмент таблицы истинности функции F, содержащей все наборы аргументов, при которых функция F ложна.

Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z, w.

Перем.1 Перем.2 Перем.3 Перем.4 F
??? ??? ??? ??? F
0 1 1 0 0
0 1 1 1 0
1 0 0 0 0
1 1 0 0 0

В ответе запишите буквы в том порядке, в котором идут соответствующие им столбцы.

✍ Решение:

✎ Способ 1. Электронные таблицы Excel + Логические размышления:

  • Отобразим перебор всех значений использующихся в выражении переменных (всю таблицу истинности). Поскольку в выражении используются 4 переменных, то строк таблицы будет 24=16:
  • егэ 2 электронные таблицы

  • Далее обе скобки исходного выражения необходимо записать в виде логического выражения, каждую — в отдельном столбце. Также в отдельном столбце добавьте формулу итоговой функции F:
  • егэ 2

  • Выделите таблицу и отсортируйте строки по столбцу с результатом функции. Для этого в меню Главная => Настраиваемая сортировка =>:
  • Получили верхние строки таблицы — с которыми сравним исходную таблицу и найдем результат:
  • Получаем следующий порядок переменных:
  • xwzy
      ✎ Способ 2. Программирование:
      Язык python:

      print('x y z w')
      for x in 0, 1:
        for y in 0, 1:
          for z in 0, 1:
            for w in 0, 1:
              F = (not(x) or y or z) and (x or not(z) or not(w))
              if not(F):
                print(x, y, z, w)
    • В результате будут выведены значения для F=0:
    • x y z w
      0 0 1 1
      0 1 1 1
      1 0 0 0
      1 0 0 1
      
    • Сопоставив их с исходной таблицей, получим результат:
    • xwzy

        Язык pascalAbc.net:

      begin
        writeln('x':7, 'y':7, 'z':7,'w':7);
        for var x:=false to true do
          for var y:=false to true do
            for var z:=false to true do
              for var w:=false to true do
                if not((not x or y or z) and (x or not z or not w)) then
                  writeln(x:7, y:7, z:7,w:7);
      end.
    • В результате будут выведены значения для F=0:
    •       x      y      z      w
        False  False   True   True
        False   True   True   True
         True  False  False  False
         True  False  False   True
      
    • Где false = 0, True = 1
    • Сопоставив их с исходной таблицей, получим результат:
    • Ответ:

      xwzy
      ✎ Способ 3. Логические размышления:

      • Внешняя операция выражения — конъюнкция (). Во всех указанных строках таблицы истинности функция принимает значение 0 (ложь). Конъюнкция ложна аж в трех случаях, поэтому проверить на ложь очень затруднительно. Тогда как конъюнкция истинна (= 1) только в одном случае: когда все операнды истинны. Т.е. в нашем случае:
      • (¬x ∨ y ∨ z) ∧ (x ∨ ¬z ∨ ¬w) = 1 когда:
        1. (¬x ∨ y ∨ z) = 1 
        И 
        2. (x ∨ ¬z ∨ ¬w) = 1
        
      • Общая идея дальнейшего решения такова: поскольку внешняя операция — конъюнкция, и результат ее истинен, когда оба сомножителя в скобках будут истинны (=1), то нам необходимо сначала составить все наборы таблицы истинности для обоих сомножителей в скобках. Затем, так как конъюнкция подразумевает пересечение, необходимо сопоставить обе таблицы истинности и выбрать для каждого подходящего набора первого сомножителя подходящий (подходящие) набор (наборы) второго сомножителя. НО! так как у нас в задании известны только наборы для F = 0, то мы сопоставлять будем наборы, которые возвращают ложь. Теперь подробно.
      • Разобьём исходное выражение на две части и составим таблицу истинности отдельно для двух частей.
      • Для сомножителя (¬x ∨ y ∨ z):
      • x y z результат
        0 0 0 1
        0 0 1 1
        0 1 0 1
        0 1 1 1
        1 0 0 0
        1 0 1 1
        1 1 0 1
        1 1 1 1
      • Получили ложь в одном наборе, так как дизъюнкция () ложна только тогда, когда ложны все операнды.
      • Для сомножителя (x ∨ ¬z ∨ ¬w):
      • x z w результат
        0 0 0 1
        0 0 1 1
        0 1 0 1
        0 1 1 0
        1 0 0 1
        1 0 1 1
        1 1 0 1
        1 1 1 1
      • Соответственно, опять получили ложь в одном наборе, когда ложны все операнды.
      • Учтем, что нам нужно выбрать и «пересечь» (так как внешняя операция ) из всех наборов только те, которые возвращают ложь (так как по заданию известны только строки, где F = 0):
      • Решение 2 задания ЕГЭ по информатике

      • Выпишем только пересеченные наборы:
      • x y z w F
        0 0 1 1 0
        0 1 1 1 0
        1 0 0 0 0
        1 0 0 1 0
      • Сравнив вторую строку заданной таблицы и вторую строку получившейся таблицы, находим, что x находится в первом столбце.
      • x y z w F
        0 0 1 1 0
        0 1 1 1 0
        1 0 0 0 0
        1 0 0 1 0
        x ??? ??? ??? F
        0 1 1 0 0
        0 1 1 1 0
        1 0 0 0 0
        1 1 0 0 0
      • Сравнив первую и четвертую одинаковые строки получившейся таблицы, находим, что y в обоих случаях равен 0. Значит он находится в 4-м столбце.
      • x y z w F
        0 0 1 1 0
        0 1 1 1 0
        1 0 0 0 0
        1 0 0 1 0
        x ??? ??? y F
        0 1 1 0 0
        0 1 1 1 0
        1 0 0 0 0
        1 1 0 0 0
      • Сравнив предпоследнюю и последнюю строки получившейся таблицы, там где x = 1, находим, что z в обоих случаях равен 0, тогда как w принимает значение и 1 и 0. Значит z находится в 3-м столбце.
      • x y z w F
        0 0 1 1 0
        0 1 1 1 0
        1 0 0 0 0
        1 0 0 1 0
      • Для w остается второй столбец:
      • x w z y F
        0 1 1 0 0
        0 1 1 1 0
        1 0 0 0 0
        1 1 0 0 0

      Результат: xwzy

    🎦 Видеорешение (бескомпьютерный вариант):

    📹 здесь
    📹 Видеорешение на RuTube здесь


    Задание 2_12: Разбор 2 задания ЕГЭ:

    Миша заполнял таблицу истинности функции:

    (¬z ∧ ¬(x ≡ y)) → ¬(y ∨ w)

    но успел заполнить лишь фрагмент из трех различных ее строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z:

    Перем.1 Перем.2 Перем.3 Перем.4 F
    ??? ??? ??? ??? F
    1 1 0
    1 0 0
    1 1 0 0

    Определите, какому столбцу таблицы соответствует каждая из переменных x, y, z, w.

    В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы.

    Подобные задания для тренировки

    ✍ Решение:
     

    ✎ Способ 1. Логические размышления (бескомпьютерный вариант):

    • Решим задание методом построения полной таблицы истинности.
    • Посчитаем общее количество строк в таблице истинности и построим ее:
    • 4 переменных -> 24 = 16 строк
      

      полная таблица истинности

    • Для начала упростим выражение и выделим в нем две основные части относительно внешней операции (операция, которая выполняется последней).
    • (¬z ∧ ¬(x ≡ y)) → ¬(y ∨ w)
      1. Избавимся от импликации:
      ¬(¬z ∧ ¬(x ≡ y)) ∨ ¬(y ∨ w)
      2. Внесем знак отрицания в скобки (закон Де Моргана):
      (z ∨ (x ≡ y))(¬y ∧ ¬w) = 0
         1 часть = 0     2 часть = 0
      
      * Исходное выражение должно быть = 0. Дизъюнкция = 0, когда оба операнда равны 0.
      
    • Разбили исходное выражение на две части, теперь добавим столбцы для двух частей в таблицу истинности:
    • таблица истинности

    • Поясним: в первой части внешняя операция — дизъюнкция (ложна, когда оба операнда ложны). Во второй части внешняя операция — конъюнкция — ложна во всех случаях кроме того, когда оба операнда истинны:
    • (z ∨ (x ≡ y)) = 0 когда z = 0 и x ≡ y = 0
      
      ¬y ∧ ¬w = 0 когда:
      1. ¬y = 0  ¬w = 0
      2. ¬y = 1  ¬w = 0
      3. ¬y = 0  ¬w = 1
      
    • В результирующей таблице истинности получили только три набора значений переменных при которых выражение возвратит ложь.
    • x y w z F
      0 1 0 0 0
      0 1 1 0 0
      1 0 1 0 0
    • Сравнив их с исходной таблицей истинности, имеем:
    • y w x z F
      1 1 0 0 0
      1 0 0 0 0
      0 1 1 0 0
    • Таким образом, ответ: ywxz

    Результат: ywxz

    ✎ Способ 2. Программирование:

      Язык PascalAbc.net:

      begin
        writeln('x':7, 'y':7, 'z':7,'w':7);
        for var x:=false to true do
          for var y:=false to true do
            for var z:=false to true do
              for var w:=false to true do
                if not((not z and (x xor y)) <= not(y or w)) then
                  writeln(x:7, y:7, z:7,w:7);
      end.
    • В результате будут выведены значения для F=0:
    •       x      y      z      w
        False   True  False  False
        False   True  False   True
         True  False  False   True
      
    • Где false = 0, True = 1
    • Сопоставив их с исходной таблицей, получим результат: ywxz

      Язык Python:

      print ('x y z w')
      for x in 0,1:
          for y in 0,1:
              for z in 0,1:
                  for w in 0,1:
                      F=(not z and not(x==y))<=(not(y or w))
                      if not F:
                          print (x,y,z,w)
    • В результате будут выведены значения для F=0:
    • x y z w
      0 1 0 0
      0 1 0 1
      1 0 0 1
      

      Сопоставив их с исходной таблицей, получим результат:

    Результат: ywxz

    🎦 Доступно видео решения этого задания (бескомпьютерный вариант):

      
    📹 здесь
    📹 Видеорешение на RuTube здесь

    🎦 Видео (решение 2 ЕГЭ в Excel):

     
    📹 здесь
    📹 Видеорешение на RuTube здесь
    📹 Видеорешение на RuTube здесь (Программирование)


    Задание 2_10: Решение 2 задания ЕГЭ по информатике:

    Логическая функция F задается выражением

    ¬a ∧ b ∧ (c ∨ ¬d)

    Ниже приведен фрагмент таблицы истинности функции F, содержащей все наборы аргументов, при которых функция F истинна.

    Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных a, b, c, d.

    Перем.1 Перем.2 Перем.3 Перем.4 F
    ??? ??? ??? ??? F
    0 1 0 0 1
    1 1 0 0 1
    1 1 0 1 1

    В ответе запишите буквы в том порядке, в котором идут соответствующие им столбцы.

    ✍ Решение:

    🎦 (Бескомьютерный вариант) Предлагаем подробный разбор посмотреть на видео:

    📹 здесь
    📹 Видеорешение на RuTube здесь


    Задание 2_3: Решение задания 2. Демоверсия ЕГЭ 2018 информатика:

    Логическая функция F задаётся выражением ¬x ∨ y ∨ (¬z ∧ w).
    На рисунке приведён фрагмент таб. ист-ти функции F, содержащий все наборы аргументов, при которых функция F ложна.
    Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных w, x, y, z.

    Перем. 1 Перем. 2 Перем. 3 Перем. 4 F
    ??? ??? ??? ??? F
    1 0 0 0 0
    1 1 0 0 0
    1 1 1 0 0

    В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала – буква, соответствующая первому столбцу; затем – буква, соответствующая второму столбцу, и т.д.) Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

    Подобные задания для тренировки

    ✍ Решение:

      ✎ Логические размышления (бескомпьютерный вариант):

    • Внешним действием (последним выполняемым) в исходном выражении является дизъюнкция:
    • ¬x  y  (¬z ∧ w)
    • Вспомним таб. ист-ти для дизъюнкции (логическое сложение):
    • x1 x2 F
      0 0 0
      0 1 1
      1 0 1
      1 1 1
    • Чтобы исходное выражение было истинным, нужно, чтобы хотя бы один из операндов равнялся единице. Т.е. нельзя наверняка сказать, где будет 1, а где 0 (¬x = 1 или 0, y = 1 или 0, ¬z ∧ w = 1 или 0).
    • Функция же ложна только в одном случае, — когда все операнды ложны. Поэтому будем искать по признаку лжи.
    • В исходной таблице истинности во всех строках функция ложна. Чтобы понять в каком столбце должна находиться та или иная переменная, возьмем за основу строку, в которой только одна единица или только один нуль.
    • Строка №1: в ней одна единица — первый столбец. В исходной формуле, чтобы функция была ложна, необходимо, чтобы ¬x = 0, иными словами x = 1. Значит первый столбец соответствует переменной x.
    • Перем. 1 Перем. 2 Перем. 3 Перем. 4 F
      x ??? ??? ??? F
      1 0 0 0 0
    • Строка №3: в ней один нуль — четвертый столбец. В исходной формуле, чтобы функция была ложна, необходимо, чтобы y = 0. Значит четвертый столбец соответствует переменной y.
    • Перем. 1 Перем. 2 Перем. 3 Перем. 4 F
      x ??? ??? y F
      1 1 1 0 0
    • Строка №2: в ней второй столбец равен единице, а третий — нулю. В исходном выражении ¬z ∧ w должно равняться 0, чтобы функция была ложной. Конъюнкция истинна только тогда, когда оба операнда истинны (=1); в нашем случае функция должна быть ложной, но пойдем от обратного. Если ¬z = 1, т.е. z = 0, а w = 1, то это неверно для нашего случая. Значит всё должно быть наоборот: z = 1, а w = 0. Таким образом столбец второй соответствует z, а столбец третий — w.
    • x z w y F
      1 0 0 0 0
      1 1 0 0 0
      1 1 1 0 0

    Результат: xzwy

    ✎ Способ 2. Программирование:
    Язык pascalABC.NET:

    begin
      writeln('x  ','y  ','z  ','w  ');
      for var x:=false to true do
        for var y:=false to true do
          for var z:=false to true do
            for var w:=false to true do
              if not(not x or y or(not z and w)) then
                writeln(x:7,y:7,z:7,w:7);
    end.

    🎦 (бескомпьютерный вариант) Подробное решение данного 2 задания из демоверсии ЕГЭ 2018 года смотрите на видео:

    📹 здесь
    📹 Видеорешение на RuTube здесь


    Задание 2_13: Разбор досрочного егэ по информатике 2019

    Логическая функция F задаётся выражением

    (x ∧ ¬y) ∨ (y ≡ z) ∨ ¬w
    

    Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z, w.
    В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы.

    Перем.1 Перем.2 Перем.3 Перем.4 F
    ??? ??? ??? ??? F
    0 0 0
    0 1 0 1 0
    1 0 0

    ✍ Решение:
     

    🎦 Видеорешение (бескомпьютерный вариант):
    📹 здесь
    📹 Видеорешение на RuTube здесь


    Задания для тренировки

    Задание 2_2: Задание 2 ЕГЭ по информатике:

    Каждое из логических выражений F и G содержит 5 переменных. В табл. истинности для F и G есть ровно 5 одинаковых строк, причем ровно в 4 из них в столбце значений стоит 1.

    Сколько строк таблицы истинности для F ∨ G содержит 1 в столбце значений?

    Подобные задания для тренировки

    ✍ Решение:

    • Поскольку в каждом из выражений присутствует 5 переменных, то эти 5 переменных порождают таблицу истинности из 32 строк: т.к. каждая из переменных может принимать оно из двух значений (0 или 1), то различных вариантов с пятью переменными будет 25=32, т.е. 32 строки.
    • Из этих 32 строк и для F и для G мы знаем наверняка только о 5 строках: 4 из них истинны (=1), а одна ложна (=0).
    • Вопрос стоит о количестве строк = 1 для таб. истинности F ∨ G. Данная операция — дизъюнкция, которая ложна только в одном случае — если F = 0 и одновременно G = 0
    • В исходных таблицах для F и G мы знаем о существовании только одного 0, т.е. в остальных строках может быть 1. Т.о., и для F и для G в 31 строке могут быть единицы (32-1=31), а лишь в одной — ноль.
    • Тогда для F ∨ G только в одном случае будет 0, когда и F = 0 и G = 0:
    • F G F ∨ G
      1 0 0 0
      2 0 1 1
      1
      32 1
    • Соответственно, истинными будут все остальные строки:
    • 32 - 1 = 31

    Результат: 31

    Подробное объяснение данного задания смотрите на видео:

    📹 здесь


    Задание 2_6: Решение 2 задания ЕГЭ по информатике:

    Каждое логическое выражение A и B зависит от одного и того же набора из 7 переменных. В таблицах истинности каждого из этих выражений в столбце значений стоит ровно по 4 единицы.

    Каково максимально возможное число единиц в столбце значений таблицы истинности выражения A ∨ B?

    ✍ Решение:

    • Полная таблица истинности для каждого из выражений A и B состоит из 27 = 128 строк.
    • В четырех из них результат равен единице, значит в остальных — 0.
    • A ∨ B истинно в том случае, когда либо A = 1 либо B = 1, или и A и B = 1.
    • Поскольку А = 1 только в 4 случаях, то чтобы получить максимальное количество единиц в результирующей таблице истинности (для A ∨ B), расположим все единицы т.и. для выражения A так, чтобы они были в строках, где B = 0, и наоборот, все строки, где B = 1, поставим в строки, где A = 0:
    • A B
      1 0
      1 0
      1 0
      1 0
      0 1
      0 1
      0 1
      0 1
      0 0
    • Итого получаем 8 строк.
    • Если бы в задании требовалось найти минимальное количество единиц, то мы бы совместили строки со значением = 1, и получили бы значение 4.

    Результат: 8


    Задание 2_7: Решение 2 задания ЕГЭ по информатике:

    Каждое логическое выражение A и B зависит от одного и того же набора из 8 переменных. В таблицах истинности каждого из этих выражений в столбце значений стоит ровно по 6 единиц.

    Каково максимально возможное число нулей в столбце значений таблицы истинности выражения A ∧ B?

    ✍ Решение:

    • Полная таблица истинности для каждого из выражений A и B состоит из 28 = 256 строк.
    • В шести из них результат равен единице, значит в остальных — 0.
    • A ∧ B ложно в том случае, когда:
      A ∧ B = 0 если:
      
      1. A = 0, B = 1 
      2. B = 0, A = 1
      3. A = 0 и B = 0
      
    • Во всех случаях там где А=1 может стоять B=0, и тогда результат F = 0. Поскольку нам необходимо найти максимально возможное число нулей, то как раз для всех шести А=1 сопоставим B=0, и наоборот, для всех шести возможных B=1 сопоставим A=0
    • A B F
      1 0 0
      1 0 0
      1 0 0
      1 0 0
      0 1 0
      0 1 0
      0 1 0
      0 1 0
      0 0 0
    • Поскольку строк всего 256, то вполне возможно, что все 256 из них возвратят в результате 0

    Результат: 256


    Задание 2_4: 2 задание:

    Дан фрагмент таблицы истинности выражения F.

    x1 x2 x3 x4 x5 x6 x7 F
    1 0 0 1 1 1 1 0
    0 1 0 0 1 0 1 1
    0 1 0 1 1 0 1 0

    Каким из приведённых ниже выражений может быть F?
    1) ¬x1 ∧ x2 ∧ ¬x3 ∧ ¬x4 ∧ x5 ∧ ¬x6 ∧ x7
    2) x1 ∨ x2 ∨ x3 ∨ ¬x4 ∨ ¬x5 ∨ ¬x6 ∨ ¬x7
    3) x1 ∧ ¬x2 ∧ x3 ∧ ¬x4 ∧ x5 ∧ x6 ∧ ¬x7
    4) x1 ∨ ¬x2 ∨ x3 ∨ x4 ∨ ¬x5 ∨ ¬x6 ∨ x7

    ✍ Решение:

    • В первом внешняя операция (выполняется последней) — конъюнкция. Начнем рассмотрение с нее. Соответственно, проверяем по второй строке таб. ист-ти, там где F = 1, так как в таком случае все аргументы должны быть истинными (см. таб. истинности для конъюнкции).
    • Если мы подставим в нее все аргументы выражения, то функция действительно возвращает истину. Т.е. пункт первый подходит:
    • гвэ 11 класс решение задания 2

    • Но проверим на всякий случай остальные.
    • Второй пункт проверяем по первой и третьей строке, так как основная операция — дизъюнкция — ложна только в том случае, если все аргументы ложны (см. таб. истинности для дизъюнкции). Проверяя по первой строке, сразу видим, что x1 в ней равен 1. В таком случаем функция будет = 1. Т.е. этот пункт не подходит:
    • информатика гвэ, решение 2 задания

    • Третий пункт проверяем по второй строке, так как основная операция — конъюнкция — возвратит истину только тогда, когда все операнды равны 1. Видим, что x1 = 0, соответственно функция будет тоже равна 0. Т.е. выражение нам не подходит:
    • гвэ 11 класс

    • Четвертый пункт проверяем по первой и третьей строкам. В первой — x1 = 1, т.е. функция должна быть равна 1. Т.е. пункт тоже не подходит:
    • разбор 2 задания гвэ

    • Таким образом, ответ равен 1.

    Результат: 1

    Решение 2 задания ГВЭ по информатике смотрите на видео:

    📹 здесь


    Задание 2_8: Решение 2 задания ЕГЭ по информатике:

    Дано логическое выражение, зависящее от 5 логических переменных:

    (¬x1 ∨ ¬x2 ∨ ¬x3 ∨ x4 ∨ x5) ∧ (x1 ∨ x2 ∨ x3 ∨ ¬x4 ∨ ¬x5)

    Сколько существует различных наборов значений переменных, при которых выражение истинно?

    1) 0
    2) 30
    3) 31
    4) 32

    Подобные задания для тренировки

    ✍ Решение:

    • Поскольку выражение включает 5 переменных, то таб. ист-ти состоит из 25 = 32 строк.
    • Внешней операцией (последней) является конъюнкция (логическое умножение), а внутри скобок — дизъюнкция (логическое сложение).
    • Обозначим первую скобку за А, а вторую скобку за B. Получим A ∧ B.
    • Найдем сколько нулей существует для таб. истинности:
    •    A  B  F
      1. 0  0  0
      2. 0  1  0
      3. 1  0  0
      

      Теперь рассмотрим каждый случай отдельно:

    • 1 случай. 0 0 : A = 0 и B = 0, то есть:
    • ¬x1 ∨ ¬x2 ∨ ¬x3 ∨ x4 ∨ x5 = 0
      и
      x1 ∨ x2 ∨ x3 ∨ ¬x4 ∨ ¬x5 = 0.

    • Обратим внимание, что во вторых скобках везде стоит инверсия переменных, которые находятся в первых скобках. Таким образом, это невозможно, так как дизъюнкция равна нулю, когда все операнды равны нулю. А если в первых скобках все 0, то из-за инверсий во вторых скобках все 1. То есть этот случай нам не подходит.
    • 2 случай. 0 1 : нам он подходит, так как если первая скобка возвратит 0, то вторая вернет 1.
    • 3 случай. 1 0 : нам он подходит, так как если вторая скобка возвратит 0, то первая вернет 1.
    • Итого получаем два случая, когда исходное выражение вернет 0, т.е. две строки таблицы истинности.
    • Тогда получим количество строк, с результатом равным 1:
    • 32 - 2 = 30, что соответствует номеру 2
      

    Результат: 2

    Подробное решение задания смотрите в видеоуроке:

    📹 здесь


    Задание 2_5: Решение 2 задания ЕГЭ по информатике:

    Дан фрагмент таблицы истинности для выражения F:

    x1 x2 x3 x4 x5 x6 F
    0 0 1 1 0 0 1
    0 0 0 0 1 1 1
    1 0 1 0 1 1 1
    0 1 1 1 0 1 0

    Укажите максимально возможное число различных строк полной таблицы истинности этого выражения, в которых значение x3 не совпадает с F.

    Подобные задания для тренировки

    ✍ Решение:

    • Полная таблица истинности будет иметь 26 = 64 строк (т.к. 6 переменных).
    • 4 из них нам известны: в них x3 два раза не совпадает с F.
    • Неизвестных строк:
    •  
      64 - 4 = 60
      
    • В неизвестных x3 может не совпадать с F, кроме того, в двух известных x3 не совпадает с F. Соответственно максимально возможное число строк с несовпадающими x3 и F, будет:
    • 60 + 2 = 62
      

    Результат: 62


    Задание 2_9: Решение 2 задания ЕГЭ по информатике:

    Дан фрагмент таблицы истинности для выражения F:

    x1 x2 x3 x4 x5 x6 x7 F
    0 0 0
    0 0 1
    1 1 1

    Каким выражением может быть F?
    1) x1 ∧ (x2 → x3) ∧ ¬x4 ∧ x5 ∧ x6 ∧ ¬x7
    2) x1 ∨ (¬x2 → x3) ∨ ¬x4 ∨ ¬x5 ∨ x6 ∨ ¬x7
    3) ¬x1 ∧ (x2 → ¬x3) ∧ x4 ∧ ¬x5 ∧ x6 ∧ x7
    4) ¬x1 ∨ (x2 → ¬x3) ∨ x4 ∨ x5 ∨ x6 ∧ x7

    ✍ Решение:

    • Рассмотрим отдельно каждый пункт и найдем последнюю операцию, которая должна быть выполнена (внешнюю).
    • 1 пункт:

      (((x1 ∧ (x2 → x3) ∧  ¬x4) ∧ x5) ∧ x6)  ¬x7
      
    • Внешняя операция — конъюнкция. Ее проще проверять по строке, в которой F = 1 (значит все сомножители должны быть равны 1).
    • Возьмем 3-ю строку, в ней x4=1. В нашем выражении х4 с отрицанием, т.е. = 0. Для конъюнкции, когда хоть один из сомножителей равен нулю, выражение вернет в результате 0, а у нас в строке 1. Т.е. этот пункт не подходит:
    • пример решения 2 задания егэ
      2 пункт:

      (((x1 ∨ (¬x2 → x3) ∨  ¬x4) ∨ ¬x5) ∨ x6)   ¬x7
      
    • Последняя выполняющаяся операция (внешняя) — дизъюнкция. Ее легче проверять по строке, в которой F = 0 (значит все слагаемые должны быть равны 0).
    • Смотрим по первой строке: х4 = 0, в рассматриваемом пункте он с отрицанием, т.е. = 1. Соответственно все выражение вернет единицу, а в таблице в строке 0. Т.е. этот пункт не подходит:
    • решение задания 2 егэ
      3 пункт:

      (((¬x1 ∧ (x2 → ¬x3) ∧  x4) ∧ ¬x5) ∧ x6)  x7
      
    • Последняя операция — конъюнкция. Ее проще проверять по строке, в которой F = 1 (значит все сомножители должны быть равны 1).
    • Возьмем 2-ю строку: в ней х7 = 0, в рассматриваем пункте х7 без отрицания, т.е. так и остается равным нулю. При умножении выражение вернет в результате 0. В таблице — 1. Т.е. пункт тоже не подходит:
    • Как решать 2 задание

    • Единственным подходящим вариантом остался пункт под номером 4 (на всякий случай всегда стоит проверить и его).

    Результат: 4

    В видеоуроке рассмотрено подробное решение 2 задания:

    📹 здесь


    Задание 2_1: Задание 2 ЕГЭ по информатике:

    Логическая функция F задается выражением
    (y → x) ∧ (y → z) ∧ z.

    Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.

    Перем. 1 Перем. 2 Перем. 3 F
    ??? ??? ??? F
    1 0 0 0 0
    2 0 0 1 0
    3 0 1 0 1
    4 0 1 1 1
    5 1 0 0 0
    6 1 0 1 0
    7 1 1 0 0
    8 1 1 1 1

    В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы.

    ✍ Решение:

    • Сначала необходимо рассмотреть логическую операцию, которую мы будем выполнять в последнюю очередь — это логическое И (конъюнкция) или . То есть внешнюю операцию:
    • (y → x) ∧ (y → z)  z
      
    • Конъюнкцию легче рассматривать по тем строкам таб. ист-ти, в которых F = 1, т.е. №3, №4, и №8
    • Поскольку для конъюнкции функция истинна только тогда, когда все переменные истинны, то необходимо чтобы отдельно каждая скобка была истинна ((y → x) = 1 и (y → z)=1) и переменная z тоже была истинной (=1)
    • (y → x) ∧ (y → z) ∧ z = 1
         если: 
      1. (y → x) = 1
      2. (y → z) = 1
      3. z = 1
      
    • Поскольку с выражениями в скобках сложней работать, определим сначала какому столбцу соответствует z. Для этого выберем строку (№3), где F = 1, а в остальных ячейках только одна единица, остальные — нули.
    • Перем. 1 Перем. 2 Перем. 3 F
      3 0 1 0 1
    • Таким образом, делаем вывод, что z находится во втором столбце (отсчет ведем слева):
    • Перем. 1 Перем. 2 Перем. 3 F
      _ ??? z ??? F
    • Дальше нам необходимо рассмотреть две скобки, в которых находится операция импликации: (y → x) и (y → z). Обе эти скобки должны возвращать истину (=1). В таб. истинности для импликации, функция возвращает в результате 1 тогда, когда:
    • вторая переменная (заключение) равна 1 (первая при этом может быть любой),
    • вторая переменная (заключение) равна 0, а первая обязательно должна быть равна тоже 0.
    • Рассмотрим скобку (y → x) и строку 4 таблицы:
    • Перем. 1 z Перем. 3 F
      4 0 1 1 1
    • Для этой строки только y может быть равен 0, т.к. если x = 0, тогда y=1, и скобка в результате возвратит ложь (1 → 0 = 0). Соответственно, y находится в первом столбце. А x значит должен стоять в третьем:

    Результат: yzx

    Детальный разбор данного задания 2 ЕГЭ по информатике предлагаем посмотреть в видео:

    📹 здесь


    Здравствуйте, дорогие друзья! Сегодня разберём, как решать второе задание из ЕГЭ по информатике 2020.

    Во втором задании ЕГЭ по информатике у нас обычно есть логическая функция, которая зависит от логических переменных. Логические переменные могут принимать только два значения: 0 (Ложь) или 1 (Истина).

    ЕГЭ по информатике - задание 2 (Логические функции и переменные)

    С логическими переменными можно производить логические операции. При решении второго задания из ЕГЭ по информатике необходимо твёрдо знать каждую логическую операцию, и давайте рассмотрим их.

    ЕГЭ по информатике - задание 2 (Логическое отрицание)ЕГЭ по информатике - задание 2 (Логическое сложение)ЕГЭ по информатике - задание 2 (Логическое умножение)ЕГЭ по информатике - задание 2 (Логическое следование)ЕГЭ по информатике - задание 2 (логическая равносильность)ЕГЭ по информатике - задание 2 ( 2 задание сложение по модулю 2)Порядок выполнения логических операций:

    1. () — операции в скобках
    2. ¬ — логическое отрицание
    3. ∧ — логическое умножение
    4. ∨ — логическое сложение
    5. ⟶ — следование
    6. ≡ — равнозначность

    Так же на ЕГЭ по информатике будет полезно знать логические формулы :
    ЕГЭ по информатике - задание 2 ( логические формулы)Ещё соотношения:

    ЕГЭ по информатике - задание 2 ( интересные формулы)

    Передём к решению задач из ЕГЭ по информатике

    Задача 1 (лёгкая)

    Логическая функция F задаётся выражением z ∧ ¬y ∧ (w → x).
    Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F.
    Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z, w.

    ЕГЭ по информатике - задание 2 (лёгкая задача)

    В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

    Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и фрагмент таблицы истинности:

    ЕГЭ по информатике - задание 2 (лёгкая задача) пример

    Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.

    Решение:

    Видим, что у функции основным действием является логическое умножение. По таблице видно, что функция имеет значение только 1 . Логическое умножение даёт 1 (единицу) тогда, когда каждое выражение равно 1 (единице). Значит каждое выражение в нашей функции должно равняться единице.

    ЕГЭ по информатике - решение лёгкой задачи

    Отсюда видно, что переменная z должна всегда быть равна 1 (единице). Это первый столбец. Отрицание y тоже должно быть 1 (единицей), тогда просто y всегда будет 0 (нулём). Это второй столбец.

    Осталось определить положение w и x. Здесь делаем предположение, что в третьем столбце стоит w, а в 4-ом x. Проверяем построчно и видим, что во второй строчке при таком расположении из 1 следует 0, что в итоге приводит выражение (w → x) в 0, а у нас это выражение всегда должно быть 1 (единицей). Значит, мы предположение сделали неверное, и получается x — это третий столбец, а w — четвёртый.

    Ответ: zyxw

    Задача 2 (средний уровень)

    Логическая функция F задаётся выражением (x ∧ ¬y) ∨ (y ≡ z) ∨ w.

    Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F.

    Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z, w.

    ЕГЭ по информатике - задание 2 (задача)

    В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы (сначала — буква, соответствующая первому столбцу; затем — буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

    Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и фрагмент таблицы истинности:

    ЕГЭ по информатике - задание 2 (лёгкая задача) пример

    Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.

    Решение:

    Определяем главную логическую операцию («главную скрипку»), которая соединяет разные выражения. Видим, что это логическое сложение.

    Во всех строчках таблицы функция принимает значение 0 (ноль). Значит, и каждое выражение должно принимать значение 0 (ноль).

    ЕГЭ по информатике - задание 2 (задача схема) пример

    Самым слабым звеном является переменная w, потому что она стоит одна. Переменная w должна равняться всегда 0(нулю) — этому условию может удовлетворить только третий столбец. Значит w стоит на третьем месте.

    Следующим слабым звеном является равносильность. Она должна «выдавать» 0 (ноль). Равносильность «выдаёт» 0 (ноль), когда переменные разные!

    Проанализируем первый и второй столбец. В третьей строчке, и там, и там, стоит 1 (единица). Значит, первый и второй столбец не могут быть одновременно y и z (или z и y).

    Рассмотрим второй и четвёртый столбец. Вторая строчка содержит одинаковое значение 0 (ноль), и там, и там. Значит, второй и четвёртый столбец не могут быть одновременно y и z (или z и y).

    Таким образом, y и z (или z и y) будут столбцы первый и четвёртый! И теперь можно расставить недостающие значения в этих столбцах. Расставляем, чтобы были разные значения, а второй столбец получается x.

    ЕГЭ по информатике - задание 2 (решение) пример

    Осталось разобраться с z и y. Обратимся к первому выражению (x ∧ ¬y) и посмотрим на третью строчку. Если в четвёртом столбце будет стоять y, то отрицание на y превратит ноль(ноль) в 1(единицу) в четвёртой строчке. Тогда окажется, что у x — 1 и ¬y — 1, и выражение (x ∧ ¬y) тоже получится 1(единицей). А у нас каждое выражение должно равняться 0(нулю). Получается y будет стоять в первом столбце, а z в четвёртом.

    Тогда ответ будет равен yxwz.

    Ответ: yxwz

    Мощнейший метод для решения второго задания из ЕГЭ по информатике

    Задача 3 (хороший уровень)
    Логическая функция F задаётся выражением ((x → y ) ∧ (y → w)) ∨ (z ≡ ( x ∨ y)).
    Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F.
    Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z, w.

    ЕГЭ по информатике - задание 2 мощнейший метод

    В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы (сначала — буква, соответствующая первому столбцу; затем — буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

    Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и фрагмент таблицы истинности:

    ЕГЭ по информатике - задание 2 (лёгкая задача) пример

    Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.

    Решение:

    «Главной скрипкой» в нашей функции является логическое сложение, потому что соединяет два выражения ((x → y ) ∧ (y → w)) и (z ≡ ( x ∨ y)).

    Тогда каждое выражение должно равняться 0(нулю).

    ЕГЭ по информатике - решение второго задания мощнейшим методом

    Теперь кульминация мощнейшего метода. У нас всего 4 переменных. Выпишем все комбинации для 4-х переменных. Таблица будет точно такая же, как мы писали в первом задании (её очень легко составить). Всего получается 16 комбинаций (16 = 24).

    Теперь отметим зелёным плюсом те строчки, которые обращают выражение ((x → y ) ∧ (y → w)) в 0(ноль). Следующий шаг: Отметим галочкой те строчки, которые обращают в ноль второе выражение (z ≡ ( x ∨ y)) (Мы должны искать среди тех, которые уже отмечены плюсом).

    При небольшой тренировке анализ подобных выражений занимает сущие секунды!

    ЕГЭ по информатике - решение второго мощнейший метод (перебор)

    У нас получается 4 строчки, которые удовлетворяют нашей функции:

    ЕГЭ по информатике - решение второго задания мощнейший метод (финал)

    Отсюда видно, что переменная z может быть равна только 0(нулю)! Значит, она занимает третий столбец, потому что в остальных столбцах есть хотя бы одна 1(единица).

    Переменная w имеет только одну 1(единицу). Значит, её ставим во второй столбец, потому что в первом и четвёртом уже по 2 единицы минимум, а третий уже занят z.

    Теперь находим строчку c 1(единицей) в переменной w (Таблица данная в условии задачи) Кто в этой строчке будет иметь единицу (кроме w) — будет x! Это четвёртый столбец! Значит, x — это четвёртый столбец. Переменной y — достаётся первый столбец

    Ответ: ywzx.

    На этом всё! Сегодня рассмотрели теорию и основные методы для эффективного решения второго задания из ЕГЭ по информатике!

    Пока!

    В спецификации написано, что эту задачу нужно решать без компьютера. Тем более её решить совсем не сложно с помощью «Мощнейшего метода».

    Да ужметод. На простых заданиях разбирать можно

    Примеры заданий ЕГЭ по информатике с решением на Паскале. На странице использованы условия задач из демо вариантов и задачника с сайта Полякова Константина Юрьевича (kpolyakov.spb.ru)

    Содержание

    1. Задание 5
    2. Задание 6
    3. Задание 14
    4. Задание 15
    5. Задание 16
    6. Задание 17
    7. Задание 22
    8. Задание 24
    9. Задание 25

    Задание 5

    Демо-2022
    На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
    1. Строится двоичная запись числа N.
    2. К этой записи дописываются справа ещё два разряда по следующему
    правилу:
    а) складываются все цифры двоичной записи числа N, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;
    б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы её цифр на 2.
    Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью результирующегочисла R.
    Укажите такое наименьшее число N, для которого результат работы данного алгоритма больше числа 77. В ответе это число запишите в десятичной системе счисления.

    Решение:

    var
      n, i, b, s, k: integer;
      r: real;
      st: string;
    begin
      for n := 1 to 100 do
      begin
        k := n; //перебор исходного числа N
        s := 0; //сумма цифр двоичного кода
        r := 0; //результирующее десятичное число R
        st := ''; //очищаем строку двоичного кода для нового числа
        while k >= 1 do //цикл перевода в двоичный код исходного числа
        begin
          s := s + (k mod 2); //вычисление суммы цифр двоичного кода
          st := st + (k mod 2);//формирование строки двоичного кода из остатков деления на 2
          k := k div 2;// деление на 2
        end;
        st := ReverseString(st) + s mod 2; //переворачиваем код и дописываем остаток
        s := s + s mod 2;//вычисление суммы нового кода
        st := st + s mod 2;//формирование строки двоичного кода с добавлением остатка
        for i := 1 to Length(st) do //преобразование двоичного кода в десятичное число
          if st[i] = '1' then r := r + power(2, Length(st) - i);
        if r > 77 then begin println(n, r);break; end;//вывод найденных чисел
      end;
    end.

    Задание 6

    Демо-2022 Определите, при каком наибольшем введённом значении переменной s программа выведет число 64.

    zad6-22

    Решение: Используем исходный код. Добавим в него цикл перебора значений S и вывода при выполнении условия. Последнее значение и будет ответом.

    var
      s, n, i: integer;
    begin
      for i := 1 to 510 do
      begin
        s := i;  
        s := s div 10;
        n := 1;
        while s < 51 do
        begin
          s := s + 5;
          n := n * 2
        end;
        if n = 64 then writeln(i);
      end;
    end.

    Задание 14

    Демо-2022 Значение арифметического выражения: 3*438+2*423+420+3*45+2*44+1 – записали в системе счисления с основанием 16. Сколько значащих нулей содержится в этой записи?

    Решение:

    var k,x:biginteger;
    begin
      k:=0;
    	x:=3*4bi**38+2*4bi**23+4bi**20+3*4bi**5+2*4bi**4+1;
    	while x>0 do
    	begin
    		if x mod 16=0 then k:=k+1;
    		x:=x div 16;
    	end;
      print(k)
    end.

    Демо-2021 Значение арифметического выражения: 497 + 721 – 7 – записали в системе счисления с основанием 7. Сколько цифр 6 содержится в этой записи?

    Решение:

    var s, i,k6,x:integer;
    osn,n:biginteger;
    begin
      osn:=7; 
        k6:=0;
        n:=power(osn,14)+power(osn,21)-7;
        while n>0 do
        begin
          if n mod 7 = 6 then k6:=k6+1;
          n:=n div 7;
        end;
          print(k6);          
    end.

    Демо-2020 Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 70 идущих подряд цифр 8? В ответе запишите полученную строку.
    НАЧАЛО
    _ПОКА нашлось (2222) ИЛИ нашлось (8888)
    __ЕСЛИ нашлось (2222)
    ___ТО заменить (2222, 88)
    ___ИНАЧЕ заменить (8888, 22)
    __КОНЕЦ ЕСЛИ
    _КОНЕЦ ПОКА
    КОНЕЦ

    Решение:

    begin
      var s: string := '8' * 70;
      while (s.contains('2222')) or (s.contains('8888')) do
      begin
        if (s.contains('2222')) then
          s := s.replace('2222', '88')
        else
          s := s.replace('8888', '22');
      end;
      writeln(s);
    end.

    Задание 15

    Демо-2021 Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наибольшего натурального числа А формула ¬ДЕЛ(x, А) → (ДЕЛ(x, 6) → ¬ДЕЛ(x, 9)) тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?

    Решение:

    // Делители
    var
     a,x, flag: integer;
     
    begin
      for  a := 1 to 100 do
      begin
        flag := 0;
        for x := 1 to 1000 do
          if not(x mod a = 0) <= ((x mod 6 = 0) <= not (x mod 9 = 0)) = false then begin
            flag := 1;
            break;
          end;
        if flag = 0 then print(a);
      end;
    end.

    К.Поляков №161 Определите наименьшее натуральное число A, такое что выражение
    (X & 29 ≠ 0) → ((X & 17 = 0) → (X & A ≠ 0))
    тождественно истинно (то есть принимает значение 1 при любом натуральном значении переменной X)?

    Посмотреть решение

    var
      A, x, flag: integer;
     
    begin
      for A := 0 to 31 do
      begin
        flag := 0;
        for x := 0 to 31 do
          if (((x and 29) = 0) or ((x and 17) <> 0) or ((x and A) <> 0))=false then flag := 1;
          if flag = 0 then 
    	  begin
            writeln(A); 
    	    break;
          end;
      end;
    end.

    Задание 16

    Демо-2022 Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
    F(n) = 1 при n = 1;
    F(n) = n + F(n − 1), если n – чётно,
    F(n) = 2 × F(n − 2), если n > 1 и при этом n – нечётно.
    Чему равно значение функции F(26)?

    Решение:

    var
      i, n: integer;
      f: array[1..100] of integer;
    begin
      print('Введите значение n');
      readln(n);
      f[1] := 1;
      for i := 2 to n do 
        if i mod 2 = 0 then f[i] := i + f[i - 1] else f[i] := 2 * f[i - 2];
      print(f[n]);
    end.

    К.Поляков №46Алгоритм вычисления функции F(n) задан следующими соотношениями:
    F(n) = n при n ≤ 3;
    F(n) = 2 · n · n + F(n – 1) при чётных n > 3;
    F(n) = n · n · n + n + F(n – 1) при нечётных n > 3;
    Определите количество натуральных значений n, при которых F(n) меньше, чем 107.

    Посмотреть решение

    var
      i: integer;
      f: array[1..1000] of integer;
    begin
      i:=3;
      f[1] := 1;
      f[2] := 2;
      f[3] := 3;
     while f[i]< 10**7 do 
       begin
        i:=i+1;
        if i mod 2 = 0 then f[i] := 2*i*i + f[i - 1] else f[i] := i*i*i+i +f[i - 1];    
        end;
      print(i-1);// не учитываем последнее число
    end.

    Задание 17

    Демо-2022
    В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых хотя бы одно число делится на 3, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

    Файл с данными: 17.txt

    Решение:

    var a,b,k,maxsum: integer;  
    begin    
      Assign( input, '17.txt' );
      maxsum:=-20000; k:=0;
      readln(a);
      while not eof do begin
      readln(b);
      if (a mod 3 = 0) or (b mod 3 = 0) then begin
                k := k + 1;
                if a + b > maxsum then maxsum := a + b;
            end;
            a := b;
        end;
      Println( k, maxsum)
    end.

    Задание 22

    Демо-2022
    Ниже на языке программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 4,а потом 5.
    задание 22 демо 22

    Решение:

    var
      x, i, L, M, Q: integer;
    begin
      for i := 9 to 50 do
      begin
        x := i;
        Q := 9;
        L := 0;
        while x >= Q do
        begin
          L := L + 1;
          x := x - Q;
        end;
        M := x;
        if M < L then
        begin
          M := L;
          L := x;
        end;
        if (L = 4) and (M = 5) then print(i);
      end;
    end.

    Задание 24

    Демо-2022
    Текстовый файл состоит из символов P, Q, R и S. Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет идущих подряд символов P. Для выполнения этого задания следует написать программу.

    Файл с данными: 24.txt

    Решение:

    var
      i, maxlen, curlen: longint;  {описание переменных}
      s: string;
      f: text;{текстовый файл}
    begin
      assign(f, '24.txt');    {исходный текстовые файл с данными}
      reset(f);
      readln(f, s);{открываем файл для чтения данных}
      maxlen := 1;            
      curlen := 1; 
      for i := 2 to Length(s) do 
        if not ((s[i] = 'P') and (s[i-1] = 'P')) then 
        begin
          curLen := curLen + 1;
          if curLen > maxLen then maxLen := curLen;
        end
        else curLen := 1;
      writeln(maxLen);   
      close(f);     { закрываем файл}
    end.

    Задание 25

    Демо-2022
    Пусть M – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей и у числа нет, то значение M считается равным нулю. Напишите программу, которая перебирает целые числа, большие 700 000, в порядке возрастания и ищет среди них такие, для которых значение M оканчивается на 8. Выведите первые пять найденных чисел и соответствующие им значения M.
    Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение М.
    Строки выводятся в порядке возрастания найденных чисел.

    Решение:

    var
      d1, chislo: integer;
    begin
      for chislo := 700001 to 700100 do
        for d1 := 2 to chislo - 1 do
          if chislo mod d1 = 0 then begin
            if (d1 + chislo div d1) mod 10 = 8 then println(chislo, d1 + chislo div d1);
            break;
          end;
    end.

    Всего: 1000    1–20 | 21–40 | 41–60 | 61–80 …

    Добавить в вариант

    Дан массив, содержащий 2018 положительных целых чисел, не превышающих 30 000. Необходимо найти в этом массиве количество элементов, которые кратны 3, а их десятичная запись заканчивается цифрой 7, и заменить каждый из таких элементов на это количество.

    Напишите на одном из языков программирования программу для решения этой задачи. В качестве результата программа должна вывести изменённый массив, по одному элементу в строке. Например, для исходного массива из 5 элементов 12 17 27 117 48 программа должна вывести числа 12 17 2 2 48, по одному числу в строке.

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

    Бейсик Python

    CONST N=2018

    DIM A(N) AS INTEGER

    DIM I, K, M AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # k, m

    a = []

    n = 2018

    for i in range(0, n):

        a.append(int(input()))

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

    const

        N=2018;

    var

        a: array [1..N] of integer;

        i, k, m: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2018

        целтаб a[1:N]

        цел i, k, m

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2018;

        int main(){

        int a[N];

        int i, k, m;

        for (i=0; i<N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2018 положительных целых чисел, не превышающих 30 000. Необходимо найти в этом массиве количество элементов, которые кратны 7, а их десятичная запись заканчивается цифрой 3, и заменить каждый из таких элементов на это количество.

    Напишите на одном из языков программирования программу для решения этой задачи. В качестве результата программа должна вывести изменённый массив, по одному элементу в строке. Например, для исходного массива из 5 элементов 14 13 63 203 49 программа должна вывести числа 14 13 2 2 49, по одному числу в строке.

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

    Бейсик Python

    CONST N=2018

    DIM A(N) AS INTEGER

    DIM I, K, M AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # k, m

    a = []

    n = 2018

    for i in range(0, n):

        a.append(int(input()))

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

    const

        N=2018;

    var

        a: array [1..N] of integer;

        i, k, m: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2018

        целтаб a[1:N]

        цел i, k, m

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2018;

        int main(){

        int a[N];

        int i, k, m;

        for (i=0; i<N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2018 положительных целых чисел, не превышающих 1000. Необходимо увеличить все элементы, которые меньше 100, на одно и то же значение, при этом максимальный из них должен стать равным 100.

    Напишите на одном из языков программирования программу для решения этой задачи. В качестве результата программа должна вывести изменённый массив, по одному элементу в строке. Например, для исходного массива из 5 элементов 112 87 27 95 148 программа должна вывести числа 112 92 32 100 148, по одному числу в строке (все элементы, меньшие 100, увеличены на 5, максимальный из них стал равен 100).

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

    Бейсик Python

    CONST N=2018

    DIM A(N) AS INTEGER

    DIM I, K, M AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # k, m

    a = []

    n = 2018

    for i in range(0, n):

        a.append(int(input()))

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

    const

        N=2018;

    var

        a: array [1..N] of integer;

        i, k, m: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2018

        целтаб a[1:N]

        цел i, k, m

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2018;

        int main(){

        int a[N];

        int i, k, m;

        for (i=0; i<N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2018 положительных целых чисел, не превышающих 1000. Необходимо уменьшить все элементы, которые больше 100, на одно и то же значение, при этом минимальный из них должен стать равным 100.

    Напишите на одном из языков программирования программу для решения этой задачи. В качестве результата программа должна вывести изменённый массив, по одному элементу в строке. Например, для исходного массива из 5 элементов 187 112 27 95 148 программа должна вывести числа 175 100 27 95 136, по одному числу в строке (все элементы, большие 100, уменьшены на 12, минимальный из них стал равен 100).

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

    Бейсик Python

    CONST N=2018

    DIM A(N) AS INTEGER

    DIM I, K, M AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # k, m

    a = []

    n = 2018

    for i in range(0, n):

        a.append(int(input()))

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

    const

        N=2018;

    var

        a: array [1..N] of integer;

        i, k, m: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2018

        целтаб a[1:N]

        цел i, k, m

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2018;

        int main(){

        int a[N];

        int i, k, m;

        for (i=0; i<N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2018 положительных целых чисел, не превышающих 30 000. Необходимо уменьшить все чётные элементы этого массива на одно и то же значение, при этом минимальный из них должен стать равным 2.

    Напишите на одном из языков программирования программу для решения этой задачи. В качестве результата программа должна вывести изменённый массив, по одному элементу в строке. Например, для исходного массива из элементов 112 87 27 95 148 программа должна вывести числа 2 87 27 95 38 по одному числу в строке (все чётные элементы уменьшены, минимальный из них стал равен 2).

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

    Бейсик Python

    CONST N=2018

    DIM A(N) AS INTEGER

    DIM I, K, M AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # k, m

    a = []

    n = 2018

    for i in range(0, n):

        a.append(int(input()))

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

    const

        N=2018;

    var

        a: array [1..N] of integer;

        i, k, m: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2018

        целтаб a[1:N]

        цел i, k, m

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2018;

        int main(){

        int a[N];

        int i, k, m;

        for (i=0; i<N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2018 положительных целых чисел, не превышающих 30 000. Необходимо уменьшить все нечётные элементы этого массива на одно и то же значение, при этом минимальный из них должен стать равным 1.

    Напишите на одном из языков программирования программу для решения этой задачи. В качестве результата программа должна вывести изменённый массив, по одному элементу в строке. Например, для исходного массива из 5 элементов 112 87 27 95 148 программа должна вывести числа 112 61 1 69 148 по одному числу в строке (все нечётные элементы уменьшены, минимальный из них стал равен 1).

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

    Бейсик Python

    CONST N=2018

    DIM A(N) AS INTEGER

    DIM I, K, M AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # k, m

    a = []

    n = 2018

    for i in range(0, n):

        a.append(int(input()))

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

    const

        N=2018;

    var

        a: array [1..N] of integer;

        i, k, m: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2018

        целтаб a[1:N]

        цел i, k, m

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2018;

        int main(){

        int a[N];

        int i, k, m;

        for (i=0; i<N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2018 положительных целых чисел, не превышающих 15 000. Необходимо уменьшить на удвоенное значение минимального элемента массива те элементы, которые более чем вдвое превышают этот минимум, и вывести изменённый массив по одному элементу в строке.

    Например, для исходного массива из 5 элементов 40 100 27 90 54 программа должна вывести числа 40 46 27 36 54 по одному числу в строке (минимальный элемент исходного массива равен 27, элементы, бόльшие 54, уменьшены на 54).

    Напишите на одном из языков программирования программу для решения этой задачи. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных переменных.

    Бейсик Python

    CONST N=2018

    DIM A(N) AS INTEGER

    DIM I, K, M AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # k, m

    a = []

    n = 2018

    for i in range(0, n):

        a.append(int(input()))

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

    const

        N=2018;

    var

        a: array [1..N] of integer;

        i, k, m: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2018

        целтаб a[1:N]

        цел i, k, m

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2018;

        int main(){

        int a[N];

        int i, k, m;

        for (i=0; i<N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2018 положительных целых чисел, не превышающих 15 000. Необходимо удвоить те элементы этого массива, которые меньше удвоенного минимального элемента, и вывести изменённый массив по одному элементу в строке.

    Например, для исходного массива из 5 элементов 60 47 27 95 54 программа должна вывести числа 60 94 54 95 54 по одному числу в строке (минимальный элемент исходного массива равен 27, удвоены все элементы, меньшие 54).

    Напишите на одном из языков программирования программу для решения этой задачи. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных переменных.

    Бейсик Python

    CONST N=2018

    DIM A(N) AS INTEGER

    DIM I, K, M AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # k, m

    a = []

    n = 2018

    for i in range(0, n):

        a.append(int(input()))

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

    const

        N=2018;

    var

        a: array [1..N] of integer;

        i, k, m: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2018

        целтаб a[1:N]

        цел i, k, m

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2018;

        int main(){

        int a[N];

        int i, k, m;

        for (i=0; i<N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2018 положительных целых чисел, не превышающих 15 000. Необходимо уменьшить все чётные элементы массива на значение минимального элемента, кратного 3, и вывести изменённый массив по одному элементу в строке. Если в исходном массиве нет элементов, кратных 3, все элементы нужно вывести без изменения.

    Например, для исходного массива из 5 элементов 30 99 27 90 66 программа должна вывести числа 3 99 27 63 39 по одному числу в строке (минимальный кратный 3 элемент исходного массива равен 27, чётные элементы уменьшены на 27).

    Напишите на одном из языков программирования программу для решения этой задачи.

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

    Бейсик Python

    CONST N=2018

    DIM A(N) AS INTEGER

    DIM I, K, M AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # k, m

    a = []

    n = 2018

    for i in range(0, n):

        a.append(int(input()))

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

    const

        N=2018;

    var

        a: array [1..N] of integer;

        i, k, m: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2018

        целтаб a[1:N]

        цел i, k, m

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2018;

        int main(){

        int a[N];

        int i, k, m;

        for (i=0; i<N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2018 положительных целых чисел, не превышающих 15 000. Необходимо уменьшить все нечётные элементы массива на значение минимального элемента, кратного 5, и вывести изменённый массив по одному элементу в строке. Если в исходном массиве нет элементов, кратных 5, все элементы нужно вывести без изменения.

    Например, для исходного массива из 5 элементов 30 99 47 90 60 программа должна вывести числа 30 69 17 90 60 по одному числу в строке (минимальный кратный 5 элемент исходного массива равен 30, нечётные элементы уменьшены на 30).

    Напишите на одном из языков программирования программу для решения этой задачи.

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

    Бейсик Python

    CONST N=2018

    DIM A(N) AS INTEGER

    DIM I, K, M AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # k, m

    a = []

    n = 2018

    for i in range(0, n):

        a.append(int(input()))

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

    const

        N=2018;

    var

        a: array [1..N] of integer;

        i, k, m: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2018

        целтаб a[1:N]

        цел i, k, m

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2018;

        int main(){

        int a[N];

        int i, k, m;

        for (i=0; i<N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2019 положительных целых чисел, не превышающих 15 000. Необходимо найти сумму минимального чётного и минимального нечётного элементов (если в массиве нет чётных или нечётных элементов, соответствующий минимум считается равным нулю), уменьшить все элементы, которые больше этой суммы, на её значение и вывести изменённый массив. Например, для исходного массива из пяти элементов  — 30, 99, 27, 90, 66  — программа должна вывести числа 30, 42, 27, 33, 9 (сумма минимумов равна 57, все элементы, большие 57, уменьшены на 57).

    Напишите на одном из языков программирования программу для решения этой задачи.

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

    Бейсик Python

    CONST N=2019

    DIM A(N) AS INTEGER

    DIM I, K, M AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # k, m

    a = []

    n = 2019

    for i in range(0, n):

        a.append(int(input()))

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

    const

        N=2019;

    var

        a: array [1..N] of integer;

        i, k, m: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2019

        целтаб a[1:N]

        цел i, k, m

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2019;

        int main(){

        int a[N];

        int i, k, m;

        for (i=0; i<N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2019 положительных целых чисел, не превышающих 15 000. Необходимо найти сумму минимального чётного и минимального нечётного элементов (если в массиве нет чётных или нечётных элементов, соответствующий минимум считается равным нулю), увеличить все элементы, которые меньше этой суммы, на её значение и вывести изменённый массив. Например, для исходного массива из пяти элементов  — 30, 99, 27, 90, 42  — программа должна вывести числа 87, 99, 84, 90, 99 (сумма минимумов равна 57, все элементы, меньшие 57, увеличены на 57).

    Напишите на одном из языков программирования программу для решения этой задачи.

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

    Бейсик Python

    CONST N=2019

    DIM A(N) AS INTEGER

    DIM I, K, M AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # k, m

    a = []

    n = 2019

    for i in range(0, n):

        a.append(int(input()))

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

    const

        N=2019;

    var

        a: array [1..N] of integer;

        i, k, m: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2019

        целтаб a[1:N]

        цел i, k, m

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2019;

        int main(){

        int a[N];

        int i, k, m;

        for (i=0; i<N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2019 положительных целых чисел, не превышающих 15 000. Необходимо найти минимальный m1 и максимальный m2 нечётные элементы (если в массиве нет нечётных элементов, m1 и m2 считаются равными нулю), уменьшить все чётные элементы, значения которых попадают в интервал (m1; m2), на величину m1 и вывести изменённый массив. Например, для исходного массива из пяти элементов 30, 89, 27, 90, 68 программа должна вывести числа 3, 89, 27, 90, 41 (минимум и максимум равны 27 и 89, все чётные элементы из интервала (27; 89) уменьшены на 27).

    Напишите на одном из языков программирования программу для решения этой задачи.

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

    Бейсик Python

    CONST N=2019

    DIM A(N) AS INTEGER

    DIM I, M1, M2 AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # m1, m2

    a = []

    N = 2019

    for i in range(0, N):

        a.append(int(input()))

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

    const

        N=2019;

    var

        a: array [1..N] of integer;

        i, m1, m2: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2019

        целтаб a[1:N]

        цел i, m1, m2

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    Кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2019;

    int main(){

        int a[N];

        int i, m1, m2;

        for (i=0; i < N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также а другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2019 положительных целых чисел, не превышающих 15 000. Необходимо найти минимальный и максимальный нечётные элементы массива (если в массиве нет нечётных элементов, минимум и максимум считаются равными нулю), вычислить их среднее арифметическое, уменьшить все чётные элементы, превышающие это среднее, на величину этого среднего и вывести изменённый массив. Например, для исходного массива из пяти элементов 30, 89, 27, 90, 68 программа должна вывести числа 30, 89, 27, 32, 10 (минимум и максимум равны 27 и 89, их среднее равно 58, все чётные элементы, превышающие 58, уменьшены на 58).

    Напишите на одном из языков программирования программу для решения этой задачи.

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

    Бейсик Python

    CONST N=2019

    DIM A(N) AS INTEGER

    DIM I, M, K AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # m, k

    a = []

    N = 2019

    for i in range(0, N):

        a.append(int(input()))

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

    const

        N=2019;

    var

        a: array [1..N] of integer;

        i, m, k: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2019

        целтаб a[1:N]

        цел i, m, k

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    Кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2019;

    int main(){

        int a[N];

        int i, m, k;

        for (i=0; i < N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также а другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2019 положительных целых чисел, не превышающих 15 000. Необходимо найти минимальный и максимальный чётные элементы массива (если в массиве нет чётных элементов, минимум и максимум считаются равными нулю), вычислить их среднее арифметическое, уменьшить все нечётные элементы, превышающие это среднее, на величину этого среднего и вывести изменённый массив. Например, для исходного массива из пяти элементов 30, 89, 27, 90, 68 программа должна вывести числа 30, 29, 27, 90, 68 (минимум и максимум равны 30 и 90, их среднее равно 60, все нечётные элементы, превышающие 60, уменьшены на 60).

    Напишите на одном из языков программирования программу для решения этой задачи.

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

    Бейсик Python

    CONST N=2019

    DIM A(N) AS INTEGER

    DIM I, M, K AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # m, k

    a = []

    N = 2019

    for i in range(0, N):

        a.append(int(input()))

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

    const

        N=2019;

    var

        a: array [1..N] of integer;

        i, m, k: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2019

        целтаб a[1:N]

        цел i, m, k

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    Кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2019;

    int main(){

        int a[N];

        int i, m, k;

        for (i=0; i < N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также а другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Дан массив, содержащий 2019 положительных целых чисел, не превышающих 15 000. Необходимо найти минимальный m1 и максимальный m2 чётные элементы (если в массиве нет чётных элементов, m1 и m2 считаются равными нулю), уменьшить все нечётные элементы, значения которых попадают в интервал (m1; m2), на величину m1 и вывести изменённый массив. Например, для исходного массива из пяти элементов 30, 89, 27, 90, 68 программа должна вывести числа 30, 59, 27, 90, 68 (минимум и максимум равны 30 и 90, все нечётные элементы из интервала (30; 90) уменьшены на 30).

    Напишите на одном из языков программирования программу для решения этой задачи.

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

    Бейсик Python

    CONST N=2019

    DIM A(N) AS INTEGER

    DIM I, M1, M2 AS INTEGER

    FOR I = 1 TO N

        INPUT A(I)

    NEXT I

    END

    # кроме уже указанных

    # допускается использование

    # целочисленных переменных

    # m1, m2

    a = []

    N = 2019

    for i in range(0, N):

        a.append(int(input()))

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

    const

        N=2019;

    var

        a: array [1..N] of integer;

        i, m1, m2: integer;

    begin

        for i:=1 to N do

            readln(a[i]);

        …

    end.

    алг

    нач

        цел N=2019

        целтаб a[1:N]

        цел i, m1, m2

        нц для i от 1 до N

            ввод a[i]

        кц

        …

    Кон

    С++

    #include <iostream>

    using namespace std;

    const int N=2019;

    int main(){

        int a[N];

        int i, m1, m2;

        for (i=0; i < N; ++i)

            cin >> a[i];

        …

        return 0;

    }

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также а другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Задания Д24 C1 № 2802

    Требовалось написать программу, при выполнении которой с клавиатуры считываются координаты точки на плоскости (x, y  — действительные числа) и определяется принадлежность этой точки заданной заштрихованной области (включая границы). Программист торопился и написал программу неправильно.

    Паскаль Бейсик

    var x,y: real;

    begin

    readln(x,y);

    if y<=x then

    if y<=─x then

    if y>=x*x─2 then

    write(‘принадлежит’)

    else

    write(‘не принадлежит’)

    end.

    INPUT x, y

    IF y<=x THEN

    IF y<=-x THEN

    IF y>=x*x-2 THEN

    PRINT «принадлежит»

    ELSE

    PRINT «не принадлежит»

    ENDIF

    ENDIF

    ENDIF

    END

    Си++ Алгоритмический

    int main(void)

    {float x,y;

    cin >> x >> y;

    if (y<=x)

    if (y<=-x)

    if (y>=x*x-2)

    cout << «принадлежит»;

    else

    cout << «не принадлежит»;

    }

    алг

    нач

    вещ x,y

    ввод x,y

    если y<=x то

        если y<=─x то

            если y>=x*x─2 то

                вывод ‘принадлежит’

            иначе

                вывод ‘не принадлежит’

            все

        все

    все

    кон

    Python

    x = float(input())

    y = float(input())

    if y<=x:

        if y<=-x:

            if y>=x*x-2:

                print(«принадлежит»)

            else:

                print(«не принадлежит»)

     Последовательно выполните следующее:

    1.   Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G и H).

    Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите «да» или «нет».

    2.  Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)

    Область Условие 1

    (y<=x)

    Условие 2

    (y<=-x)

    Условие 3

    (y>=x*x-2)

    Программа выведет Область обрабатывается верно
    A
    В
    С
    D
    Е
    F
    G
    Н

    Задания Д25 C2 № 3630

    Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Опишите на языке программирования «Паскаль» алгоритм, позволяющий найти и вывести количество элементов массива, десятичная запись которых содержит ровно 2 цифры, причём хотя бы одна из этих цифр  — цифра 9.

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них

    Паскаль Бейсик

    const N=30;

    Var

    a:array [1..N] of integer;

    i, j, k: integer;

    begin

    for i:=1 to N do

    readln(a[i]);

    end.

    N=30

    DIM A(N) AS INTEGER

    DIM I, J, K AS INTEGER

    FOR I = 1 TO N

    INPUT A(I)

    NEXT I …

    END

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

    #include <iostream>

    using namespace std;

    #define N 30

    int main(){

    int a[N];

    int i, j, k;

    for (i=0; i<N; i++)

    cin >> a[i];

    }

    алг

    нач

    цел N=30

    целтаб a[1:N]

    цел i, j, k

    нц для i от 1 до N

    ввод a[i]

    кц

    кон

    Естественный язык
    Объявляем массив A из 30 элементов.

    Объявляем целочисленные переменные I, J, K.

    В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.

    Python

    # допускается также

    # использовать две

    # целочисленные переменные j, k

    a = []

    n = 30

    for i in range(0, n):

    a.append(int(input()))

    В качестве ответа Вам необходимо привести фрагменты программы, который должен находиться на месте многоточия.


    Задания Д25 C2 № 4860

    Дан массив, содержащий 70 целых чисел. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести наименьшее содержащееся в массиве положительное число, десятичная запись которого не оканчивается цифрой 7. Гарантируется, что в массиве есть хотя бы один положительный элемент, десятичная запись которого не оканчивается цифрой 7.

    Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.

    Бэйсик Паскаль

    N=70

    DIM A(N) AS INTEGER

    DIM I, J, M AS INTEGER

    FOR I = 1 TO N

    INPUT A(I)

    NEXT I

    END

    const

    N=70;

    var

    a: array [1..N] of integer;

    i, j, m: integer;

    begin

    for i:=1 to N do

    readln(a[i]);

    end.

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

    #include <iostream>

    using namespace std;

    #define N 70

    int main(){

    int a[N];

    int I, j, m;

    for (i=0; i<N; i++)

    cin >> a[i];

    }

    алг

    нач

    цел N=70

    целтаб а[1:N]

    цел 1, j, m

    нц для i от 1 до N

    ввод а[i]

    кц

    кон

    Python

    # допускается также

    # использовать две

    # целочисленные переменные j, m

    a = []

    n = 70

    for i in range(0, n):

    a.append(int(input()))

    В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.


    Задания Д24 C1 № 6316

    Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y  — действительные числа) и определяет принадлежность точки заштрихованной области (включая границы). Программист торопился и написал программу неправильно. Ниже для Вашего удобства программа представлена на четырёх языках программирования.

    Бейсик Паскаль

    INPUT x, y

    IF y<=1 THEN

    IF y>=0 THEN

    IF x>=-1 THEN

    IF y>=x*x THEN

    PRINT «принадлежит»

    ELSE

    PRINT «не принадлежит»

    END IF

    END IF

    END IF

    END IF

    END

    var x,y: real;

    begin

    readln(x,y);

    if y<=1 then

    if y>=0 then

    if x>=-1 then

    if y>=x*x then

    write(‘принадлежит’)

    else

    write(‘не принадлежит’);

    end.

    Си++ Алгоритмический

    #include <iostream>

    using namespace std;

    int main()

    {

    float x,y;

    cin >> x >> y;

    if (y<=1)

    if (y>=0)

    if (x>=-1)

    if (y>=x*x)

    cout << «принадлежит»;

    else

    cout << «не принадлежит»;

    }

    алг

    нач

    вещ x,y

    ввод x,y

    если y<=1 то

    если y>=0 то

    если x>=-1 то

    если y>=x*x то

    вывод ‘принадлежит’

    иначе

    вывод ‘не принадлежит’

    все

    все

    все

    все

    кон

    Python

    x,y = float(input()), float(input())

    if y<=1:

        if y>=0:

            if x>=-1:

                if y>=x*x:

                    print(«принадлежит»)

                else:

                    print(«не принадлежит»)

    Последовательно выполните следующее.

    1.  Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F, G, H, I, J, K). Точки, лежащие на границах областей, отдельно не рассматривать. Координатные оси не являются границами областей. В столбцах условий укажите «да», если условие выполнится, «нет», если условие не выполнится, «—» (прочерк), если условие не будет проверяться, «не изв.», если программа ведёт себя по-разному для разных значений, принадлежащих данной области. В столбце «Программа выведет» укажите, что программа выведет на экран. Если программа ничего не выводит, напишите «—» (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв.». В последнем столбце укажите «да» или «нет».

    Область Условие1 (y<=1) Условие 2 (y>=0) Условие 3

    (x>=−1)

    Условие 4 (y>=x*x) Программа

    выведет

    Область обрабатывается

    верно

    A
    В
    С
    D
    Е
    F
    G
    Н
    I
    J

    2.  Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.)

    Источник: ЕГЭ по информатике 08.07.2013. Вторая волна. Вариант 502.

    Всего: 1000    1–20 | 21–40 | 41–60 | 61–80 …

    Канал видеоролика: Видеоуроки по информатике

    2 задание ЕГЭ по информатике | Теория и практика ЕГЭ | Решаем с помощью Pascal и Python | 2022

    Смотреть видео:

    #информатика #егэинформатика #икт #экзамены #егэ_2020 #мгту #школьникам #помощь_студентам #подготовкакэкзаменам

    Свежая информация для ЕГЭ и ОГЭ по Информатике (листай):

    С этим видео ученики смотрят следующие ролики:

    14 задание ЕГЭ информатика | Теория и практика ЕГЭ | Решаем с помощью Pascal и Python | 2022

    14 задание ЕГЭ информатика | Теория и практика ЕГЭ | Решаем с помощью Pascal и Python | 2022

    Видеоуроки по информатике

    ЕГЭ по информатике - Задание 1 (Системы счисления. Теория)

    ЕГЭ по информатике — Задание 1 (Системы счисления. Теория)

    Code Enjoy

    ЕГЭ по информатике 2023 - Задание 19-21 (Теория игр на Python)

    ЕГЭ по информатике 2023 — Задание 19-21 (Теория игр на Python)

    Code Enjoy

    Cтрим #12. ЕГЭ по информатике 2020, 11 класс. Решаем задание 18

    Cтрим #12. ЕГЭ по информатике 2020, 11 класс. Решаем задание 18

    ЕГЭ по информатике

    Облегчи жизнь другим ученикам — поделись! (плюс тебе в карму):

    12.11.2021

    Умение строить таблицы истинности и  логические схемы МАОУ СШ № 8 г. Бор Нижегородской обл. Кустова Юлия Евгеньевна

    Умение строить таблицы истинности и логические схемы

    МАОУ СШ № 8 г. Бор Нижегородской обл.

    Кустова Юлия Евгеньевна

    № Проверяемые элементы содержания 2  Умение строить таблицы истинности и Коды проверяемых элементов содержания (по кодификатору) логические схемы Коды проверяемых требований к уровню подготовки (по кодификатору) 1.5.1 Уровень сложности задания 1.1.6 Макс. балл за выполнение задания Б Примерное время выполнения задания (мин.) 1  3

    Проверяемые элементы содержания

    2

    Умение строить таблицы истинности и

    Коды проверяемых элементов содержания (по кодификатору)

    логические схемы

    Коды проверяемых требований к уровню подготовки (по кодификатору)

    1.5.1

    Уровень сложности задания

    1.1.6

    Макс. балл за выполнение задания

    Б

    Примерное время выполнения задания (мин.)

    1

    3

    Булева алгебра Элементы двоичной логики: 1 – «ИСТИНА» и 0 - «ЛОЖЬ» Приоритет выполнения операция (возрастание) Операция * первоочередность  - скобки Знаки 1 2 НЕ  И 3 ¬ А Название * ИЛИ инверсия &(^) + исключающее или 4 конъюнкция    (|) 5  ЕСЛИ…ТО дизъюнкция эквивалентность    исключающее или  импликация  эквивалентность

    Булева алгебра

    Элементы двоичной логики:

    1 – «ИСТИНА» и 0 — «ЛОЖЬ»

    Приоритет

    выполнения операция (возрастание)

    Операция

    * первоочередность — скобки

    Знаки

    1

    2

    НЕ

    И

    3

    ¬ А

    Название

    *

    ИЛИ

    инверсия

    &(^)

    +

    исключающее или

    4

    конъюнкция

     (|)

    5

    ЕСЛИ…ТО

    дизъюнкция

    эквивалентность

    исключающее или

    импликация

    эквивалентность

    Таблицы истинности При построении таблиц истинности необходимо определить количество строк, которое равно количеству возможных комбинаций значений логических переменных, входящих в логическое выражение. Если количество логических переменных n, то количество строк 2 n . В примерах при n=2, количество строк таблицы истинности равно 4, при n=1, количество строк таблицы истинности равно 2. Х1 0 Х2 0 0 Х1+Х2 1 0 1 1 Х1 1 0 0 1 1 Х2 1 Х1  Х2 0 0 1 1 1 1 1 0 0 1 1

    Таблицы истинности

    При построении таблиц истинности необходимо определить количество строк, которое равно количеству возможных комбинаций значений логических переменных, входящих в логическое выражение.

    Если количество логических переменных n, то количество строк 2 n .

    В примерах при n=2, количество строк таблицы истинности равно 4, при n=1, количество строк таблицы истинности равно 2.

    Х1

    0

    Х2

    0

    0

    Х1+Х2

    1

    0

    1

    1

    Х1

    1

    0

    0

    1

    1

    Х2

    1

    Х1  Х2

    0

    0

    1

    1

    1

    1

    1

    0

    0

    1

    1

    Таблицы истинности Х1 Х2 0 0 Х1*Х2 0 0 1 1 0 Х1 1 0 0 0 1 1 1 1 0

    Таблицы истинности

    Х1

    Х2

    0

    0

    Х1*Х2

    0

    0

    1

    1

    0

    Х1

    1

    0

    0

    0

    1

    1

    1

    1

    0

    Таблицы истинности Х1 Х2 0 Х1  Х2 0 0 1 1 0 1 Х1 1 0 Х2 1 0 1 0 0 Х1  Х2 0 1 1 1 1 0 0 1 0 1

    Таблицы истинности

    Х1

    Х2

    0

    Х1  Х2

    0

    0

    1

    1

    0

    1

    Х1

    1

    0

    Х2

    1

    0

    1

    0

    0

    Х1  Х2

    0

    1

    1

    1

    1

    0

    0

    1

    0

    1

    ((x » width=»640″

    Пример 1. Логическая функция F задается выражением ((x  y)  (y  w))  ((x  z)  w) На рисунке приведен фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна. Определите какому столбцу таблицы истинности функции F соответствует каждая из переменных. Все строки в представленном фрагменте разные.

    Основные операции алгебры логики в Pascal 3.8.3.1:

    • — not
    • — and
    • — or

    ㊉ – xor

     —

    • — =
    • Процедура TrueTablePrint(a,f,s) выводит ТИ, полученную посредством функции TrueTable. При f=0 выводятся строки, в которых значение функции равно 0, при f=1 – только строки, в которых оно равно 1, при значении f=2 выводятся все строки.

    ?

    ?

    1

    0

    0

    ?

    0

    ?

    1

    1

    0

    1

    асb

    Программа построения фрагмента таблицы истинности, когда F=1

    ## uses School;

    var a:= TrueTable((x, y, z, w) — ((x

    Из полученной таблицы вычеркиваем первую и последнюю строчку (0000) и (1111). В исходном примере эти строки отсутствуют. ? ? 1 ? 0 0 ? 0 1 1 1 0 Сравнив две таблицы видим одну строку (1001). Можем предположить некоторые переменные. w/z w/z x/y x/y ? ? 1 0 0 ? ? 0 1 1 1 0 Посмотрев на w его значения, кроме этой строчки равны 011, следовательно это столбец 4. z - первый. Посмотрев на y его значения, кроме этой строчки равны 1, следовательно это столбец 2. Сразу определяется х. w/z w/z w z x y x y ? ? 1 ? 0 0 ? 1 0 1 1 1 0 ? ? 1 0 ? 0 ? 0 1 1 1 1 0 Ответ: zуxw

    Из полученной таблицы вычеркиваем первую и последнюю строчку (0000) и (1111). В исходном примере эти строки отсутствуют.

    ?

    ?

    1

    ?

    0

    0

    ?

    0

    1

    1

    1

    0

    Сравнив две таблицы видим одну строку (1001). Можем предположить некоторые переменные.

    w/z

    w/z

    x/y

    x/y

    ?

    ?

    1

    0

    0

    ?

    ?

    0

    1

    1

    1

    0

    Посмотрев на w его значения, кроме этой строчки равны 011, следовательно это столбец 4. z — первый.

    Посмотрев на y его значения, кроме этой строчки равны 1, следовательно это столбец 2. Сразу определяется х.

    w/z

    w/z

    w

    z

    x

    y

    x

    y

    ?

    ?

    1

    ?

    0

    0

    ?

    1

    0

    1

    1

    1

    0

    ?

    ?

    1

    0

    ?

    0

    ?

    0

    1

    1

    1

    1

    0

    Ответ: zуxw

    Программа на языке программирования Py thon

    Программа на языке программирования Py thon

    ((x or not y) and (not z=w)) асb » width=»640″

    Пример 2. Логическая функция F задается выражением ((x  y)  (  z  w))  (y  z) На рисунке приведен фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F ложна. Определите какому столбцу таблицы истинности функции F соответствует каждая из переменных. Все строки в представленном фрагменте разные.

    ?

    ?

    1

    0

    ?

    0

    0

    1

    ?

    1

    0

    1

    Программа построения фрагмента таблицы истинности, когда F=0

    ## uses School;

    var a:= TrueTable((x, y, z, w) — ((x or not y) and (not z=w))

    асb

    Из полученной таблицы видно что в одной строке три единицы и о. Где 0 это z. ? ? 1 ? 0 ? 1 0 0 1 0 1 ? z 1 0 0 ? ? 1 0 0 1 0 1 Есть строка с тремя 0 и 1. А z определили, где 1 это w ? z 1 0 0 w 0 0 ? 1 1 1 0 1 Посмотрев на y видно 1 раз =1. Это 1 столбец, и x последний y 1 z w 0 0 x 0 0 1 1 1 0 1 Ответ: уzwx

    Из полученной таблицы видно что в одной строке три единицы и о. Где 0 это z.

    ?

    ?

    1

    ?

    0

    ?

    1

    0

    0

    1

    0

    1

    ?

    z

    1

    0

    0

    ?

    ?

    1

    0

    0

    1

    0

    1

    Есть строка с тремя 0 и 1. А z определили, где 1 это w

    ?

    z

    1

    0

    0

    w

    0

    0

    ?

    1

    1

    1

    0

    1

    Посмотрев на y видно 1 раз =1. Это 1 столбец, и x последний

    y

    1

    z

    w

    0

    0

    x

    0

    0

    1

    1

    1

    0

    1

    Ответ: уzwx

    Программа на языке программирования Py thon

    Программа на языке программирования Py thon

    ЕГЭ по информатике

    Подборка заданий №2 ЕГЭ по информатике от Евгения Джобса.

    Комбинаторные задачи по алгебре логики, и полные и частично заполненные таблицы.

    Все доступные на сегодня прототипы в одном документе.

    К каждой задаче приложен видео-разбор, чтобы у тебя была возможность сравнить решение.

    → скачать задания

    Примеры заданий:

    1. Каждое логическое выражение A и B зависит от одного и того же набора из 7 переменных. В таблицах истинности каждого из этих выражений в столбце значений стоит ровно по 4 единицы. Каково максимально возможное число единиц в столбце значений таблицы истинности выражения A v B?

    2. Каждое из логических выражений A и B зависит от одного и того же набора из 5 переменных. В таблицах истинности обоих выражений в столбцах значений стоит ровно по 4 единицы в каждой таблице. Каково минимально возможное число нулей в столбце значений таблицы истинности выражения A v ¬B?

    Связанные страницы:

    Понравилась статья? Поделить с друзьями:
  • Егэ информатика битовые операции
  • Егэ информатика баллы за задания вторичные
  • Егэ информатика баллы для поступления
  • Егэ информатика базовые задания
  • Егэ информатика алекс данов