Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на увеличение шрифта.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
MeatCrash
Задача взята мною из учебника, который навреняка многим известен, если надо могу вывесить файл с этим учебником.

Задача: Выведите на экран своё имя высотой в 8 строчек. А в главе с этой задаче ничего не сказано про такую возможность, вот и думаю, почему я так туплю, что ничего не замечаю?.. Просматривал текст главы раз 5, но так и не понял как это сделать. Мне кто-то говорил, что это можно сделать с помощью Uses Crt, но в той самой главе про это ничего нет. Помогите мне, пожалуйста.
volvo
С латинскими символами работает как положено. Насчет кириллицы - не знаю, проверить не могу. Тестируй:
uses crt, dos;

procedure write_char(col, row, char_to_print: byte;
char_to_fill: char; var addr_of_table);
type
char_dim = array[1 .. 8] of byte;
table_dim = array[1 .. 127] of char_dim;
var
x, y: byte;
table_1: table_dim absolute $f000:$fa6e;
table_2: table_dim absolute addr_of_table;
pattern: char_dim;

begin
case char_to_print of
0 .. 127: pattern := table_1[char_to_print];
128 .. 255: pattern := table_2[char_to_print - 128];
end;
inc(col, 7);
dec(row, 8);

for x := 1 to 8 do
for y := 7 downto 0 do begin
gotoxy(col - y, row + x);
if odd(pattern[x] shr y) then write(char_to_fill);
end;
end;

procedure write_large_string(x, y: byte; c, t: char; s: string);
var
i: byte;
del: shortint;
p: pointer;
begin
s := s + ' ';
inc(y);
getintvec($1f, p);

if y < 9 then y := 9;
if y > hi(windmax) then y := hi(windmax) + 1;

i := lo(windmax) - lo(windmin) + 1;
repeat
del := i - (8 * length(s) + x - 1);
if del > 0 then delete(s, length(s), 1);
until del >= 0;

for i := 1 to length(s) do begin
write_char(x + (8 * i - 7), y, ord(s[i])+1, t, p^);
write_char(x + (8 * i - 7), y - 1, ord(s[i])+1, c, p^);
end;
end;

begin
textbackground(red); clrscr;
textcolor(yellow);
textbackground(blue);
write_large_string(1, 20, #176, ' ', 'alex');
readln;
end.

(С) Д.Б. Поляков - "Программирование в среде Турбо Паскаль" Глава 20.

Незначительные исправления - мои...
MeatCrash
Прикольно... Всё-таки для первой задачи не тянет, так как речи о процедурах не было, но да не в этом суть. У меня учебник В.В. Зелинского 2000 год, это 5-ая глава из 38, только в этой главе начались задачи. Более чем половины функций и операторов не то что не знаю, а вообще в глаза не видел... wacko.gif Не возражаешь, если я поспрашиваю их значения или времени мало?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.