СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до 07.06.2025

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

ОГЭ – 2025, задание 16, часть 2. Программирование циклов с заданным условием продолжения работы (PascalABC.NET, Python)

Категория: Информатика

Нажмите, чтобы узнать подробности

ОГЭ – 2025, задание 16, часть 2. Программирование циклов       с заданным условием продолжения работы  (PascalABC.NET, Python). Разбор различных вариантов заданий.

Просмотр содержимого документа
«ОГЭ – 2025, задание 16, часть 2. Программирование циклов с заданным условием продолжения работы (PascalABC.NET, Python)»

ОГЭ – 2025, задание 16, часть 2. Программирование циклов с заданным условием продолжения работы (PascalABC.NET, Python)

Логика работы этой конструкции описывается схемой, показанной ниже:

Выполняется цикл ПОКА следующим образом:

1) проверяется условие (вычисляется значение логического выражения);

2) если условие выполняется ("Да"), то выполняется тело цикла и снова осуществляется переход к проверке условия; Если же условия не выполняется ("Нет"), то выполнение цикла заканчивается.

Возможны случаи, когда тело цикла не будет выполнено ни разу.



Общий вид оператора цикла на PascalABC:

   while условие do

   begin

     тело цикла

   end

Здесь:

условие — логическое выражение; пока оно истинно, выполняется тело цикла;

тело цикла — один или несколько операторов, описывающих последовательность действий, выполняемых многократно.

Каждый оператор в программе заканчивается знаком "точка с запятой" (;)Но при этом нужно помнить, что знак "точка с запятой" закрывает не только последний оператор, а все открытые перед ней операторы 

Поэтому если внутри одного оператора нужно выполнить два или более других операторов, то их заключают в операторные скобки, которые обозначаются словами begin и end.

Решаемые на данном уроке задачи похожи на задачи, рассмотренные при разборе цикла-ДЛЯ, главное, что меняется здесь - условие цикла и (соответственно этому) порядок обработки данных.

Для упрощения ввода исходных данных можно вводить их двумя способами, которые приведут к одному результату:

  • отдельно в каждой строке, как дано в примере. Для этого используется оператор readln();

  • все числа в одной строке через пробел, используя оператор read().

Второй из приведенных способов ввода чисел:

  • более удобен в случае необходимости запускать решение задачи несколько раз, так как после копирования заданной последовательности чисел и вставки их в окно ввода достаточно эту строку скопировать в буфер, и при повторных запусках программы тогда будет достаточно вставить эту строку в окно ввода;

  • гарантирует, что при отладке программы для контроля правильности ответа вводятся одни и те же числа и при правильно выполненной программе будет получен требуемый результат.

Паскаль "понимает", что мы вводим числа, если между ними в строке ввода стоит пробел!

Проверьте правильность выполнения программы  на приведенных в контрольном примере исходных данных, и если Ваш ответ совпал с указанным в задании, то задача решена правильно. Для большей надежности можно придумать и проверить еще несколько контрольных примеров.



Общий вид оператора цикла на Python:

while :

     

Здесь:

условие — логическое выражение; пока оно истинно, выполняется тело цикла;

тело цикла — один или несколько операторов, описывающих последовательность действий, выполняемых многократно.



ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ

Задача 1. Вычисление суммы всех чисел, кратных заданному числу и оканчивающегося на указанную цифру

