![]() |
|
#1
|
|||
|
|||
![]() Возможно ли с помощи этого оператора получить любое число кроме тех которые указанные в мемо1 например. К примеру диапазон от 1 до 20 и нужно любое число кроме 3, 5, 10 (они указаны в мемо поле). Заранее благодарен.
|
#2
|
||||
|
||||
![]() Например, при генерации числа проверить - есть ли это число в Мемо иль нет ... если есть - пропустить, а если нет - обрабатывать дальше
Поживу - увижу, Доживу - узнаю, Выживу - учту. ![]() [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#3
|
|||
|
|||
![]() А программно как это выглядит?
|
#4
|
|||
|
|||
![]() Программно где-то так:
Код:
var R : Integer; begin R := Random(N) + 1; random 1..N While AlredyExist(R) Do R := Random(N)+1; Где функия AlredyExist - проверяет допустимость сгенерированного числа. Писать надо самому. |
#5
|
|||
|
|||
![]() А что за переменная n, и где он связан с мемо?
|
#6
|
||||
|
||||
![]() Про N:
С мэмо оно никак не связано. Твое Случайное Число будет в диапазоне от 0 до N Почитай хэлп про RANDOM... С мэмо тебе надо связать еще не написанную тобой процедуру AlredyExist(R), в которой тебе надо сравнивать число R c числами из MEMO |
#7
|
|||
|
|||
![]() Теперь понятнее. А теперь подскажите как написать и связать эту процедуру с мемо
|
#8
|
||||
|
||||
![]() Еще можно использовать RandomRange из модуля Math.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#9
|
|||
|
|||
![]() А вот это думай сам.
По сути, вещь довольно простая. Тебе нужен цикл по линиям мемо (Memo1.Lines), преобразование строки в число (StrToInt) и сранение с переданным числом (if). |
#10
|
||||
|
||||
![]() Цитата:
Код:
var x:integer; begin randomize; x:=random(20); if (x<>3) and (x<>5) and (x<>10) then ... else x:=random(20); |
#11
|
||||
|
||||
![]() 2 Casper-Hacker: тут необходим цикл или goto, например так:
Код:
procedure TForm1.Button1Click(Sender: TObject); var x: Integer; begin Randomize; repeat x:= Random(20); until ((x<>3) and (x<>5) and (x<>10)); ShowMessage(IntToStr(x)); end; Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |