Помощь - Поиск - Пользователи - Календарь
Полная версия: ОБРАБОТКА СИМВОЛОВ И СТРОК
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
ApuopT
Составить программу, которая осуществляет ввод строки с клавиатуры и вывод ее на экран в
одинарной рамке из символов псевдографики.
Федосеев Павел
А что именно вызывает затруднение?
ApuopT
Цитата(Федосеев Павел @ 5.12.2016 19:22) *

А что именно вызывает затруднение?

я не знаю как с CHAR работать)
Федосеев Павел
Это плохо. Но со строками можете?
ApuopT
Цитата(Федосеев Павел @ 6.12.2016 8:43) *

Это плохо. Но со строками можете?

Да
Федосеев Павел
Давайте, вы попробуете создать первое приближение вашей программы: вводите строку и тут же выводите.

Если не будете пропадать надолго, то за 1 вечер сделаете своё задание и удивитесь, как всё просто.

У вас какой компилятор?
ApuopT
Цитата(Федосеев Павел @ 6.12.2016 21:04) *

Давайте, вы попробуете создать первое приближение вашей программы: вводите строку и тут же выводите.

Если не будете пропадать надолго, то за 1 вечер сделаете своё задание и удивитесь, как всё просто.

У вас какой компилятор?

Делфи
Федосеев Павел
program Border;

type
{ Window frame characters }
FrameChars = array[1..8] of char;

const
SingleFrame: FrameChars = '┌─┐││└─┘';

var
s: string;
i: integer;
begin
readln(s);

Write(SingleFrame[1]);
for i := 1 to length(s) do
Write(SingleFrame[2]);
writeln(SingleFrame[3]);
writeln(SingleFrame[4], s, SingleFrame[5]);
Write(SingleFrame[6]);
for i := 1 to length(s) do
Write(SingleFrame[7]);
writeln(SingleFrame[8]);
end.

По правде, вы меня озадачили компилятором. В Windows всё много сложнее с русскими кодировками.
Если не будет видна рамка, попробуйте сохранить текст программы, как OEM (cp866).
Или запишите символы рамки в виде кодов:
const
SingleFrame: FrameChars = #$DA#$C4#$BF#$B3#$B3#$C0#$C4#$D9;
ApuopT
Цитата(Федосеев Павел @ 7.12.2016 23:50) *

program Border;

type
{ Window frame characters }
FrameChars = array[1..8] of char;

const
SingleFrame: FrameChars = '┌─┐││└─┘';

var
s: string;
i: integer;
begin
readln(s);

Write(SingleFrame[1]);
for i := 1 to length(s) do
Write(SingleFrame[2]);
writeln(SingleFrame[3]);
writeln(SingleFrame[4], s, SingleFrame[5]);
Write(SingleFrame[6]);
for i := 1 to length(s) do
Write(SingleFrame[7]);
writeln(SingleFrame[8]);
end.

По правде, вы меня озадачили компилятором. В Windows всё много сложнее с русскими кодировками.
Если не будет видна рамка, попробуйте сохранить текст программы, как OEM (cp866).
Или запишите символы рамки в виде кодов:
const
SingleFrame: FrameChars = #$DA#$C4#$BF#$B3#$B3#$C0#$C4#$D9;


Спасибо большое, однако я использовал такие символы #192,#191,#209 и т.п. когда пытался решить)
Федосеев Павел
Наверное и в моей строчке они есть - я привёл в шестнадцатеричной системе счисления - как приводится на страничке с кодировкой cp866.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.