Напишите программу, которая в последовательности натуральных чисел определяет сумму всех чисел, кратных 6 и оканчивающихся на 4. Программа получает на вход натуральные   числа, количество введённых чисел неизвестнопоследовательность чисел заканчивается числом 0 (— признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1 000. Введённые числа не превышают 30 000. Программа должна вывести одно число: сумму всех чисел, кратных 6 и оканчивающихся на 4.



Пример работы программы:



Решение

В данной задаче нужно найти сумму всех чисел в последовательности, кратных (то есть остаток от деления этих чисел на 6 равен 0) и оканчивающихся на (то есть остаток от деления этих чисел на 10 равен 4). Условия "Количество чисел не превышает 10 000" и "Введённые числа не превышают 30 000" не влияют на решение задачи, так как данные ограничения в условии не рассматриваются. 

За начальное значение искомой суммы принимаем ноль, так как он не повлияет на ее значение в процессе суммирования. 

Для ввода чисел используем оператор read(), а не readln() (см. описание урока).

В данной программе выполняем оператор read(a)  перед началом цикла - читаем первое значение числа а, иначе цикл не выполнится ни разу, и второй раз - внутри цикла для чтения остальных чисел последовательности.

Проверьте ее правильность на приведенных в контрольном примере исходных данных, и если Ваш ответ совпал с указанным в задании, то задача решена правильно. Для большей надежности можно придумать и проверить еще несколько контрольных примеров.



Начальные значения всегда следует присваивать переменным, которые в процессе выполнения задачи изменяют свое значение в соответствии с условием задачи (результат арифметических действий, сравнения чисел) с учетом того, что эти начальные значения не должны влиять на результаты вычислений. Например, сумму чисел начинаем считать с нуля, а произведение - с единицы.

как по условию в заданной последовательности присутствуют только натуральные (то есть целые и положительные) числа. Этот же вывод будем использовать для определения шага цикла: так как нужно проверить все числа от 0 до 30000, то шаг цикла будет равен 1.

По сделанным из условия выводам пишем программу для решения задачи. 





Исходный текст программы на PascalABC:

Исходный текст программы на Python:

 



Задача 2.  Определение количества чётных (нечетных) чисел, кратных указанному числу

Напишите программу, которая в последовательности целых чисел определяет длину последовательности и  количество нечётных чисел, кратных 3. Программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1 000. Введённые числа по модулю не превышают 30 000. Программа должна вывести два числа: длину последовательности и количество нечётных чисел, кратных   3.

Пример работы программы:



Решение

Подсчет суммы всех чисел не вызывает вопросов, но для получения  разности количества положительных и отрицательных чисел нужно объявить две суммы – kolp для накопления количества положительных чисел и kolo - аналогично для отрицательных чисел. Проверку на а = 0  не делаем, так как 0 - это конец в вода чисел и в подсчете не участвует, и при входе в цикл задаем условие  a 0 (a не равно нулю).

Для определения знака числа здесь необходимо применить оператор условного перехода if.

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

Исходный текст программы на PascalABC:



Исходный текст программы на Phyton:





Задача 3. Определение суммы чисел и разности количества положительных и отрицательных чисел

Напишите программу, которая в последовательности целых чисел определяет их сумму и подсчитывает разность количества положительных и отрицательных чисел последовательности. Программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1 000. Введённые числа по модулю не превышают  30 000.  

     Программа должна вывести  два числа: сумму всех чисел последовательности и разность количества положительных и отрицательных чисел.

Пример работы программы:



Решение

Отличие данной задачи от предыдущей в поиске количества чисел вместо суммы. И обязательно нужно при этом учесть, что каждое найденное число, удовлетворяющее условиям задачи, увеличивает результат на единицу!

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

Исходный текст программы на PascalABC:

Исходный текст программы на Python:

Задача 4. Определение количества и среднего арифметического n-значных чисел, кратных заданному числу и не превосходящих его



Напишите программу, которая в последовательности натуральных чисел определяет количество и среднее арифметическое значение трёхзначных чисел, кратных 4 и не превосходящих число 256. Программа получает на вход натуральные числа, количество которых неизвестно, последовательность чисел заканчивается числом (– признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1 000. Введённые числа не превышают 30 000. Программа должна вывести два числа – количество и среднее арифметическое  значение  трехзначных чисел, кратных 4 и меньших числа 256.

Пример работы программы:



Решение

Данная задача содержит три явных условия, которые должны выполняться одновременно. Заметим, что описание интервала трехзначных чисел содержит две проверки, поэтому всего их стало четыре:

                          (a99) and (a

При этом одновременно выполняемые проверки (a  и  (a можно заменить одной, тогда получаем условие: 

                          (a99) and (a mod 4 =0) and (a

Чтобы посчитать среднее арифметическое значение, нужно найти сумму и количество чисел, соответствующих условиям отбора. При этом, так как значение суммы выводить не нужно, можно это значение в переменной не сохранять, а использовать сразу для вычисления среднего арифметического значения. Назовем эту переменную sr

Поскольку среднее арифметическое значение получается путем обычного деления, в результате которого всегда получаем вещественное число, тогда объявляем переменную sr как real. Это не помешает нам использовать ее сначала для подсчета суммы, а затем и для получения результата.





Исходный текст программы на PascalABC:

   var a, n, i, sum: integer;

begin

read ( n );

sum := 0;

for i:=1 to n do

begin

read ( a );

if (a mod 10 = 4) then

sum := sum + a;

end;

print(sum);

end.

Исходный текст программы на Python:



Задача 5. Определение среднего значения по заданным условиям (с дополнительным условием проверки)

Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое двузначных чисел или сообщает, что таких чисел нет (выводит «NO»). Программа получает на вход натуральные числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0 - признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введенные числа не превышают 300. Программа должна вывести среднее арифметическое двузначных чисел или вывести «NO», если таких чисел нет. Значение выводить с точностью до десятых.

Пример работы программы:


Для проверки правильности работы программы необходимо использовать следующие тесты:


Решение:


В данной задаче требуется вывести среднее значение числа с точностью до одного знака после запятой.

Указание о том, что хотя бы в один из дней температура поднималась выше нуля, говорит нам, что обработку ситуации с отсутствием нужной информации нам описывать в решении не нужно.


Исходный текст программы на PascalABC



Исходный текст программы на Python:


Или так:





Проверьте правильность выполнения каждой программы на приведенных в контрольных примерах исходных данных, и если Ваш ответ совпал с указанным в задании, то задача решена правильно. Для большей надежности можно придумать и проверить еще несколько контрольных примеров.






Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!

Поделитесь с друзьями
ВКонтактеОдноклассникиTwitterМой МирLiveJournalGoogle PlusЯндекс