Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 01.08.2019, 04:54   #1
Novyi
Новичок
Джуниор
 
Регистрация: 01.08.2019
Сообщений: 1
По умолчанию Моя первая прога

Здравствуйте!
Прошу дать оценку моей первой проги. Какие недостатки? Как можно лучше? Как бы сделали Вы?

Код:
print('Решение уравнения ax^2+bx+c=0')
a = int(input('Введите a: '))
b = int(input('Введите b: '))
c = int(input('Введите c: '))
D = b ** 2 - 4 * a * c
print('D= ', D)
if(D < 0):
    print('Корней нет')
elif(a == b == 0):
    print('Уравнения не существует!')
elif(b == 0):
    x1 = (- b + D ** 0.5) / (2 * a)
    x2 = (- b - D ** 0.5) / (2 * a)
    print('x1=', x1)
    print('x2=', x2)
    z1 = a * x1 ** 2 + b * x1 + c
    z2 = a * x2 ** 2 + b * x2 + c
    print('Проверка по x1: ', round(z1))
    print('Проверка по x2: ', round(z2))
elif (a == 0):
    x = - c / b
    print('x1=x2=', x)
    z = a * x ** 2 + b * x + c
    print('Проверка: ', z)
else:
    x1 = (- b + D ** 0.5) / (2 * a)
    x2 = (- b - D ** 0.5) / (2 * a)
    print('x1=', x1)
    print('x2=', x2)
    z1 = a * x1 ** 2 + b * x1 + c
    z2 = a * x2 ** 2 + b * x2 + c
    print('Проверка по x1: ', round(z1))
    print('Проверка по x2: ', round(z2))
print('The End')
______________________
Используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ

Последний раз редактировалось Alex11223; 01.08.2019 в 08:03.
Novyi вне форума Ответить с цитированием
Старый 01.08.2019, 08:00   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

Ветка с b=0 не нужна, уравнение все равно в общем виде решается
И какие x1=x2 для a=0? Там ровно один корень для линейного уравнения )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.08.2019, 09:54   #3
ViktorR
Участник клуба
 
Регистрация: 23.10.2010
Сообщений: 1,566
По умолчанию

Попробуй так:
Код:
print('Решение уравнения ax^2+bx+c=0')
a = int(input('Введите a: '))
b = int(input('Введите b: '))
c = int(input('Введите c: '))
if ((a == 0) and (b == 0)):
    print('Уравнения не существует!')
else:
    D = b ** 2 - 4 * a * c
    print('D= ', D)
    x1 = (- b + D ** 0.5) / (2 * a)
    x2 = (- b - D ** 0.5) / (2 * a)
    print('x1=', x1)
    print('x2=', x2)
    z1 = a * x1 ** 2 + b * x1 + c
    z2 = a * x2 ** 2 + b * x2 + c
    print('Проверка по x1: ', (z1))
    print('Проверка по x2: ', (z2))
print('The End')
Это работает, например, при a = 5, b = 10 и c = 11.

Такой принцип записи (a == b == 0) конечно сработает и он покороче,
но такой ((a == 0) and (b == 0)), на мой взгляд, понятнее и сработает и в других языках.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
первая прога под Win Lotles Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 22.02.2012 15:35
Первая прога с переменными на Яве Syltan Общие вопросы по Java, Java SE, Kotlin 7 15.05.2010 08:57
Super WallHack - моя первая прога f1xed Софт 3 15.02.2010 07:18
Моя первая прога на Delphi Fire ShadoW Софт 13 04.02.2010 16:02
Моя первая Прога (Блокнот) DestroeR Софт 11 28.06.2007 21:18


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS