Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2009, 18:52   #1
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию pascal графика

Добрый день. Есть программа, которая выводит на экран электронные часы......
Вот какая у меня проблема, с которой я столкнулся...
Нужно уменьшить программу, т.е. избавиться от дублирования строк. Например:
Код:
{ Segment A }
  MoveTo(x*SegWidth+24,(y+1)*SegHeight - 116);
  LineTo(x*SegWidth+28,(y+1)*SegHeight - 120);
  LineTo(x*SegWidth+85,(y+1)*SegHeight - 120);
  LineTo(x*SegWidth+89,(y+1)*SegHeight - 116);
  LineTo(x*SegWidth+79,(y+1)*SegHeight - 110);
  LineTo(x*SegWidth+29,(y+1)*SegHeight - 110);
  LineTo(x*SegWidth+24,(y+1)*SegHeight - 116);
  { Segment B }
  MoveTo(x*SegWidth+90,(y+1)*SegHeight - 114);
  LineTo(x*SegWidth+93,(y+1)*SegHeight - 111);
  LineTo(x*SegWidth+85,(y+1)*SegHeight - 64);
  LineTo(x*SegWidth+78,(y+1)*SegHeight - 61);
  LineTo(x*SegWidth+74,(y+1)*SegHeight - 67);
  LineTo(x*SegWidth+82,(y+1)*SegHeight - 109);
  LineTo(x*SegWidth+90,(y+1)*SegHeight - 114);
  { Segment C }
  MoveTo(x*SegWidth+78,(y+1)*SegHeight - 58);
  LineTo(x*SegWidth+83,(y+1)*SegHeight - 54);
  LineTo(x*SegWidth+73,(y+1)*SegHeight - 8);
  LineTo(x*SegWidth+69,(y+1)*SegHeight - 4);
  LineTo(x*SegWidth+63,(y+1)*SegHeight - 11);
  LineTo(x*SegWidth+72,(y+1)*SegHeight - 52);
  LineTo(x*SegWidth+78,(y+1)*SegHeight - 58);
  { Segment D }
  MoveTo(x*SegWidth+4,(y+1)*SegHeight - 3);
  LineTo(x*SegWidth+11,(y+1)*SegHeight - 9);
  LineTo(x*SegWidth+62,(y+1)*SegHeight - 9);
  LineTo(x*SegWidth+67,(y+1)*SegHeight - 3);
  LineTo(x*SegWidth+64,(y+1)*SegHeight - 0);
  LineTo(x*SegWidth+6,(y+1)*SegHeight - 0);
  LineTo(x*SegWidth+4,(y+1)*SegHeight - 3);
  { Segment E }
  MoveTo(x*SegWidth+2,(y+1)*SegHeight - 4);
  LineTo(x*SegWidth+0,(y+1)*SegHeight - 8);
  LineTo(x*SegWidth+6,(y+1)*SegHeight - 53);
  LineTo(x*SegWidth+12,(y+1)*SegHeight - 58);
  LineTo(x*SegWidth+16,(y+1)*SegHeight - 53);
  LineTo(x*SegWidth+10,(y+1)*SegHeight - 11);
  LineTo(x*SegWidth+2,(y+1)*SegHeight - 4);
  { Segment F }
  MoveTo(x*SegWidth+12,(y+1)*SegHeight - 61);
  LineTo(x*SegWidth+9,(y+1)*SegHeight - 64);
  LineTo(x*SegWidth+16,(y+1)*SegHeight - 112);
  LineTo(x*SegWidth+22,(y+1)*SegHeight - 115);
  LineTo(x*SegWidth+27,(y+1)*SegHeight - 109);
  LineTo(x*SegWidth+20,(y+1)*SegHeight - 67);
  LineTo(x*SegWidth+12,(y+1)*SegHeight - 61);
  { Segment G }
  MoveTo(x*SegWidth+15,(y+1)*SegHeight - 60);
  LineTo(x*SegWidth+20,(y+1)*SegHeight - 64);
  LineTo(x*SegWidth+73,(y+1)*SegHeight - 64);
  LineTo(x*SegWidth+76,(y+1)*SegHeight - 60);
  LineTo(x*SegWidth+71,(y+1)*SegHeight - 55);
  LineTo(x*SegWidth+18,(y+1)*SegHeight - 55);
  LineTo(x*SegWidth+15,(y+1)*SegHeight - 60);
Помогите мне решить данную проблему.... заранее спасибо.
исходный текст программы находиться ниже:
world12_tk вне форума Ответить с цитированием
Старый 25.04.2009, 18:56   #2
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию

Исходный текст программы представлен в файле clock.txt
Вложения
Тип файла: txt CLOCK.TXT (10.8 Кб, 161 просмотров)
world12_tk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal] Графика Рамик Помощь студентам 5 15.04.2009 03:06
графика MariyaVo Помощь студентам 3 06.04.2009 19:37
Перевод кода из Pascal в Object Pascal zemskov77 Общие вопросы Delphi 1 03.01.2009 09:37
Графика V1rusPro Общие вопросы .NET 0 22.04.2008 08:25