|
Вопрос # 1 187/ вопрос открыт / |
|
Приветствую, уважаемые эксперты! Наверное не в тот раздел, но. Когда-то я поставил задачу написать программу для рисования графиков функций. Но в какой то момент упёрся в собственную криво-рукость))) Но спустя какое-то время в ущерб здоровью (с ОРВИ за компом 2 дня с перерывчиками) сделал ЭТУ программу! потом усовершенствовал и долго рисовал графики. Потом дополнял, дополнял, дополнял. И вот теперь, так как это единственная программа, которую я доделал до такого состояния, что больше не получается ни придумать ни реализовать чего-либо, я даю вам исходники, как-бы на проверку моих знаний. Скажите где я написал не-так, где можно оптимизировать и т.д. Очень хочется услышать отзывы (не ругайте за внешний вид, хотя вы же тоже программисты), но главное скажите про мои ошибки)))
Заранее благодарю. А..... Исходники прикрепил
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: Gooddy (статус: 3-ий класс)
Вопрос отправлен: 9 декабря 2007, 23:59
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Wallpk!
Просмотрел вашу программу. Как собственно она работает не имел возможности смотреть, но есть замечания другого плана, также не маловажные.
1) Каждая функция/процедура должна иметь осмысленное имя! Если по clea я догадываюсь, что это clear, то имя xto ни о чем не говорит. И вам ничего не скажет через 2-3 месяца.
2) перед каждой функцией/процедурой принято вставлять заголовок. как минимум написать, что делает функция. также желательно вставить и описания входных параметров, результата. В некоторых случаях написать допустимый диапазон параметров.
3) Использование goto считается дурным тоном. Я рекомендовал бы обходиться без него. мне например за последние лет 5 не приходилось им пользоваться. Хотя код писал и очень сложный.
4) прорисовка сразу на Image. и как следствие вставленно много application.ProcessMessages; для "повышения отзывчивости". Рекомендую рисовать на битмапе в памяти (TBitmap), а потом одним махом переносить на форму. прорисовка заметно ускориться:)
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 11 декабря 2007, 02:06
Оценка за ответ: 5
Комментарий к оценке: Всё правильно =)
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 25 мая 2009, 17:57; участников в обсуждении: 2.
|
min@y™ (статус: Доктор наук), 10 декабря 2007, 08:24 [#1]:
Не найден модуль FormulUtil.pas
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Gooddy (статус: 3-ий класс), 11 декабря 2007, 20:22 [#2]:
ой. там компонент один Tformula называется
Чисти код! Чисти код! Чисти код!
|
|
Gooddy (статус: 3-ий класс), 25 мая 2009, 17:57 [#3]:
недавно переделал с нуля знаете что ускорило прорисовку в 1000 раз? не то что я рисовал сначала в памяти, не то что я убрал application.ProcessMessages, не то что я оптимизировал подсчёт и разбил рисовку на 4 потока, а то что я стал рисовать не попиксельно а линиями. примите на заметку. лучше написать
moveto(1,2)
lineto(1,2)
чем
pixels[1,2]:=clBlack
качество кстати тоже возросло
Чисти код! Чисти код! Чисти код!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|