Найти в Дзене
Мr.Teacher

ОГЭ информатика: 16 задание Python

Сегодня я начну серию статей по подготовке к ОГЭ. В будущем году выпускники должны будут решить 16 заданий вместо 15-ти. Теперь задание на Робота в Кумире отдельно, а программирование отдельно. Ранее, 90% всех учащихся выполняли именно задание на Кумире, но теперь придётся делать и последнее 16 задание. Выполнять его будем на Питоне. Я стараюсь всегда объяснять или решать задания ОГЭ в самом простом режиме, откидывая даже любые, самые очевидные выводы при решении заданий. Обуславливаю это тем, что информатику выбирают даже те, кто не способен точно сказать чему равно 5*9, без калькулятора. А сдавать надо и сдавать желательно на более менее приемлемый балл. Итак начнём, будет долго, но зато всё разжуём (почти). Пусть дано такое задание: "Напишите программу, которая в последовательности натуральных чисел определяет сумму чисел, оканчивающихся на 8. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающе

Сегодня я начну серию статей по подготовке к ОГЭ.

В будущем году выпускники должны будут решить 16 заданий вместо 15-ти. Теперь задание на Робота в Кумире отдельно, а программирование отдельно.

Ранее, 90% всех учащихся выполняли именно задание на Кумире, но теперь придётся делать и последнее 16 задание.

Выполнять его будем на Питоне.

Я стараюсь всегда объяснять или решать задания ОГЭ в самом простом режиме, откидывая даже любые, самые очевидные выводы при решении заданий. Обуславливаю это тем, что информатику выбирают даже те, кто не способен точно сказать чему равно 5*9, без калькулятора. А сдавать надо и сдавать желательно на более менее приемлемый балл.

Итак начнём, будет долго, но зато всё разжуём (почти).

Пусть дано такое задание:

"Напишите программу, которая в последовательности натуральных чисел определяет сумму чисел, оканчивающихся на 8. Программа получает на вход количество чисел в последовательности, а затем сами числа.

В последовательности всегда имеется число, оканчивающееся на 8.

Количество чисел не превышает 100. Введенные числа по модулю не превышают 300. Программа должна вывести одно число: сумму чисел, оканчивающихся на 8."

Итак начинаем разбирать это задание.

1.О чём задание.

Первое что вы должны себе задать про что задание.

Ответ вот в этом предложении:

последовательности натуральных чисел

Поясняю: натуральные числа, это обычные положительные целые числа используемые при счёте.

Например 1, 2, 3... и т.д

Надеюсь это понятно. Число 1003 тоже натуральное, а вот число 2,5 не натуральное, это десятичная дробь.

Но нам нельзя использовать число 1003 так как есть ограничение,

введенные числа по модулю не превышают 300

Таким образом числа должны быть меньше или равны 300.

2. Какие числа нас интересуют?

Нас интересуют натуральные числа оканчивающиеся на 8.

Например 18, 168 и т.д.

3. Откуда берутся числа?

Итак теперь начинаем разбирать откуда берутся числа в программе?

Их вводят с клавиатуры!

Кто вводит? Вы, тот который будет делать программу или тот который будет использовать вашу программу.

4. Сколько чисел нужно использовать?

Сколько хотите, но в задаче сказано что должно быть "Количество чисел не превышает 100". Сразу скажу, что много лучше не выбирать. Потому что устанете их набирать с клавиатуры. Пусть это число натуральных чисел будет равно шести.

Например такие

  • 11
  • 8
  • 126
  • 258
  • 33
  • 55

5. Что нам нужно сделать?

Читаем задание "определить сумму чисел, оканчивающихся на 8"

Вы скажете так вот же эти числа оканчивающиеся на 8 (я их даже выделил)

8 и 258 их надо сложить, ответ будет 8+258=264.

Казалось всё. Но это понятно ВАМ! А нужна программа. И в компьютере, точнее в программе нет мозга, чтобы сразу сказать что число 33 нам не нужно, у него нет мозга, надо ему помочь, определить какие числа нам нужны.

И это самое главное в программировании.

Разъяснить компьютеру, что от него требуется сделать.

6. Как компьютер узнает, что число оканчивается на 8?

