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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 267
от 17.10.2005, 15:18

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


Вопрос № 27555: Здравствуйте, эксперты! Я никогда не занимался программированием и вряд ли когда-либо буду, но возникла необходимость создать простое приложение на Delphi. С кодом программы я разобрался, однако необходимо, чтобы она запускалась и на компьютерах ...
Вопрос № 27561: Как возможно в Delphi работать с Random числами если нужно,чтобы Edit1.text умножалось на случайное дробное число от 0 до 1?...

Вопрос № 27.555
Здравствуйте, эксперты!
Я никогда не занимался программированием и вряд ли когда-либо буду, но возникла необходимость создать простое приложение на Delphi. С кодом программы я разобрался, однако необходимо, чтобы она запускалась и на компьютерах без библиотек Delphi. Узнал, что необходимо задать статическую линковку. Но как это сделать, не знаю.
Расскажите, пожалуйста, как можно подробнее, как это сделать.
Отправлен: 11.10.2005, 17:02
Вопрос задал: Scratchy (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Rusland
Здравствуйте, Scratchy!
Зайди в меню Project | Options. На вкладке Packages внизу ставишь галочку Build with runtime packages и компилируешь проект. Удачи.
---------
Пресловутое недостающее звено между обезьяной и цивилизованным человеком - это как раз мы. (Конрад Лоренц)
Ответ отправил: Rusland (статус: Студент)
Отправлен: 11.10.2005, 17:11
Оценка за ответ: 5
Комментарий оценки:
Спасибо, протестировал, работает.

Отвечает: Маренич Владимир
Здравствуйте, Scratchy!
В меню Project выбирите Options...
Выбирите закладку Packages
Уберите флаг "Build with runtime packages"
Нажмите Ctrl-F9 для перекомпиляции проекта.
Ответ отправил: Маренич Владимир (статус: 2-ой класс)
Отправлен: 11.10.2005, 17:29
Оценка за ответ: 5
Комментарий оценки:
Спасибо, протестировал, работает.

Отвечает: sir henry
Здравствуйте, Scratchy!
Никакие "библиотеки Delphi" для запуска программ на другом компе не требуются. Скорее всего Вы говорите о "пакетах". Зайдите в меню Project -> Options -> Packages и уберите галку Build with runtime packages.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 11.10.2005, 18:44


Вопрос № 27.561
Как возможно в Delphi работать с Random числами если нужно,чтобы Edit1.text умножалось на случайное дробное число от 0 до 1?
Отправлен: 11.10.2005, 19:35
Вопрос задал: Sassoft (статус: Посетитель)
Всего ответов: 8
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Маренич Владимир
Здравствуйте, Sassoft!
Попоробуйте следующий обработчик:

Приложение:

Ответ отправил: Маренич Владимир (статус: 2-ой класс)
Отправлен: 11.10.2005, 20:43

Отвечает: Ерёмин Андрей
Приветствую!
Легко! Например:

Var A,B: Real;
begin
Randomize;
A:=StrToFloat(Edit1.Text);
B:=A*(Random(1001)/1000);
Label1.Caption:=FloatToStr(B);


Здесь дробные числа будут от 0.000 до 1.000. Сначала генерируем число от 1 до 1000, а затем делим его на 1000 и получаем дробное число от 0.001 до 0.999. Процедуру Randomize нужно вызвать всего один раз. Сделать это лучше в Form.OnCreate().
---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Практикант)
Отправлен: 11.10.2005, 20:51

Отвечает: Warrior
Здравствуйте, Sassoft!
Вот если не вызвать Randomize, то каждый раз случайные числа будут повторятся при каждом вызвове программы, а это уже не генератор, а повторитель :) УДАЧИ!!!
Ответ отправил: Warrior (статус: 1-ый класс)
Отправлен: 11.10.2005, 23:41

Отвечает: Master135
Здравствуйте, Sassoft!
randomize;
Edit1.Text:=FloatToStr(StrToFloat(Edit1.Text)*random(100)/100);
100 как ты сам понял меняешь на любое число, например в данном случае будут генерится числа от 0.01 до 1, хочешь от 0.001 - ставь вместо 100 - 1000. Удачи!
Ответ отправил: Master135 (статус: 9-ый класс)
Отправлен: 12.10.2005, 01:50

Отвечает: sir henry
Здравствуйте, Sassoft!
Как работать - зависит от Вас. А вот чтобы умножить, надо Edit1.Text предварительно перевести в числовой вид:
var
i: intereg;
j: double;
Begin
i:=StrToInt(Edit1.Text): {Если целое число}
{или
j:=StrToFloat(Edit1.Text):} {Если число с плавающей запятой}

Randomize; {Запуск генератора псевдослучайных чисел}
j:=i*Random; {По умолчанию Random как раз и дает число в диапазоне от 0 до 1}
End;
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 12.10.2005, 05:33

Отвечает: Delphin
Здравствуйте, Sassoft!
Randomize; // Это чтобы не повторялись числы.
Edit1.Text := StrToInt( Edit1.Text )*Random( 1 ); // От 0 до 2 :P

---------
Обращаться в ICQ: 66550088 (Ally) или E-Mail: delphinster@gmail.com
Ответ отправил: Delphin (статус: Студент)
Отправлен: 12.10.2005, 13:52

Отвечает: Schmak
Здравствуйте, Sassoft!
Вот пример:
var X:real;
begin
Randomize; //Чтобы числа всегда были разными
x:=StrToFloat(Edit1.Text); //Заносим в X значение из текстового поля
x:=x*Random; //Умножаем число на Random (Random выдаёт значение от 0 до 1 )
edit1.text:=FloatToStr(x); //Выводим X в текстовое поле
end;
Ответ отправил: Schmak (статус: 1-ый класс)
Отправлен: 12.10.2005, 17:04

Отвечает: Romodos
Здравствуйте, Sassoft!
ну и в чём проблема?
пишете
var x:extended;
begin
x:=strtofloat(edit1.text)*random;
end;
---------
FAQ me off!
Ответ отправил: Romodos (статус: 10-ый класс)
Отправлен: 12.10.2005, 17:17


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

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

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

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

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


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


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное