Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];

Вниз

Оптимизация скорости вывода на екран с помощью 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.55 MB
Время: 0.047 c
2-1232790296
Anton Shestakov
2009-01-24 12:44
2009.03.15
Вычисляемые поля


11-1198028966
zNk
2007-12-19 04:49
2009.03.15
Создание собственных компонентов для KOL & MCK


2-1232751901
Тимоха
2009-01-24 02:05
2009.03.15
sleep и динамическое создание объектов


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


11-1197194136
Turbidit
2007-12-09 12:55
2009.03.15
Изображение с прозрачностью на форме





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский