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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 09.12.2011, 00:23   #1
luybeznov
 
Регистрация: 07.12.2011
Сообщений: 6
По умолчанию как доделать программу?

надо вывести все возможные перестановки слов в предложении исключая повторения т.е. перестановки не должны повторяться, одинаковые перестановки не выводить.
например: Если дано предложение из одинаковых слов уу уу уу уу
перестановки будут такие:
уу уу уу уу
уу уу уу уу
уу уу уу уу
уу уу уу уу

а надо вывести только уу уу уу уу

вот сама задача ее надо доделать правильно

Код:
uses 
SysUtils; 

type Combination=array [1..100] of integer; 
var N: byte;S:string;p:integer; 
j,i:integer; 
x: combination; 
var a:array[0..100] of string; 

// Перевод из строки 
procedure Print; 
begin 

for i:=1 to n do 
write(' ',a[x]); 
writeln; 
end; 

procedure swap(var d,j:integer); 
var x:integer; 
begin 
x:=d; 
d:=j; 
j:=x; 
end; 

procedure generate(k:byte); 
var j:integer; 
begin 
if k=N then 
print 
else 
for j:=k+1 to n do begin 
swap (x[k+1],x[j]); 
generate(k+1); 
swap (x[k+1],x[j]); 
end; 
end; 
begin 

write('vvedite predlogenie: ');readln(s); 
s:=s+' '; j:=0; 
while copy (s,1,1)=' ' do delete(s,1,1); 
while s<>'' do begin 
j:=j+1; 
while copy (s,1,1)<>' ' do begin 
a[j]:=a[j]+copy (s,1,1); 
delete (s,1,1); 
end; 
while copy (s,1,1)=' ' do delete(s,1,1); 
end; 

N:=j; 
for i:=1 to N do x:=i; 
generate(0); 
readln; 
end.

Последний раз редактировалось Stilet; 09.12.2011 в 09:14.
luybeznov вне форума
Старый 09.12.2011, 03:18   #2
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Цитата:
надо вывести все возможные перестановки слов в предложении исключая повторения т.е. перестановки не должны повторяться, одинаковые перестановки не выводить.
например: Если дано предложение из одинаковых слов уу уу уу уу
перестановки будут такие:
уу уу уу уу
уу уу уу уу
уу уу уу уу
уу уу уу уу

а надо вывести только уу уу уу уу
Вот это сломало мне мозг =)
Злостный анимешнег =^.^=
Демик вне форума
Старый 09.12.2011, 07:29   #3
Ghost of Night
Форумчанин
 
Аватар для Ghost of Night
 
Регистрация: 08.08.2010
Сообщений: 371
По умолчанию

Код оформлять нужно!
Хакинг - не преступление, а способ выживания.
Ghost of Night вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Надо доделать программу Саша019960 Помощь студентам 1 29.11.2011 21:57
доделать программу Akeksander Помощь студентам 5 10.01.2011 01:15
немогу доделать программу IceFlame1292 Помощь студентам 6 09.01.2011 15:49
Доделать программу по БД nuevegramodelamor Фриланс 6 11.11.2009 09:55