1. givememoney66601.07.2024 в 03:39от
Загрузка...
Загрузка...

Генерация на отрезках в Паскале

Тема в разделе "С/С++/Pascal/Delphi", создана пользователем Mishka36, 29.04.2012.

  1. Mishka36

    Mishka36

    Статус:
    Оффлайн
    Регистрация:
    23.06.11
    Сообщения:
    414
    Репутация:
    139 +/-
    Мне нужно сгенерировать английские буквы и цифры.
    Я знаю только способ для генерации только букв или цифр, а чтобы вставить именно отрезок не знаю как.
    Генерация операется на таблицу ASCII.

    ...
    m:=char (random(26)+65); - английские буквы
    m:=char (random(10)+48); - цифры

    ...

    Вот как объединить генерацию цифр и букв вместе для массива 'm'???
     
  2. molot

    molot

    Статус:
    Оффлайн
    Регистрация:
    08.02.11
    Сообщения:
    28
    Репутация:
    2 +/-
    m:=char (random(10;26)+48;+65)
    нет?
     
  3. Mishka36

    Mishka36

    Статус:
    Оффлайн
    Регистрация:
    23.06.11
    Сообщения:
    414
    Репутация:
    139 +/-
    m:=char (random(10,26)+48,+65);
    Я так ниписал, просто в рандоме перечисляется всё через ",", но ответ паскаля был таким:"У операции преобразования типов допустим только один параметер".
    Что нельзя сделать как я хочу?
     
  4. envoy93

    envoy93

    Статус:
    Оффлайн
    Регистрация:
    31.03.12
    Сообщения:
    418
    Репутация:
    272 +/-
    можно велосипед какой-нибудь тут придумать)

    вот вариант заполнения массива:
    Код:
    for i:= 1 to N do
    begin
      k = random(36);
      if (k <= 10) then m[i]:= char (k+48);
      else m[i]:= char(k-10 + 65); // короче, char(k+55);
    end;
    тогда вероятность выпадения числа и символа будут одинаковы.
     
    Последнее редактирование: 29.04.2012
  5. Mishka36

    Mishka36

    Статус:
    Оффлайн
    Регистрация:
    23.06.11
    Сообщения:
    414
    Репутация:
    139 +/-
    мне нужен полный рандом, чтобы выполнялось не по алгоритмам, хоть даже 1 число, а остальные буквы, или наоборот)
     
  6. Mishka36

    Mishka36

    Статус:
    Оффлайн
    Регистрация:
    23.06.11
    Сообщения:
    414
    Репутация:
    139 +/-
    приблезительно к полному рандому сделал это:
    ...
    c:=random(0,2);
    if c=1 then
    m:=char (random(10)+48) else
    m:=char (random(26)+65);
    ...
     
  7. Synapsehome

    Synapsehome

    Статус:
    Оффлайн
    Регистрация:
    26.06.10
    Сообщения:
    804
    Репутация:
    514 +/-
    Полного рандома ты всёравно не получишь, это псевдорандом.
     
  8. Mishka36

    Mishka36

    Статус:
    Оффлайн
    Регистрация:
    23.06.11
    Сообщения:
    414
    Репутация:
    139 +/-
    Ну а ты не знаешь как сделать полный рандом в этой ситуации?