Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию [pdf]

.pdf
Скачиваний:
739
Добавлен:
02.05.2014
Размер:
6.04 Mб
Скачать

б) в шестнадцатеричной системе счисления (шестнадцатеричные цифры – это цифры от 0 до 9 и буквы от A до F). *) В этой и следующих задачах настоящего параграфа требуется составить отдельные процедуры, не включая их в какие-либо программы. На практике эти процедуры могут оказаться полезными в целом ряде программ.

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

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

463.Составить процедуру, результатом работы которой является символ, заданный при обращении к процедуре, если этот

символ не является буквой, и соответствующая строчная (малая) буква

впротивном случае.

464.Составить процедуру «сжатия» исходной последовательности символов: каждая подпоследовательность, состоящая из нескольких вхождений одного и того же символа, заменяется на текст x(k), где x – символ, k – строка, являющаяся записью числа вхождений символа x в исходную последовательность.

465.Составить процедуру, позволяющую определить позицию самого правого вхождения заданного символа в исходную строку. Если строка не содержит символа, результатом работы процедуры должна быть –1.

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

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

468.Составить процедуру, позволяющую определить позицию первого вхождения в заданную строку какого-либо символа из второй заданной строки. Результатом работы процедуры должна быть –1, если первая строка не содержит ни одного символа, принадлежащего и второй заданной строке.

469.Выравнивание строки заключается в том, что между ее отдельными словами (см. задачу 269) дополнительно вносятся пробелы так, чтобы длина строки стала равной заданной длине (предполагается, что требуемая длина не меньше исходной), а последнее слово строки сдвинулось к ее правому краю. Составить процедуру выравнивания заданной строки текста.

470. При выводе текстов на экран или печатающее устройство часто используются табуляционные остановки – выделенные позиции строки. Например, при печати таблиц полезно зафиксировать положение столбцов таблицы. Если в исходном тексте встречается символ табуляции tab (например, символ с кодом 9), это означает, что текст, следующий за символом tab, должен печататься со следующей табуляционной остановки, а до нее следует выдавать пробелы. Составить процедуру печати текста с указанной интерпретацией символа tab (предположить фиксированный набор табуляционных остановок).

§13. Файлы

471.Дан файл f , компоненты которого являются действительными числами. Найти:

а) сумму компонент файла f;

б) произведение компонент файла f; в) сумму квадратов компонент файла f;

г) модуль суммы и квадрат произведения компонент файла f; д) последнюю компоненту файла.

472.Дан файл f, компоненты которого являются действительными числами. Найти:

а) наибольшее из значений компонент; б) наименьшее из значений компонент с четными номерами;

в) наибольшее из значений модулей компонент с нечетными номерами;

г) сумму наибольшего и наименьшего из значений компонент;

д) разность первой и последней компонент файла.

473.Дан файл f, компоненты которого являются целыми числами. Найти:

а) количество четных чисел среди компонент; б) количество удвоенных нечетных чисел среди компонент;

в) количество квадратов нечетных чисел среди компонент.

474.Дано натуральное n. Записать в файл g целые числа b1, ..., bn, определенные так, как указано в заданиях а) - д) задачи 139.

475.Последовательность x1, x2, ... образована по закону

x =

i

0.1

(i=1, 2, ...). Дано действительное ε > 0 . Записать в файл

i3 +

 

tg 2i

i

 

 

h члены последовательности x1, x2, ..., остановившись после первого члена, для которого выполнено xi < ε .

476. Дан символьный файл *) f. Получить копию файла в файле

g.

*) Файл, компоненты которого являются символами, называется символьным файлом.

477.Даны символьные файлы f1 и f2 . Переписать с сохранением порядка следования компоненты файла f1 в файл f2 , а

компоненты файла f2 – в файл f1 . Использовать вспомогательный файл h .

478.Даны файлы f1 , f2 , f3 , f4 , f5 , компоненты которых

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

f1

f2

f3

f4

f5

f3

f4

f5

f2

f1

т. е. компоненты файла

f1

переписываются в файл f3 ,

компоненты

файла f2 – в f4 и т.

д.

Разрешается использовать

только один

вспомогательный файл h .

 

 

 

479. Дан символьный файл f . В файле f не менее двух

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

480. Дан файл, компоненты которого являются целыми числами. Получить в файле g все компоненты файла f :

а) являющиеся четными числами; б) делящиеся на 3 и не делящиеся на 7; в) являющиеся точными квадратами.

481. Дан файл f , компоненты u0 , u1 , …, un которого являются последовательными числами Фибоначчи (см. задачу 144). Получить в файле f последовательные числа Фибоначчи u0 , u1 , …, un+ 1 .

482. Дан символьный файл f . Получить файл g , образованный из файла f заменой всех его прописных (больших) букв одноименными строчными (малыми).

483. Вычислить по схеме Горнера значение многочлена с рациональными коэффициентами для данного рационального значения переменной. Считать, что числители и знаменатели коэффициентов записаны в файле f : вначале числитель и знаменатель старшего коэффициента и т. д., в последнюю очередь числитель и знаменатель свободного члена *).

*) Во многих языках программирования (например, в Паскале) компоненты файла могут быть массивами. В этом случае можно

предполагать, что числители и знаменатели образуют массивы длины

2.

484. Дан файл f , компоненты которого являются целыми числами. Записать в файл g все четные числа файла f , а в файл h

все нечетные. Порядок следования чисел сохраняется.

485.Дан символьный файл f . Записать в файл g компоненты файла f в обратном порядке.

486.Даны символьные файлы f и g . Записать в файл h сначала компоненты файла f , затем – компоненты файла g с сохранением

порядка.

487. Дан файл f , компоненты которого являются целыми

числами. Получить файл g , образованный из файла f исключением

повторных вхождений одного и того же числа.