Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
22 / 5 / 8
Регистрация: 07.12.2009
Сообщений: 122
1

Можно ли из символов одного слова составить другое.

12.03.2010, 15:46. Показов 6190. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не пойму как написать программу: например, задаем строку или вводим ее с экрана, например слово tutu, затем вводим еще одно слово, и программа должна вычислить можно ли из состава букв первого слова составить второе, если можно то вывести на экран-можно, если нет , то вывести лишние буквы и недостающие. Вот например: ввел tutu и сравнивается оно с utut - можно; вот еще одно условие, нужно смотреть если в первом слове стоят две одинаковые буквы(например в данном случае две t и две u), то на их месте во втором слове должны стоять также две одинаковые буквы; а вот слово utat уже нельзя составить из tutu, так как на месте "a" должна стоять u. (если что, то слова аналогичные: dudu, baba и т.д) Помогите пожалуйста, буду очень благодарен, а то я в строках слабоват.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2010, 15:46
Ответы с готовыми решениями:

Определить, можно ли из букв одного слова составить другое
Помогите, пожалуйста, составить программу на множества.

Определить, можно ли из букв одного слова составить другое слово
Запишите условие истинное, если: из букв фамилии «Соколенко» можно образовать слово "кокон".

Определить, можно ли из букв одного слова составить другое
Даны два слова, состоящие из одинакового количества букв(количество букв известно заранее)....

По заданным двум словам определить, можно ли из букв одного слова составить другое
по заданным двум словам определяет можно ли из букв одного слова составить другое

18
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
12.03.2010, 15:54 2
обьясню как ето сделать))) есть две стринговые переменные, первое и второе слово, теперь...
берем два цыкла, в первом проходим по символам первого слова во втором по второму и сравниваем буквы, если есть совпадение удаляем ети буквы из двух слов и переходим к следующей букве, итог если в втором слове не останетса букв то его можно составить, если в первом при етом остались какие-то буквы то они лишнее, если же в втором остались буквы то они недостающее) вобщем так вот) надеюсь теперь вам понятно как ето делать, ня)
1
22 / 5 / 8
Регистрация: 07.12.2009
Сообщений: 122
12.03.2010, 16:02  [ТС] 3
Всего то) ну спасибо, понял конечно)
0
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
12.03.2010, 16:04 4
Rodik, всего-то) правда там смотрите не поудаляйте лишнего и не проморгайте какую именно букву вы ищете))) там можно нахомутать)))
0
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
13.03.2010, 13:18 5
Можно иначе.
Заводим массив, который для каждой буквы содержит ее кол-во - то есть счетчик букв.
Строим такой массив A по первому слову и массив B по второму.
Потом сравниваем эти два массива.
Если в цикле по i верно что A[i]<=B[i], тогда можно составить.
Лишние или недостающие чтоже легко вычисляются.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
13.03.2010, 13:22 6
odip, Ну зачем из строки делать массив, если она и так массив? При чем удаление элементов из строки намного проще чем из массива символов.
0
22 / 5 / 8
Регистрация: 07.12.2009
Сообщений: 122
13.03.2010, 15:05  [ТС] 7
если кто может, напишите пожалуйста хотябы самое главное-серединку программы)
0
22 / 5 / 8
Регистрация: 07.12.2009
Сообщений: 122
13.03.2010, 16:50  [ТС] 8
а то меня смущает процесс удаления и как узнается то, что на месте тех одинаковых букв стоят две одинаковые буквы во втором слове. Если не трудно напишите пожалуйста хотяб середку проги.
0
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
14.03.2010, 10:12 9
odip, Ну зачем из строки делать массив, если она и так массив? При чем удаление элементов из строки намного проще чем из массива символов.
Массив из 256 элементов, где каждый элемент - integer.
Например 65-эй элемент содержит счетчик сколько раз встречается буква 'a' ( ord('a')=65 ).
В моем алгоритме удалять ничего не нужно - нужно просто посчитать сколько бука 'a', сколько 'b', и так далее.
И алгоритм гораздо быстрее, так как требуется всего O(N) действий.
0
22 / 5 / 8
Регистрация: 07.12.2009
Сообщений: 122
15.03.2010, 00:46  [ТС] 10
а КАК происходит сравнение то, что на месте букв в первом слове, стоят также две одинаковые буквы во втором???

Добавлено через 10 часов 3 минуты
Цитата Сообщение от Rodik Посмотреть сообщение
а КАК происходит сравнение то, что на месте букв в первом слове, стоят также две одинаковые буквы во втором???
PLEASE,очень надо...

Добавлено через 4 часа 27 минут
[QUOTE=Rodik;597727]а КАК происходит сравнение то, что на месте букв в первом слове, стоят также две одинаковые буквы во втором???

Подскажите пожалуйста.
0
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
15.03.2010, 10:17 11
Rodik, но вы же говорили что все ясно...
вот как вариант для одного цыкла... пробуйте я не проверял
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
uses crt;
var
i,j,k:integer;
s1,s2:string;
begin
writeln('slovo 1?');
readln(s1);
writeln('slovo 2?');
readln(s2);
for i:=length(s1) downto 1 do begin
k:=Pos(s1[i],s2);
if k>0 then begin
delete(s1,i,1);
delete(s2,k,1);
end;
end;
if s2='' then writeln('slovo sostavlaemo');
if s2<>'' then begin
writeln('slovo nesostavlaemo');
write('ne hwataet bykv ');
for j:=1 to length(s2) do write(s2[j],' ');
end;
if s1<>'' then begin
write('lishnie bykvu ');
for j:=1 to length(s1) do write(s1[j],' ');
end;
readln;
end.
1
22 / 5 / 8
Регистрация: 07.12.2009
Сообщений: 122
15.03.2010, 12:21  [ТС] 12
Спасибо большое, правда чуток не точно в буквах лишних и недостающих, но это не проблема...
0
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
15.03.2010, 12:46 13
Rodik, да незачто... а что не точно? кажысь все прально должно быть)
0
22 / 5 / 8
Регистрация: 07.12.2009
Сообщений: 122
15.03.2010, 12:50  [ТС] 14
да просто поменять надо местами недостающие и лишние...а то наоборот выводит в вместо лишних пишет недостающие,,......хотя это если посмотреть в каком слове...
0
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
15.03.2010, 12:58 15
стрянно ня...
вот вводим например первым словом "йцукен", ето слово из которого составляем
вторым словом "цукенгш" ето то что надо составить
нам пишет "составить мол нельзя, лишнее "й" не хватает "г", "ш"..."
разве не так должно быть? О_о
0
22 / 5 / 8
Регистрация: 07.12.2009
Сообщений: 122
15.03.2010, 13:00  [ТС] 16
я бы написал что лишнее "гш" а не хватает й ....
0
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
15.03.2010, 13:04 17
Rodik, а вам не кажетса что чтобы составить слово "цукенгш" из слова "йцукен" нам не хватает "гш" в слове "йцукен", а "й" в нем лишняя ня?
0
22 / 5 / 8
Регистрация: 07.12.2009
Сообщений: 122
15.03.2010, 13:07  [ТС] 18
Дак я то смотрю лишние во втором слове, то бишь в йцукен нету же гш , поэтому они и лишнее, вот...

Добавлено через 56 секунд
Цитата Сообщение от Rodik Посмотреть сообщение
Дак я то смотрю лишние во втором слове, то бишь в йцукен нету же гш , поэтому они и лишнее, вот...
Хотя кто с каким сравнивает)
0
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
15.03.2010, 13:09 19
ммм... ладно... по моему мнению у мну прально, если вы считаете иначе то там переделать не сложно) дерзайте)
0
15.03.2010, 13:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2010, 13:09
Помогаю со студенческими работами здесь

Проверьте, можно ли вычеркиванием букв из одного слова получить другое
Нужна помощь,заранее спасибо!!! Проверьте, можно ли вычеркиванием букв из одного слова получить...

Вывести слова, из которых можно составить другое слово
Прошу помощи..

Два слова есть анаграммами, если вы можете переставить буквы одного, чтобы составить другое
Два слова есть анаграммами, если вы можете переставить буквы одного, чтобы составить другое....

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


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru