Составные типы данных в процедурах и функциях
99
если длина строки меньше
K +
N, то
анализируются все символы строки,
начиная с ее
K-го символа. Если в требуемой подстроке строки
S вхожде-
ния
S
0
отсутствуют, то
функция возвращает 0. Вывести значения функции
PosSub для данных строк
S
0
,
S и каждой из трех пар положительных це-
лых чисел: (
K
1
,
N
1
), (
K
2
,
N
2
), (
K
3
,
N
3
).
Param38. Описать функцию PosLast(
S
0
,
S) целого типа, возвращающую номер
позиции, начиная с которой в строке
S содержится последнее вхождение
подстроки
S
0
. Считать, что перекрывающихся вхождений подстрок
S
0
строка
S не содержит. Если в строке
S отсутствуют подстроки
S
0
, то
функция возвращает 0. Вывести значения этой функции для пяти данных
пар строк
S
0
и
S.
Param39. Описать функцию PosK(
S
0
,
S,
K) целого типа, возвращающую номер
позиции, начиная с которой в строке
S содержится
K-е вхождение под-
строки
S
0
(
K > 0). Если количество вхождений
S
0
в строке
S меньше
K, то
функция возвращает 0. Считать, что перекрывающихся вхождений под-
строк
S
0
строка
S не содержит. Вывести значения этой
функции для пяти
данных троек:
S
0
,
S и
K.
Param40. Описать функцию WordK(
S,
K) строкового типа, возвращающую
K-е слово строки
S (
словом считается набор символов, не содержащий
пробелов и ограниченный пробелами или началом/концом строки). Ес-
ли количество слов в строке меньше
K, то функция возвращает пустую
строку. Используя эту функцию, выделить из данной строки
S слова с
данными номерами
K
1
,
K
2
,
K
3
.
Param41
◦
. Описать процедуру SplitStr(
S,
W,
N), которая формирует по данной
строке
S массив
W слов, входящих в
S (массив
W и его размер
N яв-
ляются выходными параметрами).
Словом считается набор символов, не
содержащий пробелов и ограниченный пробелами или началом/концом
строки; предполагается, что строка
S содержит не более 10 слов. Исполь-
зуя
функцию SplitStr, найти количество слов
N, содержащихся в данной
строке
S, и сами эти слова.
Param42. Описать функцию CompressStr(
S) строкового типа, выполняющую
сжатие строки
S по следующему правилу: каждая подстрока строки
S,
состоящая из более чем четырех одинаковых символов
C, заменяется тек-
стом вида «
С{
K}», где
K — количество символов
C (предполагается, что
строка
S не содержит фигурных скобок «{» и «}»). Например, для строки
S = «bbbccccce» функция вернет строку «bbbc{5}e». С помощью функции
100
М. Э. Абрамян. Электронный задачник Programming Taskbook 4.5
CompressStr сжать пять данных строк.
Param43. Описать функцию DecompressStr(
S) строкового типа, восстанавли-
вающую строку, сжатую процедурой CompressStr (см. задание Param42).
Параметр
S содержит сжатую строку; восстановленная строка является
возвращаемым значением функции. С помощью
функции DecompressStr
восстановить пять данных сжатых строк.
Param44. Описать функцию DecToBin(
N) строкового типа, возвращающую
строковое представление целого неотрицательного числа
N в двоичной
системе счисления. Результирующая строка состоит из символов «0»–«1»
и не содержит ведущих нулей (за исключением представления числа 0).
Используя эту функцию, получить двоичные представления пяти данных
чисел.
Param45. Описать функцию DecToHex(
N) строкового типа, возвращающую
строковое представление целого неотрицательного числа
N в 16-ричной
системе счисления. Результирующая строка состоит из символов «0»–«9»,
«A»–«F» и не содержит ведущих нулей (за исключением представления
числа 0). Используя эту функцию, получить 16-ричные представления
пяти данных чисел.
Param46. Описать функцию BinToDec(
S) целого типа, определяющую целое
неотрицательное число по его строковому представлению
S в двоичной
системе счисления. Параметр
S имеет строковый тип, состоит из символов
«0»–«1» и не содержит ведущих нулей (за исключением значения «0»).
Используя эту функцию, вывести пять чисел, для которых даны их дво-
ичные представления.
Param47. Описать функцию HexToDec(
S) целого типа, определяющую целое
неотрицательное число по его строковому представлению
S в 16-ричной
системе счисления. Параметр
S имеет строковый тип, состоит из сим-
волов «0»–«9», «A»–«F» и не содержит ведущих нулей (за исключением
значения «0»). Используя эту функцию, вывести пять чисел, для которых
даны их 16-ричные представления.
Файлы
Param48. Описать функцию IntFileSize(
S) целого типа, возвращающую ко-
личество элементов в файле целых чисел с именем
S. Если файл не су-
ществует, то функция возвращает
−1. С помощью этой
функции найти
количество элементов в трех файлах с данными именами.
Составные типы данных в процедурах и функциях
101
Param49. Описать функцию LineCount(
S) целого типа, возвращающую коли-
чество строк в текстовом файле с именем
S. Если файл не существует,
то функция возвращает
−1. С помощью этой
функции найти количество
строк в трех файлах с данными именами.
Param50. Описать процедуру InvertIntFile(
S), меняющую порядок следования
элементов файла целого типа с именем
S на противоположный. Если
файл не существует или содержит менее двух элементов, то процедура
не выполняет никаких действий. Обработать с помощью этой процедуры
три файла с данными именами.
Param51
Достарыңызбен бөлісу: