Помощь - Поиск - Пользователи - Календарь
Полная версия: Нужно отредактировать программу
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Bart2000
Условие: Есть n цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов. Количество цветов и их название вводит пользователь. Ввод вывод в текстовый файл.
Есть программа на она делает перестановку не со словами а с цифрами, надо поправит.
 type
  mas=array [1..100] of integer;
var
    n,i:integer;
    a,p:mas;
procedure vivod(n:integer; var p:mas);
var i,j,imax:integer;
begin
  imax:=1; {Определяем количество блоков в разбиении}
  for i:=1 to n do
    if p[i]>imax then imax:=p[i];
  for i:=1 to imax do {Проходим по всем блокам данного разбиения}
    begin
    write('{');  {Выводим на экран i-й блок}
      for j:=1 to n do  {Просматриваем все элементы}
        if p[j]=i then write(a[j],' '); {Если элемент принадлежит i-му блоку то выводим его на экран}
          write('} ') {Блок напечатан}
    end;
  writeln; {Разбиение напечатано}
end;
procedure razb(i, j: integer);   {i- рассматриваемый элемент}
var l: integer;  {j- количество блоков в разбиении}
Begin {р - массив пометок, принадлежности к блоку разбиения}
if i>n then vivod(n, p) {Если рассматриваемый элемент больше, чем общее число элементов в множестве, то разбиение сформировано, выводим его}
  else
for l := 1 to j do   {Просматриваем все блоки}
    begin
      p[i] := l;  {Ставим i-й элемент в l-й блок, l=1,..,j}
      if l=j then razb(i+1, j+1) {Если i-й элемент вставили в последний блок, то переходим к следующему элементу i+1 и добавляем новый блок  j+1}
      else razb(i+1, j) {в противном случае переходим к следующему элементу i+1 не добавляя новый блок}
    end;
end;
begin
  writeln('Vvedite kol. el. v mnoj');
  readln(n);
writeln('vvedite elementi mnoj');
  for i:= 1 to n do
    read(a[i]);
  razb(1,1);
  readln;

end.

IUnknown
Опиши массив A не как mas, а как массив строк и читай туда названия цветов, тогда при выводе у тебя будут печататься названия, а не числа.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.