Проверить является ли введенное с клавиатуры число кратным 2 и 5
При выполнении заданий используйте заготовки решений: -> Репозиторий.
В данной теме придерживайтесь следующих правил:
не используйте коллекции в любых задачах кроме задач из раздела «Коллекции» (до задачи № 4.2.29 ; например, если дана последовательность чисел, не нужно использовать списки, следует ввести каждое число с клавиатуры отдельно, не сохраняя их.
Использовать не изученные до сих пор конструкции языка (try, import и др.) запрещено.
4.2.1. Условный оператор¶
Рассчитать значение \(f\) при заданном значении вещественного числа \(x\) :
\[\beginПри выводе на экран оставьте 2 знака после запятой.
Определите максимальное и минимальное значения из двух различных целых чисел.
Вася пытается высунуть голову в форточку размерами \(a\) и \(b\) см. Приняв условно, что его голова - круглая диаметром \(d\) см, определите, сможет ли Вася сделать это. Для прохождения головы в форточку необходим зазор в \(1\) см. с каждой стороны.
Все величины - целые числа.
Известны год и номер месяца сегодняшнего дня, а также год и номер месяца рождения человека (нумерация месяцев с 1: январь - 1 и т.д.). Определите возраст человека (число полных лет).
Дана точка с целыми ненулевыми координатами \((x; y)\) . Определить номер четверти координатной плоскости, которой она принадлежит.
Даны вещественные числа \(a\) , \(b\) , \(c\) ( \(a \neq 0\) ).
Решите уравнение \(ax^2 + bx + c = 0\) . При выводе значений оставьте 1 знак после запятой.
4.2.2. Цикл с условием¶
Дана непустая последовательность целых чисел, оканчивающаяся нулем. Найти сумму и количество введенных чисел.
Дано число \(n\) . Из чисел \(0, 5, 10, 15, 20, 25, . \) напечатать те, которые не превышают \(n\) .
Дано вещественное число \(a\) . Найдите наименьшее натуральное \(n\) , для которого верно
Дано натуральное число. Определите сумму и количество его цифр.
Зная, что операция нахождения остатка от деления числа на 10 всегда возвращает его последнюю цифру, можно зациклить это деление, «отрезая» на каждой итерации найденную цифру, используя деление нацело:
где окончанием цикла будет наличие 0 в исходном числе.
Вывести в строку 10 первых натуральных чисел, оканчивающихся на цифру \(k\) , кратных числу \(s\) и находящихся в интервале, левая граница которого равна \(start\) .
4.2.3. Совместный цикл (цикл по коллекциям)¶
Даны целые числа \(a\) и \(b\) ( \(a\) может быть больше \(b\) ). Напечатайте:
числа от минимального до максимального в строчку (разделяя пробелом);
числа от максимального до минимального «столбиком».
Для введенных с клавиатуры положительных целых чисел \(a\) и \(b\) ( \(a \leq b\) ) определите:
сумму всех целых чисел от \(a\) до \(b\) ;
произведение всех целых чисел от \(a\) до \(b\) ;
среднее арифметическое всех целых чисел от \(a\) до \(b\) ;
среднее геометрическое нечетных чисел от \(a\) до \(b\) .
Отрезок поиска включает сами числа \(a\) и \(b\) . При выводе вещественных результатов оставьте два знака после запятой.
Начав тренировки, лыжник в первый день пробежал \(s\) км. ( \(s > 0\) , вещественное число). Каждый следующий день он увеличивал пробег на \(p\) % ( \(0 < p \leq 100\) , вещественное число) от пробега предыдущего дня. Определите:
пробег лыжника за второй, третий, …, десятый день тренировок;
какой суммарный путь он пробежал за первые 10 дней тренировок.
При выводе вещественных результатов оставьте один знак после запятой.
Известна масса каждого предмета в кг., загружаемого в грузовик. Определить, возможна ли перевозка груза, если грузоподъемность грузовика равна \(p\) кг.
В условии задачи ничего не сказано о количестве предметов, поэтому количество и массу каждого предмета необходимо спросить у пользователя. Аналогичного правила придерживайтесь и в других заданиях.
В области несколько районов. Заданы площади, засеваемые пшеницей (га.), и средняя урожайность (ц/га) в каждом районе.
Определите количество пшеницы, собранное по области. При выводе вещественных результатов оставьте один знак после запятой.
4.2.4. Прерывание и продолжение циклов¶
Решите задачу № 4.2.7 , организовав бесконечный цикл, который бы прерывался при выполнении условия, используя оператор break .
Простой способ организации бесконечного цикла:
Предложение, введенное с клавиатуры, содержит слова из гласных и согласных букв кириллицы (регистр может быть различный), а также пробелы.
Определите количество гласных и согласных букв в предложении. Для пропуска пробелов используйте оператор continue .
4.2.5. Комбинация циклов и условий¶
В данном разделе разрешается использовать любые комбинации циклов, однако, помните, что цикл for . in , как правило, проще, чем while и поэтому предпочтительнее.
Выведите на экран (в строку) все целые числа от \(a\) до \(b\) , кратные некоторому числу \(c\) .
Выведите на экран (в строку) все трехзначные натуральные числа, сумма цифр которых равна целому числу \(n\) ( \(0 < n \leq 27\) ).
Организуйте цикл, перебирающий все трехзначные числа, внутри которого разбейте число на цифры для проверки суммы.
Известно количество учеников в классе и их рост (см.); рост мальчиков условно задан отрицательными числами. Определите средний рост мальчиков и средний рост девочек.
При выводе вещественных результатов оставьте один знак после запятой.
Даны \(n\) вещественных чисел. Определите максимальное и минимальное из них.
При выводе вещественных результатов оставьте два знака после запятой.
Дано натуральное число \(n\) . Определите, является ли оно членом последовательности Фибоначчи .
Дано \(n\) вещественных чисел. Определите, является ли последовательность упорядоченной по возрастанию. В случае отрицательного ответа выведите порядковый номер числа, нарушающего такую упорядоченность.
Задачи такого типа удобно решать, используя «алгоритм с флажком». Флажок - значение, по которому можно определить ответ на вопрос, которое меняется в случае если условие выполнения алгоритма нарушено.
Например, можно принять, что флажок = 1 (считаем по умолчанию, что последовательность упорядочена по возрастанию). Далее, внутри цикла в случае нарушения последовательности флажок становится 0 и осуществляется выход из цикла. После цикла по флажку можно однозначно ответить на поставленный вопрос.
Пример (в качестве «флажка» используется переменная „index“ - индекс элемента, нарушающего порядок возрастания):
Выведите на экран таблицу умножения на \(n\) ( \(2 < n \leq 9\) ) в виде:
При написании вложенных циклов используйте внешний цикл для изменения значений по строкам (первый множитель), а внутренний - по столбцам (второй множитель).
Выведите графическое изображения делимости чисел от 1 до \(n\) (значение \(n\) вводится с клавиатуры) - в каждой строке напечатайте очередное число и столько символов * , сколько делителей у этого числа.
Например, если \(n = 4\) , на экране должно быть напечатано:
Выведите на экран (в строку) \(n\) первых простых чисел.
Внешний цикл должен отвечать за проверку, сколько чисел найдено, и генерацию следующего числа для проверки. Внутренний цикл проверяет, является ли простым текущее число.
В качестве алгоритма проверки «на простоту» используйте обычный перебор (простое число не делится ни на что кроме себя и единицы).
Составьте программу для нахождения всех натуральных решений уравнения \(x^2 + y^2 + z^2 = k^2\) , где \(x, y, z \in [1, 30]\) , а \(k\) вводится с клавиатуры.
4.2.6. Коллекции¶
Дан список из \(n\) вещественных чисел, введенных с клавиатуры (среди чисел есть по крайней мере одно положительное и отрицательное число).
Сформируйте из него 2 списка:
положительных чисел, используя списковые включения;
отрицательных чисел, не используя списковые включения.
Выведите на экран:
среднее арифметическое первого списка и среднее геометрическое второго списка.
При выводе вещественных результатов оставьте два знака после запятой.
Дан список целых чисел, введенных с клавиатуры (длина неизвестна). Ответьте на вопросы:
являются ли все элементы положительными числами?
есть ли хотя бы один нулевой элемент в списке?
являются ли все элементы четными числами?
есть ли хотя бы один нечетный элемент в списке?
Каждый из пунктов выполните дважды: используя стандартный проход в цикле (например, через алгоритм с флажком), и используя функции any() и/или all() .
Для ввода списка произвольной длины в одну строку воспользуйтесь методом str.split() для строки ввода (результата input() ), после чего сформируйте список целых чисел, используя списковые включения.
Дано предложение. Выведите его на экран, удалив из него все слова, содержащие произвольную букву (вводится с клавиатуры).
Строковые методы str.split() и str.join() могут оказаться полезными.
В зрительном зале кинотеатра \(n\) рядов, количество мест в которых может меняться. Разработчик смоделировал занятость мест как двумерный массив (список из списков), где каждый вложенный список содержит информацию о проданных местах в соответствующем ряду (1 - занято, 0 - свободно):
Напишите программу, которая позволит пользователю увидеть количество свободных мест, а также, введя номер ряда и места, получить информацию - свободно оно или нет. Данные о занятости мест вводятся с клавиатуры (набор из 0 и 1 для каждого ряда).
Заполнение вложенных списков (каждого ряда) организуйте аналогично задаче № 4.2.30 .
Вводится список из \(n\) сотрудников в формате:
все значения разделены пробелом и сами не содержат пробелов;
Стаж : количество полных лет, отработанных в компании.
Сохраните введенные задания в виде списка списков:
определите самого «молодого» и самого «старого» сотрудника, используя функцию sorted() ;
сформируйте 2 отельных списка: мужчин и женщин и ответьте, в каком из списков больше имен, начинающихся на букву \(k\) (вводится с клавиатуры).
Вводится список из \(n\) годовых вкладов, предлагаемых банками, в формате:
все значения разделены пробелом и сами не содержат пробелов;
наименование банка уникально;
Сумма : сумма для открытия вклада в руб. (целое число, \(> 0\) );
Процент : годовой процент по вкладу (вещественное число, \((0, 100]\) ).
Сохраните введенные данные в виде списка словарей:
Далее определите (гарантируется, что искомый банк - один):
самый доступный банк (с наименьшей первоначальной суммой);
самый выгодный банк, принимая, что за год прибыль = сумма * процент / 100 .
Цикл — это многократно повторяющийся фрагмент программы.
В java существует два типа циклов: типа «пока» и типа «n-раз».
Первый тип «пока» предназначен для повторения какого-то действия до тех пор, пока выполняется некоторое условие. Пример: увеличивать число на 5 до тех пор, пока оно не станет трёхзначным.
Второй тип «n-раз» предназначен для повторения каких-то действий заранее известное количество раз. Пример: умножить число само на себя 4 раза.
Цикл типа «пока» (операторы while и do…while)
Оператор while повторяет указанные действия до тех пор, пока его параметр имеет истинное значение.
Например, такой цикл выполнится 4 раза, а на экран будет выведено «1 2 3 4 »:
Такой цикл не выполнится ни разу и на экран ничего не выведется:
Такой цикл будет выполняться бесконечно, а на экран выведется «1 2 3 4 5 6 7 …»:
Условие, определяющее будет ли цикл повторятся снова, проверяется перед каждым шагом цикла, в том числе перед самым первым. Говорят, что происходит предпроверка условия.
Бывает цикл типа «пока» с постпроверкой условия. Для его записи используется конструкция из операторов do…while.
Такой цикл выполнится 4 раза, а на экран будет выведено «2 3 4 5 »:
Такой цикл выполнится 1 раз, а на экран будет выведено «2 »:
Тело цикла do…while выполняется по крайней мере один раз. Этот оператор удобно использовать, когда некоторое действие в программе нужно выполнить по крайней мере единожды, но при некоторых условиях придётся повторять его многократно.
Ознакомьтесь со следующей программой (она загадывает случайное целое число из отрезка [1;10] и просит пользователя его угадать, вводя варианты с клавиатуры, пока пользователь не угадает число, программа будет ему подсказывать, сообщая больше или меньше число загаданное, чем то, что ввёл пользователь):
Внесите в программу следующие доработки:
Программа должна считать количество попыток, которое потребовалось пользователю, чтобы угадать число. И в конце сообщать, сколько было попыток.
Программа должна загадывать число не из отрезка [1;10], а целое число из отрезка от [−10;10], исключая ноль. При этом, постарайтесь, чтобы распределение случайных чисел генерируемых программой было равномерных (т. е. в случае выпадения нуля его нельзя просто заменить на какое-то другое число, например, на 1, ведь тогда 1 будет выпадать с вдвое большей вероятностью, чем остальные числа).
Программа должна подсказывать пользователю, что он ошибся в знаке, если программа загадала положительное число, а пользователь ввёл отрицательное. И наоборот.
Цикл типа «n-раз» (оператор for)
Оператор for содержит три параметра. Первый называется инициализацией, второй — условием повторения, третий — итерацией.
В первом параметре обычно выбирают какую-то переменную, с помощью которой будет подсчитываться количество повторений цикла. Её называют счетчиком. Счётчику задают некоторое начальное значение (указывают, начиная с какого значения он будет изменяться).
Во втором параметре указывают некоторое ограничение на счётчик (указывают, до какого значения он будет изменяться).
В третьем параметре указывают выражение, изменяющее счётчик после каждого шага цикла. Обычно это инкремент или декремент, но можно использовать любое выражение, где счётчику будет присваиваться некоторое новое значение.
Перед первым шагом цикла счётчику присваивается начальное значение (выполняется инициализация). Это происходит лишь однажды.
Перед каждым шагом цикла (но после инициализации) проверяется условие повторения, если оно истинно, то в очередной раз выполняется тело цикла. При этом, тело цикла может не выполниться ни разу, если условие будет ложным в момент первой же проверки.
После завершения каждого шага цикла и перед началом следующего (и, значит, перед проверкой условия повторения) выполняется итерация.
Представленная программа выводит на экран числа от 1 до 100:
Представленная программа выводит на экран числа от 10 до −10:
Представленная программа выводит на экран нечётные числа от 1 до 33:
Представленная программа вычислит сумму элемнтов фрагмента последовательности 2, 4, 6, 8,… 98, 100. Итак:
Представленная программа будет возводить число из переменной a в натуральную степень из переменной n:
Представленная программа выведет на экран 10 первых элементов последовательности 2n+2, где n=1, 2, 3…:
Представленная программа выведет на экран 10 первых элементов последовательности 2an−1+3, где a1=3:
В одном цикле можно задавать сразу несколько счётчиков. При этом несколько выражений в итерации и в инициализации разделяются запятыми. Условие повторения можно задавать только одно, но оно может быть выражением, содержащим сразу несколько счётчиков.
Представленная программа выведет на экран 10 первых элементов последовательности 2an−1–2, где a1=3:
Представленная программа выведет на экран такую последовательность «0 -1 -4 -9 -16 -25»:
Досрочное завершение цикла (оператор break)
Как цикл типа «пока» так и цикл типа «n-раз» можно завершить досрочно, если внутри тела цикла вызвать оператор break. При этом произойдёт моментальный выход из цикла, не будет закончен даже текущий шаг (т. е. если после break присутствовали какие-то ещё операторы, то они не выполнятся).
В результате работы следующего примера на экран будут выведены только числа «1 2 3 4 Конец»:
Когда программа будет выполнять цикл в пятый раз(войдёт в цикл с счётчиком равным 5), сразу же будет проверено и окажется истинным условие при котором выполнится оператор break. Оставшаяся часть тела цикла (вывод на экран) уже производится не будет: программа сразу перейдёт к выполнению операций указанных после цикла и далее.
C помощью оператор break можно прервать заведомо бесконечный цикл. Пример (на экран выведется «100 50 25 12 6 3 1 0 » и после этого цикл остановится):
Оператор break имеет смысл вызывать только при наступлении какого-то условия, иначе цикл будет завершен досрочно на первом же своём шаге.
Читайте также: