Решение 50 типовых задач по программированию на языке Pascal Дата размещения сборника в сети
Download 1.52 Mb. Pdf ko'rish
|
Задачи на Pascal
- Bu sahifa navigatsiya:
- Данил Душистов: «Решение 50 типовых задач по программированию на языке Pascal» 35
Решение. В этой задаче мы впервые займемся графическим оформлением выходных данных
программы. Для начала подумаем, как может выглядеть таблица в простейшем случае (n = 3): x x 2 x 3 Данил Душистов: «Решение 50 типовых задач по программированию на языке Pascal» 35 1 2 3 1 4 9 1 8 27 Несмотря на то, что кодовые страницы для DOS имеют определенный набор символов для рисования графических примитивов, в частности, таблиц, мы будем пользоваться лишь символами '-' и '|' для построения линий таблицы, а также '/' и '\' для формирования ее угловых эле- ментов. Построим псевдографический эквивалент этой таблицы: /-----------------------\ | x | x^2 | x^3 | |-----------------------| | 1 | 1 | 1 | | 2 | 4 | 8 | | 3 | 9 | 27 | \-----------------------/ Примечание: в случае ограниченных возможностей вывода для обозначения возведения выра- жения в степень используется постфикс «^k», где k – показатель степени. Кстати, здесь мы вырав- ниваем значения в середине столбцов, сдвигая к середине разряд единиц упорядоченных по правому краю столбцов. Как же сформировать вывод на экран такой таблицы? Понятно, что это нужно сделать по- строчно. Однако какой ширины сделать таблицу и как организовать вывод строк со степенями? Так как максимальное число, которое может быть подано на вход – 255, и его куб равен 16581375 (он состоит из 8 цифр), то нам нужно сделать колонки ширины 1 + 8 + 8 + 1 = 18 (крайние единицы для отступов) символов, чтобы таблица выглядела равномерно: /--------------------------------------------------------\ | x | x^2 | x^3 | |--------------------------------------------------------| | 1 | 1 | 1 | | 2 | 4 | 8 | | ... | ... | ... | | 255 | 65025 | 16581375 | \--------------------------------------------------------/ Как видим, при постепенном увеличении числа будут «вырастать» справа налево. Чтобы вы- вести такую строку, нужно вывести константу '|', затем вывести соответствующее число с шири- ной поля вывода 9, потом вывести константу '|' с шириной поля вывода 10 и аналогично вывести оставшиеся колонки: writeln('|', i:9, '|':10, i * i:9, '|':10, i * i * i:9, '|':10); Схематически с учетом форматирования это будет выглядеть так: '| 255 | 65025 | 16581375 |' Изменение цветов соответствует чередованию аргументов в операторе вывода. Так как заголовок таблицы один и тот же для всех вариантов исходных данных, мы можем сразу вывести его с помощью трех строковых констант через writeln: writeln('/--------------------------------------------------------\'); writeln('| x | x^2 | x^3 |'); writeln('|--------------------------------------------------------|'); После вывода всех строк нужно вывести нижнюю границу таблицы: writeln('\--------------------------------------------------------/'); Вообще, все эти константы и правила не взялись «просто так» или из расчетов. Единственный использованный факт – разрядность числа не более 8, поэтому мы и взяли ширину колонок «по |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling