Настало время разобраться с одним из самых масштабных по знаниям и умениям заданием ОГЭ №15 по информатике. В этом задании по выбору применяется навык программирования и задействована тема “Алгоритмизация и программирование”. Для успешного решения номера потребуются знания таких вещей из программирования, как переменные, циклы, математические операции, условия и массивы. Важно понимание, как эти модули работают отдельно друг от друга и как можно их совмещать. Без массивов можно сделать все задания, но, зная их, можно более легко подойти к решению.
Рассмотрим лишь базовые моменты каждой из тем (переменные, циклы, условия, математические операции и массивы). Начнём с того, чтобы успешно делать задание необходимо постоянно практиковаться в этой области. Очень сложно, не зная программирования, приступать к решению этого номера.
Переменные
Переменные бывают разных типов. Сама по себе переменная это ячейка в памяти компьютера (с каким-то именем), которая способна хранить информацию. Самые базовые это целочисленные, строковые, вещественные (дробные) и логические (boolean). Во всех языках по-разному происходит процесс создания переменных и работа с ними. Мы будем рассматривать весь процесс на языке программирования Python.
Python обладает динамической типизацией. Что это значит? Когда приравниваем какой-либо переменной значение, то он смотрит на содержимое переменной и в зависимости от него присваивает определённый тип. В Python можно также применять строгую типизацию (заранее определять тип переменной).
Всё, что находится после знака “#” является комментарием и НЕ воспринимается интерпретатором при запуске программы.
Следовательно, там, где записали просто число в переменную, там переменная стала целочисленная, а где записали логическое значение, там логическая переменная.
Важная особенность логической переменной состоит в том, что она может принимать лишь два значения истина и ложь. Другими словами, True (1) or False (0). Больше никаких значений у неё быть не может.
Математические операции
Важно иметь понимание о том, что можно делать с информацией, которая хранится в переменной, как можно взаимодействовать с переменными. В программировании существуют те же операции, что и в математике.
- + — сложение;
- - — вычитание;
- * — умножение;
- / — деление.
При записи деления переменная result_3 будет являться вещественной (дробной), даже если результат деления не будет дробью. Во всех остальных математических операциях переменная будет целочисленной (integer). Также можно и возводить в степень и извлекать корень за счёт другой операции. Операция “**” — возведение в степень.
В программировании добавляются ещё два методы деления:
- mod — остаток при делении, обозначается %
- div — целая часть при делении, обозначается //
Ввод и вывод
Нужно уметь и вводить (с клавиатуры) информацию в переменные и выводить нужную на экран. Для этого есть две определённые функции в Python.
- input() — ввод данных;
- print() — вывод данных.
Попробуем разобраться с маленькой программой на примере.
Так как изначально вводимые данные при помощи функции input() будут являться строковыми, то при операции сложения компьютер просто соединит две строки “40” и “50”, что даст в результате “4050”.
Чтобы не было такой проблемы, необходимо воспользоваться операцией приведение типов. Суть её заключается в том, что мы убеждаем компьютер в том, что тип переменной должен быть именно такой.
Функция int() преобразует, в данном случае, строковое значение в числовое, за счёт этого получаем уже то сложение, которое планировали изначально.
Теперь попробуем вывести полученную сумму на экран, воспользуясь функцией print().
Циклы
Существуют моменты, когда нужно повторить какое-то действие определённое количество раз. Для этой задачи есть циклы, которые помогают в этом. Они есть нескольких типов, но рассмотрим только два.
- Цикл while;
- Цикл for.
Цикл while работает с предусловием. Если условие выполняется, тогда цикл работает.
Цикл будет работать до тех пор, пока содержимое в переменной n будет строго больше 5. Результатом работы программы будет вывод четырёх чисел: 9, 8, 7, 6. Тем самым цикл сработал четыре раза. Повторение цикла называется итерацией.
Другим циклом является for, который выполняет действия без условия.
Особенностью данного цикла является наличие счётчика. В данном случае эта роль досталась переменной i. Каждую итерацию цикла счётчик увеличивается на 1 и стремиться достичь значение n (но не доходит до него). Таким образом, цикл сработает 10 раз, следовательно, будет десять итераций цикла. Поскольку стартовое значение i = 0, то компьютер выведет нам десять чисел: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Условие
Условие помогает делать наш алгоритм более “умным”, помогает принимать ему решения на основе логических выражений. Оно помогает делать алгоритм разветвлённым. Рассмотрим одну программу и разберём её.
Логическое выражение n > 20 определяет, какое действие будет выполнено. Действие, находящиеся сразу под условием, сработает при истинном логическом выражении. А действие, которое находится после else, сработает при ложном значении логического выражения. Действий при ложном/истинном значении может быть несколько, не обязательно лишь одно.
Знаки логических выражений
Логические выражения могут содержать следующие знаки для условий и предусловий:
- == — равно: истина, если операнды равны;
- < — меньше: истина, если левый операнд меньше правого;
- <= — меньше или равно: истина, если левый операнд не больше правого;
- > — больше: истина, если правый операнд меньше левого;
- >= — больше или равно: истина, если правый операнд не больше левого;
- != — не равно: истина, если операнды не равны.
Табуляция (вложенность)
В языке программирования Python очень важны пробелы (вложенность). Они появляются тогда, когда используем циклы и условия. Выше могли заметить отступы при работе с ними. Без них будут ошибки или программа может работать некорректно (не так, как она задумывалась создателем). При правильном написании условий, циклов, функций и так далее, отступы ставятся автоматически.
Массивы
Массивы являются особым типом данных. Работать с этим типом сложнее, чем с переменными. В этой статье разберём лишь маленький фрагмент работы с массивами.
Сам по себе этот тип данных представляет собой скопление однотипных элементов. У каждого элемента есть свой номер (индекс), по которому можно к нему обратиться и взаимодействовать с ним, как и с переменными. Индекс начинается с нуля.
Выше приведён, состоящий из чисел, у каждого числа есть индекс (он сверху). Для взаимодействия с элементом массива необходимо обращаться именно к его индексу.
Здесь мы создали абсолютно пустой массив mas, при помощи цикла заполняем его за счёт функции append(). Функции int() и input() помогают вводить данные и преобразовывать строковые данные в целочисленные.
Поскольку итераций цикла у нас пять, то можем ввести 5 чисел. Допустим вводим: 5, 4, 3, 2 и 1. Тогда результатом работы программы будет массив [1, 2, 3, 4, 5].
Попробуем поработать с элементами массива на похожем примере.
Здесь добавляет ещё один цикл с таким же количеством повторений. Он перебирает все элементы массива и добавляет к ним число 10.
При вводе тех же данных в результате работы программы получим следующий массив - [11, 12, 13, 14, 15]. Теперь можем рассмотреть само задание.
Пример задания
Напишите программу, которая в последовательности натуральных чисел определяет минимальное число, кратное 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 3. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число — минимальное число, кратное 3.
Пример работы программы:
Решение
Входные данные — это то, что подаётся (вводится) во время запуска программы. Выходные данные — это то, что нужно получить в результате работы программы при данных входных данных.
Для начала откроем интерпретатор языка программирования Python — IDLE Python.
В открытом окне (терминал языка программирования Python) не стоит писать программу, хоть это и возможно, но редактировать или сохранить её не получится. Поэтому откроем новый файл для написания программы.
В новом файле у нас нет ничего лишнего, есть лишь пространство для написания программы.
Теперь приступим к написанию программы, продумаем алгоритм, которым необходимо создать.
Вначале в программу поступает количество чисел для проверки. Далее вводятся числа и проверяются на кратность трём (делится ли нацело). Из всех чисел, которые кратны трём, нужно найти минимальное число.
Для начала напишем кусок программы для ввода данных.
Нужно добавить переменную для поиска минимального числа и задать ей начальное значение. Когда ищем минимальное число, то такая переменная должна быть как можно больше. А когда ищем максимальное число, то как можно меньше. В условии задачи сказано, что числа не будут превышать 30000, следовательно, могли задать начальное значение 30001, но зададим иное.
Теперь осталось написать условие. Здесь очень важным моментом будет то, что в одном условии можем написать несколько (сколько угодно) логических выражений. Делается это за счёт логических связок and (И) и or (ИЛИ).
Добавим сразу две проверки:
- Проверка на кратность;
- Проверка на минимальное число (меньше ли новое число текущего минимального).
Получили законченную программу, в условии кратность проверяли за счёт остатка при делении (операция mod). Если остатка при делении нет, значит, число кратно.
Попробуем запустить нашу программу. Для этого заходим во вкладку “Run” → “Run Module”. После этого нас спросят, хотим ли сохранить, а если хотим, то куда. Без сохранения программа не сможет быть запущена.
Введём входные данные из условия задачи и посмотрим, совпадают ли выходные данные. Если будет совпадать, то скорее всего, сделали все верно.
Как видим, выходные данные совпали, минимальное число получилось 12.
Рекомендация по проверке работы
При проверке с входными данными никогда не будет лишнем попробовать ещё ряд своих данных. Эта проверка поможет точно убедиться в правильности написанной программы.
Понравилась статья? Хочешь разбираться в информатике, программировании и уметь работать в разных программах? Тогда ставь лайк, подпишись на канал и поделись статьей с друзьями!
Читайте также:
- Информатика ОГЭ №13 (Презентация)
- Информатика ОГЭ №13 (Текстовый редактор)
#информатика #огэ #разбор #задания #решение #экзамен