Приобретение и закрепление знаний о представлении данных типа строка символов и о стандартных функциях, определенных для типов char и string.
Ввод исходных данных, вызов разработанной функции, проверку успешности выполнения и печать результатов ее работы выполнять из функции Main() класса программы.
N п/п
| Имя процедуры/функции
| Уровень сложности
| Назначение
|
| Copy(s, n)
|
| Копирование строки s в новую строкуn раз
|
| Words(s)
|
| подсчет числа слов в строке s
|
| SymCount(s, с)
|
| определить количество заданных символов cв строке s
|
| PairCount(s, с)
|
| определить количество пар рядом расположенных символов cв строке s
|
| FirstLetter(s, c)
|
| Подсчет количества слов в строке, начинающихся на заданную букву
|
| WordsCount(s, n)
|
| Подсчет количества слов в строке, состоящих из n символов
|
| SameCount(s, n)
|
| Подсчет количества слов в строке, начинающихся и заканчивающихся на одну и ту же букву
|
| IsSameLength(s)
|
| Проверка, имеют ли все слова в строке одинаковую длину
|
| IsSortedLen(s)
|
| Проверка, все ли слова в строке упорядочены по возрастанию их длины
|
| IsSortedABC(s)
|
| Проверка, упорядочены ли слова в строке по алфавиту
|
|
|
|
|
| Left(s, m, c)
|
| выравнивание строки sслева до длины m, добавляя заданный символ с
|
| Right(s, m, c)
|
| выравнивание строки s справа до длиныm, добавляя заданный символ с
|
| LastPos(s, s1)
|
| поиск позиции последнего вхождения подстроки s1 в строку s
|
| WordLength(s, n)
|
| определение длины слова с номеромn
|
| StrLWord(s, k)
|
| определить количество слов длиной больше, чем длина слова с номером кв строке s
|
| AddLetterLen(s, c, k)
|
| Добавить к каждому слову строки слева символ с, если это слово короче к символов, и справа – если длиннее
|
| OddLenWords(s)
|
| Составить новую строку из слов четной длины исходной строки
|
| EvenWords(s)
|
| Составить новую строку из слов исходной строки с нечетными номерами
|
| SwapWords(s)
|
| Поменять местами первое и последнее слово в строке
|
| LengthWords(s)
|
| Вернуть строку, содержащую длины всех слов исходной строки, разделенные одним пробелом
|
|
|
|
|
| InsCenter(s1, s2)
|
| центрирование - расположение строки s1 в середине строки s2
|
| Insert(s, s1, n)
|
| вставка в строку s строки s1, начиная с позиции n
|
| WordIndex(s, n)
|
| определение позиции начала в строке s слова с номером n
|
| WordCmp(s1, s2)
|
| сравнение строк (с игнорированием множественных пробелов между словами).
|
| DelSubstr(s, n, k)
|
| удалить из строки s подстроку, начиная с позиции n длиной к
|
| StrIns(s, s1, n)
|
| вставить в строку s подстроку s1, начиная из позиции n
|
| StrRev(s)
|
| переписать строку s так, чтобы символы в ней были записаны в обратном порядке
|
| DelBlank(s)
|
| удалить в строке s начальные, хвостовые и множественные пробелы между словами
|
| IsAnagram(s)
|
| Определить, является ли заданное в строке слово анаграммой
|
| DelMaxWord
|
| Удалить из строки слово максимальной длины
|
|
|
|
|
| SubWords(s, n, m)
|
| выделение из строки s m слов, начиная со слова номер n
|
| Overlay(s, s1, n)
|
| Перекрытие части строки s, начиная с позиции n строкой s1
|
| StrCChar(s, c1, c2)
|
| заменить все символы с1 в строке s на символы с2
|
| StrLB(s, n)
|
| заменить в строке s, начиная из позиции n, все малые буквы на большие
|
| SumNumbers(s)
|
| Если в строке есть «слова», состоящие только из цифр (т.е. целые числа), то определить их сумму
|
| CountAnagram(s)
|
| Подсчитать, сколько анаграмм имеется среди заданных в строке слов
|
| ReplacePairs(s)
|
| Поменять местами каждую пару рядом стоящих слов
|
| ReplMinMax(s)
|
| Поменять в сроке местами слова максимальной и минимальной длины при условии отсутствия в них одинаковых букв
|
| SortWords(s)
|
| Упорядочить слова в строке по возрастанию их длины
|
| SortedLetters(s)
|
| Подсчитать, сколько в строке слов, в каждом из которых буквы упорядочены по алфавиту
|
|
|
|
|
| Parse(s, c)
|
| разбиение строки s на две части: до первого вхождения символа c и после него. Первую часть вернуть в вызывающую функцию, исходную строку заменить на вторую часть.
|
| ReverseWords(s)
|
| реверсирование каждого слова строки s (с сохранением позиции слов в строке)
|
| StrDelRep(s)
|
| удалить копии слов в строке s при условии, что одинаковые слова записаны рядом одно с другим
|
| ExchWords(s1, s2)
|
| Даны две строки со словами. Обменять местами слова с четными номерами в этих строках
|
| CountWordsGS(s)
|
| Определить число слов в строке, у которых количество гласных и согласных совпадает
|
| DelLastGl(s)
|
| Удалить в каждом слове строки последнюю гласную букву
|
| DelWords(s)
|
| Удалить из строки все слова с четными номерами, имеющие нечетное количество гласных букв
|
| CountWordsFL(s)
|
| Определить число слов в строке, у которых первая и последняя буквы либо обе гласные, либо обе согласные
|
| SwapWordsFL(s)
|
| Поменять в строке местами первые два слова, у которых совпадают первые и последние буквы
|
| DelWordsABC(s)
|
| Удалить из строки все слова, нарушающие алфавитный порядок слов
|
|
|
|
|
| ExtractAll(s1, s2)
|
| Удалить из строки s1 все вхождения строки s2, сцепить их в одну строку и вернуть в вызывающую функцию
|
| StrSpn(s, s1)
|
| нахождение длины той части строки s, которая содержит только символы из строки s1
|
| DelBetween(s1, s2)
|
| Удалить из строки s1 все слова, расположенные между первым и последним вхождением слова, заданного в строке s2
|
| SortWordsByGlas(s)
|
| Поменять местами слова строки так, чтобы они следовали в порядке возрастания количества гласных букв
|
| ExchWordsGS(s)
|
| Поменять местами первое слово строки, состоящее только из гласных, с последним словом, состоящим только из согласных
|
| DelDuplicate(s)
|
| Удалить из строки все повторяющиеся слова
|
| MaxDistance(s, k)
|
| Расстояние между двумя словами равной длины — это количество позиций, в которых различаются эти слова. В заданной строке найти пару слов заданной длины с максимальным расстоянием
|
| CommonWords(s1, s2)
|
| Найти слова, встречающиеся в каждой из двух заданных строк и добавить их (в одном экземпляре) в новую строку
|
| DupWords(s)
|
| Продублировать в строке все слова четной длины, встречающиеся в ней в одном экземпляре
|
| SwapWordsGlas(s)
|
| Обменять в строке первое слово с последним, второе с предпоследним и т.д. при если количество гласных в обмениваемой паре совпадает
|
|
|
|
|
| StrCSpn(s, s1)
|
| нахождение длины той части строки s, которая не содержит символы из строки s1
|
| DelWords(s1, s2)
|
| Удалить из строки s1 все слова, которые есть в строке s2
|
| DelBetweenAny(s1, s2)
|
| Удалить из строки s1 все слова, расположенные между первым и последним вхождением любого слова, содержащегося в строке s2
|
| ExpValueNoP(s)
|
| Вычислить значение арифметического выражения, состоящего из числовых констант и четырех арифметических операций (без учета приоритета операций)
|
| BrTest(s)
|
| Строка содержит фрагмент программы, использующий скобки различных типов. Проверить корректность расстановки скобок
|
66.
| WordsTest(s1, s2)
|
| Две строки содержат по одному слову каждая. Проверить, можно ли из входящих в первую строку, составить вторую (буквы можно использовать не более одного раза и можно переставлять).
|
| FromRoman(s)
|
| В строке содержится число, записанное римскими цифрами. Найти его десятичный эквивалент
|
| CodeText(s1, s2, k)
|
| Выполнить кодировку-декодировку текста из первой строки с использованием ключа во второй строке. Кодировку выполнить сложением кодов символов исходной строки и ключа, декодировку – вычитанием. Тип операции (кодирование или декодирование) определяется третьим параметром
|
| Robot_K79(s)
|
| Программа движения робота состоит из следующих команд:
S — сделать шаг вперед
L — повернуться на 90° влево
R — повернуться на 90° вправо
Определить, сколько шагов сделает робот по заданной программе, прежде чем вернется на место, где уже был (или факт, что этого не произойдет)
|
|
|
|
|
|
|
|
|
| CheckIdent(s)
|
| Проверить, является ли заданная строка правильной записью идентификатора переменной
|
| CheckFloat(s)
|
| Проверить, является ли заданная строка правильной записью константы с плавающей точкой
|
| CheckHex(s)
|
| Проверить, является ли заданная строка правильной записью шестнадцатеричной константы
|
| ExpValuePr(s)
|
| То же, что в варианте 64, но с учетом приоритета операций
|
| RomanNumber(n)
|
| Для заданного числа сформировать его представление римскими цифрами
|
| FindMaxSorted(s)
|
| Найти наибольшую по длине последовательность из слов исходной строки, упорядоченных по алфавиту. Порядок слов в последовательности должен совпадать с порядком в исходной строке
|
| PuckUnpuck(s, k)
|
| Исходная строка из латинских букв упаковывается заменой нескольких подряд идущих одинаковых букв на их количество. Распаковка выполняется обратным способом. Выполняемая операция (упаковка или распаковка) определяется вторым параметром
|
| PascalCode(s)
|
| Дано предложение, закодировать каждое его слово с использованием треугольника Паскаля (Подбельский, стр. 509)
|
|
|
|
|
|
|
|
|
|
|
|
|
| ChainWords(s)
|
| Поменять местами слова строки так, чтобы первая буква следующего слова совпадала с последней буквой предыдущего
|
| NormSpaces(s)
|
| Нормализовать количество пробелов в заданной строке в соответствии с правилами русского языка
|
| Hyphenation(s)
|
| Вставить в строку, содержащую слово, символы ‘-‘, разбивающие это слово на части в соответствии с правилами переноса в русском языке
|
| ExpValueBrac(s)
|
| То же, что в варианте 74, но с учетом скобок
|
| CorrectFName(s1, s2)
|
| В первой строке содержится имя файла, во второй – шаблон с использованием символов ‘? ’ и ‘*’. Определить соответствие имени файла заданному шаблону
|
| NumToSymbols(n)
|
| Для заданного числа N сформировать его представление на русском языке
|
| CutPalindrom(s, k)
|
| Разрезать исходную строку (если это возможно) на заданное количество строк, чтобы каждая из полученных строк являлась палиндромом
|
| PuzzleTable(s1, s2)
|
| Задача V-E
|
| WordsByMask(s1, s2)
|
| В первой строке заданы слова, разделенные пробелом, во второй – шаблон, содержащий буквы и символ *. Выбрать из первой строки слова, соответствующие шаблону
|
| GenAnagrams(s)
|
| По заданному слову составить все его анаграммы, т.е. слова, состоящие из тех же букв в другом порядке, и вернуть их в виде одной строки, разделенные пробелом
|
|
|
|
|
|
|
|
|
|
|
|
|
| ExpValueCalc(s)
|
| Функция получает через параметр несколько строк, разделенных символом ‘\n’. Каждая строка содержит оператор присваивания. Переменные, получившие значение в предыдущих операторах, могут использоваться в последующих как операнды. Вычислить значение в последней строке.
|
| ExpEqu(s1, s2)
|
| Даны две строки, каждая из которых содержит арифметическое выражение. Определить эквивалентность этих выражений
|
| LongCalc(s1, c, s2)
|
| Длинная арифметика. Для длинных чисел в заданных строках выполнить операцию, заданную символом С
|
| GenWords(s)
|
| По заданному слову составить все слова различной длины, состоящие из букв исходного слова (без повторов), и вернуть их в виде одной строки, разделенные пробелом
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ПРИМЕЧАНИЕ: Везде под словом понимается последовательность символов, ограниченная пробелами или началом/концом строки. Несколько следующих подряд пробелов между словами интерпретируются как один пробел.
· Результаты выполнения программы для различных исходных данных.