В общем виде приложения могут состоять из нескольких форм, нескольких стандартных модулей и нескольких модулей

Option Explicit on Option Strict on Imports System.Math Imports System.IO … ‘импортирование компонент других библиотек классов Module Module_1 … ‘стандартный модуль 1 End Module … Module Module_n … ‘стандартный модуль n End Module Public Class Class1 … ‘модуль класса 1 End Class … Public Class Class_k … ‘модуль класса k End Class Public Class Form1 … ‘модуль формы 1 End Class … Public Class Form_m … ‘модуль формы m End Class

Обратите внимание, что каждое приложение VB должно содержать точку входа. Этой точкой входа является процедура с именем Main( ). Платформа .NET Framework вызывает процедуру Main( ) при загрузке приложения. Main( ) содержит код, который будет выполняться в первую очередь. В процедуре Main( ) пользователь может определить, какая форма загружается первой при запуске программы, установить, работают ли в системе копии данного приложения, ввести набор переменных для приложения или открыть необходимую для приложения базу данных. Причем основную работу выполняет метод Run( ) – в процессе его вызова создается объект класса Form1 и открывается форма – визуальный образ объекта, с которой может работать конечный пользователь проекта. Если, как положено, форма спроектирована и заполнена элементами управления, то конечному пользователю остается вводить собственные данные в поля формы, нажимать на кнопки, вообще быть инициатором возникновения различных событий в мире объектов формы. В ответ на возникающие события начинают работать обработчики событий, что приводит к желаемым (или не желанным) изменениям мира объектов. Типичной ситуацией является проведение вычислений по данным, введенным пользователем и отображение результатов этих вычислений в полях формы, предназначенных для этих целей.

Файл, запускаемый самостоятельно с расширением *.exe, должен также содержать процедуру Main( ).В то время как, библиотека (например, с расширением *.dll) не может быть запущена самостоятельно и не требует процедуры Main( ). Рассмотрим требования к процедуре Main( ) для различных типов проектов.

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

Проще всего объявить процедуру Sub.

Module mainModule Sub Main() … End Sub End Module

В VB стартовым объектом всегда является процедура Main( ). Имя этой процедуры должно быть указано на вкладке Приложение (Application) диалогового окна My Project (рис. 5.1-18). Диалоговое окно My Project появляется на экране, если дважды щелкнуть по его имени в окне Обозреватель решений (Solution Explorer)

В общем виде приложения могут состоять из нескольких форм, нескольких стандартных модулей и нескольких модулей

Рис. 5.1-18. Информация о стартовой процедуре

2. Приложения Windows Forms выполняются самостоятельно. Для этого VB в таких приложениях создает процедуру Main( ) автоматически, и поэтому ее не требуется создавать. Дело в том, что в VB поддерживается концепция стартового объекта, автоматически создаваемого при запуске приложения. По умолчанию стартовым объектом всегда является исходный класс, производный от класса Form. Имя этого объекта указывается на вкладке Приложение (Application) диалогового окна My Project (рис. 5.1-19). Диалоговое окно My Project появляется на экране, если дважды щелкнуть по его имени в окне Обозреватель решений (Solution Explorer).

В общем виде приложения могут состоять из нескольких форм, нескольких стандартных модулей и нескольких модулей

Рис. 5.1-19. Информация о стартовом объекте

3. Библиотеки классов не требуют процедуры Main( ). Программа VB построена из стандартных блоков. Решение состоит из одного или нескольких проектов. Проект,в свою очередь, может содержать одну или несколько сборок. Каждая сборка компилируется из одного или нескольких исходных файлов. Исходный файл включает в себя определения и реализацию классов, структур, модулей и интерфейсов, и, в конечном счете, содержит весь код.

Сборки образуют базовую единицу развертывания и принимают форму исполняемого файла (*.exe) или файла библиотеки динамической компоновки (DLL); они являются стандартными блоками платформы .NET Framework. Среда CLR получает от них сведения, необходимые для реализации типов. Сборку можно представить как коллекцию типов и ресурсов, формирующих логическую единицу функциональности и собранных для совместной работы.

В VB используется содержимое сборок, и добавляются ссылки на них. Кроме того, каждая сборка содержит манифест сборки. Подобно содержанию манифест сборки содержит Идентификатор сборки (ее имя и версию); Таблицу файлов, в которой описаны все другие файлы, образующие сборку, например, любые другие сборки, с которыми связаны *.exe-файлы или библиотеки DLL, или даже точечные рисунки или текстовые файлы; Список ссылок на сборки, который представляет собой список всех внешних зависимостей – файлов библиотек DLL или других необходимых приложению файлов, которые могли быть созданы кем-либо еще.

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

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

