Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 09.06.2019
Сообщений: 4

Генерация всех возможных комбинаций из элементов массива

25.06.2019, 09:26. Показов 5141. Ответов 7

Студворк — интернет-сервис помощи студентам
Всем привет, совсем недавно зарегистрировался на форуме, начал потихоньку изучать Pascal ABC, поэтому прошу помочь мне с написанием кода.
Задача такова:
Дан массив WordVar типа STRING, необходимо записать все возможные комбинация элементов массива в новый массив ReadyWords.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.06.2019, 09:26
Ответы с готовыми решениями:

Генератор всех возможных комбинаций символов из заданных
мне нужен генератор всех возможных комбинаций символов из тех которые я задам на Паскале например я задам 123 а должно получатся ...

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

Генерация всех возможных комбинаций слова путем манипуляций с регистрами букв
Привет всем! Появилась не стандартная задачка написать хитрый алгоритм. Вводим слово для примера газ (слово в нижнем регистре). ...

7
Заблокирован
25.06.2019, 11:17
как может выглядеть WordVar и что должно получиться?
0
0 / 0 / 0
Регистрация: 09.06.2019
Сообщений: 4
25.06.2019, 11:22  [ТС]
WordVar будет выглядеть как
WordWar[1]=а
WordWar[2]=б

Результат будет записан в ReadyWords
ReadyWords[1]=а
ReadyWords[2]=аб
ReadyWords[3]=ба
ReadyWords[4]=б
0
Заблокирован
25.06.2019, 14:46
мутно, но вроде работает
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
const Size=3;
type TWordVar=array[1..Size]of string;
     TReadyWords=array of string;
     TUse=array[1..Size]of integer;
     
procedure SetReadyWords(n:integer;WordVar:TWordVar;var ReadyWords:TReadyWords;var Use:TUse);
var i,k,sz:integer;
begin
  for i:=0 to Size do  
  begin
    k:=1;
    while k<n do
    begin
      if Use[k]=i then break;
      k:=k+1;
    end;
    if k=n then
    begin
      Use[n]:=i;
      if(n<Size)and(i<>0)then SetReadyWords(n+1,WordVar,ReadyWords,Use)
      else
      begin
        k:=1;
        while k<=Size do
        begin
          if Use[k]>0 then break;
          k:=k+1;
        end;
        if k<=Size then
        begin
          sz:=Length(ReadyWords);
          SetLength(ReadyWords,sz+1);
          ReadyWords[sz]:='';
          for k:=1 to Size do
            if Use[k]>0 then 
              ReadyWords[sz]:=ReadyWords[sz]+WordVar[Use[k]];
        end;
      end;
      Use[n]:=0;
    end;
  end;
end;
 
var WordVar:TWordVar:=('a','b','c');
    ReadyWords:TReadyWords;
    Use:TUse;
    i:integer;
begin
  for i:=1 to Size do Use[i]:=0;
  SetReadyWords(1,WordVar,ReadyWords,Use);
  for i:=0 to Length(ReadyWords)-1 do
    WriteLn(ReadyWords[i]);
  ReadLn;
end;
0
0 / 0 / 0
Регистрация: 09.06.2019
Сообщений: 4
27.06.2019, 00:34  [ТС]
А есть возможность модернизировать данный код и сделать возможность определять количество слов в готовой генерации, косноязычно сказал, но яснее станет, на примере ниже:

Комбинация из 2-ух слов:
TWordVar[1]=а
TWordVar[2]=б
TWordVar[3]=в

ReadyWords[1]=а
ReadyWords[2]=аб
ReadyWords[3]=ба
ReadyWords[4]=ав
ReadyWords[5]=ва
ReadyWords[6]=б
ReadyWords[7]=бв
ReadyWords[8]=вб
ReadyWords[9]=в
0
Заблокирован
27.06.2019, 06:54
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
const Size=4;
type TWordVar=array[1..Size]of string;
     TReadyWords=array of string;
     TUse=array[1..Size]of integer;
     
procedure SetReadyWords(n:integer;WordVar:TWordVar;var ReadyWords:TReadyWords;var Use:TUse;nw:integer);
var i,k,sz:integer;
begin
  for i:=0 to Size do  
  begin
    k:=1;
    while k<n do
    begin
      if Use[k]=i then break;
      k:=k+1;
    end;
    if k=n then
    begin
      Use[n]:=i;
      if(n<Size)and(n<nw)and(i<>0)then SetReadyWords(n+1,WordVar,ReadyWords,Use,nw)
      else
      begin
        k:=1;
        while k<=Size do
        begin
          if Use[k]>0 then break;
          k:=k+1;
        end;
        if k<=Size then
        begin
          sz:=Length(ReadyWords);
          SetLength(ReadyWords,sz+1);
          ReadyWords[sz]:='';
          for k:=1 to Size do
            if Use[k]>0 then 
              ReadyWords[sz]:=ReadyWords[sz]+WordVar[Use[k]];
        end;
      end;
      Use[n]:=0;
    end;
  end;
end;
 
var WordVar:TWordVar:=('a','b','c','d');
    ReadyWords:TReadyWords;
    Use:TUse;
    i,nw:integer;
begin
  Write('Слов: ');
  ReadLn(nw);
  for i:=1 to Size do Use[i]:=0;
  SetReadyWords(1,WordVar,ReadyWords,Use,nw);
  for i:=0 to Length(ReadyWords)-1 do
    WriteLn(ReadyWords[i]);
  ReadLn;
end.
0
0 / 0 / 0
Регистрация: 09.06.2019
Сообщений: 4
27.06.2019, 15:15  [ТС]
Будет время, гляну код, спасибо
0
2374 / 776 / 561
Регистрация: 15.01.2019
Сообщений: 2,394
28.06.2019, 12:57
Цитата Сообщение от Матфей Пересада Посмотреть сообщение
начал потихоньку изучать Pascal ABC,
Зря взялись. Pascal ABC это усеченный и очень плохой вариант Pascal. Лучше поставьте у себя Delphi или совершенно бесплатный Lazarus/Free Pascal. Они позволяют писать как консольные программы, так и приложения. Потом, когда развлечения с консолью вам надоест, и захотите перейти к созданию приложений, Delphi или Lazarus будут в самый раз.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.06.2019, 12:57
Помогаю со студенческими работами здесь

Перебор всех возможных комбинаций из элементов двумерной матрицы
Собственно задача: Фирме нужно закупить n товаров. Каждый товар можно купить у одного из m продавцов. Необходим алгоритм, перебирающий...

Генерация возможных комбинаций из двух чисел 0 и 1 при условии что 0 и 1 должно быть по N-количеству
Нужно сгенерировать все возможные комбинации длинной 16 символов из нулей и единиц,при условии что 0 и 1 должно быть по N-количеству ...

Сортировка всех возможных комбинаций 4 из 8
Задача состоит в том, что бы сложить 4 элемента массива, который состоит из 8 элементов, во всех возможных комбинациях int array; //...

Генератор всех возможных комбинаций
Нужно написать генератор всех возможных комбинаций, допустим состоящих из 2-х, 3-х, 4-х символов и сохраняющих комбинации в файл, вот...

Перебор всех возможных комбинаций
Доброго дня. Есть задание, написать брутфорс, по заданному алфавиту. То что представлено ниже, вроде успешно работает, но с 1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru