Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.09.2012, 14:59
Аватар для alexusankov
alexusankov alexusankov вне форума
Новичок
 
Регистрация: 27.08.2012
Сообщения: 78
Версия Delphi: C++/Delphi 2010
Репутация: 10
По умолчанию Чуть-чуть вопросов по алгоритму

Здравствуйте, уважаемые форумчане. К сожалению, не учился на программиста, поэтому такие вещи, как блок-схема и алгоритм вызывают затруднение. Есть 2 вопроса, простой и сложнее) :
1. Есть код, например :
image1.canvas.pen.color := clRed;
image2.canvas.pen.color := clRed;
...
image116.canvas.pen.color := clRed;
- сто двадцать раз повторять как бы не торт, возможно же как то оформить в цикл?
2. Все по прежнему по поводу программки, тритий вопрос) :
Есть файлик вида :
Василий;9:05:48;Пришел
Николай;12:03:57;Пришел
Василий;15:03:12;Ушел
Василий;17:45:00;Пришел
Николай;18:00:00;Ушел
Василий;18:01:00;Ушел
Программе нужно на шкале времени зеленым показать, когда был на работе Василий. А как мы видим - он был с девяти утра, до трех дня, и в конце дгя на 15 минут заходил.
Программно, я вот что придумал :
положил на форму image1, длинной ровно 720 (это важно), шириной 9.
Беру из строки время, часы множу на 60 и прибавляю минуты - получается первая точка, когда он пришел. То же самое делаю с точкой ухода. Мы получаем кол-во минут с начала дня когда она пришел и кол-во минут с начала дня когда ушел. Т.к. минут с сутке ровно 1440, а пикселей на канвасе 720 - то просто делим числа / 2 и получаем точку уже на канве. Думаю вроде понятно рассказал.
Но возникли сложности!
Как грамотно построить массив точек, если есть такие камни :
1. Нельзя последовательно создать точку пришел / ушел, по четности, т.е. не обязательно первая запись в файле будет "пришел", а вторая "Ушел", и не обязательно двадцатая будет "Ушел" :
1.1. Вася может остаться в ночь, а отсчет идет с 00(в файле).
1.2. В файле лога может быть записи, что он уходил несколько раз подряд / или приходил несколько раз подряд - эти моменты программа должна игнорировать.
1.3. Абсолютно неизвестно, сколько раз он может приходить / уходить.
*****
Программная часть вопроса сейчас в принципе не вызывает затруднения (спасибо Полисмену огромное), а вот с алгоритмом беда(((...
Может ли кто добрый озвучить, как это можно проще сделать? Просто мысли и идеи?
Заранее спасибо
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:27.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025