Придётся пользоваться математикой!

Число оканчивается на 8, если его разделив на 10 в остатке получить 8!

Например у нас есть число 11, делим его на 10, получаем один, а в остатке будет 1

11 / 10 = 1 целая и остаётся ещё 1, а нам нужно 8 значит 11 нам не нужно, понимает компьютер.

А вот если возьмём число 8, то разделив его на 10 получим ноль и в остатке остаётся восемь!

Разделив 258 на 10 получаем 25 и в остатке 8!

Собственно этот пункт - механизма определение числа оканчивающегося на 8 и есть смысл ВСЕЙ БУДУЩЕЙ ПРОГРАММЫ.

7. Куда писать ответ?

Итак мы ищем сумму чисел оканчивающихся на 8, это означает, что нам куда-то нужно писать ответ, пока компьютер будет искать все числа оканчивающиеся на 8. Место куда мы будем писать ответ назовём оtvet, это так мы назвали переменную, куда будем складывать все числа нужные нам.

Всё. Задача нами решена, осталось только написать её на Python или на Пайтоне, или на Питоне.

Как это сделать и с чего начать?

Начинаем с того, что говорим компьютеру сколько будет чисел.

Как это рассказать компьютеру?

Введём число n, которое и будет говорить компьютеру сколько будет этих чисел. Числа должны быть целыми, целые числа в питоне пишутся как int, от английского integer (целый) и числа эти мы будем вводить, вводить по английски input.

Поэтому первая строчка программы будет такая:

1. n=int(input())

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

Во второй строчке напишем сразу ответ.

Так как мы ещё не начали даже выполнять программу то в ответе нет ничего. А значит:

2. otvet=0

Теперь мы говорим компьютеру, что сейчас будет перебирать/вводить числа с первого до n-того ( в нашем случае шестого) и с ними что то будет делать

3. for i in range(n):

перевожу на русский: для чисел с первого до Эн-того будем делать

Делать будем следующее

вводим числа, которые обзовём буквой (переменной) a c клавиатуры

4. a=int(input())

Именно в этой строчке мы потом будем вводить наши числа 11, 8, 126 и т.д

Теперь запишем на питоне, как это делить на 10 и получить остаток 8.

Получение остатка от деления в питоне пишется как %

Итак мы должны наши числа, которые мы обозначили через а делить на 10 и получить остаток. Если остаток равен 8 то мы берём это число а

5. if a%10 == 8

итак тут стоит двойное равно ==, зачем?

Если остаток от деления на 10 равен 8, то программа получает разрешение что-то сделать дальше с ответом.

6. otvet = otvet+a

Последняя строчка вывод ответа. Выводиться должно печатая на экран.

Печать это

7. print (otvet)

Вся программа из семи строчек

Давайте теперь проверим построчно что там будет делаться

вначале введём n=6

otvet пока равен 0

вводим числа

11

8

126

258

33

55

Теперь программа начинает делить числа на 10

11/10, в остатке 1, это не 8 нам не надо

8/10 = 0 в остатке 8, нам надо

значит к оtvet-у прибавляем это число

стало 0+8 =8

далее 126/10 в остатке будет 6, это не 8, это число нам не надо

теперь 258 делим на 10, получится 25, а в остатке 8, нам надо

значит к ответу прибавляем это число:

в otvet-e сейчас 8, к нему прибавим 258 получаем 266

далее смотрим на 33, 33/10 получаем в остатке 3, это число нам не нужно.

далее проверяем число 55. 55/10 в остатке будет 5, 5 это не 8, значит 55 нам не подходит.

Всё. Числа кончились

otvet = 266

Где проверить программу?

Откуда взять питон?

Проще всего использовать онлайн симулятор питона

Например тут

-2

На этом всё.

Можете поиграться в программой задавая другое n (большое не пишите, а то заманаетесь вводить числа) и вводя их в программу.

Вот например результат для четырёх чисел

4,67,88 и 100

-3

А вот для других 10 чисел

-4

Тем, кто начнёт решать 16 задание на питоне я постарался объяснить всё наиболее упрощённо.

Главное начать, не так это всё сложно на самом деле.

Продолжение следует.

Спасибо за внимание.