Форум: "Начинающим";
Текущий архив: 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