3.1.1.9 Псевдокод и введение в циклы
Теперь вы должны быть в состоянии написать программу, которая находит наибольшее из четырех, пяти, шести или даже десяти чисел.
Вы уже знаете схему, поэтому расширить проблему не составит особого труда.
Но что произойдет, если мы попросим вас написать программу, которая находит наибольшее из двухсот чисел? Вы можете представить себе код?
Вам понадобится двести переменных. Если двухсот переменных недостаточно, представьте себе поиск наибольшего из миллиона чисел.
Представьте себе код, содержащий 199 условных операторов и двести вызовов функции input(). К счастью, вам не нужно с этим разбираться. Есть более простой подход.
Мы пока проигнорируем требования синтаксиса Python и попытаемся проанализировать проблему, не думая о реальном программировании. Другими словами, мы попробуем написать алгоритм, и когда он нас устроит, мы его реализуем.
В этом случае мы будем использовать нотацию, которая не является реальным языком программирования (она не может быть ни скомпилирована, ни выполнена), но формализованная, краткая и удобочитаемая. Это называется псевдокодом.
Давайте посмотрим на наш псевдокод ниже:
largest_number = -999999999
number = int(input())
if number == -1:
print(largest_number)
exit()
if number > largest_number:
largest_number = number
# Go to line 02
Что в нем происходит?
Во-первых, мы можем упростить программу, если в самом начале кода мы присвоим переменной large_number значение, которое будет меньше любого из введенных чисел. Для этого мы будем использовать -999999999.
Во-вторых, мы предполагаем, что наш алгоритм заранее не будет знать, сколько чисел будет доставлено программе. Мы ожидаем, что пользователь введет столько чисел, сколько захочет - алгоритм будет хорошо работать с сотней и с тысячей чисел. Как мы это делаем?
Заключаем сделку с пользователем: ввод значения -1 будет признаком того, что данных больше нет и программа должна прекратить свою работу.
В противном случае, если введенное значение не равно -1, программа прочитает другое число и так далее.
Уловка основана на предположении, что любая часть кода может быть выполнена более одного раза - ровно столько раз, сколько необходимо.
Выполнение определенной части кода более одного раза называется циклом. Значение этого термина, вероятно, вам очевидно.
Строки с 02 по 08 образуют петлю. Мы пройдемся по ним столько раз, сколько потребуется, чтобы просмотреть все введенные значения.
Можете ли вы использовать аналогичную структуру в программе, написанной на Python? Да, ты можешь.
Дополнительная информация
Python часто имеет множество встроенных функций, которые сделают всю работу за вас. Например, чтобы найти наибольшее число из всех, вы можете использовать встроенную функцию Python, называемую max(). Вы можете использовать его с несколькими аргументами. Проанализируйте код ниже:
# Read three numbers.
number1 = int(input("Enter the first number: "))
number2 = int(input("Enter the second number: "))
number3 = int(input("Enter the third number: "))
# Check which one of the numbers is the greatest
# and pass it to the largest_number variable.
largest_number = max(number1, number2, number3)
# Print the result.
print("The largest number is:", largest_number)
Таким же образом вы можете использовать функцию min(), чтобы вернуть наименьшее число. Вы можете перестроить приведенный выше код и поэкспериментировать с ним в песочнице.
Мы скоро поговорим об этих (и многих других) функциях. В настоящее время наше внимание будет сосредоточено на условном выполнении и циклах, чтобы дать вам больше уверенности в программировании и обучить вас навыкам, которые позволят вам полностью понять и применить две концепции в вашем коде. Итак, на данный момент мы не идем по сокращенному пути.
Вы уже знаете схему, поэтому расширить проблему не составит особого труда.
Но что произойдет, если мы попросим вас написать программу, которая находит наибольшее из двухсот чисел? Вы можете представить себе код?
Вам понадобится двести переменных. Если двухсот переменных недостаточно, представьте себе поиск наибольшего из миллиона чисел.
Представьте себе код, содержащий 199 условных операторов и двести вызовов функции input(). К счастью, вам не нужно с этим разбираться. Есть более простой подход.
Мы пока проигнорируем требования синтаксиса Python и попытаемся проанализировать проблему, не думая о реальном программировании. Другими словами, мы попробуем написать алгоритм, и когда он нас устроит, мы его реализуем.
В этом случае мы будем использовать нотацию, которая не является реальным языком программирования (она не может быть ни скомпилирована, ни выполнена), но формализованная, краткая и удобочитаемая. Это называется псевдокодом.
Давайте посмотрим на наш псевдокод ниже:
largest_number = -999999999
number = int(input())
if number == -1:
print(largest_number)
exit()
if number > largest_number:
largest_number = number
# Go to line 02
Что в нем происходит?
Во-первых, мы можем упростить программу, если в самом начале кода мы присвоим переменной large_number значение, которое будет меньше любого из введенных чисел. Для этого мы будем использовать -999999999.
Во-вторых, мы предполагаем, что наш алгоритм заранее не будет знать, сколько чисел будет доставлено программе. Мы ожидаем, что пользователь введет столько чисел, сколько захочет - алгоритм будет хорошо работать с сотней и с тысячей чисел. Как мы это делаем?
Заключаем сделку с пользователем: ввод значения -1 будет признаком того, что данных больше нет и программа должна прекратить свою работу.
В противном случае, если введенное значение не равно -1, программа прочитает другое число и так далее.
Уловка основана на предположении, что любая часть кода может быть выполнена более одного раза - ровно столько раз, сколько необходимо.
Выполнение определенной части кода более одного раза называется циклом. Значение этого термина, вероятно, вам очевидно.
Строки с 02 по 08 образуют петлю. Мы пройдемся по ним столько раз, сколько потребуется, чтобы просмотреть все введенные значения.
Можете ли вы использовать аналогичную структуру в программе, написанной на Python? Да, ты можешь.
Дополнительная информация
Python часто имеет множество встроенных функций, которые сделают всю работу за вас. Например, чтобы найти наибольшее число из всех, вы можете использовать встроенную функцию Python, называемую max(). Вы можете использовать его с несколькими аргументами. Проанализируйте код ниже:
# Read three numbers.
number1 = int(input("Enter the first number: "))
number2 = int(input("Enter the second number: "))
number3 = int(input("Enter the third number: "))
# Check which one of the numbers is the greatest
# and pass it to the largest_number variable.
largest_number = max(number1, number2, number3)
# Print the result.
print("The largest number is:", largest_number)
Таким же образом вы можете использовать функцию min(), чтобы вернуть наименьшее число. Вы можете перестроить приведенный выше код и поэкспериментировать с ним в песочнице.
Мы скоро поговорим об этих (и многих других) функциях. В настоящее время наше внимание будет сосредоточено на условном выполнении и циклах, чтобы дать вам больше уверенности в программировании и обучить вас навыкам, которые позволят вам полностью понять и применить две концепции в вашем коде. Итак, на данный момент мы не идем по сокращенному пути.