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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
#1

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

31.01.2013, 14:17. Просмотров 469. Ответов 7
Метки нет (Все метки)

Добрый день. Задали решить пару задач из задачника Абрамова. Только условия вообще не могу понять! Помогите, пожалуйста, чем-нибудь!! Заранее благодарен!!

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

Непонятно условие. Основы С++ (Найти все слова, в которых доля букв a, b максимальна) - C++
Добрый день. Задали решить пару задач из задачника Абрамова. Только условия вообще не могу понять! Помогите, пожалуйста, чем-нибудь!!...

Найти в последовательности все слова, из которых могла бы получиться другая последовательность - C++
Добрый вечер, нужна помощь в решении задачи. Даны символы а1....а10, натуральное число n, символы s1,...., sn. Будем рассматривать...

Найти максимальное число, которое может получиться в результате удаления ровно одной двоичной цифры - Free Pascal
Помогите решить задачу: У Маленького Слоника есть целое число a, записанное в двоичной системе счисления. Он хочет написать это число на...

Найти либо те слова в тексте, в которых есть все буквы определенного слова, либо те, в которых нет ни одной - VBA
1 - текстовое поле, куда пользователь вводит произвольный текст. 2 - текстовое поле, куда пользователь вводит одно слово. 3 - Вывод в...

Как могло получиться два одинаковых ключа в HashMap? - Java SE
Я буду приводить просто примеры. Вопрос сложный для меня, поэтому решил обратиться за помощью. Вот так "работает", "Петров" - 2, затирает...

Вывести все слова строки, в которых больше одной заглавной буквы, в алфавитном порядке - Lazarus
Заранее спасибо за помощь. Выведите на экран все слова строки, в которых больше одной заглавной буквы, в алфавитном порядке

7
ya_noob
_
202 / 146 / 9
Регистрация: 08.10.2011
Сообщений: 432
31.01.2013, 14:37 #2
У задачи слишком путанное условие. Тут можно похерить половину текста без потери смысла, например, вот так:

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

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

Добавлено через 1 минуту
Да, и не понятно вот это:
Цитата Сообщение от Dark-VIN Посмотреть сообщение
3) пропущена одна буква.
Есть еще условия? (почему 3)
1
Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
01.02.2013, 01:50  [ТС] #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...

 Комментарий модератора 
Запрещено давать ссылки на скачивание программ и книг с файлообменников (рапида, депозит и т.п.) и других сайтов (форумов), если есть возможность их скачать с сайтов фирм-производителей.
0
ya_noob
_
202 / 146 / 9
Регистрация: 08.10.2011
Сообщений: 432
01.02.2013, 08:44 #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,
1
Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
05.02.2013, 16:30  [ТС] #5
Да что-то все равно запутано так...
0
Igor3D
915 / 514 / 55
Регистрация: 01.10.2012
Сообщений: 2,547
05.02.2013, 16:55 #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;
}
1
Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
01.05.2013, 18:36  [ТС] #7
А как теперь вызывать эту функцию??
0
Igor3D
915 / 514 / 55
Регистрация: 01.10.2012
Сообщений: 2,547
02.05.2013, 09:54 #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));
1
02.05.2013, 09:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2013, 09:54
Привет! Вот еще темы с ответами:

Найти все числа, для которых выполняется условие - Pascal ABC
Четырехзначное число N разбили по центру на два двузначных числа: a и b. Найти все числа, для которых выполняется условие (a+b)^2=N

Дана строка. Найти в ней все слова, которые начинаются и заканчиваются одной и той же буквой. Вывести эти слова на экране. - Pascal ABC
Дана строка. Найти в ней все слова, которые начинаются и заканчиваются одной и той же буквой. Вывести эти слова на экране.

задан текст. удалить из нее все слова, длина которых четная (создать новый массив, оставив все слова, длина которых нечетная) - C++
задан текст. удалить из нее все слова, длина которых четная (создать новый массив, оставив все слова, длина которых нечетная)

В заданном массиве строк найти все слова, в которых 2 раза встречается символ и вывести эти слова - C (СИ)
не могу сообразить как написать цикл, в котором он выделяет слова, и потом выделяет из этих слов слова с 2мя одинаковыми символами. Мой код...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru