Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование.doc
Скачиваний:
4
Добавлен:
27.10.2018
Размер:
1.46 Mб
Скачать

Позиционирование

Процедура GotoXY(x,y: byte) переместит курсор в заданную позицию в пределах текущего окна (экрана).

Функция WhereX: byte вычислит положение курсора в текущем окне (или на экране): его горизонтальную составляющую. Напомним, что координата X отсчитывается от левого края экрана (окна).

Функция WhereY: byte вычислит положение курсора в текущем окне (или на экране): его вертикальную составляющую. Напомним, что координата Y отсчитывается от верхнего края экрана (окна).

Ожидание

Процедура Delay(ms: word) приостановит исполнение программы на ms миллисекунд.

Функция KeyPressed: boolean отслеживает нажатия клавиш (на клавиатуре).

Функция ReadKey: char возвращает код символа, чья клавиша (или комбинация клавиш) была нажата.

Пример использования текстовой графики

Задача 1. Написать простейший скрин-сейвер (screen-saver) - программу, предохраняющую монитор от пережигания. Его основными чертами должны стать:

  1. преобладание черного фона;

  2. регулярная смена позиций цветовых пятен;

  3. прекращение работы при нажатии произвольной клавиши на клавиатуре.

Решение

program scrsav;

uses crt;

var n,i,x,y,c,t,z: word;

err: integer;

begin

n:=10;

if paramcount>0

then if paramstr(1)='?'

then begin

writeln('scrsav [density: byte] (=10 by default)');

halt

end

else begin

val(paramstr(1),n,err);

if (err<>0)or(n<=0) then n:=10;

end;

randomize; {активизация генератора случайных чисел}

while not keypressed do

begin

y:= random(24)+1; {генерация случайного числа от 1 до 25}

x:= random(79)+1; {генерация случайного числа от 1 до 80}

z:= random(220)+33; {генерация случайного символа}

c:= random(14)+1; {генерация случайного цвета от 1 до 15}

gotoxy(x,y);

textcolor(c);

delay(n);

write(chr(z));

for i:= 1 to 10 do

begin

y:= random(24)+1; {генерация случайного числа от 1 до 25}

x:= random(79)+1; {генерация случайного числа от 1 до 80}

gotoxy(x,y);

textcolor(black);

delay(n);

write(' ');

end;

end;

Замечание: Параметр, регулирующий густоту и скорость изменения символов на экране, можно задавать как аргумент из командной строки во время вызова программы (см. лекцию 13).

Создание дружественного интерфейса

Напомним, что пользовательский интерфейс - это обеспечение взаимодействия программы и человека1).

Хорошим считается дружественный (или дружелюбный) интерфейс - тот, который удобен не программисту, а пользователю. Несколько раз на протяжении нашего курса лекций мы подчеркивали это. Теперь, когда у нас уже есть все инструменты, позволяющие создавать хорошие интерфейсы к программам, пришло время поговорить о них подробнее.

Заставка

Первым делом - сразу после запуска - ваша программа должна сообщить пользователю, какую именно задачу она собирается решать. Причем информация о решаемой задаче должна быть исчерпывающей. Это особенно важно, если в постановке задачи имеются серьезные ограничения, о которых пользователя нужно уведомить сразу же.

Информационная часть интерфейса, появляющаяся на экране сразу после запуска программы, называется заставкой. Заставка может содержать:

  • название программы;

  • пояснение (краткую или подробную информацию о решаемой задаче);

  • информацию об авторе(-ах) программы;

  • номер версии программы;

  • и т.п.

Заставка может состоять как из отдельного экрана, который исчезает после нажатия произвольной клавиши (его сменяет рабочая область программы), так и лишь из одной строки, которая остается на экране до конца работы программы (или пока ее не вытеснит объемный вывод). Например:

Сортировка линейного массива (до 10 000 элементов) методом пирамиды.

Нахождение кратчайшего пути в связном графе.

Зодиак. Определение знака гороскопа по дате рождения.

Поиграем в крестики-нолики на доске 5х5!