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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2009, 21:02   #1
junkie
Пользователь
 
Регистрация: 27.04.2009
Сообщений: 12
Радость Светофор

Добрый вечер!
Передо мной стоит задачка,с которой я не могу на данный момент справиться,уже мозг взрывается просто:
Нужно нарисовать светофор по следующему алгоритму:
красный->красный и желтый->зеленый->мигающий зеленый, и потом все это повторяется.Помогите пожалуйста!Заранее благодарен
junkie вне форума Ответить с цитированием
Старый 11.05.2009, 21:12   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
с которой я не могу на данный момент справиться
А что вам мешает?
Все делается в цикле, для задержки используйте delay (при этом использование TP 7 нежелательно).

Что у вас конкретно не получается?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 11.05.2009, 21:19   #3
junkie
Пользователь
 
Регистрация: 27.04.2009
Сообщений: 12
По умолчанию

а что использовать?
junkie вне форума Ответить с цитированием
Старый 11.05.2009, 21:29   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
а что использовать?
Для чего?
Используйте процедуры для работы с графикой. Как по-другому сказать?
Я не вижу вопросов. Что у вас вызывает затруднения?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 11.05.2009, 21:39   #5
Sergey2
Форумчанин
 
Регистрация: 08.01.2008
Сообщений: 233
По умолчанию

А использовать лучше кольцевой список. Тут в соседней теме кто-то просил
Я бы делал примерно вот так:
Код:
type TSvetofor = record
           Lamps: byte;
           Flash: boolean;
           Next: ^TSvetofor
Красный - 001
Красный и Желтый - 011
Зеленеый - 100
Создаешь список и по нему фигачишь. Думаю смысл понятен.
Код:
...
var Now,Red, RedYellow, Green, FlashGreen: ^TSvetofor
begin
  new(Red);
  new(RedYellow);
  new(Green);
  new(FlashGreen);
  
  Red^.Lamps:=1
  Red^.Flash:=False;
  Red^.Next:=RedYellow;
  RedYellow^.Lamps:=3;
  RedYellow^.Flash:=False;
  RedYellow^.Next:=Green;
  Green^.Lamps:=4;
  Green^.Flash:=False
  Green^.Next:=FlashGreen;
  FlashGreen^.Lamps:=4
  FlashGreen^.Flash:=True;
  FlashGreen^.Next:=Red;

  Now:=Red;
  while (True) do
    begin
      ShowSvetofor(Now);
      Now:=Now^.Next;
    end;
end;
...
PS Мог где-то наврать, но смысл понятен должен быть
Sergey2 вне форума Ответить с цитированием
Старый 11.05.2009, 22:26   #6
junkie
Пользователь
 
Регистрация: 27.04.2009
Сообщений: 12
По умолчанию

ага,большое спасибо!
junkie вне форума Ответить с цитированием
Старый 13.05.2009, 18:34   #7
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

В двоичном виде не так очевидно, лучше массив Integer. Для мигания использовать третье значение (у меня 1 — между 0 и 2).

Код:
const SvetoforState : array[1 .. 6, 1 .. 3, 4] of Integer =
((2, 0, 0, 8000),
(2, 2, 0, 2000),
(2, 1, 0, 2000),
(0, 0, 2, 6000),
(0, 0, 1, 2000),
(0, 2, 0, 4000));
При этом параметры здесь: состояние К, Ж, З индикатора, длительность.
0 — выключен
1 — мигает
2 — горит
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 23.12.2010, 19:22   #8
zanik
 
Регистрация: 22.12.2010
Сообщений: 4
По умолчанию

а если кому нетрудно выложите пожалуста код целиком, а то мне нада тоже светофор)) а я его только нарисовать могу , а чтоб моргал ввобще незнаю как сделать
zanik вне форума Ответить с цитированием
Ответ


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