1. Операторы Option.

2. Операторы Imports.

3. Операторы Namespace и элементы уровня пространства имен.

Размещение операторов в иной последовательности может вызвать ошибки компиляции.

Операторы Option и Imports были рассмотрены ранее.

Операторы пространства имен помогают организовывать и классифицировать элементы программирования для облегчения их группировки и доступа к ним. Оператор Namespace используется для классификации следующих операторов в определенном пространстве имен и объявляет имя пространства имен и вызывает исходный код ниже объявления для компиляции в пределах этого пространства имен:

Namespace { name | name.name } [ componenttypes ] End Namespace

Где name:

Обязательное уникальное имя пространства имен, которое должно быть допустимым идентификатором Visual Basic;

Componenttypes:

Дополнительный элемент пространства имен. В пространство имен могут входить структуры, интерфейсы, классы, модули, делегаты, другие пространства имен и прочие элементы;

End Namespace:

Завершает блок Namespace.

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

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

Пространства имен обрабатываются так же, как если бы они имели уровень доступа Public. К пространству имен можно обращаться из кода в том же проекте, из других проектов, которые ссылаются на проект, и из любой сборки, построенной из проекта.

5.1.4. Задачи для самостоятельного решения по теме
«Стандартные модули и модульная структура
приложений в VB»

1)В n разных школах г. Москвы (номера школ известны) проведен анонимный опрос m школьников 6 классов (числа n и m известны). Школьникам задавался вопрос, курят ли они. В опросе участвовали как мальчики, так и девочки. Результаты опроса поступали неупорядоченными по школам. Определить школы с максимальным процентом курящих отдельно по мальчикам и девочкам. Предусмотреть проверку правильности ввода информации.

2)Известны фамилии n сотрудников больницы (n — заданное число). Сотрудники работают по индивидуальному графику (1-й день — утро, 2-й день — вечер, 3-й день — выходной). В первое число месяца известно, в какую смену работает каждый сотрудник или имеет выходной. Составить алгоритм и программу, которые позволяют на любое заданное число месяца напечатать пронумерованный список сотрудников, имеющих выходной. Считать, что в месяце 30 дней.

3)Известны названия m предприятий города, производящие поn наименований различных изделий, для которых известны количества их выпуска в год. Составить алгоритм и программу, которые по наименованию изделия определяют название предприятия, производящего максимальное количество этого изделия, а также печатают список предприятий, на которых это изделие производится, располагая названия этих предприятий в порядке убывания объема выпуска данного изделия.

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

5)Пароходство владеет n пассажирскими теплоходами (n и названия теплоходов заданы), каждый из которых имеет каюты люкс на 1 и 2 палубах, первого класса на 2 и 3 палубах, второго класса на 3 и 4 палубах и третьего класса на 3 и 4 палубах. На каждом из теплоходов каюта может быть занята, забронирована или свободна. Составить алгоритм и программу для вывода по указанному пользователем теплоходу отдельно информации о количестве свободных кают и отдельно информации о количестве забронированных кают. Информацию выдать по каждой из палуб в порядке возрастания их номеров с указанием класса кают.

6)В течение месяца (30 дней) абоненты международной телефонной сети производили переговоры с m странами. Каждая страна имеет свой код и тариф за 1 мин. Составить алгоритм и программу, которые печатают счета абонентам, в которых указывается телефон абонента, код страны, количество минут, стоимость каждого разговора и итог за месяц. В общем списке абоненты представлены телефонными номерами, а для каждого разговора известна его продолжительность.

7)В чемпионате по футболу приняло участие n команд (названия команд известны). Составить алгоритм и программу, которые определяют 4 команды, показавшие лучшие результаты, если известен счет каждого матча. При равных условиях лучшей считается команда, у которой разность между забитыми и пропущенными мячами лучше.

8)В течение года (12 месяцев) отслеживалось изменение курсов n валют. Известны названия валют и их курс по отношению к рублю на последнее число каждого месяца. Составить алгоритм и программу, которые за каждый квартал определяют валюты, у которых наблюдался наибольший и наименьший рост относительно среднего квартального курса данной валюты.

9)Имеются сведения о доходах пяти магазинов по дням в течение одного месяца (в месяце 30 дней). Составить алгоритм и программу, которые для каждого магазина определяют числа месяца и соответствующие им дни недели с минимальным доходом, учитывая, что по субботам и воскресеньям магазины закрыты, а первое число месяца — вторник.

