Главная страница
Навигация по странице:

  • Упражнение 27. Когда Пасха

  • книга заданий пайтон. книга практических заданий, pyton. Сборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python


    Скачать 2.24 Mb.
    НазваниеСборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
    Анкоркнига заданий пайтон
    Дата02.10.2022
    Размер2.24 Mb.
    Формат файлаdocx
    Имя файлакнига практических заданий, pyton.docx
    ТипСборник упражнений
    #709959
    страница5 из 69
    1   2   3   4   5   6   7   8   9   ...   69

    1.2.2. Вывод результата


    Вывести значение на экран можно при помощи функции print. Она может быть вызвана c одним аргументом, представляющим значение, которое необходимо вывести на экран. Например, в следующем фрагменте кода на экран будут последовательно выведены единица, слово Hello с восклицательным знаком и текущее содержимое переменной x. При этом переменная x может характеризоваться строковым типом данных, числовым или любым другим, о которых мы пока не упоминали. Каждое значение будет выведено на отдельной строке.

    print(1) print("Hello!") print(x)

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

    print("Когда x равен", x, ", y будет равен", y)

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

    Помимо строковых констант и переменных, переданные в функцию print аргументы могут представлять собой сложные выражения, включающие в себя скобки, математические операторы и вызовы других функций. Рассмотрите следующий пример:

    print("Если умножить", x, "на", y, "получится", x * y)

    Выражение x * y будет автоматически вычислено, и на экране появится полученный результат умножения.

    1.2.3. Импорт дополнительных функций


    Некоторые функции, такие как input и print, используются в программах на Python достаточно часто, другие – реже. В результате было решено наиболее популярные функции сделать доступными всем по умолчанию, а остальные разбить на модули, которые разработчики смогут подключать к своим программам по мере необходимости. К примеру, специфические математические функции собраны в отдельном модуле с именем math. Импортировать их в свою программу можно, написав соответствующую инструкцию, показанную ниже:

    import math

    В модуле math содержится огромное количество математических функций, включая sqrt, ceil, sin и другие. Чтобы воспользоваться функцией из загруженного модуля, необходимо перед ней указать имя этого модуля с разделяющей их точкой. Например, в следующем выражении выполняется извлечение квадратного корня из переменной y (которая должна быть объявлена заранее) путем вызова функции sqrt из модуля math, и результат сохраняется в новой переменной z:

    z = math.sqrt(y)

    Также распространенными модулями в языке Python являются random, time, sys и многие другие. Больше информации о модулях и содержащихся в них функциях можно найти на просторах интернета.

    1.3. комментарии


    Комментарии позволяют разработчикам оставлять заметки в программе о том, как, что и зачем они делали в данном месте кода. Эта информация бывает крайне полезной, если приходится возвращаться к своей программе через долгое время или разбираться в коде, написанном другим разработчиком. При выполнении программы компьютер игнорирует все комментарии в коде, они присутствуют там исключительно для человека.

    В Python строки с комментариями должны начинаться с символа решетки (#). Комментарий распространяется от первого вхождения этого символа и до конца строки. Комментарий может занимать как всю строку целиком, так и ее часть – в этом случае символ # ставится после строки кода, и комментарий будет распространяться до конца строки.

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

    1.4. форматирование значений


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

    Для этого разработчику достаточно указать Python необходимый спецификатор формата (format specifier) при выводе его на экран. Спецификатор формата представляет собой последовательность символов, определяющую нюансы форматирования значения. В числе прочих в нем указывается символ, говорящий о том, какой тип данных при форматировании значения должен использоваться. Например, символ f используется для форматирования в виде числа с плавающей запятой, символы d и i говорят о том, что мы имеем дело с целыми числами, а s символизирует строки. Этим главным управляющим символам могут предшествовать знаки, обеспечивающие тонкую настройку формата отображения. В данном разделе мы рассмотрим только вариант тонкой настройки форматирования чисел с плавающей запятой таким образом, чтобы отображалось определенное количество знаков после запятой, а значения в целом занимали указанное количество символов при выводе, что позволит форматировать их в виде аккуратных столбцов. С помощью спецификатора форматирования можно выполнить и другие преобразования выводимых значений, но их описание выходит за рамки этой книги.

    Итак, ограничить количество видимых знаков после запятой в числах с плавающей запятой можно, поставив точку и это значение непосредственно перед символом f в спецификаторе. Например, спецификатор .2f говорит о том, что при выводе значения на экран в нем должны остаться два знака после запятой, а спецификатор .7f предписывает наличие семи десятичных знаков. При ограничении количества знаков после запятой выполняется операция округления, тогда как лишние позиции дополняются нулями. Количество десятичных знаков не может быть указано при форматировании строковых или целочисленных значений.

    В то же время значения всех трех перечисленных типов данных могут быть отформатированы таким образом, чтобы они занимали минимальное количество знакомест. Для этого достаточно указать минимальную ширину значения в символах, что удобно при выполнении форматирования данных в виде столбцов. Число, определяющее минимальную ширину значения при выводе, необходимо вставить в спецификаторе слева от символа d, i, f или s – перед точкой с ограничителем количества десятичных знаков, если таковые имеются. Например, спецификатор 8d говорит о том, что значение должно быть отформатировано как целое число и при выводе должно занимать минимум восемь знакомест, тогда как 6.2f предполагает в значении с плавающей запятой наличие двух знаков после запятой, а минимальное занимаемое место значением должно составлять шесть символов, включая дробную часть. При необходимости ведущие позиции при форматировании значений дополняются пробелами.

    После формирования правильного спецификатора к нему слева остается добавить символ процента (%), что придаст ему законченный и корректный вид. Обычно спецификаторы форматирования используются внутри строк, причем они могут занимать как всю строку, так и ее часть. Вот несколько примеров использования спецификаторов в строках: "%8d", "Сумма долга: %.2f" и "Привет, %s! Добро пожаловать к нам".

    Примечание. Язык программирования Python предлагает сразу несколько способов выполнения форматирования значений, включая использование форматирующего оператора (%), функцию и метод format, шаблонные строки и f-строки. На протяжении этой книги мы будем применять с данной целью форматирующий оператор, но вы вольны использовать любую из существующих техник.

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

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

    Форматирование строк зачастую выполняется в рамках функции print. В следующем примере сначала на экран выводится значение переменной x с двумя знаками после запятой, а затем – целая фраза, форматирующая значения сразу из двух переменных.

    print("%.2f" % x)

    print("%s съел %d пирожков!" % (name, numCookies))

    Некоторые другие варианты форматирования приведены в табл. 1.1. Переменные x, y и z предварительно были инициализированы значениями 12, –2,75 и «Andrew».

    Таблица 1.1. Форматирование значений в Python


    Фрагмент кода:

    Результат:

    Описание:

    "%d" % x

    "12"

    Значение из переменной x отображается в формате целого числа

    Фрагмент кода:

    Результат:

    Описание:

    "%f" % y

    "–2.75"

    Значение из переменной y отображается в формате числа с плавающей запятой

    Фрагмент кода:

    Результат:

    Описание:

    "%d и %f" % (x, y)

    "12 и –2.75"

    Значение из переменной x отображается в формате целого числа, а значение из переменной y отображается в формате числа с плавающей запятой. Остальные символы в строке остаются без изменений

    Таблица 1.1 (окончание)

    Фрагмент кода:

    Результат:

    Описание:

    "%.4f" % x

    "12.0000"

    Значение из переменной x отображается в формате числа с плавающей запятой с четырьмя десятичными знаками

    Фрагмент кода:

    Результат:

    Описание:

    "%.1f" % y

    "–2.8"

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

    Фрагмент кода:

    Результат:

    Описание:

    "%10s" % z

    " Andrew"

    Значение из переменной z отображается в формате строки, занимающей минимум десять знакомест. Поскольку в слове Andrew шесть букв, к результату добавится четыре ведущих пробела

    Фрагмент кода:

    Результат:

    Описание:

    "%4s" % z

    "Andrew"

    Значение из переменной z отображается в формате строки, занимающей минимум четыре знакоместа. Поскольку в слове Andrew шесть букв, результат окажется равен исходному значению переменной z

    Фрагмент кода:

    Результат:

    Описание:

    "%8i%8i" % (x, y)

    " 12 –2"

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

    1.5. раБота со строками


    Так же, как с числами, в Python можно манипулировать со строками при помощи специальных операторов и передавать их в функции в качестве аргументов. Самые распространенные операции, которые приходится выполнять со строковыми значениями, – это их конкатенация, определение длины строки и извлечение определенных символов и подстрок. Этим действиям и будет посвящен данный раздел. Информацию о других операциях со строками в Python можно без труда найти в интернете.

    Строки в Python можно конкатенировать при помощи оператора сложения (+). В результате строка, стоящая справа от оператора конкатенации, будет добавлена в конец строки, стоящей слева, с образованием нового строкового значения. Например, в представленном ниже фрагменте кода сначала запрашивается информация об имени и фамилии у пользователя, после чего собирается новое строковое значение, состоящее из фамилии и имени, разделенных запятой и пробелом. Полученный результат выводится на экран.

    # Запрашиваем у пользователя имя и фамилию first = input("Введите имя: ") last = input("Введите фамилию: ")

    # Конкатенируем строки both = last + ", " + first

    # Отображаем результат print(both)

    Количество символов в строке называется длиной строки. Это всегда положительное значение числового типа, и получить его можно при помощи функции len. На вход функция требует единственный строковый аргумент и возвращает его длину. Следующий пример демонстрирует применение функции len для определения длины имени человека:

    # Спрашиваем имя пользователя first = input("Введите имя: ")

    # Вычисляем длину строки num_chars = len(first)

    # Отображаем результат print("В вашем имени", num_chars, "символов")

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

    Каждый символ в строке имеет свой уникальный индекс. Первый символ обладает индексом 0, а последний – индексом, равным длине строки минус один. Получить доступ к символу в строке по индексу можно, поместив его значение в квадратные скобки непосредственно после строковой переменной. В следующей программе демонстрируется отображение на экране инициалов человека:

    # Запрашиваем имя пользователя first = input("Введите имя: ") middle = input("Введите отчество: ") last = input("Введите фамилию: ") # Извлекаем первый символ из всех трех переменных и собираем их вместе initials = first[0] + middle[0] + last[0] # Выводим инициалы print("Ваши инициалы:", initials)

    Получить из строки несколько символов, стоящих подряд, можно, указав два индекса в квадратных скобках, разделенных двоеточием. Эта операция по-другому называется выполнением среза (slicing) строки. Использование срезов позволяет эффективно извлекать подстроки из строковых переменных.

    1.6. упражнения


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

    Упражнение 1. Почтовый адрес


    (Решено. 9 строк) Напишите несколько строк кода, выводящих на экран ваше имя и почтовый адрес. Адрес напишите в формате, принятом в вашей стране. Никакого ввода от пользователя ваша первая программа принимать не будет, только вывод на экран и больше ничего.

    Упражнение 2. Приветствие


    (9 строк) Напишите программу, запрашивающую у пользователя его имя. В ответ на ввод на экране должно появиться приветствие с обращением по имени, введенному с клавиатуры ранее.

    Упражнение 3. Площадь комнаты


    (Решено. 13 строк) Напишите программу, запрашивающую у пользователя длину и ширину комнаты. После ввода значений должен быть произведен расчет площади комнаты и выведен на экран. Длина и ширина комнаты должны вводиться в формате числа с плавающей запятой. Дополните ввод и вывод единицами измерения, принятыми в вашей стране. Это могут быть футы или метры.

    Упражнение 4. Площадь садового участка


    (Решено. 15 строк) Создайте программу, запрашивающую у пользователя длину и ширину садового участка в футах. Выведите на экран площадь участка в акрах.

    Подсказка. В одном акре содержится 43 560 квадратных футов.

    Упражнение 5. Сдаем бутылки


    (Решено. 15 строк) Во многих странах в стоимость стеклотары закладывается определенный депозит, чтобы стимулировать покупателей напитков сдавать пустые бутылки. Допустим, бутылки объемом 1 литр и меньше стоят $0,10, а бутылки большего объема – $0,25.

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

    Упражнение 6. Налоги и чаевые


    (Решено. 17 строк) Программа, которую вы напишете, должна начинаться с запроса у пользователя суммы заказа в ресторане. После этого должен быть произведен расчет налога и чаевых официанту. Вы можете использовать принятую в вашем регионе налоговую ставку для подсчета суммы сборов. В качестве чаевых мы оставим 18 % от стоимости заказа без учета налога. На выходе программа должна отобразить отдельно налог, сумму чаевых и итог, включая обе составляющие. Форматируйте вывод таким образом, чтобы все числа отображались с двумя знаками после запятой.

    Упражнение 7. Сумма первых n положительных чисел


    (Решено. 11 строк) Напишите программу, запрашивающую у пользователя число и подсчитывающую сумму натуральных положительных чисел от 1 до введенного пользователем значения. Сумма первых n положительных чисел может быть рассчитана по формуле:


    Упражнение 8. Сувениры и безделушки


    (15 строк) Интернет-магазин занимается продажей различных сувениров и безделушек. Каждый сувенир весит 75 г, а безделушка – 112 г. Напишите программу, запрашивающую у пользователя количество тех и других покупок, после чего выведите на экран общий вес посылки.

    Упражнение 9. Сложные проценты


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

    Упражнение 10. Арифметика


    (Решено. 22 строки) Создайте программу, которая запрашивает у пользователя два целых числа a и b, после чего выводит на экран результаты следующих математических операций:  сумма a и b;

    • разница между a и b;

    • произведение a и b;

    • частное от деления a на b;

    • остаток от деления a на b;

    • десятичный логарифм числа a;

    • результат возведения числа a в степень b.

    Подсказка. Функцию log10 вы найдете в модуле math.

    Упражнение 11. Потребление топлива


    (13 строк) В США потребление автомобильного топлива исчисляется в милях на галлон (miles-per-gallon – MPG). В то же время в Канаде этот показатель обычно выражается в литрах на 100 км (liters-per-hundred kilometers – L/100 km). Используйте свои исследовательские способности, чтобы определить формулу перевода первых единиц исчисления в последние. После этого напишите программу, запрашивающую у пользователя показатель потребления топлива автомобилем в американских единицах и выводящую его на экран в канадских единицах.

    Упражнение 12. Расстояние между точками на Земле


    (27 строк) Как известно, поверхность планеты Земля искривлена, и расстояние между точками, характеризующимися одинаковыми градусами по долготе, может быть разным в зависимости от широты. Таким образом, для вычисления расстояния между двумя точками на Земле одной лишь теоремой Пифагора не обойтись.

    Допустим, (t1, g1) и (t2, g2) – координаты широты и долготы двух точек на поверхности Земли. Тогда расстояние в километрах между ними с учетом искривленности планеты можно найти по следующей формуле:

    distance = 6371,01´arccos(sin(t1)´sin(t2) + cos(t1)´cos(t2)´cos(g1 - g2)).

    Примечание. Число 6371,01 в этой формуле, конечно, было выбрано не случайно и представляет собой среднее значение радиуса Земли в километрах.

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

    Подсказка. Тригонометрические функции в Python оперируют радианами. Таким образом, вам придется введенные пользователем величины из градусов перевести в радианы, прежде чем вычислять расстояние между точками. В модуле math есть удобная функция с названием radians-Функции:radians, служащая как раз для перевода градусов в радианы.

    Упражнение 13. Размен


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

    Напишите программу, которая будет запрашивать у пользователя сумму сдачи в центах. После этого она должна рассчитать и вывести на экран, сколько и каких монет потребуется для выдачи указанной суммы, при условии что должно быть задействовано минимально возможное количество монет. Допустим, у нас есть в распоряжении монеты достоинством в 1, 5, 10, 25 центов, а также в 1 (loonie) и 2 (toonie) канадских доллара.

    Примечание. Монета номиналом в 1 доллар была выпущена в Канаде в 1987 году. Свое просторечное название (loonie) она получила от изображения полярной гагары (loon) на ней. Двухдолларовая монета, вышедшая девятью годами позже, была прозвана toonie, как комбинация из слов два (two) и loonie.

    Упражнение 14. Рост


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

    Подсказка. Один фут равен 12 дюймам, а один дюйм – 2,54 см.

    Упражнение 15. Расстояние


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

    Упражнение 16. Площадь и объем


    (15 строк) Напишите программу, которая будет запрашивать у пользователя радиус и сохранять его в переменной r. После этого она должна вычислить площадь круга с заданным радиусом и объем шара с тем же радиусом. Используйте в своих вычислениях константу pi из модуля math.

    Подсказка. Площадь круга вычисляется по формуле area = πr2, а объем шара – по

    4

    формуле volume = πr3.

    3

    Упражнение 17. Теплоемкость


    (Решено. 23 строки) Количество энергии, требуемое для повышения температуры одного грамма материала на один градус Цельсия, называется удельной теплоемкостью материала и обозначается буквой C. Общее количество энергии (q), требуемое для повышения температуры m граммов материала на ΔT градусов Цельсия, может быть рассчитано по формуле: q = mCDT.

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

    Дж

    Подсказка. Удельная теплоемкость воды равна 4,186 . Поскольку вода обладает г·С

    плотностью 1 грамм на миллилитр, в данном упражнении можно взаимозаменять граммы и миллилитры.

    Расширьте свою программу таким образом, чтобы выводилась также стоимость сопутствующего нагрева воды. Обычно принято измерять элект ричество в кВт·ч, а не в джоулях. Для данного примера предположим, что электричество обходится нам в 8,9 цента за один кВт·ч. Используйте свою программу для подсчета стоимости нагрева одной чашки кофе.

    Подсказка. Для решения второй части задачи вам придется найти способ перевода единиц электричества между джоулями и кВт·ч.

    Упражнение 18. Объем цилиндра


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

    Упражнение 19. Свободное падение


    (Решено. 15 строк) Напишите программу для расчета скорости объекта во время его соприкосновения с землей. Пользователь должен задать высоту в метрах, с которой объект будет отпущен. Поскольку объекту не будет придаваться ускорение, примем его начальную скорость за 0 м/с. Предположим, что ускорение свободного падения равно 9,8 м/с2. При известных начальной скорости (vi), ускорении (a) и дистанции (d) можно вычислить скорость при соприкосновении объекта с землей по формуле

    Упражнение 20. Уравнение состояния идеального газа


    (19 строк Уравнение состояния идеального газа представляет собой математическую аппроксимацию поведения газов в условиях изменения давления, объема и температуры. Обычно соответствующая формула записывается так:

    PV = nRT,

    где P – это давление в паскалях, V – объем в литрах, n – количество вещества в молях, R – универсальная газовая постоянная, равная 8,314 Дж/(моль·К), а T – температура по шкале Кельвина.

    Напишите программу для измерения количества газа в молях при заданных пользователем давлении, объеме и температуре. Проверьте свою программу путем вычисления количества газа в баллоне для дайвинга. Типичный баллон вмещает 12 л газа под давлением 20 000 000 Па (примерно 3000 фунтов на кв. дюйм). Температуру в комнате примем за 20° по шкале Цельсия или 68° по Фаренгейту.

    Подсказка. Чтобы перевести температуру из градусов Цельсия в Кельвины, необходимо прибавить к ней 273,15. Из Фаренгейта в Кельвины температура переводится путем вычитания из нее 32, умножения результата на и прибавления тех же 273,15.

    Упражнение 21. Площадь треугольника


    (13 строк) Площадь треугольника может быть вычислена с использованием следующей формулы, где b – длина основания треугольника, а h – его высота:



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

    Упражнение 22. Площадь треугольника (снова)


    (16 строк) В предыдущем упражнении мы вычисляли площадь треугольника при известных длинах его основания и высоты. Но можно рассчитать площадь и на основании длин всех трех сторон треугольника. Пусть s1, s2 и s3 – длины сторон, а s = (s1 + s2 + s3)/2. Тогда площадь треугольника может быть вычислена по следующей формуле:



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

    Упражнение 23. Площадь правильного многоугольника


    (Решено. 14 строк) Многоугольник называется правильным, если все его стороны и углы равны. Площадь такой фигуры можно вычислить по следующей формуле, в которой s – длина стороны, а n – количество сторон:



    Напишите программу, которая будет запрашивать у пользователя значения переменных s и n и выводить на экран площадь правильного многоугольника, построенного на основании этих величин.

    Упражнение 24. Единицы времени


    (22 строки) Создайте программу, в которой пользователь сможет ввести временной промежуток в виде количества дней, часов, минут и секунд и узнать общее количество секунд, составляющее введенный отрезок.

    Упражнение 25. Единицы времени (снова)


    (Решено. 24 строки) В данном упражнении мы развернем ситуацию из предыдущей задачи. На этот раз вам предстоит написать программу, в которой пользователь будет вводить временной промежуток в виде общего количества секунд, после чего на экране должна быть показана та же длительность в формате D:HH:MM:SS, где D, HH, MM и SS – это количество дней, часов, минут и секунд соответственно. При этом последние три значения должны быть выведены в формате из двух цифр, как мы привыкли видеть их на электронных часах. Попробуйте узнать сами, какие символы необходимо ввести в спецификатор формата, чтобы при необходимости числа дополнялись слева не пробелами, а нулями.

    Упражнение 26. Текущее время


    (10 строк Модуль time в Python включает в себя несколько очень полезных функций для работы со временем. Одна из таких функций – asctime – считывает текущее системное время компьютера и возвращает его в удобном для восприятия виде. Используйте эту функцию для отображения на экране текущей даты и времени. Никакого ввода от пользователя на этот раз вам не потребуется.

    Упражнение 27. Когда Пасха?

    (33 строки) Пасха традиционно празднуется в воскресенье, следующее за первым полнолунием после дня весеннего равноденствия. Поскольку здесь есть зависимость от фазы луны, фиксированной даты для этого праздника в григорианском календаре не существует. Фактически Пасха может выпасть на любую дату между 22 марта и 25 апреля. День и месяц Пасхи для конкретного года можно вычислить по следующему алгоритму:

    • в переменную a запишите остаток от деления year на 19;

    • в переменную b запишите частное от деления year на 100 с округлением вниз;

    • в переменную c запишите остаток от деления year на 100;

    • в переменную d запишите частное от деления b на 4 с округлением вниз;

    • в переменную e запишите остаток от деления b на 4;

    • в переменную f запишите результат вычисления формулы

    с округлением вниз;

    • в переменную g запишите результат вычисления формулы

    с округлением вниз;

    • в переменную h запишите остаток от деления выражения 19a + b - d - g + 15 на 30;

    • в переменную i запишите частное от деления c на 4 с округлением вниз;

    • в переменную k запишите остаток от деления c на 4;

    • в переменную l запишите остаток от деления выражения 32 + 2e + 2i - h - k на 7;

    • в переменную m запишите результат вычисления формулы



    с округлением вниз;

    • установите месяц равным результату вычисления формулы



    • установите день равным единице плюс остаток от деления выражения h + l - 7m + 114 на 31.

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

    Упражнение 28. Индекс массы тела


    (14 строк)

    Напишите программу для расчета индекса массы тела (body mass index – BMI) человека. Пользователь должен ввести свой рост и вес, после чего вы используете одну из приведенных ниже формул для определения индекса. Если пользователь вводит рост в дюймах, а вес в фунтах, формула будет следующей:



    Если же пользователь предпочитает вводить информацию о себе в сантиметрах и килограммах, формула упростится и станет такой:


    Упражнение 29. Температура с учетом ветра


    (Решено. 22 строки) Когда в прохладный день еще и дует ветер, температура кажется более низкой, чем есть на самом деле, поскольку движение воздушных масс способствует более быстрому охлаждению теплых предметов, к коим в данном случае можно отнести и человека. Этот эффект известен как охлаждение ветром.

    В 2001 году Канада, Великобритания и США договорились об использовании общей формулы для определения коэффициента охлаждения ветром. В формуле, приведенной ниже, Ta – это температура воздуха в градусах Цельсия, а V – скорость ветра в километрах в час. Похожие формулы с другими константами могут использоваться для вычисления коэффициента охлаждения ветром для температур, указанных в градусах по Фаренгейту, и скорости ветра в милях в час или метрах в секунду.

    WCI = 13,12 + 0,6215Ta - 11,37V0,16 + 0,3965TaV0,16.

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

    Примечание. Принято считать, что коэффициент охлаждения ветром допустимо рассчитывать при температурах, меньших или равных 10 °С, и скорости ветра, превышающей 4,8 км/ч.

    Упражнение 30. Цельсий в Фаренгейт и Кельвин


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

    Упражнение 31. Единицы давления


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

    Упражнение 32. Сумма цифр в числе


    (18 строк) Разработайте программу, запрашивающую у пользователя целое четырехзначное число и подсчитывающую сумму составляющих его цифр. Например, если пользователь введет число 3141, программа должна вывести следующий результат: 3 + 1 + 4 + 1 = 9.

    Упражнение 33. Сортировка трех чисел


    (Решено. 19 строк) Напишите программу, запрашивающую у пользователя три целых числа и выводящую их в упорядоченном виде – по возрастанию. Используйте функции min и max для нахождения наименьшего и наибольшего значений. Оставшееся число можно найти путем вычитания из суммы трех введенных чисел максимального и минимального.

    Упражнение 34. Вчерашний хлеб


    (Решено. 19 строк) Пекарня продает хлеб по $3,49 за буханку. Скидка на вчерашний хлеб составляет 60 %. Напишите программу, которая будет запрашивать у пользователя количество приобретенных вчерашних буханок хлеба. В вывод на экран должны быть включены обычная цена за буханку, цена со скидкой и общая стоимость приобретенного хлеба. Все значения должны быть выведены на отдельных строках с соответствующими описаниями. Используйте для вывода формат с двумя знаками после запятой и выровненным разделителем.


    1   2   3   4   5   6   7   8   9   ...   69


    написать администратору сайта