Систематизация задач по информатике 20.2 ОГЭ

  • Лекции
  • docx
  • 09.04.2018
Публикация в СМИ для учителей

Публикация в СМИ для учителей

Бесплатное участие. Свидетельство СМИ сразу.
Мгновенные 10 документов в портфолио.

В задаче 20.2 из практической части ОГЭ по информатике учащемуся требуется написать программу, которая должна отработать на различных тестах и выдать верный ответ. В данной статье систематизируются различные условия задач, рассматриваются стандартные алгоритмы, приводятся коды на Паскаль для различных условий, которые обычно встречаются в этих задачах.
Иконка файла материала Статья 20.2 ОГЭ.docx
Систематизация задач по информатике 20.2 ОГЭ В задаче 20.2 учащемуся требуется написать программу, которая должна отработать на различных тестах и выдать верный ответ. В данной статье хочу систематизировать различные задачи, что, надеюсь, поможет учащимся при подготовке к ОГЭ. I Итак, как правило, учащимся предлагается решить задачу, которая будет находить сумму, количество, максимум или минимум среди вводимых элементов, удовлетворяющих какому­либо условию. Ввод   данных   осуществляется   с   помощью   цикла   с   параметром   (FOR),   если   по условию   известно   количество   вводимых   чисел   или   с   помощью   цикла   с   предусловием (WHILE), если количество вводимых чисел неизвестно, а их ввод заканчивается при вводе нуля. Стандартные алгоритмы выглядят так1: Нахождение сумм: FOR WHILE S:=0;  for i:=1 to N do begin   readln(x);    if <условие> then S:= S+x;  end; writeln(S);  readln (x); S:=0;  While x<>0 do begin   if <условие> then S:= S+x;   readln (x);  end; writeln(S);  Нахождение количества: FOR WHILE k:=0;  for i:=1 to N do begin   readln(x);   if <условие> then k:= k+1; end;  writeln(k);  readln (x); k:=0;  While x<>0 do begin   if <условие> then k:= k+1;   readln (x);  end; writeln(k);  1 Здесь и далее будут приведены коды на ПаскалеНахождение минимума: FOR WHILE min:= 10000; for i:=1 to N do begin   readln(x);   if x0 do begin   if xmax then max:=x;  end; writeln(max);  readln (x); max:=­10000;  While x<>0 do begin   if x>max then max:=x;   readln (x);  end; writeln(max);  При решении данных задач надо не забыть вывести найденный результат и правильно инициализировать   переменные   (при   нахождении   максимума   или   минимума   обычно ориентируемся на заданный по условию диапазон для исходных данных). Ниже   перечислим   условия,   которые   чаще   всего   встречаются   в   заданиях   №20.2. Иногда   по   условию   требуется   использовать   несколько   условий,   которые   можно группировать с помощью and/or,  а сами условия заключать в скобки. Условие (русский язык) Условие (Паскаль) Отобрать чётные элементы if x mod 2 = 0 then… Отобрать нечётные элементы if x mod 2 <> 0 then… Отобрать элементы, оканчивающиеся на y if x mod 10 = y then… Отобрать элементы, кратные y if x mod y = 0 then… Отобрать двузначные элементы if (x > 9) and (x < 100) then… Отобрать положительные элементы if x > 0 then… Отобрать элементы большие b, меньшие c if (x > b) and (x < c) then…Итак,   комбинируя   различные   условия   и   используя   основные   алгоритмы,   можно решить большинство заданий №20.2. II Иногда в задачах требуется вывести найденное значение или вывести «NO», если такого значения не удалось найти среди введённых чисел последовательности. FOR Напишите программу, которая в последовательности натуральных чисел определяет коли­ чество чисел, кратных 8 и оканчивающихся на 2 или определяет, что таких чисел нет. Про­ грамма получает на вход количество чисел в последовательности, а затем сами числа. Ко­ личество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000. Про­ грамма должна вывести количество чисел, кратных 8 и оканчивающихся на 2 или вывести «NO», если таких чисел нет. WHILE Напишите программу, которая в последовательности натуральных чисел определяет сумму всех чисел, кратных 8 и оканчивающихся на 2 или сообщает, что таких чисел нет. Програм­ ма получает на вход натуральные числа, количество введённых чисел неизвестно, последо­ вательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести сумму всех чисел, кратных 8 и оканчивающихся на 2 или вывести «NO», если таких чисел нет.   В таких  задачах  в конце  программы  надо не  просто вывести  результат,  а  вывести  его исходя из условия, например: If k=0 then writeln (‘NO’) else writeln (k); Есть ещё одна разновидность задач, когда требуется вывести не только ответ на  основной вопрос, но и на дополнительный. III MIN/MAX Напишите программу, которая в последовательности натуральных чисел определяет мини­ мальное   число,   кратное   5.   Программа   получает   на   вход   количество   чисел   в последовательности, а затем сами числа. В последовательности всегда имеется число, крат­ ное 5. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Про­ грамма должна вывести минимальное число, кратное 5. Если в последовательности хотя бы одно число было равным 15, выведите «YES», иначе выведите «N0».В   таком   случае   рекомендуется   ввести   дополнительную   переменную   (так   называемый «флажок»),  которая будет запоминать: встречались  ли  такие значения  среди вводимых чисел последовательности.  Решение для приведённой выше задачи: Var i,x,min,N,F:integer; begin    readln(N);    min:=30001;    F:=0; // флажок    for i:=1 to N do    begin        readln (x);      if (x