10)В отделе кадров предприятия имеется список сведений о n сотрудниках. О каждом сотруднике известно: фамилия (в списке фамилии расположены по алфавиту), номер отдела, должность, оклад и стаж работы. Составить алгоритм и программу, которые выводят списки фамилий сотрудников по отделам с указанием занимаемой должности, оклада и стажа.

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

12)В бюро по трудоустройству имеются сведения о N вакансиях на предприятиях города. О каждом вакантном месте известно: название предприятия, должность, оклад, требуемое образование (высшее или среднее), предельный возраст. Составить алгоритм и программу, которые по данным об образовании и возрасте печатают список вакансий, располагая их в порядке убывания окладов.

13)В префектуре имеются сведения о потребностях в улучшении жилищных условий 1500 семей. О каждой семье известно, на квартиру из скольких комнат она претендует. Составить алгоритм и программу, которые печатают список семей, получивших квартиры в новом доме, и список семей, оставшихся в очереди, если известно, что в доме 100 квартир, из которых 30 однокомнатных, 40 – двухкомнатных и 30 – трехкомнатных.

14)Имеются сведения об урожаях зерна в n регионах России за m лет. Составить алгоритм и программу, которые определяют самый урожайный и самый неурожайный годы и для каждого года печатают список регионов в порядке убывания полученного в них урожая.

15)Список участниц конкурса красоты содержит 12 фамилий. Каждый из 200 опрошенных называет трех претенденток, и определяет каждой из них одно из первых 3-х мест. Вывести на экран фамилию участницы, набравшей наибольшее число первых мест. Если таких участниц несколько, то вывести фамилии всех участниц.

16)В типографии заказано n визитных карточек. Составить алгоритм и программу, которые определяют стоимость заказа, если первые 100 визиток стоят 5 руб. за штуку, а стоимость каждой последующей карточки уменьшается соответственно на 1 коп.

17)Список участниц конкурса красоты содержит 12 фамилий. Каждый из 200 опрошенных называет трех претенденток и определяет каждой из них одно из первых 3-х мест. Вывести на экран фамилию участницы, набравшей наибольшее число первых мест. Если таких участниц несколько, то вывести фамилии всех участниц.

18)Для каждого из 20 классов школы известно, сколько в них мальчиков и сколько девочек. Составить алгоритм и программу, которые выводят номера классов по убыванию процентного состава мальчиков и определяют процент девочек и мальчиков по школе в целом.

19)В доме проводится остекление окон. Количество квартир в доме и количество комнат в каждой квартире (1, 2 или 3) известно. Составить схему алгоритма и программу, которые определяют, сколько м2 стекла надо закупить и общую стоимость стекла, если в трехкомнатной квартире площадь окон составляет 10 м2, в двухкомнатной – 7 м2, в однокомнатной – 5 м2, а стоимость 1 м2 стекла 200 руб.

20)Составить алгоритм и программу, которые выводят список фамилий школьников по убыванию их среднего балла за год, а также определяют процент отличников (все отметки 5) и процент хорошистов (отметки 5 и 4), если для каждого из 25 школьников известны итоговые оценки по 15 предметам.

21)Объем файла, подлежащего архивации, составляет S мегабайт. При архивации объем файла уменьшается: программой ZIP – на 30%, а программой ARJ – на 25%, после чего архив разбивается на дискеты по 1,44 мегабайт. Составить алгоритм и программу, определяющую необходимое количество дискет для архивации файла заданного объема в зависимости от типа выбранной программы архивации (тип программы архивации вводится).

22)Известны сведения о багаже авиапассажиров одного рейса (багаж характеризуется фамилией пассажира, количеством вещей и общим весом). Составить алгоритм и программу, которые определяют средний вес багажа авиапассажира (в самолете занято n мест, но не все пассажиры имеют багаж), подсчитывают число пассажиров, у которых отсутствует багаж, и число пассажиров, у которых вес багажа превосходит средний вес, а также напечатают список фамилий пассажиров, у которых вес багажа превысил норму – S кг.

23)Имеется n партий микросхем одного вида. Из каждой партии отобрали m микросхем и раздали для контроля работникам отдела в произвольном порядке, которые определяли ее годность или негодность. Для того чтобы вся партия была забракована, достаточно, чтобы из m выбранных микросхем были забракованы k. Составить алгоритм и программу, которые по итогам контроля определяют количество негодных микросхем в каждой партии и количество забракованных партий.

24)Каждое из n швейных предприятий области специализируется на выпуске традиционных для данного предприятия m видах швейной продукции. Составить алгоритм и программу, позволяющие для каждого вида продукции определить предприятия (их номера), выпускающие данный вид продукции.

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

