М. Э. Абрамян Programming Taskbook



Pdf көрінісі
бет47/66
Дата11.04.2023
өлшемі0,52 Mb.
#81497
1   ...   43   44   45   46   47   48   49   50   ...   66

. Описать процедуру AddLineNumbers(SNKL), добавляющую
в начало каждой строки существующего текстового файла с именем S
ее порядковый номер: первая строка получает номер N, вторая — + 1
и т. д. Номер отображается в позициях, выравнивается по правому
краю и отделяется от последующего текста пробелами (> 0, > 0).
Если строка файла является пустой, то она также нумеруется, но пробелы
после номера не добавляются. Применить эту процедуру к данному файлу,
используя указанные значения Nи L.
Param52. Описать процедуру RemoveLineNumbers(S), удаляющую из нача-
ла каждой строки существующего текстового файла с именем ее по-
рядковый номер, добавленный процедурой AddLineNumbers (см. задание
Param51), а также пробелы, отделяющие номер от последующего текста.
Если строки не содержат номеров, то процедура не выполняет никаких
действий. Применить эту процедуру к файлу с данным именем.
Param53. Описать процедуру SplitIntFile(S
0
KS
1
S
2
), копирующую первые K
(≥ 0) элементов существующего файла целых чисел с именем S
0
в новый
файл целых чисел с именем S
1
, a остальные элементы — в новый файл
целых чисел с именем S
2
. Один из созданных файлов может остаться пу-
стым. Применить эту процедуру к файлу с данным именем S
0
, используя
указанные значения KS
1
и S
2
.
Param54. Описать процедуру SplitText(S
0
KS
1
S
2
), копирующую первые K
(≥ 0) строк существующего текстового файла с именем S
0
в новый тек-
стовый файл с именем S
1
, a остальные строки — в новый текстовый файл
с именем S
2
. Один из созданных файлов может остаться пустым. Приме-
нить эту процедуру к файлу с данным именем S
0
, используя указанные
значения KS
1
и S
2
.
Param55. Описать процедуру StringFileToText(S), преобразующую двоичный


102
М. Э. Абрамян. Электронный задачник Programming Taskbook 4.5
строковый файл с именем в текстовый файл с тем же именем. Используя
эту процедуру, преобразовать два данных строковых файла с именами S
1
и S
2
в текстовые.
Param56. Описать процедуру TextToStringFile(S), преобразующую текстовый
файл с именем в двоичный строковый файл с тем же именем. Используя
эту процедуру, преобразовать два данных текстовых файла с именами S
1
и S
2
в строковые.
Param57. Описать процедуру EncodeText(SK), которая шифрует текстовый
файл с именем S, выполняя циклическую замену каждой русской буквы
на букву того же регистра, расположенную в алфавите на K-й позиции
после шифруемой буквы (0 < < 10). Например, при = 3 «А» перейдет
в «Г», «я» — в «в». Букву «ё» в алфавите не учитывать, считая, что за
буквой «е» сразу идет «ж». Символы, не являющиеся русскими буквами,
при шифровании не изменять. Используя эту процедуру и зная кодовое
смещение K, зашифровать файл с указанным именем.
Param58. Описать процедуру DecodeText(SK), которая дешифрует текстовый
файл с именем S, зашифрованный с использованием кодового смещения K
(способ шифрования описан в задании Param57). Используя эту процедуру
и зная кодовое смещение K, расшифровать файл с указанным именем.
Записи
При вводе и выводе каждой даты в заданиях Param59Param63 вначале
указывается день, затем номер месяца, затем год. При вводе каждой точки в
заданиях Param64Param70 вначале указывается ее абсцисса (x-координата),
затем ее ордината (y-координата).
Param59. Описать тип TDate — запись с полями целого типа Day (день),
Month (месяц) и Year (год) — и функцию LeapYear(D) логического типа
с параметром типа TDate, которая возвращает
TRUE
, если год в дате D
является високосным, и
FALSE
в противном случае. Вывести значение
функции LeapYear для пяти данных дат (предполагается, что все даты
являются правильными). Високосным считается год, делящийся на 4, за
исключением тех годов, которые делятся на 100 и не делятся на 400.
Param60. Используя тип TDate и функцию LeapYear (см. задание Param59),
описать функцию DaysInMonth(D) целого типа с параметром типа TDate,
которая возвращает количество дней для месяца, указанного в дате D.


Составные типы данных в процедурах и функциях
103
Вывести значение функции DaysInMonth для пяти данных дат (предпола-
гается, что все даты являются правильными).
Param61. Используя тип TDate и функцию DaysInMonth (см. задания Param59
и Param60), описать функцию CheckDate(D) целого типа с параметром ти-
па TDate, которая проверяет правильность даты, указанной в параметре D.
Если дата является правильной, то функция возвращает 0; если в дате
указан неверный номер месяца, то функция возвращает 1; если в дате
указан неверный день для данного месяца, то возвращается 2. Вывести
значение функции CheckDate для пяти данных дат.
Param62. Используя тип TDate и функции DaysInMonth и CheckDate (см.
задания Param59Param61), описать процедуру PrevDate(D) с параметром
типа TDate, которая преобразует дату к предыдущей дате (если дата D
является неправильной, то она не изменяется). Запись является входным
и выходным параметром. Применить процедуру PrevDate к пяти данным
датам.
Param63. Используя тип TDate и функции DaysInMonth и CheckDate (см.
задания Param59Param61), описать процедуру NextDate(D) с параметром
типа TDate, которая преобразует дату к следующей дате (если дата D
является неправильной, то она не изменяется). Запись является входным
и выходным параметром. Применить процедуру NextDate к пяти данным
датам.
Param64. Описать тип TPoint — запись с полями вещественного типа и Y
(координаты точки на плоскости) — и функцию Leng(AB) вещественного
типа, находящую длину отрезка AB на плоскости по координатам его
концов:
|AB| =
q
(A.X − B.)
2
+ (A.Y − B.)
2
(и — параметры типа TPoint). С помощью этой функции найти длины
отрезков ABACAD, если даны координаты точек ABCD.
Param65. Используя тип TPoint и функцию Leng (см. задание Param64), опи-
сать тип TTriangle — запись с полями ABтипа TPoint (вершины
треугольника) — и функцию Perim(T) вещественного типа, находящую
периметр треугольника (— параметр типа TTriangle). С помощью
этой функции найти периметры треугольников ABCABDACD, если да-
ны координаты точек ABCD.
Param66. Используя типы TPoint, TTriangle и функции Leng и Perim (см.
задания Param64 и Param65), описать функцию Area(T) вещественного


104
М. Э. Абрамян. Электронный задачник Programming Taskbook 4.5
типа, находящую площадь треугольника (— параметр типа TTriangle)
по формуле Герона:


Достарыңызбен бөлісу:
1   ...   43   44   45   46   47   48   49   50   ...   66




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет