- 1
- 2
- 3
- 4
- 5
double f_x (double x, double y, int nom)
{
double f_x[]={x+y, x*y, x*y, sqrt(x*x + y*y), cos(x)/sin(y)};
return f_x[nom];
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+111
double f_x (double x, double y, int nom)
{
double f_x[]={x+y, x*y, x*y, sqrt(x*x + y*y), cos(x)/sin(y)};
return f_x[nom];
}
Нужна одна из функций :-)
Давайте до кучи в массив функцию Бесселя воткнём, чтобы ещё тормознее было.
Тут бы enum какой-нибудь для int nom не помешал бы ишшо.
Скромно умолчим о случае y == 0
А с тригонометрией работаете ?
Извините за беспокойство.
я бы пошел дальше:
Взял такой функцию по индексу -- и вызвал.
Я вот у нас в проекте вырвиглазные свичи на тысячи строк все намереваюсь переписать через хитромудрые хендлеры. Результатом обязательно поделюсь!
Если у функций разные сигнатуры - то я особо смысла не вижу, зачем нужен массив таких совершенно разных функций. Ведь такие массивы делаются для своего рода полиморфизма. А если у функций разные типы - зачем это? Нет смысла их обобщать. Или что?
Тут не до жиру, коду больше 10 лет и от внутренней структуры там уже ничего не осталось, спастись для начала хочется от функций на тысячи строк и 10-кратной вложенности конструкций.
PS. У меня-то емакс бегает по конструкциям, а кто-то до сих пор пишет комментарии у закрывающих скобок. Вот, кстати, один из признаков говнокода — комментарии типа «А вот эта скобка относится к тому ифу — ну да, конечно вы про него забыли, он был в прошлой серии»
блок должен влезать на экран, ага) Я уж не знаю за какой производительностью надо гнаться, что бы пренебрегать этим простым правилом
В мире ООП это называлось бы "стратегией":)
А вообще говнецо оригинальное, такого тут ещё не было.
_____
Блин, сначала пост написал, а потом http://govnokod.ru/3620#comment37041 прочитал.
Я еще и не так могу, когда голодный или испуганный
блин, мою судьбу предрекли... Игорь Николаевич, это ж на основе моего прошлогоднего перла с программой для численного интегрирования делалось... Так что авторство сего говнокода беру на себя