Решение 50 типовых задач по программированию на языке Pascal Дата размещения сборника в сети


Download 1.52 Mb.
Pdf ko'rish
bet40/77
Sana03.02.2023
Hajmi1.52 Mb.
#1152062
TuriРешение
1   ...   36   37   38   39   40   41   42   43   ...   77
Bog'liq
Задачи на Pascal

РешениеВ этой задаче мы впервые займемся графическим оформлением выходных данных 
программы. Для начала подумаем, как может выглядеть таблица в простейшем случае (n = 3): 

x
2
 
x
3
 


Данил Душистов: «Решение 50 типовых задач по программированию на языке Pascal» 
35 








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, поэтому мы и взяли ширину колонок «по 



Download 1.52 Mb.

Do'stlaringiz bilan baham:
1   ...   36   37   38   39   40   41   42   43   ...   77




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling