карта : гостевая

 
 

Разбор заданий ЕГЭ по информатике из раздела
"Алгоритмизация и программирование"

Анализ программы с подпрограммами

  • Интерактивные демонстраци решений задач ЕГЭ различными способами - показать
  • Интерактивные тесты с последующей демонстрацией правильного решения методом прокрутки
  • (V11- V20 это задачи комбинированные из базовых с различными дополнительными условиями)
  • Интерактивный тренажер V11 c демонстрацией решений по вопросу
  • Интерактивный тренажер V12 c демонстрацией решений по вопросу
  • Интерактивный тренажер V13 c демонстрацией решений по вопросу
  • Интерактивный тренажер V14 c демонстрацией решений по вопросу
  • Интерактивный тренажер V15 c демонстрацией решений по вопросу
  • Интерактивный тренажер V16 c демонстрацией решений по вопросу
  • Интерактивный тренажер V17 c демонстрацией решений по вопросу
  • Интерактивный тренажер V18 c демонстрацией решений по вопросу
  • Интерактивный тренажер V19 c демонстрацией решений по вопросу
  • Интерактивный тренажер V20 c демонстрацией решений по вопросу

    Отрабатываем и другие вопросы

    Отрабатываем вопросы задания В5

    Тест итоговый по всем задачам вопроса

    Отрабатываем вопросы задания В14


    Пример одного из заданий с разбором решения и описанием самопроверки прокруткой,
    генерируемого тренажером V-4

    Ниже записана программа. Получив на вход число x, эта программа печатает два числа: L и M. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 30.

    var x, L, M: integer;
    begin
    readln(x);
    L:=0; M:=1;
    while x > 0 do begin
    L:=L+1;
    M:= M*(x mod 7);
    x:= x div 7;
    end;
    writeln(L); write(M);
    end.

    Решение:

    L = 3, это означает, что цикл прокрутился 3 раза
    M = 30, т.е. можем записать, что a*b*c = 30
    Находим сомножители и, чтобы получить наименьшее число, выстраиваем их в порядке возрастания
    30= a * b * c = 1 * 5 * 6
    Нам остается полученное число перевести в десятичную систему счисления
    (1 * 7)^2 + (5 * 7)^1 + (6 * 7)^0 = 90
    Вот и все, задача решена! Но, на всякий случай проверим свое решение простой прокруткой

    ПРОВЕРКА:

    пусть х = 90, тогда
    проверяем условие 90 > 0 - ДА - входим в цикл
    L := L + 1 : =>0 + 1 = 1
    M := M * (x mod 7); => 1 * (90 mod 7 ) = 6
    х = 90 div 7; => х = 12
    проверяем условие 12 > 0 - ДА - входим в цикл
    L := L + 1 : =>1 + 1 = 2
    M := M * (x mod 7); => 6 * (12 mod 7 ) = 30
    х = 12 div 7; => х = 1
    проверяем условие 1 > 0 - ДА - входим в цикл
    L := L + 1 : =>2 + 1 = 3
    M := M * (x mod 7); => 30 * (1 mod 7 ) = 30
    х = 1 div 7; => х = 0
    L = 3: M = 30

    Правильный ответ = 90


    Пример еще одного из заданий с разбором решения и описанием самопроверки прокруткой,
    генерируемого тренажером V-18

    Ниже записана программа. Получив на вход число x, эта программа печатает два числа. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 5.

    var x, L, M: integer;
    begin
    readln(x);
    L:=0; M:=0;
    while x > 0 do begin
    L:=L+1;
    if (M < x) and (x mod 2 = 1) then begin;
    M:= (x mod 6);
    end;
    x:= x div 6;
    end;
    writeln(L); write(M);
    end.

    Решение:

    Для решения задачи необходимо понять, что делает эта программа
    Видим, что переменная L с каждым шагом цикла увеличивается на 1
    Переменная x на каждом шаге цикла делится на 6 и остаток отбрасывается
    L = 3, это означает, что цикл прокрутился 3 раза, следовательно и остатков будет взято 3,
    но только в том случае, если М будет меньше х, и, х - нечетное, при этом новый остаток будет заменять старое значение на новое
    Нам нужно найти наименьшее число х, следовательно первый остаток
    (с учетом системы счисления) должен быть равен 5
    Догадайтесь самостоятельно, почему следующие два остатка могут быть только такими: 1 и 0
    Нам остается полученную строку: 105 перевести в десятичную систему счисления
    1*6^2 + 0*6^1 + 5*6^0 = 41
    Вот и все, задача решена! Но, на всякий случай проверим свое решение простой прокруткой

    ПРОВЕРКА:

    пусть х = 41, тогда
    проверяем условие 41 > 0 - ДА - входим в цикл
    L := L + 1 : =>0 + 1 = 1
    M < х; (x mod 6) = 5; => 0 =(41 mod 6 ) = 5
    х = 41 div 6; => х = 6
    проверяем условие 6 > 0 - ДА - входим в цикл
    L := L + 1 : =>1 + 1 = 2
    х = 6 div 6; => х = 1
    проверяем условие 1 > 0 - ДА - входим в цикл
    L := L + 1 : =>2 + 1 = 3
    х = 1 div 6; => х = 0
    L = 3: M = 5

    Правильный ответ = 41


    00 : 01 : 02 : 03 : 04 : 05 :06 : 07 : 08 : 09 : 10 : 11 : 12 : 13 : 14 : 15 : 16 : 17 : 18 : 19 : 20 : 21 : 22 : 23 : 24 : 25 : 26 : 27 : 28 : 29 : 30 : 31 : 32 : 33 34 : 35 : 36 : 37 : 38 : 39 : 40 : 41 : 42 : 43 : 44 : 45 : 46 : 47 : 48 : 49 : 50 : 51 : 52 : 53 : 54 : 55 : 56 : 57 : 58 : 59 : 60 : 61 : 62 : 63 : 64 : 65 : 66 : 67 : 68 : 69 : 70 : 71 : 72 : 73 : 74 : 75 : 76 : 77 : 78 : 79 : 80 : 81 : 82 : 83 : 84 : 85 : 86 : 87 : 88 : 89 : 90 : 91 : 92 : 93 : 94 : 95 : 96 : 97 : 98 : 99 : 100 : 101 : 102 : 103 :105 : 106 : 107 : 108 : 109 : 110 : 111 : 112 : 113 : 114 : 115 : 116 : 117 : 118 : 119 : 120 : 121 : 122 : 123 : 124 : 125 : 126 : 127 : 128 : 129 : 130 : 131 : 132 : 133 : 134 : 135 : 136 : 137 : 138 : 139 : 140 : 141 : 142 : 143 : 144 : 145 : 146 : 147 : 148 : 149 : 150 : 151 : 152 : 153 : 154 : 155 : 156 :

    карта : гостевая

  •  
      © Александр Козлов, 2018 г.Северобайкальск
     
    Рейтинг@Mail.ru