Задача взята мною из учебника, который навреняка многим известен, если надо могу вывесить файл с этим учебником.
Задача: Выведите на экран своё имя высотой в 8 строчек. А в главе с этой задаче ничего не сказано про такую возможность, вот и думаю, почему я так туплю, что ничего не замечаю?.. Просматривал текст главы раз 5, но так и не понял как это сделать. Мне кто-то говорил, что это можно сделать с помощью Uses Crt, но в той самой главе про это ничего нет. Помогите мне, пожалуйста.
volvo
9.04.2006 7:05
С латинскими символами работает как положено. Насчет кириллицы - не знаю, проверить не могу. Тестируй:
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;
(С) Д.Б. Поляков - "Программирование в среде Турбо Паскаль" Глава 20.
Незначительные исправления - мои...
MeatCrash
9.04.2006 7:17
Прикольно... Всё-таки для первой задачи не тянет, так как речи о процедурах не было, но да не в этом суть. У меня учебник В.В. Зелинского 2000 год, это 5-ая глава из 38, только в этой главе начались задачи. Более чем половины функций и операторов не то что не знаю, а вообще в глаза не видел... Не возражаешь, если я поспрашиваю их значения или времени мало?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.