Delphi |
Здравствуйте, гость ( Вход | Регистрация )
Youtube | Vkontakte | KubaLibre | Shareman | Down-House |
Delphi |
Makvit |
11.10.2006, 22:05
Сообщение
#1
|
Где Я?! Группа: Домовые Сообщений: 4 851 Регистрация: 10.10.2006 Живет: в астрале Пол: Домовой Репутация: -121 |
Кто-нить может подсказать, как работать с классом TThread? (мультипоточность)
-------------------- Цитата Смайлики http://www.artlebedev.ru/kovodstvo/sections/143/#17... Смайлик отбивается от слова пробелом. Если после смайлика идет знак препинания, он пробелом не отбивается. Точка после смайлика обычно не ставится. Смайлик может быть совмещен с обычной закрывающей скобкой (при условии, что она где-то открылась :-) |
Makvit |
16.5.2007, 15:46
Сообщение
#2
|
Где Я?! Группа: Домовые Сообщений: 4 851 Регистрация: 10.10.2006 Живет: в астрале Пол: Домовой Репутация: -121 |
o_0. Образ диска на мыло я тебе скидывать не буду )
а так зайди на ftp://flashback.kazandom.ru/incoming/Programming/Delphi там вроде и дистриб есть -------------------- Цитата Смайлики http://www.artlebedev.ru/kovodstvo/sections/143/#17... Смайлик отбивается от слова пробелом. Если после смайлика идет знак препинания, он пробелом не отбивается. Точка после смайлика обычно не ставится. Смайлик может быть совмещен с обычной закрывающей скобкой (при условии, что она где-то открылась :-) |
DunasTu |
1.7.2007, 18:34
Сообщение
#3
|
still standing... Группа: Домовые Сообщений: 3 283 Регистрация: 23.12.2006 Живет: на пересечении улиц Дубравная иПр.Победы Пол: Мужской Репутация: 1 |
Люди нужно инфу про Стэки если есть у кого нить закиньте плизз
-------------------- |
Astynax84 |
2.7.2007, 18:49
Сообщение
#4
|
Опытный Домовой Группа: Домовые Сообщений: 270 Регистрация: 28.11.2006 Живет: РФ, РТ, Казань Пол: Мужской Репутация: 0 |
Люди нужно инфу про Стэки если есть у кого нить закиньте плизз Ты, и в самом деле, приведи конкретный пример. А то "инфу про стеки". И именно про стеки (LIFO)? Не про очереди (FIFO)? Впрочем, приведу пример стека в простейшем виде. Будет стек целых (integer) чисел. Код // Стек целых чисел (integer) unit Stack; interface type // указатель на элемент стека PStackItem = ^TStackItem; // собственно, элемент стека TStackItem = record Value: integer; // уначение PrevItem: PStackItem; // указатель на предыдующий элемент. У первого элемента (в самом низу стека) PrevItem = nil end; // процедура добавления числа в стек procedure PushItem(var Stack: PStackItem; Value: integer); // функция извлечения последного (верхнего) числа из стека function PopItem(var Stack: PStackItem): integer; implementation procedure PushItem(var Stack: PStackItem; Value: integer); var TmpItem: PStackItem; begin // выделяем памят под новый элемент GetMem(TmpItem, SizeOf(TmpItem)); // заполняем поле значения TmpItem^.Value := Value; // добавляем к данному элементу ссылку на предыдущий элемент TmpItem^.NextItem := Stack; // присваиваем указателю на сам стек указатель на новый элемент Stack := TmpItem; end; function PopItem(var Stack: PStackItem): integer; var TmpItem: PStackItem; begin // проверяем, не пуст ли стек if Stack = nil then // стек пуст - возвращаем "-1" Result := -1 else begin // стек не пуст // получаем указатель на верхний элемент стека TmpItem := Stack; // получаем результат - значение элемента (целое число) Result := Stack^.Value; // передвигаемся к предыдущему элементу в стеке Stack := Stack^.NextItem; // освобождаем память, занимаемую извлеченным элементом Dispose(TmpItem); end; end; end. Работаем со стеком так: Создаем переменную - указатель на элемент стека: Код var Stack: PStackItem; Обнуляем на всякий случай: Код Stack := nil; Добавляем, к примеру, 3 числа: Код PushItem(Stack, 100); PushItem(Stack, 200); PushItem(Stack, 300); Извлекаем все элементы из стека и выводим на печать: Код repeat WriteLn(PopItem(Stack)); until Stack = nil; Получим: "300" "200" "100" У меня все сразу заработало Набирал параллельно в Delphi -------------------- aka HS
Я не червонец, чтобы нравиться всем... (Костя Кинчев) |
DunasTu |
8.7.2007, 15:49
Сообщение
#5
|
still standing... Группа: Домовые Сообщений: 3 283 Регистрация: 23.12.2006 Живет: на пересечении улиц Дубравная иПр.Победы Пол: Мужской Репутация: 1 |
Ты, и в самом деле, приведи конкретный пример. А то "инфу про стеки". И именно про стеки (LIFO)? Не про очереди (FIFO)? Впрочем, приведу пример стека в простейшем виде. Будет стек целых (integer) чисел. Код // Стек целых чисел (integer) unit Stack; interface type // указатель на элемент стека PStackItem = ^TStackItem; // собственно, элемент стека TStackItem = record Value: integer; // уначение PrevItem: PStackItem; // указатель на предыдующий элемент. У первого элемента (в самом низу стека) PrevItem = nil end; // процедура добавления числа в стек procedure PushItem(var Stack: PStackItem; Value: integer); // функция извлечения последного (верхнего) числа из стека function PopItem(var Stack: PStackItem): integer; implementation procedure PushItem(var Stack: PStackItem; Value: integer); var TmpItem: PStackItem; begin // выделяем памят под новый элемент GetMem(TmpItem, SizeOf(TmpItem)); // заполняем поле значения TmpItem^.Value := Value; // добавляем к данному элементу ссылку на предыдущий элемент TmpItem^.NextItem := Stack; // присваиваем указателю на сам стек указатель на новый элемент Stack := TmpItem; end; function PopItem(var Stack: PStackItem): integer; var TmpItem: PStackItem; begin // проверяем, не пуст ли стек if Stack = nil then // стек пуст - возвращаем "-1" Result := -1 else begin // стек не пуст // получаем указатель на верхний элемент стека TmpItem := Stack; // получаем результат - значение элемента (целое число) Result := Stack^.Value; // передвигаемся к предыдущему элементу в стеке Stack := Stack^.NextItem; // освобождаем память, занимаемую извлеченным элементом Dispose(TmpItem); end; end; end. Работаем со стеком так: Создаем переменную - указатель на элемент стека: Код var Stack: PStackItem; Обнуляем на всякий случай: Код Stack := nil; Добавляем, к примеру, 3 числа: Код PushItem(Stack, 100); PushItem(Stack, 200); PushItem(Stack, 300); Извлекаем все элементы из стека и выводим на печать: Код repeat WriteLn(PopItem(Stack)); until Stack = nil; Получим: "300" "200" "100" У меня все сразу заработало Набирал параллельно в Delphi Впринципе шаблон один и тот же, что для стэков , что для объектов-тока конструкторов и деструкторов нет. Астинакс ты не мог бы привести пример объект комплексное число(Complex Object) плиз. -------------------- |
Astynax84 |
9.7.2007, 12:37
Сообщение
#6
|
Опытный Домовой Группа: Домовые Сообщений: 270 Регистрация: 28.11.2006 Живет: РФ, РТ, Казань Пол: Мужской Репутация: 0 |
Впринципе шаблон один и тот же, что для стэков , что для объектов-тока конструкторов и деструкторов нет. Астинакс ты не мог бы привести пример объект комплексное число(Complex Object) плиз. Можно просто сделать 2 поля с плавающей точкой - для мнимой и реальной частей Или я не так задачу понял? -------------------- aka HS
Я не червонец, чтобы нравиться всем... (Костя Кинчев) |
DunasTu |
9.7.2007, 15:47
Сообщение
#7
|
still standing... Группа: Домовые Сообщений: 3 283 Регистрация: 23.12.2006 Живет: на пересечении улиц Дубравная иПр.Победы Пол: Мужской Репутация: 1 |
Можно просто сделать 2 поля с плавающей точкой - для мнимой и реальной частей Или я не так задачу понял? а смысл? -------------------- |
Текстовая версия | Сейчас: 11.6.2024, 17:22 |