Программа для вычерчивания своего имени - Pascal
Формулировка задачи:
Написать программу для вычерчивания на экране своего имени с помощью символа «*».
Решение задачи: «Программа для вычерчивания своего имени»
textual
Листинг программы
program Project1;
uses crt;
const
t ='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
my_font: array [1..26] of array [0..4] of string[11] =
((' *** ',' ** ** ',' ** ** ',' ********* ','** **'),
('***** ','** * ','****** ','** * ','****** '),
(' ***** ','** * ','** ','** * ',' ***** '),
('******* ','** ** ','** * ','** ** ','******* '),
('******* ','** ','***** ','** ','******* '),
('******* ','** ','***** ','** ','** '),
(' ***** ','** ','** ** ','** * ',' ***** '),
('** ** ','** ** ','********* ','** ** ','** ** '),
(' **** ',' ** ',' ** ',' ** ',' **** '),
(' **** ',' ** ',' ** ',' * ** ',' *** '),
('** ** ','** ** ','**** ','** ** ','** ** '),
('** ','** ','** ','** ','******* '),
('*** ***','** * * **','** * * **','** * **','** **'),
('*** ** ','** ** ** ','** ** ** ','** ** ** ','** *** '),
(' ***** ','** **','** **','** **',' ***** '),
('***** ','** * ','***** ','** ','** '),
(' ***** ','** **','** **','** * **',' ***** '),
('***** ','** * ','***** ','** ** ','** ** '),
(' **** ',' ** * ',' ** ','* ** ',' **** '),
('******** ',' ** ',' ** ',' ** ',' ** '),
('** **','** **','** **',' ** ** ',' ***** '),
('** **',' ** ** ',' ** ** ',' ** ** ',' *** '),
('** **','** **','** * **',' ** * ** ',' * * '),
('** ** ',' ** ** ',' *** ',' ** ** ','** ** '),
('** ** ',' ** ** ',' **** ',' ** ',' ** '),
('******* ',' ** ',' ** ',' ** ','******* '));
var
name_, temp_:string;
i, y, x, n_str, last_char, l_scr:integer;
begin
while name_<>'exit' do
begin
writeln('vvedite imya');
readln(name_);
temp_:='';
writeln;
l_scr:=6;
last_char:=l_scr;
for n_str:= 0 to Length(name_) div l_scr do
begin
if n_str = Length(name_) div l_scr then
last_char:= Length(name_) mod l_scr ;
for x:=0 to 4 do
begin
for i:=1 to last_char do
begin
y:=pos(name_[i+(n_str*l_scr)],t);
if y>26 then
y:=y-26;
if y>0 then
temp_:=temp_+my_font[y,x]+' '
else
temp_:=temp_+' ';
end;
writeln(temp_);
temp_:='';
end;
writeln;
writeln('---------------------------------');
writeln;
end;
end;
end.
Объяснение кода листинга программы
- Объявлены константа t, массив myfont и переменные name, temp_, i, y, x, n_str, last_char, l_scr типа string и integer соответственно.
- В цикле while программа запрашивает у пользователя ввод имени и сохраняет его в переменную name_.
- Переменная temp_ инициализируется пустой строкой.
- В цикле nstr от 0 до Length(name) div l_scr происходит разбивка имени на части по l_scr символов.
- В цикле x от 0 до 4 происходит разбивка каждой части на символы и проверка каждого символа на наличие в массиве t.
- Если символ найден, то к переменной temp_ добавляется соответствующий элемент массива my_font.
- После обработки всех символов в части выводится полученная строка.
- После вывода строки переменная temp_ инициализируется пустой строкой.
- После обработки всех частей выводится горизонтальная линия из символов '-'.
- После вывода линии выводится сообщение
---------------------------------. - В конце программы выводится символ 'end'.