- •VI. Обработка символьной информации
- •VI.1. Операции над текстами. Простые формы обмена
- •VI.2. Ввод данных и печать результатов
- •VI.3. Символьное представление чисел
- •V.1.4. Задачи из раздела "Синтаксис и компиляция"
- •1) Вставить рисунок на стр. 22
- •2) Вставить рисунок на стр. 22
- •3) Вставить рисунок на стр. 23
- •4) Вставить рисунок на стр. 23
- •VI.5. Дополнительные задачи (трудные)
VI.2. Ввод данных и печать результатов
25. (Забава.)
Напечатать картинки, аналогичные следующим:
*** ***** ***** * *
*** *** *** *** ***
*** * * **********
*** *** ***
***** * *
26. (Шахматная доска.) Напечатать рисунок шахматной доски.
27. (Гистограммы.)
а) Для заданной последовательности целых чисел ,,..., определяемой вводом, напечатать картинку
**...* (звездочек)
**...* ( звездочек)
...
Печать прекратить при вводе неположительного числа.
б) Для заданного вектора целых положительных чисел ,,...,напечатать картинку:
, , ..., − количество символов ″⋆″ в столбцах
A * * *
* * *
* *
B *
28. (Зеркальное отражение.) Напечатать зеркальное отражение (относительно оси АВ) картинок из предыдущей задачи
* … * * A *
* … * * * * *
* … * * * * * * * *
* … * * B A B
29. (АБВГДейка, или ввод и печать литер.)
а) Ввести литер, и напечатать их встрочках политер в каждой.
б) Ввести литер и напечатать их так: в-ой () строке должно бытьлитер. (Последняя строка составляет исключение. Здесь будетлитер.)
в) Ввести литер и напечатать их так: в-ой () строке должно бытьлитер. Если для печати в некоторой строке, пусть-ой остаетсялитер, и, то в-ой строке напечататьлитеру, в-ой строке− литеры и т.д.
г) Ввести последовательность литер , ,..., и напечатать их так:
,
где косая черта означает переход при печати на следующую строку. Число определяется вводом.
д) Входная информация имеет следующий вид:
∕…∕,
где ,,,…,– целые числа, − литеры, а косая черта означает литеру- разделитель (разделитель на самом деле здесь не нужен, но если удалить из входной последовательности числа ,,…,, то потребуется). Напечатать следующие строки литер:
...
...
располагая каждую из них симметрично относительно центра строки бумаги, содержащей 120 позиций.
30. (Ввод-обработка-печать.)
а) Ввести чисел и напечатать их группами почисел на отдельной строке с указанием суммы в группе.
б) Ввести целых чисел и напечатать их факториалы. Если для очередного вводимого числа n его значение больше заданного числа , то вместоНапечататьзвездочек. При вводе отрицательного числа печать прекратить.
в) Ввести литер и напечатать их по алфавиту.
31. (Смена формата.) Во входном потоке находятся -символьных слов, по 10 слов в строке. Напечатать эту последовательность послов в строке. Слова печатать с двумя предшествующими пробелами.
32. (График изменения температуры.) Во входном потокецелы числа-данные о средне-суточной температуре воздуха за некоторый период. Напечатать график изменения температуры. В -ой позиции печатной строки всегда печатается символ″∗″. Температура в строке отмечаетсясимволами″+″ вправо от -ой позиции, если.
33. (График целочисленной функции.) Напечатать график заданной целочисленной функции для .
Указание. Исходить из вертикального расположения оси . Символ "∗", отмечающий на графике значение для аргумента, печатать в-ой позиции. Таким образом, ось− это вертикальная черта, проходящая через 51-ую позицию каждой строки. Эту ось также слезет обозначить символами "∗".
Варианты задания. В качестве функций ивзять одну из следующих функций:
1) − остаток от деления на, где − заданные числа;
2) , где − наибольшее целое, при котором представимо в виде ,− целое число;
3) − число целых чисел в интервале от 1 до , взаимно простых с;
4) − число делителей числа .
34. (График вещественной функции.) Напечатать график вещественной функции в точках,. Указания. Здесь удобно провести ось x вертикально через -ую позицию каждой печатной строки. (Однако, следует подумать и о том варианте решений задачи, когда ось x расположена горизонтально, т.е. вдоль некоторой печатной строки.)Значение для аргумента x отмечается на графике символом ″∗″, который печатается в -ой позиции от левого края бумаги, где,, где− максимальное значение функции, вычисленное для узловых точек , . Ось обозначается вертикальной последовательностью символов "*" в -ой позиции каждой печатной строки. В качестве взять какую-нибудь простую функцию, например, , x, , и т.д, можно напечатать также рисунки окружности, эллипса, параболы, гиперболы и т.п.
35. (Печать таблиц функций.)
а) Напечатать таблицу значений функций ив точках ,,..., . Числа − целые, находятся во входном потоке и представлены в формате ±ЦЦЦЦЦЦЦЦ; значения sinx печатать в формате ±ЦЦЦЦЦЦЦЦ, а − в формате ±Ц.ЦЦЦ⊔Е±ЦЦ, где Ц − цифра.
Варианты задания. Таблица должна иметь:
1) строк− в каждой строке печатать значение аргумента, значение функции sinx, значение функции ;
2) строки− строку аргументов, строку соответствующих значений функции sinx и строку соответствующих значений функции ;
3) строк следующего вида:
.
б) Напечатать таблицу значений функции следующего вида:
|
… | |||
… | ||||
… | ||||
… |
… |
… |
… |
… |
Варианты задания. Аргументы находятся во входном потоке в следующем порядке: 1) ,,...,,,,...,; 2) ,,,,...,..
36. (Таблицы преобразования.)
а) Напечатать таблицу преобразования градусов в радианы.
б) Напечатать таблицу преобразования градусов Цельсия () в градусы Фаренгейта () и Реомюра ().
Указания: а) °, б) , .
37. (Таблица Пифагора.) Напечатать таблицу умножения.
38. (Таблицы Брадиса.) Напечатать таблицы Брадиса.
39. (Треугольник Паскаля.) Напечатать первые строк треугольника Паскаля.
Указание: -ая строка треугольника имеет вид:
, ,…,(, 2,…),
где − число сочетаний изэлементов по:; ,
40. (Вдоль и поперек: по строкам и по столбцам.)
а) Элементы целочисленной матрицы расположены во входном потоке по столбцам: Напечатать элементы матрицы по форме:
| ||||
| ||||
| ||||
|
б) Поддиагональные элементы симметричной матрицы расположены во входном потоке в следующем порядке (по строкам): . Напечатать элементы матрицы так же, как в предыдущем задании (а).
41. (Печать заголовка.) Напечатать заголовок таблицы последующей форме:
ЦЕХ |
Средняя заработная плата | |||
ВСЕГО |
В том числе по разрядам | |||
1 |
2 |
3 |
42.(Канцелярские дела.) Во входном потоке имеется список фамилий по 5 фамилий в строке, по 15 символов в фамилии. Напечататьведомость,заполненнуюфамилиями и порядковыминомерами, по форме:
№ |
ФАМИЛИЯ |
ОЦЕНКА |
|
|
|
а) Закрыть ведомость горизонтальной чертой по исчерпании списка фамилий.
б) Закрывать ведомость для каждой группы из 25 фамилий и открывать новую. Последняя ведомость тоже должна иметь 25 строк, но ее последние строки могут быть незаполненными (заполнены пробелами).
43. (Бухгалтерские дела.) Во входном потоке имеются данные (во внешнем представлении) о наличии радиодеталей на складе. Каждая строка содержит:
− наименование радиодетали − позиций,
− количество − позиций (целое число),
− разделитель (пробел) − позиция,
− цена − позиции (вещественное число с фиксированной точкой),
− разделитель (пробел) − позиция,
−наименование основного параметра − позиций,
− значение параметра − позиций (вещественное число с фиксированной точкой),
− разделитель (пробел) − позиция,
− единица измерения − позиции.
а) Напечатать данные о радиодеталях, сохранив их исходное представление и местоположение в строке.
б) Напечатать данные о радиодеталях (значение основного параметра печатать в -представлении). Оформить заголовок с названием граф и отделить его от списка строкой звёздочек. Список радиодеталей также закрыть строкой звездочек, после чего напечатать общую стоимость радиодеталей.
44. (По две в строку или в две колонки ?) Во входном потоке имеется текст, по символов в строке. Напечатать текст страницами по печатных строк. Между страницами пропустить две печатные строки.
Вариант задания:
1) В печатную строку помещать символов.
2) Известно, что во входном потоке строк. Напечатать текст в две колонки, чтобы в левую попадали нечетные страницы последовательного текста, а вправую − четные. В строке каждой колонки − 60 позиций, между колонками − 8 пробелов.
3) Формат печати такой же, как и в 2), но число строк во входном потоке определяется концом файла.
45. (Печать с предварительным просеиванием.) Символы текстов ирасположены вовходном потоке в следующем порядке; ,,, ,..., ,.
а) Напечатать тексты и. Текст,должен быть расположен на левой стороне бумаги, а − на правой. Длина печатной строки для того и другого текста − символов. Промежуток между "текстами − пробелов.
б) Напечатать сначала текст , а затем текст . Длина печатной строки − символов. (Указание: текст , печатается сразу − по мере его чтения из входного потока; текст сначала накапливается и печатается только по завершении печати текста .)
46. (Формирование строк выходного текста.) Текст составлен из слов, разделенных символами "пробел" и "∕". Косая черта интерпретируется как управляющий символ "конец строки". Напечатать текст по правилам:
1) Нерасчлененные слова (т.е. без переносов) группируются в печатные строки длины 0. (Пояснение: между словами оставить по одному пробелу, остальные удалить, если очередное слово входного текста не помещается в текущей печатной строке, то оно переносится целиком в следующую печатную строку, неиспользованный "хвост" печатной строки заполнить пробелами.)
2) Слова, расположенные во входном тексте после очередного символа "∕", заведомо относятся к новой печатной строке.
3) Во входном тексте после очередного символа "∕" может быть расположено слово "ЬЬЬЬ". При окончательном формировании печатной строки это слово заменяется четырьмя пробелами (это можно использовать для формирования красной строки).
Замечание. Ввиду требований 1) и 3) естественно предполагать, что любое слово во входном тексте, имеет не более букв.
47. (Чтение и воспроизведение с редактированием.) Входной текст (последовательность символов) читается в непрерывном потоке. Напечатать его по правилам:
1) печатная строка на бумаге содержит позиций,
2) после каждой карты включается один пробел ?
3) любая последовательность подряд расположенных пробелов заменяется при печати на единственный пробел;
4) символы "⊔","[" и "]" заменяются соответственно на два символа "∗∗", "(." и ".)".
8. (Печать текста книги.) Предположим, что в текстовом файле хранится текст книги. Символы "∖", "", "*" и "" используются в тексте в качестве разделителей соответственно для обозначения окончания строки, параграфа, главы и книги. Напечатать текст книги, придерживаясь следующих правил:
1) каждая глава печатается с новой страницы,
2) каждый параграф печатается, отступив на две строки от предыдущего параграфа;
3) каждая строка печатается с новой строки бумаги;
4) в каждой странице ровно 50 строк; страницы нумеруются.