26)Ежедневно частное предприятие по быстрой доставке почты имеет n заказов, каждый заказ характеризовался стоимостью Ti и директивным сроком доставки Li. За превышения директивного срока предприятие выплачивало из стоимости заказа штраф, размеры которого линейно пропорциональны (с коэффициентом b) количеству просроченных часов. Досрочное выполнение заказа поощрялось премией в размере а% от стоимости заказа. Составить алгоритм и программу расчета дохода, полученного предприятием за месяц, если известны реальные сроки выполнения каждого из n заказов в каждый из 30 дней месяца.

27)Агент 007, отправляясь на задание, формирует багаж необходимых спецсредств, каждое их которых характеризуется определенной убойной силой и объемом. В целях конспирации объем дипломатического багажа ограничен. Составить алгоритм и программу, которые помогут сформировать багаж агента, т.е. производят выбор из М вариантов каждого средства то средство, которое обладает максимальной убойной силой, при этом учитывают, что суммарный объем всех выбранных средств не должен превышать заданный (S).

28)При производстве радиоприемника используется n наименований элементов. На складе имеется по Mэлементов каждого типа, каждый из которых характеризуется эффективностью, стоимостью и весом. Составить алгоритм и программу, которые позволяют выбрать самую эффективную элементную базу, вычислив при этом стоимость и вес составляющих ее элементов.

29)При расчете Единого социального налога (ЕСН) придерживаются следующей схемы: если сумма дохода нарастающим итогом за расчетный период не превышает N руб., то на эту сумму начисляют k1% налога, если превышает, то на сумму N руб. начисляют k1% налога, а на сумму превышения начисляют k2% налога(k1k2). Составить алгоритм и программу, которые производят начисления ЕСН за год для l сотрудников предприятия, если имеются списки сотрудников с указанием сумм доходов по месяцам года, и печатают фамилии тех сотрудников, на доходы которых сумма налога превысила S руб.

30)В театральную кассу поступило n заявок (n задано) от школ города. Каждая заявка содержит название одного спектакля и необходимое количество билетов. Составить алгоритм и программу, которые на основании этих данных определяют популярность каждого спектакля и печатают их названия в порядке убывания количества заказанных на них билетов.

31)Кондитерская фабрика получила заказ на изготовление l тортов. Каждый торт изготавливается из n ингредиентов. На складе имеется по m видов каждого ингредиента, которые характеризуются сортом и ценой. Составить алгоритм и программу, которые определяют общую стоимость заказа, если для его выполнения были выбраны самые дорогие ингредиенты, и печатают список выбранных ингредиентов с указанием сорта и цены, обозначив ингредиенты номерами. Стоимость изготовления одного торта S руб.

32)Фирма по ремонту квартир получила n заказов, каждый их которых характеризуется стоимостью Ti и сроком его выполнения Li. За превышение срока выполнения стоимость заказа уменьшается на величину, пропорциональную количеству просроченных дней, а досрочное выполнение заказа поощряется премией в размере а% от стоимости заказа. Составить алгоритм и программу, которые определяют сумму, полученную фирмой за выполнение всех n заказов, если реальные сроки их выполнения известны.

33)При установленном счетчике расхода воды тариф составляет 35 коп. за один литр. При отсутствии счетчика, плата за воду в месяц для одной семьи составляет 150 руб. Составить алгоритм и программу, которые по известным данным о ежедневном потреблении воды (в литрах) одной семьей за 30 дней месяца, определяют, что выгоднее – оплата по счетчику или без счетчика, а также среднесуточный расход воды.

34)Для каждого из n студентов (фамилии известны) в архиве хранятся сведения о 60 оценках, полученных им за все время обучения в институте. Составить алгоритм и программу, определяющие, имеет ли студент право получить «красный диплом», если на «красный диплом» нельзя иметь ни одной тройки, а четверок – не более 10%. Вывести на экран список фамилий студентов с указанием его средней оценки, а также список студентов, которые имеют право получить «красный диплом».

35)Кабельный завод выпускает N видов кабелей. Каждый вид кабеля характеризуется маркой и стоимостью его метра. К заводу обратилось M заказчиков на поставку определенного количества каждого вида кабеля. Составить алгоритм и программу, которые для каждой марки кабеля определяют общее количество заказа, а также печатают список предприятий-заказчиков с указанием суммы договора, располагая названия предприятий в порядке убывания суммы договора.

Модули MBee 868 2.0 или UART \


Похожие статьи.

Понравилась статья? Поделиться с друзьями: