2 / 2 / 1
Регистрация: 19.10.2013
Сообщений: 48

Посчитать площади круга, прямоугольника, треугольника

14.02.2016, 17:41. Показов 4716. Ответов 1

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Играю в Empire or code. Задача: написать функцию, которая посчитает площадь круга-прямоугольника-треугольника. Я написал функцию(может говнокодом, но как есть)
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
def simple_areas(*args):
    if len(args) == 1: #The area of the circle
        args = 0.25 * 3.14 * (args[0])**2
        return ('{:.2f}'.format(args))
        
    elif len(args) == 2: #The area of the rectangle
        args = args[0] * args[1]
        return args
        
    elif len(args) == 3: #The area of the triangle
        if args[0] + args[1] > args[2] and args[1] + args[2] > args[0] and args[0] + args[2] > args[1]:
            args = 0.5*(args[0] * args[2])
            return args
        else:
            return 'The sum of lengths of two sides is less or equal the length of the third or is equal'
    else:
        return 0
 
if __name__ == '__main__':
    # These "asserts" using only for self-checking and not necessary for auto-testing
    def almost_equal(checked, correct, significant_digits=2):
        precision = 0.1 ** significant_digits
        return correct - precision < checked < correct + precision
 
    assert almost_equal(simple_areas(3), 7.07), "Circle"
    assert almost_equal(simple_areas(2, 2), 4), "Square"
    assert almost_equal(simple_areas(2, 3), 6), "Rectangle"
    assert almost_equal(simple_areas(3, 5, 4), 6), "Triangle"
    assert almost_equal(simple_areas(1.5, 2.5, 2), 1.5), "Small triangle"
 
    print("Earn cool rewards by using the 'Check' button!")

Из этого всего моя только функция, остальное - автогенерация. Итак, в чём вопрос собственно: длина сторон отрицательной быть не может. Как сделать проверку отрицательного числа - это раз, два - код выше выкидывает ошибку на 21 строке, но я не совсем понимаю что от меня хотят и как это исправить. Помогите пожалуйста. Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.02.2016, 17:41
Ответы с готовыми решениями:

Не могу унаследовать класс от родительского используя super. Задача вычисления площади и периметра Круга, Треугольника и
ПОМОГИТЕ ПОЖАЛУЙСТА! Здесь ошибка в конструкторе 1) Как мне правильно унаследавать класс Треугольник от класса Круг, что бы добавить...

Составьте программу подсчета площади равнобедренного треугольника. Если площадь треугольника парная, разделить ее на 2,
Составьте программу подсчета площади равнобедренного треугольника. Если площадь треугольника парная чётная, разделить ее на 2, в...

нахождение площади круга, прямоугольника и треугольника
мне нужна помощь в написании программы. написать надо не в консоли, а в Windows Forms, поэтому и незнаю как..помогите пожалуйста, последняя...

1
 Аватар для vdm_mar
39 / 39 / 25
Регистрация: 25.10.2015
Сообщений: 102
15.02.2016, 03:00
Если Вы будете проверять "отрицательность", то assert будет выдавать ошибку, потому что в приведенных примерах нет проверки отрицательности.
Например, если в строке указать проверку наличия минуса
if len(args) == 1 and '-' not in str(args):
то в случае наличия минуса выполнится else с return 0.
Значит, assert должен выглядеть так: assert almost_equal(simple_areas(-3), 0). А у Вас ничего подобного нет.

По поводу ошибки: проблема в return ('{:.2f}'.format(args)) - здесь возвращает "строку". Как полегче сделать формат float я не в курсе, но можно тупо напрямую:
return float('{:.2f}'.format(args))

Добавлено через 14 минут
Нашел как полегче, округлить:
return round(args, 2)

И еще может быть трабл, если другие assert'ы есть: число Пи лучше взять из модуля или побольше цифр 3,141592.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.02.2016, 03:00
Помогаю со студенческими работами здесь

Вычислить площади трех геометрических фигур : прямоугольника,треугольника, круга
вычислить площади трех геометрических фигур : прямоугольника,треугольника, круга

Составить программу нахождения площади квадрата, прямоугольника, круга и треугольника
Составить программу нахождения площади квадрата, прямоугольника, круга и треугольника.

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

Рисование круга, прямоугольника, треугольника
я рисую круг, прямоугольник делаю это так: переменные у меня здесь implementation var y0,x0, xpos, ypos:integer; в процедуре ...

Создать функцию подсчета площади прямоугольника, круга или ромба
Создать функцию посчета для любой из программ


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru