Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Использование циклов для придания интерфейсу программ динамических функций




Динамические функции интерфейса задают ему дополнительные свойства, которые изменяются по времени – например, периодическое изменение цвета, перемещение по экрану элементов информационного сообщения, выдача переменных звуковых сигналов и т.д.

Рассмотрим их реализацию при помощи операторов ввода (read, readln) и вывода (write, writeln) самого языка Паскаль, а также подпрограмм из его стандартной библиотеки CRT.

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

Для того, чтобы пользователь успел проанализировать динамическое изменение изображения на экране, в тело цикла необходимо включать процедуру delay(ms), задающую паузу в работе программы на ms миллисекунд. За счет изменения времени паузы движение можно задавать неравномерным.

При задании перемещений элементам текстового интерфейса необходимо учитывать, что координаты знакомест символов на текстовом экране ограничены размерами [1:80] по горизонтали и [1:25] по вертикали. Необходимо расчетным путем прогнозировать контакт с границей экрана либо вставлять соответствующие проверки. Законы перемещения можно выбирать равномерные, неравномерные (с возрастанием времени паузы - замедление движения, с сокращением паузы - ускорение). Также можно задавать перемещения случайным образом.

Рассмотрим решение типовых задач изменения цвета и перемещения элементов вывода по текстовому экрану монитора.

Пример 1. Разработать программу, реализующую перемещение произвольной строковой переменной (слова) Str вдоль первой строки текстового поля экрана монитора слева направо с возрастающей скоростью (начальное время задержки 200 мс, на каждом шаге убывает на 5, но не должно быть меньшим 5 мс). При достижении границы экрана перемещение слова заканчивается и программа завершает свою работу.

Решение. Введем дополнительно целочисленную переменную LPass для задания числа пробелов в первой строке перед выводом слова. Применяя функцию Length для определения длины строковой переменной Str, получим следующий код:

program move_word_left_right;

uses Crt;

var N,i,LPass:integer;Str:string;

begin {открытие тела программы}

ClrScr; writeln('Vvedite slovo'); {начальная очистка экрана, запрос на ввод слова Str }

Readln (Str); N:= Length(Str); { ввод слова Str иопределение его длины N }

LPass:=1; i:=200; {задание начальных значений величин LPass, i }

while(N+LPass)<=80 do {проверка окончания цикла - умещается ли пропуск и слово в строке}




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 294; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.