(495) 240-82-80ПН-СБ с 10:00 до 18:00
We speak English

Урок 3.2. Взмах флажком

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

Вы научитесь:

  • Обращаться с оператором-счетчиком
  • Использовать сумматор
  • Программировать цикл и задавать "флаговое" значение
  • Вычислять среднее значение

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

Примечание для учителя: Сокращенные записи выражений в Python:
Выражение c=c+1 можно записать как c+=1 (не c++)
Выражение t=t+n можно записать как t+=n
count=total=0 допустимо такое написание, в том числе для
count, total = 0,0

1. Начните работу с создания нового файла Python. Назовите его count_ttl_avg.py.

Выберите две переменные и задайте им значение 0:

count = 0

total = 0

Переменная count будет вести подсчет чисел, которые вводит пользователь, а переменная total будет выдавать общую сумму введенных чисел. Третья переменная, num, будет по очереди сохранять каждое введенное число. Вместо того чтобы задавать переменной значение 0, используйте выражение input, чтобы пользователь мог сам ввести первое число:

num=float(input("Enter a number: "))

2. Теперь необходимо запустить цикл с оператором while, который прекратит работу, как только пользователь введет определенное число. В качестве такого значения можно ввести, например, 0, -999 или -1. Помните, что это значение не может входить в набор чисел, с которыми вы планируете работать. В примере в качестве "флагового" значения мы используем -999. Таким образом, даем системе знак, что мы закончили ввод чисел.

Выберите структуру while через меню: menu > Built-ins > Control.

Знак неравенства (!=) можно найти в меню ctrl+=. Мы его используем потому, что нам нужно условие, чтобы цикл продолжался до тех пор, пока переменная num не равна -999.

Не забудьте поставить двоеточие (:) в конце строки!

Далее приступайте к заполнению области блока (block)...

Примечание для учителя: Флаги (или сигнальные метки), счетчики и сумматоры - это стандартные термины в программировании.

3. Что будет происходить в блоке цикла:

  1. Подсчет количества введенных чисел
  2. Их сложение
  3. Запрос на введение другого числа

Подсчет ведется с помощью следующего выражения:

count = count + 1

благодаря которому каждый раз к переменной count добавляется единица.

Сложение (или нахождение общего числа) происходит благодаря следующему выражению:

total = total + num

Для запроса на ввод следующего числа используйте выражение input, как в первом случае:

num=float(input("Enter a number (-999 to end):"))

но здесь нужно дописать сообщение, в котором дается подсказка, как завершить цикл.

Примечание для учителя: На рисунке выше шрифт немного уменьшен, чтобы учащиеся увидели длинное выражение input на дисплее целиком. Чтобы изменять размер шрифта в работе с языком Python используйте следующий пункт меню: menu > Actions > Settings. В настройках будет доступен только пункт размера шрифта, который используется во всех редакторах Python и приложениях Shell в документах TI-Nspire. Размер шрифта сохраняется при сохранении самого документа.

4. На этом работа с циклом завершена. Пропустите одну-две строки и сотрите (с помощью кнопки backspace) структурные пробелы.

Теперь вам нужно обработать введенные числа. Вы уже нашли количество введенных чисел и их общее число с помощью переменных count и total, поэтому можно приступить к нахождению среднего значения.

Перед тем, как переходить к следующему шагу, попробуйте сделать это самостоятельно...

5. Выражение

avg = total / count

вычисляет среднее значение и сохраняет результат в переменную avg.

Поразмышляйте: Почему здесь мы используем одиночный знак деления /, а не двойной // как в предыдущем уроке?

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

Примечание для учителя: Почему здесь мы используем одиночный знак деления /, а не двойной // как в предыдущем уроке?
Знак / означает деление с отображением числа с "блуждающей" десятичной запятой, и результат будет в виде десятичного числа.
Знак // означает деление целого числа, следовательно, результат будет отображен только в виде целого числа.

6. Мы будем использовать три выражения print для отображения результата:

print("Count = ",count)

print("Total = ",total)

print("Average = ",avg)

На рисунке показан пример запуска программы. Обратите внимание на то, как много конечных нолей появилось перед единицей при отображении среднего значения. Это "фишка" (особенность) языка программирования Python.

Не забудьте сохранить свою работу.

Примечание для учителя: Метод хранения и обработки чисел с десятичной запятой в языке Python в некоторых вычислениях приводит к отображению блуждающей запятой. Это особенность языка Python, которая не имеет ничего общего с языком TI-Nspire.

Задача: В качестве программы ввода (input) отобразите количество введенных чисел.
Функция ввода input не похожа на выражение print, с помощью которого вы можете одновременно отображать текст и переменные, разделив их запятыми. Функция input может отобразить только строку (подсказку).
Что произойдет, если первым числом сразу ввести -999 (до начала ввода любых других чисел)?
Ответ: Вы увидите сообщение об ошибке "Деление на ноль" (Divide by zero).