Вопрос задан 28.03.2020 в 04:30. Предмет Информатика. Спрашивает Орлов Максим.

1Постройте горизонтальную Линию Длиной 50 източек использую оператор for. 2Организуйте движение

точки через центр экрана справа на левво. 3Вывидите на экран значение суммы натуральных чисел от 1 до 100.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Поликарпова Софья.

Формулировка. Дано натуральное число n, меньшее 256. Используя псевдографику, вывести на экран таблицу квадратов и кубов всех натуральных чисел от 1 до n включительно.

Примечание: псевдографика – это совокупность символов для формирования видимых графических примитивов (линий, прямоугольников, рамок, таблиц и т. д.). Она была актуальна в те далекие времена, когда устройства вывода компьютеров не способны были работать с графикой, либо это было проблематично.

Символы, использующиеся для псевдографики, должны быть включены в набор используемого в терминале (консоли) компьютерного шрифта.

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

xx2x31
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, поэтому мы и взяли ширину колонок «по максимуму». В остальном нужно было экспериментировать, чтобы найти наиболее легкое и наглядное решение. Конечно, псевдографика – это не алгоритмическое программирование, и в нем тестирование и эксперимент играют чуть ли не самую важную роль.

Код:

program MyTable; var i, n: byte; begin readln(n); writeln('/--------------------------------------------------------\'); writeln('| x | x^2 | x^3 |'); writeln('|--------------------------------------------------------|'); for i := 1 to n do begin writeln('|', i:9, '|':10, i * i:9, '|':10, i * i * i:9, '|':10) end; writeln('\--------------------------------------------------------/') end.
0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос