В задаче 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
Систематизация задач по информатике 20.2 ОГЭ
Систематизация задач по информатике 20.2 ОГЭ
Систематизация задач по информатике 20.2 ОГЭ
Систематизация задач по информатике 20.2 ОГЭ
Систематизация задач по информатике 20.2 ОГЭ
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.