
- •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 строк; страницы нумеруются.