| 
| 
 | Вопрос # 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
 качество кстати тоже возросло
 Чисти код! Чисти код! Чисти код! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |