Форум программистов, компьютерный форум CyberForum.ru

Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки) - C++

Восстановить пароль Регистрация
 
Dark-VIN
 Аватар для Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
31.01.2013, 14:17     Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки) #1
Добрый день. Задали решить пару задач из задачника Абрамова. Только условия вообще не могу понять! Помогите, пожалуйста, чем-нибудь!! Заранее благодарен!!

Тема: Программирование задач по обработке последовательности символов.
Задача 366 (3)
Даны символы a1,…,a10, натуральное число n , символы S1,…,Sn . Как и в предидущей задаче, будем рассматривать слова, входящие в последовательность S1,…,Sn , по-прежнему считая, что количество символов в каждом слове не превосходит 15. Будем также считать, что среди символов a1,…,a10 нет прорбелов, и поэтому последовательность a1,…,a10 может рассматриваться как одно слово. В словах могут быть ошибки:
3) пропущена одна буква.
Требуется найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2013, 14:17     Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки)
Посмотрите здесь:

C++ Для заданного достаточно длинного слова найти в имеющемся тексте все слова, в которых использованы только буквы, имеющиеся в заданном слове
C++ [C++] Найти все слова,в которых доля букв a,b максимальна.
C++ Найти все слова,в которых доля букв a,b максимальна.
Найти в тексте все слова, буквы в которых упорядочены по алфавиту. C++
C++ Непонятно условие. Основы С++ (Найти все слова, в которых доля букв a, b максимальна)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ya_noob
_
200 / 144 / 9
Регистрация: 08.10.2011
Сообщений: 432
31.01.2013, 14:37     Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки) #2
У задачи слишком путанное условие. Тут можно похерить половину текста без потери смысла, например, вот так:

"Дано слово, состоящее из символов a1,…,a10, натуральное число n , символы S1,…,Sn:
Требуется найти в S1,…,Sn все слова, из которых могло бы получиться слово a1,…,a10 без одной буквы."

Так легче понять?

Добавлено через 1 минуту
Да, и не понятно вот это:
Цитата Сообщение от Dark-VIN Посмотреть сообщение
3) пропущена одна буква.
Есть еще условия? (почему 3)
Dark-VIN
 Аватар для Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
01.02.2013, 01:50  [ТС]     Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки) #3
Ну... Такое условие в книге.

3) - это по номеру варианта нужно сделать пункт 3...

Полная Задача выглядит так:

366. Даны символы a1,…,a10, натуральное число n , символы S1,…,Sn . Как и в предидущей задаче, будем рассматривать слова, входящие в последовательность S1,…,Sn , по-прежнему считая, что количество символов в каждом слове не превосходит 15. Будем также считать, что среди символов a1,…,a10 нет прорбелов, и поэтому последовательность a1,…,a10 может рассматриваться как одно слово. В словах могут быть ошибки:
1) переставлены две соседние буквы;
2) заменена одна буква;
3) пропущена одна буква.
Требуется найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки.

Предидущая задача (365):

365. Даны натуральное число n, символы S1...,Sn. Будем рассматривать слова, образованные символами, входящими в последовательность S1,...,Sn (см. задачу 269) считая при этом, что количество символов в каждом слове не превосходит 15.
а) Найти наибольшую длину символов-палиндромов. (Если палиндромов нет. то ответом должно быть число 0.)
б) Выяснить, верно ли. что каждое слово, не являющееся палиндромом, имеет четную длину.
в) Выяснить, имеются ли два слова, каждое из которых получается переворачиванием другого.
г) Удалить из S1,...,Sn все слова, встречающиеся более двух раз.


269:

269. Даны натуральное число n, символы S1,...,Sn. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами.
а) Подсчитать количество слов в данной последовательности.
б) Подсчитать количество букв а в последнем слове данной последовательности.
в) Найти количество слов, начинающихся с буквы б.
г) Найти количество слов, у которых первый и последний
символы совпадают между собой.
д) Найти какое-нибудь слово, начинающееся с буквы а.



В итоге всего, нужно зделать задачу 369, пункт 3...

 Комментарий модератора 
