Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.03.15;
Скачать: CL | DM;

Вниз

Оптимизация скорости вывода на екран с помощью Label   Найти похожие ветки 

 
GVas ©   (2009-01-23 22:23) [40]

sniknik

> с чего у тебя в 31м посте та же ахинея что и в 0-м?


У меня там такие строки просто для проверки работоспособности потока, я во время работы цикла жал на вторую кнопку на форме и программа заканчивала свою работу, вот поэтому у меня там и цикл, просто чтоб проверить как поток работает, и смогу ли я выйти из программы во время работы цикла, а написал я насчет "я хотя бы приблизительно разобрался, а вот то что было написано уважаемым han_malign" имея ввиду пост № 27, я просто неправильно выразился((

Ну и в догонку, каким образом можно в поток ввести какие либо данные из основной программы???

И еще как сделать свой тип данных, например, чтоб он назывался myarrey и состоял из двух массивов заданного размера i1:array[1..10] of Integer; i2:array[1..10] of Real. обращение я так понимаю к отдельному елементу будет что то типа т1.и1 или т1.и2.


 
AndreyV ©   (2009-01-23 22:33) [41]

> [40] GVas ©   (23.01.09 22:23)
> Ну и в догонку, каким образом можно в поток ввести какие
> либо данные из основной программы???

Читай о Critical Section

> И еще как сделать свой тип данных, например, чтоб он назывался
> myarrey и состоял из двух массивов заданного размера i1:
> array[1..10] of Integer; i2:array[1..10] of Real. обращение
> я так понимаю к отдельному елементу будет что то типа т1.и1
> или т1.и2.

Определи тип Record
а потом массив этих типов.


 
GVas ©   (2009-01-23 22:42) [42]

Я так понял что-то вроде этого:
type
Atom =record
 i1:array[1..10] of integer;
 i2:array[1..20] of Real;

обращение к конкретному елементу Atom.i1[1]:=23 Atom.i2[3]:=25.6


 
AndreyV ©   (2009-01-23 22:53) [43]

> [42] GVas ©   (23.01.09 22:42)
> Я так понял что-то вроде этого:
> type
> Atom =record
> i1:array[1..10] of integer;
> i2:array[1..20] of Real;
>
> обращение к конкретному елементу Atom.i1[1]:=23 Atom.i2[3]:
> =25.6


type
 Atom = record
 i : integer;
 r : Real;
 end;

var
 a : array[1..10] of Atom;


 
GVas ©   (2009-01-23 23:09) [44]

Ясно, спасибо Вам за подсказку (но если количество параметров (i1 и i2) разное тогда каким образом поступить? так как у меня или как то по другому???). И второй момент почитал хелп о Critical Section в делфе, приблизительно понял что это секция с защищенными от изменения переменными, но я еще немного подумал и решил все таки конкретезировать, мб я неправильно выразился, есть начальные параметры системы, при срабатывании таймера образуется поток который должен взять начальные параметры, обработать их и записать на место старых значений значения новые, но тогда получается что для хранения переменных я буду использовать в два раза больше памяти, для основного и второстепенного потока, или я где то ошибаюсь?


 
AndreyV ©   (2009-01-23 23:33) [45]

> [44] GVas ©   (23.01.09 23:09)
> Ясно, спасибо Вам за подсказку (но если количество параметров
> (i1 и i2) разное тогда каким образом поступить? так как
> у меня или как то по другому???).

Может тебе надо что-то такое

 Atom = record
 i : integer;
 x, y, z : Real;
 end;

Ты про модель ничего не уточнял.

> И второй момент почитал хелп о Critical Section в делфе...
> при срабатывании таймера образуется поток который должен
> взять начальные параметры, обработать их и записать на место

Поток уже есть

> старых значений значения новые, но тогда получается что
> для хранения переменных я буду использовать в два раза больше
> памяти, для основного и второстепенного потока, или я где
> то ошибаюсь?

Один поток рассчитывает, второй по таймеру забирает у него результаты и выводит.
Никакого задвоения переменных нет.


 
GVas ©   (2009-01-23 23:42) [46]

и еще момент увидел при работе цикла
for i := 1 to 1992 do
 begin
   readln(F_DM_ATOM,S_DM_ATOM);
   readln(F_Z_ATOM,S_Z_ATOM);
   readln(F_N_ATOM,S_N_ATOM);
   i1[i,1]:=StrToInt(S_N_ATOM);
   i1[i,2]:=StrToFloat(S_Z_ATOM);
   i1[i,3]:=StrToFloat(S_DM_ATOM);
 end;
смотрел значение переменной i почему то значение шло не от единицы до 1992 а наоборот с 1992 до 1 почему так, и как исправить такую ситуацию??? хотя масив заполнялся правильно с начала и до конца, но вопрос стоит в том что если будет условие на i вроде если и больше единицы то то то и то то, получается что это условие будет неправильно работать, и второй момент при создании массива я его не обнулял, при просмотре значений почти все значения были нулями, но некоторые были заполнены вещественными числами, хотя я кажись вычитывал в этой ветке обсуждение насчет того что необходимсоти обнуления нет.


 
GVas ©   (2009-01-23 23:46) [47]

AndreyV
Спасибо Вам за ответы


 
Servy ©   (2009-01-24 00:07) [48]

> смотрел значение переменной i почему то значение шло не
> от единицы до 1992 а наоборот с 1992 до 1 почему так

Потому что процессору проще проверять, сравнялось ли i с нулем, чем с 1992. Выключи галку Optimization в настройках компилятора, будет все по-честному. Условия будут работать правильно, это отдается на откуп компилятору, верь в него :). Для отладки оптимизацию как правило выключают.


> при создании массива я его не обнулял, при просмотре значений
> почти все значения были нулями, но некоторые были заполнены
> вещественными числами, хотя я кажись вычитывал в этой ветке
> обсуждение насчет того что необходимсоти обнуления нет.


Зависит от того, где расположен массив. Есть массив суть локальная переменная, память под которую выделяется в стеке, то в массиве изначально будет мусор. Если массив это поле класса, то при создании экземпляра этого класса массив будет обнулен. В остальных случаях, насколько мне известно, нулевое значение переменных не гарантируется и рассчитывать на него не стоит.

По предыдущим вопросам создалось впечатление, что автору стоит прочитать соответствующую главу в какой-нибудь хорошей книжке по интересующему вопросу (работа с потоками, например), иначе методом проб и ошибок искать свет в конце тоннеля придется долго (однако, это небесполезно, на своих шишках лучше запоминается что к чему, правда проект обычно приходиться переписывать сначала, после осознания ошибочности одного из основных использованных подходов).


 
GVas ©   (2009-01-24 00:18) [49]

Servy
Спасибо за совет, действительно, наблюдается нехватка теоретических знаний, и я склоняюсь к тому, что придется браться за какую-то серьезную книгу.



Страницы: 1 2 вся ветка

Текущий архив: 2009.03.15;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.026 c
2-1232475963
Тимоха
2009-01-20 21:26
2009.03.15
правка компонентов indy


2-1232617282
nst1974
2009-01-22 12:41
2009.03.15
создание клиент серверные части БД


15-1231493354
Vainuu
2009-01-09 12:29
2009.03.15
Экзамен!!!!


4-1206616798
Answer_i3
2008-03-27 14:19
2009.03.15
Как отловить событие сохранения?


15-1231989207
Slider007
2009-01-15 06:13
2009.03.15
С днем рождения ! 15 января 2009 четверг