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

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

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

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

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

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

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

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

Итоги урока

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

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

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

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

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

ОГЭ – 2025, задание 16, ч. 1. Программирование циклов с фиксированным числом повторений (PascalABC.NET, Python)

Цикл с фиксированным числом повторений (цикл-ДЛЯ) программируется в языках PascalABC.NET и Python с помощью оператора for. Его общий вид:

PascalABC.NET:

   for i := n1 to n2 do

   begin

      тело цикла

   end;

или

   for i := n2 downto n1 do

   begin

     

   end;

Здесь i — параметр цикла; в первом случае он изменяется от меньшего значения (n1) к большему (n2) с шагом 1; во втором случае — от большего значения (n2) к меньшему (n1) с шагом –1.

Условием выхода из цикла является выход параметра за конечное значение, то есть при i n2.

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

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

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

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

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

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

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

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

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

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



Задача 1. Поиск максимального из получаемых на вход программы чисел, кратного указанному числу

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

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

Решение

Максимальное или минимальное число находится путем сравнения чисел в последовательности в соответствии с условием задачи и заменой одного из них на другое в соответствии с полученным результатом.

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

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

Отметим, что программа получает на вход  сначала количество  чисел в последовательности, а затем уже сами числа. Это означает, что нам конкретно известно, сколько чисел в цикле мы должны обработать. Следовательно, в данной задаче удобнее всего использовать цикл с переменной (цикл ДЛЯ).

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

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

3. Условие о том, что количество чисел не превышает 1 000 никак не может повлиять на решение задачи, так как конкретное количество чисел в последовательности нам задано в условии.

4. Так как в задаче заданы два условия проверки  чисел, причем оба они должны выполняться, то в программе будем использовать  составное логическое высказывание И  (and).

5. Обозначим за min наименьшее искомое число, а за max – максимальное из них.

Так как в цикле будет выполняться сравнение чисел из заданного ряда с заменой на число, удовлетворяющее условию проверки, то нужно присвоить им такие начальные значения, чтобы при выполнении цикла их значения могли бы меняться на найденные значениято есть чтобы значение переменной  min  могло бы  уменьшаться, а переменной  max - увеличиваться. 

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

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

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

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



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



Задача 2. Вычисление суммы чисел, кратных заданному числу 

Напишите программу, которая в последовательности натуральных чисел определяет сумму чисел, кратных 6. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 6. Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести одно число — сумму чисел, кратных 6.

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

Решение

В отличие от задачи, рассмотренной выше, здесь нужно найти сумму чисел в последовательности, кратных 6. Условия "Количество чисел не превышает 100. Введённые числа не превышают 300" не влияют на решение задачи, так как данные ограничения в условии не рассматриваются. 


Главное здесь - это выбор такого начального значения искомой суммы, которое не повлияет на ее значение в процессе суммирования, поэтому сделаем ее равной нулю. Для упрощения ввода чисел используем оператор read, а не readln (PascalABC.NET «понимает», что вводятся числа, если их разделять пробелами, что позволяет вводить числа в одной строке).


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


var a, n, i, sum: integer;

begin

readln ( n );

sum := 0;

for i:=1 to n do begin

read (a);

if (a mod 6 = 0) then

sum := sum + a;

end;

print(sum);

end.


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





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

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

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




Решение

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

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

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

var a, n, i, kol: integer;

begin

readln (n);

kol := 0;

for i:=1 to n do begin

read (a);

if (a mod 4 = 0) then

kol := kol + 1;

end;

print(kol);

end.



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



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

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

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

Решение

В данной задаче нужно найти сумму чисел, оканчивающихся на 4.  Для решения этого условия вспомним, что последняя цифра числа - это первый остаток от деления числа на основание системы счисления, в которой это число записано. Тогда здесь проверяется остаток от деления числа на 10, то есть a mod 10 в Паскале или a % 10 в Питоне.

Начальное значение искомой суммы будет рано нулю.

Исходный текст программы на 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. Определение среднего значения по заданным условиям

Ученики 4 класса вели дневники наблюдения за погодой, куда ежедневно записывали дневную температуру. Найдите среднюю температуру  для дней, когда температура поднималась выше нуля градусов. Определите количество таких дней.  Гарантируется, что за время наблюдения хотя бы в один из дней температура поднималась выше нуля градусов. Программа получает на вход количество дней, в течение которых проводилось наблюдение N (1 ≤ N ≤ 31), затем для каждого дня вводится температура.

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

Решение:


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


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



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


1)
 без дробной части:


var a, i, k, n: integer;

sum: real;

begin

sum := 0;

k := 0;

read ( n );



for i:=1 to n do

begin

read(a);

if a 0 then

begin

sum +=a;

k += 1;

end;

end;

writeln(sum / k );

print(k);

end.



2) с указанием одной цифры после запятой:



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

 1) без дробной части:






2) с указанием одной цифры после запятой:




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






Скачать

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

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

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