Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2007, 17:21   #1
BETONOMESHALKA
Пользователь
 
Аватар для BETONOMESHALKA
 
Регистрация: 25.06.2007
Сообщений: 40
По умолчанию Как поменять строчки текста в мемо

Как поменять строчки любого текста в мемо случайным образом так чтобы массив (начального положения строк) остался без изменения
Граф дракула наш кумир
Патамушта он ВОМПИР!
BETONOMESHALKA вне форума Ответить с цитированием
Старый 11.11.2007, 17:35   #2
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

BETONOMESHALKA может я сегодня заработался, но не мог бы ты уточнить, что именно хочешь получить в результате.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 11.11.2007, 19:18   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Если я правильно понял поставленную задачу, то:
1 - определяем число строк мемо NUMSTR
2 - создаем массив случайных (неповторяющихся) чисел, длиной NUMSTR
3 - создаем другой мемо (пустой) и начинаем:
1-ая строка его - это N-ая строка из старого мемо (индекс N - первый элемент массива случайных чисел)
2-ая строка его - это N+1-ая строка из старого мемо
и так далее.

Последний раз редактировалось mihali4; 11.11.2007 в 21:45.
mihali4 вне форума Ответить с цитированием
Старый 11.11.2007, 21:24   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Мне кажется если менять строки случайным образом, то в программе должен быть примерно такой цикл:
Код:
.........
repeat
for i:=1 to n do
a[i]:=random(n)+1;
until a[i]=i;
.......
puporev вне форума Ответить с цитированием
Старый 11.11.2007, 21:30   #5
BETONOMESHALKA
Пользователь
 
Аватар для BETONOMESHALKA
 
Регистрация: 25.06.2007
Сообщений: 40
По умолчанию

ALDeltA надо в произвольном тексте поменять строчки но так чтобы потом можно было проверить в правильном ли порядке юзер их расставил
Граф дракула наш кумир
Патамушта он ВОМПИР!
BETONOMESHALKA вне форума Ответить с цитированием
Старый 11.11.2007, 21:36   #6
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от BETONOMESHALKA Посмотреть сообщение
ALDeltA надо в произвольном тексте поменять строчки но так чтобы потом можно было проверить в правильном ли порядке юзер их расставил
Перед рандомизацией запоминаете текущее состояние списка А, мешаете и работаете с другим списком Б. После - сравниваете списки А и Б.
Alex21 вне форума Ответить с цитированием
Старый 11.11.2007, 21:48   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
Мне кажется если менять строки случайным образом, то в программе должен быть примерно такой цикл:
Код:
.........
repeat
for i:=1 to n do
a[i]:=random(n)+1;
until a[i]=i;
.......
А где проверка на уникальность значения random(n)?
mihali4 вне форума Ответить с цитированием
Старый 11.11.2007, 22:08   #8
GAGARIN-NEW
Познаю мир
Форумчанин Подтвердите свой е-майл
 
Аватар для GAGARIN-NEW
 
Регистрация: 05.10.2007
Сообщений: 387
По умолчанию

ДА я вот тоже пару раз сталкивался с random(xxx); и забывал делать проверку и получалось многих значений небыло(Они совпали...)
Интересно посматреть как бы выглядела эта проверочка....
---
GAGARIN-NEW вне форума Ответить с цитированием
Старый 11.11.2007, 22:18   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Интересно посматреть как бы выглядела эта проверочка....
Да ничего интересного - поэлементное сравнение с уже заполненным массивом.
mihali4 вне форума Ответить с цитированием
Старый 11.11.2007, 22:39   #10
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от GAGARIN-NEW Посмотреть сообщение
Интересно посматреть как бы выглядела эта проверочка....
Вот например:
Код:
const
N=9;
label lab;

var a:array[1..N] of integer;
    b:array[1..N,1..2]of integer;
    i,j,k:integer;
begin
  { TODO -oUser -cConsole Main : Insert code here }
  Randomize;

  for i:=1 to N do
  begin
    a[i]:=i;
    b[i,2]:=0;
    Write(a[i],' ');
  end;
  writeln;
  for i:=1 to N do
  begin
lab:
    k:=Random(N)+1;
    if b[k,2]=0 then
    begin
      b[i,1]:=a[k];
      b[k,2]:=1;
    end
    else goto lab;
    write(b[i,1],' ');
  end;
  readln;
end.
Первый массив А - заполняем по порядку от 1 до N.
А новый двумерный массив Б во втором поле содержит индексы "0" или "1" т.е. если "0" то значение i-го элемента массива А еще не бралось, если "1" то уже использовано.

Последний раз редактировалось Alex21; 11.11.2007 в 22:41.
Alex21 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранение текста из мемо BESS Компоненты Delphi 14 05.03.2012 15:26
Выделение текста В мемо BESS Компоненты Delphi 15 30.07.2008 17:07
Считывание номера строчки с мемо boostman Общие вопросы Delphi 1 24.05.2008 20:32
загрузка текста с http в мемо benjaminfran Работа с сетью в Delphi 3 05.03.2008 13:57
Цвет текста в Мемо через Handle rpy3uH Win Api 1 30.10.2006 20:05