Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Пример разработки алгоритма методом последовательной детализации. Вспомогательные алгоритмы




Задача на определение количества информации с последующим преобразованием единиц измерения.

Цветное растровое графическое изображение, палитра которого включает в себя 65 536 цветов, имеет размер 100Х100 точек (пикселей). Какой объем видеопамяти компьютера (в Кбайтах) занимает это изображение в формате BMP?

Указания. BMP (Bit MaP image) — универсальный формат растровых графических файлов, который хранит информацию о каждой точке изображения. Сначала следует определить, какое количество информации требуется для хранения в памяти кода цвета каждой точки. Воспользуйтесь формулой, связывающей между собой количество состояний объекта (в данном случае цветов) N и количество информации I:



 

 

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

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

Событийная процедура представляет собой подпрограмму, которая начинает выполняться после реализации определенного события. Программный модуль может содержать несколько событийных процедур. Каждая из таких процедур начинается с ключевого слова Sub (subroutine — подпрограмма) и заканчивается ключевыми словами End Sub.

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

Пусть домик будет состоять из стены (прямоугольника) и крыши (треугольника). Тогда в программном модуле, реализующем рисование домика на форме Forml, будет две событийные процедуры —

Стена_С1iсК и Kpыша_Click.

Private Sub CTeHa_Click()

Forml.Line (20, 100)-(220, 200),, В

End Sub

Private Sub Kpыша_Click ()

Forml.Line (20, 100)-(220, 100)

Forml.Line (20, 100)-(120, 50)

Forml.Line (120, 50)-(220, 100)

End Sub

Для создания графического интерфейса программы разместим на форме Forml две кнопки Стена и Крыша. Тогда после запуска программы на выполнение и щелчков по кнопкам Стена и Крыша будут реализованы соответствующие событийные процедуры и на форме появится рисунок домика.

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

Выполнение общих процедур не связывается с какими-либо событиями, они вызываются на выполнение с помощью оператора Call. Каждой общей процедуре дается уникальное название — имя процедуры и устанавливается список входных и выходных параметров процедуры.

Общая процедура представляет собой подпрограмму, которая начинает выполняться после ее вызова из другой процедуры.

Список входных параметров — это набор переменных, значение которых должно быть установлено до начала выполнения процедуры.

Список выходных параметров — это набор переменных, значение которых устанавливается после окончания выполнения процедуры.

Тогда синтаксис вызова процедуры приобретает вид:

Call ИмяПроцедуры(СписокПараметров)

Чтобы реализовать графический интерфейс, включим в проект еще одну форму (Form2). Для рисования домика целесообразно создать общую процедуру Домик (XI, Х2, Yl, Y2 As Single), которая имеет только список входных параметров (координат углов стены). Выходных параметров эта процедура не имеет.

Пусть событийная процедура Рисование_С11сК () обеспечивает рисование трех домиков с различными значениями входных параметров, т. е. три раза вызывает общую процедуру Домик с различными значениями входных параметров.

Тогда связанный с формой (Form2) программный модуль будет включать в себя общую процедуру Домик (XI, Х2, Yl, Y2 As Single) и событийную процедуру PncoBaHne_Click ():



Для построения графического интерфейса программы разместим на форме Form2 кнопку Рисование. В этом случае после запуска программы на выполнение и щелчка по кнопке Рисование запустится событийная процедура Рисование_С1iсК (), в процессе выполнения которой три раза будет вызвана общая процедура Домик с различными значениями параметров и на форме появятся рисунки трех разных домиков.

 




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


Дата добавления: 2015-04-24; Просмотров: 679; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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