Напишите программу, которая определяет, какое из трех чисел является наибольшим числом, введенным с клавиатуры
Обновлено: 21.11.2024
Мы уже видели несколько примеров того, как Python может выполнять числовые вычисления. Python фактически использует два разных типа данных для хранения числовых значений. Тип данных int используется для хранения целых чисел, а тип данных float — для хранения нецелых чисел с плавающей запятой.
Если вы сохраните целочисленное значение в переменной, Python будет автоматически использовать тип данных int для этого количества. Если вы выполняете арифметические действия с переменными с целочисленными значениями, результаты этих вычислений будут целыми числами, за исключением случая деления. Поскольку результат многих делений с двумя целочисленными операндами не может быть представлен как целое число, Python по умолчанию преобразует результат каждого деления с двумя целочисленными операндами в тип данных с плавающей запятой.
Если один или несколько операндов в любой арифметической операции являются числами с плавающей запятой, результатом всегда будет число с плавающей запятой.
Python также включает пару специальных операторов для использования с данными типа int: оператор целочисленного деления // и оператор целочисленного остатка % . Оператор целочисленного деления возвращает частное, которое получается при делении одного целого числа на другое.
Операция целочисленного остатка возвращает остаток, оставшийся после деления одного целого числа на другое целое число.
Преобразование чисел в текст и текста в числа
Python также поддерживает строковый тип данных, который используется для хранения текста. Вы можете создать текст одним из двух способов в программе Python. Вы можете присвоить текстовый литерал переменной, которая выглядит следующим образом:
Вы также можете получить текст с помощью команды input(), которая предлагает пользователю ввести текст.
Текст, который появляется в input(), представляет собой подсказку, сообщающую пользователю, какую информацию он должен ввести. Когда ваша программа дойдет до команды ввода, она отобразит приглашение и будет ждать, пока пользователь введет какой-либо ввод. Как только пользователь нажмет Enter, его текст будет сохранен в переменной, которой вы присвоили результат ввода.
Команда input() всегда возвращает текст в качестве результата, даже если вы предлагаете пользователю ввести число. Если вы хотите интерпретировать текст, введенный пользователем, как числовой тип, вам нужно использовать команду преобразования типа. Например, если вы хотите интерпретировать ввод пользователя как целое число, вы должны использовать эту форму:
Если вы хотите интерпретировать ввод как вещественное число с плавающей запятой, используйте эту форму:
Важной операцией, поддерживаемой строковым типом данных, является конкатенация, которая склеивает строки вместе, образуя более крупные строки.
Конкатенация работает только с двумя строковыми операндами. Если вы хотите использовать конкатенацию с другими типами данных, вам придется преобразовать эти данные в строку с помощью команды str().
Инструкция if-else
Основной конструкцией Python для принятия решений и действий в различных случаях является оператор if-else. Основная форма оператора if-else такова:
Инструкция if-else начинается с выполнения теста, результат которого может быть либо истинным, либо ложным. Если результат теста верен, выполняется набор операторов в первом блоке с отступом. В противном случае операторы в блоке после else будут выполнены. После выполнения операторов в выбранной ветке выполнение продолжается со следующего оператора после оператора if-else.
Самый распространенный способ формирования тестов для оператора if-else — использование операторов сравнения. Вот таблица доступных операторов сравнения.
оператор | значение |
---|---|
== | равно |
!= | не равно |
больше, чем | |
= | больше или равно |
Особенно обратите внимание на сравнительный тест ==. Очень распространенная ошибка, которую совершают начинающие программисты, заключается в том, что мы = вместо == в тесте. = означает «установить для элемента слева значение справа», а не «сравнить элемент слева с элементом справа».
Вот два примера использования оператора if-else.
Обратите внимание, что размещение одного оператора if-else внутри другого вполне допустимо. Это называется вложенным if-else.
Составные тесты
Полезной альтернативой размещению одного оператора if-else внутри другого является возможность формирования составного теста. Составной тест — это тест, состоящий из двух или более обычных тестов, соединенных между собой логическими соединителями и или или .
Мы можем переписать предыдущий пример, сказав, что вы должны быть старше 12 лет и выше пяти футов, чтобы кататься на роликах:
Варианты форм
Python также позволяет использовать оператор if-else в различных формах. Первый вариант заключается в том, что вы можете построить оператор if только с ветвью if и без ветви else.
Еще один полезный вариант возникает, когда нам нужно провести серию сравнений, чтобы классифицировать что-то более чем по двум возможным категориям. Один из способов категоризации — использование вложенных операторов if-else.
Такая задача категоризации встречается на практике так часто, что в Python есть специальный вариант if-else, в котором используется ветвь else-if, помеченная elif .
Пример программы — внесение изменений
Следующая программа демонстрирует использование целочисленной арифметики и операторов if-else. Программа предлагает пользователю ввести сумму в копейках для внесения сдачи. Затем программа использует алгоритм, чтобы вычислить, сколько четвертаков, десятицентовиков, пятицентовых монет и пенни нужно отсчитать, чтобы получить сдачу на эту сумму.
Программа использует следующую логику для вычисления количества каждой используемой монеты:
Вот пример того, как это работает. Предположим, мы ввели 87 центов.
- 87//25 равно 3, поэтому мы раздаем 3 четверти.
- После раздачи четвертаков у нас осталось 87 - 3*25 = 12 или 87%25 = 12 центов для раздачи.
- 12//10 равно 1, поэтому мы раздаем 1 цент.
- После раздачи десятицентовика у нас осталось 12 - 1*10 = 2 или 12%10 = 2 цента для раздачи.
- 2//5 равно 0, поэтому мы раздаем 0 никелевых монет.
- 2%5 – это 2, поэтому у нас еще есть 2 цента, которые можно раздать.
- Наконец, мы раздаем 2 цента как 2 пенни.
Чтобы обеспечить правильное форматирование вывода с правильным использованием форм множественного и единственного числа, мы используем набор операторов if-else, которые помогают решить, как печатать вывод. Вы видите, как логика обрабатывает случай с 0 монетами?
сообщить об этом объявлении
Здесь мы напишем программу на C, чтобы найти наибольшее из трех чисел с помощью функций. В теме управления потоком мы уже написали программу на C для поиска наибольшего из трех чисел, но без использования каких-либо функций. Теперь на этот раз мы выполним ту же задачу, используя функцию. Функция делит большие программы на маленькие. Наша программа на самом деле не большая программа. Для практики и понимания функции мы разрабатываем эту программу, используя функцию. Сначала мы решим задачу, используя только одну функцию, позже мы будем использовать более одной функции.
Программа на C для нахождения наибольшего из трех чисел с помощью функций
Описание программы: Напишите программу на C, чтобы найти наибольшее из трех чисел. Принять ввод от пользователя. Напишите программу таким образом, чтобы входные числа могли быть целыми, вещественными или и теми, и другими.
Вывод для различных тестовых случаев:-
Введите три числа: 12,5 8 6,9
Наибольшее число = 12,50
Введите три числа: 3 5,9 6,0
Наибольшее число = 6,00
Программа на C для нахождения наибольшего из трех чисел с использованием более чем одной функции
Описание программы: Напишите программу на языке C для нахождения наибольшего из трех чисел. Определите три функции input(), large() и display() для выполнения операций. Функция input() примет ввод от пользователя, функция large() найдет наибольшее число, а функция display() выведет результат на экран. Не выполняйте никаких операций внутри основной функции, кроме вызова функций и сохранения возвращаемых ими значений.
Вывод для различных тестовых случаев:-
Введите число: 10
Введите число: 12
Введите число: 9
Наибольшее число = 12,00
Введите число: 9,5
Введите число: 4,51
Введите число: 2,99
Наибольшее число = 9,50
Пояснение
В этой программе определены три функции input(), large() и display(). Внутри основного метода объявляются четыре переменные. Переменные num1, num2 и num3 будут хранить числа.
У функции input() нет параметров, поскольку она не требует никаких данных от вызывающей функции. Он определяется как получение ввода от конечного пользователя и возврат обратно в вызывающую функцию. Функция input() возвращает только одно значение за раз. Следовательно, для трех значений функция input() вызывается в основной функции три раза. (Для возврата трех значений за раз нам нужно использовать концепцию массива).
Теперь три значения хранятся в переменных основной функции. Для нахождения наибольшего числа вызывается функция large() с аргументами num1, num2 и num3. Функция large() имеет три параметра a, b и c. Параметры будут хранить значения аргументов. Значение num1 будет храниться в локальной переменной «a». Точно так же значение num2 копируется в «b», а значение num3 копируется в переменную «c».
Внутри функции large(), если значение переменной "a" больше, чем равно значению переменных "b" и "c", тогда значение "a" является наибольшим из трех, следовательно значение «а» возвращается в основную функцию. Если «a» не больше, то будет проверено условие else-if. Когда условие else-if истинно, будет возвращено значение «b», в противном случае выполняется блок else и возвращается значение «c».
Функция display принимает в качестве аргумента переменную «самый большой» и выводит сообщение о результате на экран.
Если вам понравился этот пост, поделитесь им с друзьями. Вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше, или вы нашли что-то неправильное? Дайте нам знать об этом в комментариях. Спасибо!
сообщить об этом объявлении
1.3 Условные операторы и циклы
В программах, которые мы рассмотрели к этому моменту, каждый из операторов выполняется один раз в заданном порядке. Большинство программ более сложны, потому что последовательность операторов и количество раз выполнения каждого из них могут различаться. Мы используем термин поток управления для обозначения последовательности операторов в программе.
Инструкции If.
использует Math.random() и оператор if-else для вывода результатов подбрасывания монеты.
Пока циклы.
Следующий фрагмент кода вычисляет наибольшую степень числа 2, которая меньше или равна заданному положительному целому числу n.
Для циклов.
Для обозначения. Многие циклы следуют одной и той же базовой схеме: инициализируйте индексную переменную некоторым значением, а затем используйте цикл while для проверки условия выхода, включающего индексную переменную, используя последний оператор в цикле while для изменения переменной индекса. Цикл Java for — это прямой способ выражения таких циклов.
Вложение.
Примеры циклов.
Приложения.
- Подразделения линейки.RulerN.java принимает целочисленный аргумент командной строки n и выводит строку длины подразделения линейки. Эта программа иллюстрирует одну из основных характеристик циклов — программа вряд ли может быть проще, но она может производить огромное количество выходных данных.
- Конечные суммы. Вы будете часто использовать вычислительную парадигму, используемую в PowersOfTwo.java. Он использует две переменные: одну в качестве индекса, управляющего циклом, а другую для накопления результатов вычислений. Программа HarmonicNumber.java использует ту же парадигму для вычисления суммы
Другие условные конструкции и циклы.
В. Как я могу проверить, равны ли две строки? Использование == не работает.
А. В этом одно из различий между примитивными типами (int, double, boolean) и ссылочными типами (String). . Мы узнаем о проверке строк на равенство в Разделе 3.1.
В. Почему оператор if (a
- Напишите программу AllEqual.java, которая принимает три целочисленных аргумента командной строки и выводит равно, если все три равны, и не равно в противном случае. 2 + bx + c, выводит соответствующее сообщение об ошибке, если дискриминант отрицателен, и ведет себя соответствующим образом (избегая деления на ноль), если a равно нулю.
- Что (если вообще есть) неверно в каждом из следующих утверждений?
- если (a > b), то c = 0;
- если а > б
- если (а > б) с = 0;
- если (a > b) c = 0 иначе b = 0;
Творческие упражнения
- Такси Рамануджана. С. Рамануджан был индийским математиком, прославившимся своей интуицией в отношении чисел. Когда однажды английский математик Г. Х. Харди навестил его в больнице, Харди заметил, что номер его такси — 1729, довольно скучный номер. На что Рамануджан ответил: «Нет, Харди! Нет, Харди! Это очень интересное число.Это наименьшее число, которое можно представить в виде суммы двух кубов двумя разными способами». Проверьте это утверждение, написав программу Ramanujan.java, которая принимает целочисленный аргумент командной строки n и выводит все целые числа, меньшие или равные n, которые могут быть выражается в виде суммы двух кубов двумя разными способами — найдите различные положительные целые числа a, b, c и d em> таким образом, что a 3 + b 3 = c 3 + d 3 . Используйте четыре вложенных цикла for.
Веб-упражнения
- Напишите программу RollDie.java, которая генерирует результат броска правильного шестигранного кубика (целое число от 1 до 6).
- Напишите программу, которая принимает три целочисленных аргумента командной строки a, b и c и выводит количество различных значений (1, 2 или 3) среди a, b и c.
- Напишите программу, которая принимает пять целочисленных аргументов командной строки и выводит медиану (третью по величине).
- (жесткий) Теперь попробуйте вычислить медиану 5 элементов таким образом, чтобы при выполнении она никогда не выполняла более 6 сравнений.
- Как создать бесконечный цикл с помощью цикла for?
Условие цикла while использует = вместо ==, поэтому это оператор присваивания (который делает done всегда false< /tt> и тело цикла никогда не будет выполнено). Лучше использовать стиль, чтобы не использовать ==.
Читайте также: