Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 707
от 14.01.2007, 22:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 424, Экспертов: 55
В номере:Вопросов: 2, Ответов: 5


Вопрос № 70100: Подскажите пожалуйста как можно реализовать данную процедуру используя другой способ написания текста программы (очень прошу, если вас не затруднит, выслать не только пояснения, но и текст программы), заранее благодарен... Создайте свой мето...
Вопрос № 70129: добрый день! моя задача считывать стринг с COM порта. у меня два вопроса: 1. почему на переменную "d" приходят нули (#0), что не так? 2. как это запустить в отдельном потоке (Thread) чтобы приложение не подвисало? буду благодар...

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

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

Приложение:

Отправлен: 09.01.2007, 07:30
Вопрос задал: Волков А.А. (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: PaVeL_Ekt
Здравствуйте, Волков А.А.!

Нужно использовать рекурсию

пример для динамического массива см. в приложении

Будут вопросы пишите в пейджер.

Приложение:

---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL

Ответ отправил: PaVeL_Ekt (статус: Студент)
Ответ отправлен: 09.01.2007, 09:34

Отвечает: Ivanich
Здравствуйте, Волков А.А.!
Для передачи данных можно испльовать не типизированные массивы, а выделененную способом Windows память. алгоритм длиннее, но работает быстрее и стабильнее.
Для выделения памяти: hnd:=GlobalAlloc(GMEM_GHND, "size");
Для получения указателя на память: ptr:=GlobalLock(hnd);
Для освобождения памяти: GlobalFree(hnd);

Приложение:

Ответ отправил: Ivanich (статус: 3-ий класс)
Ответ отправлен: 09.01.2007, 12:20

Отвечает: Gh0stik
Здравствуйте, Волков А.А.!

Поскольку так никто и не дал ответа, который касается других способов сортировки и их реализации, то советую Вам обратиться к таким источникам:

Алгоритмы сортировки
Алгоритмы сортировки 2
Алгоритмы сортировки 3
Сравнение алгоритмов сортировки массивов

И напоследок такая информация - проблемам сортировок Дональд Кнут посвятил целый том своего «Искусства программирования».

Good Luck!!!

---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 10.01.2007, 16:19


Вопрос № 70.129
добрый день! моя задача считывать стринг с COM порта. у меня два вопроса:
1. почему на переменную "d" приходят нули (#0), что не так?
2. как это запустить в отдельном потоке (Thread) чтобы приложение не подвисало?
буду благодарен за любую информацию. пример привожу ниже:

Приложение:

Отправлен: 09.01.2007, 11:57
Вопрос задал: [CRA5H-OVERRIDE] (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PaVeL_Ekt
Здравствуйте, [CRA5H-OVERRIDE]!

В событии CreateForm вы обнуляете hPort.
попробуйте уберить последнюю строку скажем в FormClose.

добавить поток можно, через new-other-thread object

в событии OnExecute пишите необходимый код

вызываеться
thread.Create(false); // передаваемый параметр - это указатель (запускать немедленно или вручную)
---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: Студент)
Ответ отправлен: 09.01.2007, 12:22

Отвечает: Ivanich
Здравствуйте, [CRA5H-OVERRIDE]!
Насколько я помню хелп по функции CreateFile, то для открытия COM порта надо написать
hPort := CreateFile(PChar('\.COM1', GENERIC_READ + GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Плюс ко всему в системе нет 8-ого COM-порта!
Запуск ветви.
File>New>Other>Thread object
Вводишь имя и получаешь модуль со следующим описанием. (см. приложение)
Для запуска
var
TH:Ttthread;
...

TH:=Ttthread.Create(False);
Вот и все. Ветвь работает.

Приложение:

Ответ отправил: Ivanich (статус: 3-ий класс)
Ответ отправлен: 09.01.2007, 12:39


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.40 от 14.01.2007
Яндекс Rambler's Top100

В избранное