Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачник_Главы 5-6.doc
Скачиваний:
2
Добавлен:
15.08.2019
Размер:
665.09 Кб
Скачать

Задания

    1. Ввести с клавиатуры строку символов. Выдать на экран все слова из этой строки, длина которых отличается от средней длины слова не более чем на два символа. При отсутствии слов с указанными свойствами выдать на сообщение на экран.

    2. Ввести две строки символов. Найти три самых длинных слова из двух строк.

    3. Для каждого из слов заданной строки указать, сколько раз оно встречается в строке.

    4. Ввести строку символов. Сформировать новую строку, скопировав в нее слова исходной строки, которые читаются одинаково слева направо и справа налево.

    5. Ввести две строки символов. Найти и вывести совпадающие в этих строках слова.

    6. Удалить среднюю букву при нечетной длине строки и две средние буквы при четной длине строки.

    7. Дан текст. Определить количество слов, начинающихся и оканчивающихся одной и той же буквой.

    8. Удвоить вхождение некоторой буквы в текст. Например, текст «мама папа» должен иметь вид — «маамаа паапаа».

    9. Ввести строку символов. Определить длину самого короткого и самого длинного слова.

    10. Ввести строку символов. Определить количество слов, которые содержат определенное число вхождений заданной буквы.

    11. Ввести строку символов. Вывести слова, встречающиеся в тексте по одному разу.

    12. Ввести строку символов. Составить программу проверки правильности написания сочетаний «жи», «ши», «ча», «ща», «чу» и «щу». Исправить ошибки.

    13. Ввести строку символов. Вывести все различные слова.

    14. Даны две строки. Определить, можно ли из символов первой строки и пробелов составить вторую строку. Разрешается использовать не все символы первой строки, и каждый символ можно использовать несколько раз. Например, из строки 'ВЕРТИКАЛЬ' можно составить строку 'ВЕТКА ЕЛИ'.

    15. Ввести строку символов. Вывести все слова, предварительно заменив в них первую букву на заглавную.

    16. Дано слово. Составить алгоритм, который дописывает к нему его «зеркальное отображение». Пример: ОляялО.

    17. Дана строка. Сформировать новую строку, отличающуюся от данной тем, что в ней нет подряд идущих одинаковых символов.

Пример: Исходная строка:' КРРАААСОТАААА'

Результат: 'КРАСОТА'

    1. Дана строка. Сформировать новую строку, отличающуюся от данной тем, что группы идущих подряд одинаковых элементов разделены звездочками.

Пример:

Исходная строка: ' wdddkeuupppppmzz'

Результат: ' w*ddd*k*e*uu*ppppp*m*zz'

    1. Дана строка. Проверить, является ли она перевертышем после удаления из нее всех пробелов. Например, строка 'АРГЕНТИНА МАНИТ НЕГРА' является перевертышем.

    2. Дан текст, в котором слова отделяются друг от друга одним или несколькими пробелами. Найти в нем слова-рифмы для слова максимальной длины (рифма — совпадение трех последних символов).

    3. Дано предложение, сформировать новое предложение, в котором отсутствует самое короткое слово, оканчивающееся на символ «а».

    4. Дана строка. Сколько и каких символов содержит самая длинная группа идущих подряд одинаковых символов?

Пример:Исходная строка: ' wdddkeuuppppppmzz'

Результат: 5 - р

    1. Задана произвольная строка, состоящая из нулей и единиц. Сформировать новую строку таким образом, чтобы в ней шли попарно единицы и нули, а затем - оставшиеся нули и единицы. Например, для строки 11010011011 получить строку 10101010111.

    2. Дана строка символов. Вывести все слова, предварительно оставив в слове только первые вхождения каждой буквы.

    3. Дана строка символов. Вывести слова, которые отличны от последнего слова и в них нет повторяющихся букв.

    4. Дана строка символов. Определить частоту вхождения каждой буквы по отношению к общему количеству букв (в процентах).

    5. Задана строка символов, содержащая латинские буквы, в том числе и повторяющиеся. Сформировать новую строку, в которой символы исходной строки расположены в алфавитном порядке. Например, для строки ВАЕТВЕК получить АВВЕЕКТ.

    6. В качестве разделителей слов в тексте используется запятая, точка, один или несколько пробелов. Определить количество и процент слов, превышающих по длине пять символов.

    7. Текст, содержащийся в символьной строке, состоит из букв, цифр и разделителей (пробел, точка, запятая, точка с запятой и двоеточие). Сжать текст в строке, удалив из него разделители. Например, для строки КС,ВЕР:Т_Н8.1 получить КСВЕРСТН81.

    8. В символьной строке найти наиболее длинную группу подряд идущих единиц. Определить количество единиц в этой группе и порядковый номер первой единицы этой группы в строке.

    9. В состав символьной строки входят только цифры и латинские буквы. Сформировать новую строку, в которой вначале идут все буквы исходной строки, а затем - все цифры.

    10. Символьная строка содержит буквы и пробелы. Преобразовать строку так, чтобы между каждыми двумя буквами был один пробел. В начале и конце строки также записать по одному пробелу. Например, для строки АБ_ВГД_Е__ЖЗИ получить _АБ_ВГ_ЖЗ_И_ .

    11. Символьная строка содержит некоторый текст. Слова в тексте разделены одним или несколькими пробелами. Преобразовать строку таким образом, чтобы в ее начале были записаны три пробела, промежутки между словами составляли два пробела, а в конце строки пробелы отсутствовали. Например, для строки _АБВ_ГДЕЖ___ЗИ_КЛ_ получить ___АБВ__ГДЕЖ__ЗИ__КЛ .

    12. Символьная строка содержит цифры и буквы. Первым символом строки должна быть буква. Если это не так, перенести цифры из начала строки в ее конец. Например, для строки 814А6ВГ получить А6ВГ814.

    13. Символьная строка содержит список фамилий. Слова в строке разделены между собой одним или несколькими пробелами. Определить, сколько фамилий имеют окончание -ов. При этом учесть, что буквосочетание -ов может быть также в начале или в середине слова. Например, для строки:

ОРЛОВ_СИТИН_ИВАНОВ_РОВНИН__ОВСОВ получить n=3.

    1. В символьной строке содержится список русских слов, разделенных одним или несколькими пробелами. Определить и напечатать пары слов, состоящих из одних и тех же букв (например, ТОВАР и АВТОР, ВЕСНА и НАВЕС, САЛАТ и АТЛАС, СЛОВО и ВОЛОС и т. п. ).

    2. В символьной строке записан текст на русском языке. В качестве разделителей слов используется точка, запятая, двоеточие, точка с запятой или пробел, причем и каждому из этих разделителей может быть добавлено слева и (или) справа несколько пробелов. Определить количество слов, имеющих окончание -ая.

    3. В символьной строке найти наибольшую длинную и наиболее короткую группу пробелов, считая от начала строки, и поменять их местами. Например, для строки А_БВ__ГДЕ___ЖЗ получить А___БВ__ГДЕ_ЖЗ .

    4. В символьной строке сгруппировать одинаковые символы в той последовательности, в какой они встречаются в тексте. Например, для строки АХСАРТХААСТВ получить ААААХХССРТТВ.

    5. Подсчитать сумму цифр, встречающихся в строке символов.

    6. Слова в тексте, содержащиеся в символьной строке, в общем случае имеют различную длину и разделены между собой одним пробелом. В начале и в конце строки пробелы отсутствуют. Преобразовать заданную строку, распо­ложив в ней слова в обратном порядке.

    7. В символьной строке содержится список идентификаторов, разделенных запятыми. Удалить из списка повторяющиеся идентификаторы, сократив соответственно длину строки. Например, для строки А,ВЕТА5,НК,A,APT,ВЕТА5,А получить А,БЕТА5,НК,АРТ .

    8. В символьной строке содержится список слов, разделенных между собой косой чертой (/). Слова состоят из букв и цифр. Если вначале слова стоят цифры, переставить их в конец слова с тем, чтобы каждое слово начиналось с буквы.

Например, для строк: АВ5/82СНК1/359ЕМРТ/Х52А

получить: АВ5/СНК182/ЕМРТ359/Х52А .

    1. В символьной строке потоком записаны группы цифр и группы букв. Требуется разделить между собой эти группы одним пробелом. Напечатать f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000преобразованную строку, количество содержащихся в ней групп цифр и групп букв, а также общее количество букв.

Например, для строки: 58ABC6931AEF5G601HKLMN8X

получить: 58_ABC_6931_ДEF_5_G_601_HKLMN_8_X .

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

    2. В символьной строке записаны только цифры. Преобразовать строку, расположив содержащиеся в ней цифры в порядке убывания.

    3. Текст, содержащийся в символьной строке, состоит из букв, цифр и других символов. Определить, сколько раз в строке встречается изолированное буквосочетание -АА-, то есть сочетание, окаймленное слева и справа любым другим символом, кроме буквы А. При этом необходимо учесть, что если такое сочетание находится в начале или в конце строки, то для него с одной стороны отсутствует смежный символ.

    4. В символьной строке записан некоторый текст. Слова текста разделены между собой одним или несколькими пробелами. Сжать текст, оставив между словами, а также в начале и в конце текста только по одному пробелу.

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

Например, для строки: _АБВ_ГДЕЖ__ЗИ___КЛМ___НО_ПР_

получить: ___АБВ_ГДЕЖ__ЗИ_КЛМ__НО__ПР_.

    1. В символьной строке записано выражение, в которое входят простые переменные, переменные с индексами, знаки арифметических операций и скобки. Сформировать в виде символьной строки список переменных с индексами, разделив элементы списка запятыми. Признаком переменной с индексами считать отсутствие знаков операций между именем переменной и открывающей скобкой.