Запрещено давать ссылки на скачивание программ и книг с файлообменников (рапида, депозит и т.п.) и других сайтов (форумов), если есть возможность их скачать с сайтов фирм-производителей.
ya_noob
_
200 / 144 / 9
Регистрация: 08.10.2011
Сообщений: 432
01.02.2013, 08:44     Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки) #4
Ясно.
Цитата Сообщение от Dark-VIN Посмотреть сообщение
Помогите, пожалуйста, чем-нибудь!!
Вы чего хотите то? Идею или готовую программу?

Идея №1:
Проверьте сколько символов слова "a" содержится в массиве символов "S":
- если все, то выводим все возможные варианты слова "a" без одной буквы (например, если a = "abra", S = "braasty", то возможными ответами будут "bra", "ara", "aba" и "abr" )
- если только одной буквы слова "а" нет в массиве "S", то выводим все возможные варианты слова "а" без этой буквы (например, если a = "abra", S = "brasty", то возможными ответами будут "abr" и "bra" )
- если в "S" не хватает более одной буквы, то решений нет

Идея №2:
В идеи №1 есть такой момент: здесь предполагается, что слова должны быть различными. Но если это не так, то вариантов решения становится больше. Например, для a = "abra" и S = "braasty" возможными вариантами будут следующие:
b r a(0), b r a(3), a(0) r a(3), a(3) r a(0), a(0) b a(3), a(3) b a(0), a(0) b r, a(3) b r,
где в скобках указан индекс буквы а в массиве S.
Здесь решение уже намного сложнее, т.к. надо перебирать все возможные перестановки одинаковых букв.

Добавлено через 50 минут
Упс, ошибочка:
вместо
b r a(0), b r a(3), a(0) r a(3), a(3) r a(0), a(0) b a(3), a(3) b a(0), a(0) b r, a(3) b r,
надо
b r a(2), b r a(3), a(2) r a(3), a(3) r a(2), a(2) b a(3), a(3) b a(2), a(2) b r, a(3) b r,
Dark-VIN
 Аватар для Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
05.02.2013, 16:30  [ТС]     Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки) #5
Да что-то все равно запутано так...
Igor3D
793 / 410 / 33
Регистрация: 01.10.2012
Сообщений: 2,071
05.02.2013, 16:55     Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки) #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool Check1Missed( const char * beg1, const char * end1,   // первое слово (начало и конец)
                               const char * beg2, const char * end2 )  // второе
{
 if (end1 - beg1 + 1 != end2 - beg2) return false; // дина второго должна быть больше на 1
 int num = 0; 
 while (beg1 < end1) {
  if (beg1[0] != beg2[0]) {
   if (num) return false;
   ++num;
   ++beg2;
  }
  ++beg1;
  ++beg2;
 } 
 return num == 1;
}
Dark-VIN
 Аватар для Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
01.05.2013, 18:36  [ТС]     Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки) #7
А как теперь вызывать эту функцию??
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2013, 09:54     Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки)
Еще ссылки по теме:

задан текст. удалить из нее все слова, длина которых четная (создать новый массив, оставив все слова, длина которых нечетная) C++
Строки. Найти все слова, которые начинаются и заканчиваются одной и той же буквой. C++
C++ Найти все слова, в которых совпадает 3 и более букв

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

Или воспользуйтесь поиском по форуму:
Igor3D
793 / 410 / 33
Регистрация: 01.10.2012
Сообщений: 2,071
02.05.2013, 09:54     Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки) #8
Цитата Сообщение от Dark-VIN Посмотреть сообщение
А как теперь вызывать эту функцию??
C++
1
2
3
const char * s1 = "TheString";
const char * s2 = "The2String";
bool test = Check1Missed(s1, s1 + strlen(s1), s2, s2 + strlen(s2));
Yandex
Объявления
02.05.2013, 09:54     Непонятно условие. Основы С++ (найти в S1,…,Sn все слова, из которых могло бы получиться a1,…,a10 в результате одной ошибки)
Ответ Создать тему
Опции темы

Текущее время: 00:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru