Известно, что консоль кроме стандартных символов, позволяет выводить и особые символы, в частности псевдографические символы, позволяющие окружать текст в рамку. Таблица кодов таких символов в кодировке ASCII следующая:
Символы для построения рамок расположены по адресам с B3 по DA (в HEX). Их 40 штук. Однако, в современных ОС Windows применяется другая кодировка (Unicode), в которой не 256, а 64К символов. На сайте http://www.design-sites.ru/utility/unicode.php можно прочитать, что в Unicode символы псевдографики имеют номера с 2500 по 257F (HEX). Т.е. их уже 128 штук.
Для просмотра символов в некотором диапазоне их кодов была написана программа в C#:
static void Main(string[] args)
{
do
{
Console.Write("Начальный номер: "); int k1 = int.Parse(Console.ReadLine());
Console.Write("Конечный номер: "); int k2 = int.Parse(Console.ReadLine());
for (int k = k1; k <= k2; k++) Console.Write((char)k);
} while (k1 <= k2);
}
Здесь многократно до тех пор, пока (цикл с постусловием) начальный номер данного диапазона (k1) меньше конечного (k2), выводятся символы с кодами от k1 до k2.
Однако, компиляция данной программы выдаёт ошибку. Найдите её, исправьте и сделайте более удобным дизайн.
В результате применения этой программы была получена следующая таблица:
Таблица 1. Символы псевдографики и их коды (в HEX формате)
Код | 250с | 251с | 252с | 253с | |||||||
Символ | ─ | │ | ┌ | ┐ | └ | ┘ | ├ | ┤ | ┬ | ┴ | ┼ |
Используя данные символы, выведем на консоль название нашего города в рамке:
static void Main(string[] args)
{
char lu = '\x250c'; char ld = '\x2514';
char ru = '\x2510'; char rd = '\x2518';
char h = '\x2500'; char v = '\x2502';
string s1 = string.Concat(lu, h, h, h, h, h, h, h, h, ru);
string s2 = string.Concat(v, " Тюмень ", v);
string s3 = string.Concat(ld, h, h, h, h, h, h, h, h, rd);
Console.WriteLine("{0}\n{1}\n{2}",s1,s2,s3);
Console.ReadLine();
}
Здесь для используемых символов псевдографики введены символьные переменные (например, char lu = '\x250c', идентификатор – сокращение «Left Up»). Каждая строка вывода оформляется строковой переменной путём склеивания символов и подстрок (метод Concat класса string). Все строки выводятся одним вызовом метода WriteLine(), в котором они разделяются символом перевода строки.
В итоге получаем на консоль:
Задание 1. Вывести на консоль табличку из двух ячеек, содержащих ваши фамилию и имя (2 строки) и город Вашего рождения (1 строка), например, так или так:
+------------+ +------------+-----------+
! Петровский!! Петровский! Воронеж!
! Сергей!! Сергей!!
+------------+ +------------+-----------+
! Воронеж!
+------------+
Расположение ячеек (вертикальное или горизонтальное), а также тип линий, которые заменят минусы, плюсы и восклицательные знаки из образца, выбираются по вариантам.
Вариант | Расположение ячеек | Горизонтальные линии | Вертикальные линии |
1, 7, 13 | горизонтальное | Одинарные | Двойные |
2, 8, 14 | Вертикальное | Двойные | Одинарные |
3, 9, 15 | Горизонтальное | Двойные | Двойные |
4, 10, 16 | Вертикальное | Одинарные | Двойные |
5, 11, 17 | Горизонтальное | Двойные | Одинарные |
6, 12, 18 | Вертикальное | Двойные | Двойные |