Например, для строки: А+В(8)*(5/С-Т(К)+МН8(К+1)-РТ(7,К)

получить: В(8),Т(К),МН8(К+1),РТ(7,К).

    1. В символьной строке содержится список десятичных констант с фиксированной точкой. Элементы списка разделены запятыми. Если константа имеет дробную часть, то оставить только одну цифру в дробной части, отбросив все остальные цифры. Получить новую символьную строку.

Например, для строки: 58.35,+16,24.1,225.188,-14.5,-221.124

получить: 58.3,+16,24.1,225.1,-14.5,-224.1 .

    1. В символьной строке записан список десятичных чисел с плавающей запятой. Элементы списка разделены запятыми. Требуется вставить знак (+) для тех чисел, которые не имеют явно записанного знака перед мантиссой или перед порядком.

Например, для строки: 3.52Е-4,-1б8.3Е24,0.8Е5,-44.52Е-6

получить: +3.52Е-4,-168. 3Е+24 ,+0. 8Е+5 ,-44 ,+52Е-6.

    1. В символьной строке содержится список целых десятичных чисел, причем знак числа записан после последней цифры числа. Элементы списка разделены одним или несколькими пробелами. Преобразовать строку таким образом, чтобы для отрицательных чисел знак был записан перед первой цифрой числа, а для положительных - знак не указывать.

Например, для строки: 535 +24-35 ++ 7865

получить: 535 - 24 35 -7865 .

    1. В символьной строке записан текст на русском языке. Слова текста разделены между собой одним или несколькими пробелами. Определить и отпечатать слово, содержащее наибольшее количество подряд идущих согласных букв.

    2. В символьной строке содержатся некоторые выражения. Сформировать новую строку, записав в нее в начале все цифры, а затем - все буквы заданной строки в их исходной последовательности. Отпечатать полученную строку и ее длину.

Например, для строки: (А+В-ТН5*4/(72.8-14*КМ8)*(62-5*А)+1

получить: 547281486251АВТНКМА .

    1. Для строки, состоящей из нулей и единиц, сформировать новую строку, вставив после каждой единицы дополнительный нуль. Например, для строки 1100101110 получить 1010001001010100.

    2. Строку, состоящую из нулей и единиц, преобразовать таким образом, чтобы все единицы были поровну расположены в начале и конце строки. А все нули - в середине. Если в строке содержится нечетное количество единиц, то в конце строки должно быть на единицу больше. Например, для строки 11010011011 получить 11100001111.

    3. Строку, состоящую из нулей и единиц, преобразовать таким образом, чтобы в начале шли все содержащиеся в ней нули, а затем - единицы.

Например, для строки 1101000110 получить 0000011111.

    1. Преобразовать строку, состоящую из нулей и единиц таким образом, чтобы в начале шли все содержащиеся в ней единицы, а затем нули.

    2. В символьной строке, состоящей из произвольных символов, имеются подряд идущие одинаковые символы. Найти наиболее длинную группу повторяющихся символов.

    3. В символьной строке заменить содержащиеся в ней цифры пробелами. Например, для строки AB89_KC4TN84 получить АВ__KC_TN__ .

    4. Символьная строка содержит буквы и пробелы. Преобразовать строку таким образом, чтобы буквы были разделены между собой только одним пробелом, уменьшив соответственно длину строки. В начале и в конце новой строки пробелов не должно быть.

Например, для строки __А_Б__В_Г___Д__Е_ получить А_Б_В_Г_Д_Е .

    1. Символьная строка содержит буквы и цифры, причем после каждой буквы стоит одна цифра. Сформировать новую строку, заменив цифры соответствующим количеством пробелов.

Например, для строки А2Б1ВЗГ0Д4 получить А__Б_В___ГД____ .

    1. Для строки, состоящей из нулей и единиц, сформировать новую строку так, чтобы единицы в ней были разделены между собой одним нулем. В начале и в конце строки должно быть записано по два нуля. Например, для строки 100111010110 получить 00101010101010100.

    2. Дана символьная строка, состоящая из нулей и единиц. Разделить строку на участки таким образом, чтобы количество единиц в каждом участке последовательно возрастало. Для последнего участка допускается нарушение указанной последовательности.

Например, для строки 0110011101011101101110110

получим участки 01, 1001, 1101, 011101, 1011101, 10.

    1. Определить, сколько имеется в символьной строке единиц, окруженных слева и справа, по крайней мере, одним нулем, и заменить каждую такую единицу нулем.

    2. Символьная строка содержит текст на русском языке и представляет собой список глаголов, имеющих окончание -ть. Слова в строке между собой не разделены. Сформировать новую строку, в которой слова разделены между собой одним пробелом.

Например, для строки ЕХАТЬУЧИТЬСТОЯТЬХОДИТЬ

получить ЕХАТЬ УЧИТЬ СТОЯТЬ ХОДИТЬ .