Самоучители для программиста

         

Cамоучитель по VB.NET

Предисловие

Введение рассматриваются принципиальные отличия VB .NET от предыдущих версий. Прочитать эту главу будет полезно даже опытным программистам. Среда программирования VB .NET: Visual Studio .NET знакомит читателя с интегрированной средой разработки (IDE) Visual Studio .NET. Выражения, операторы и передача управления является своего рода букварем VB .NET. В этой главе приведено описание базовых синтаксических средств, к числу которых относятся переменные, циклы и операторы. Классы и объекты открывает серию разделов, посвященных объектно-ориентированному программированию. В ней рассматривается конструирование объектов и их использование в программах.

Введение
Какое отношение все сказанное имеет к .NET? Самое прямое. Видите ли, .NET изменит подход к проектированию приложений так же сильно, как появление классов в VB некогда повлияло на проектирование приложений VB5 и 6. И переход на .NET вызовет определенные неудобства — как и переход от «бесклассовых» версий VB к поддержке классов!

Среда программирования VB .NET: Visual Studio .NET
Новое решение создается командой File > New. Вам предлагается выбрать один из двух вариантов: создать новый проект (New Project) или пустое решение (Blank Solution). Даже при выборе первого варианта IDE все равно создает решение. Различие между этими вариантами заключается в том, что при выборе определенного типа проекта VS .NET IDE создает несколько служебных файлов и включает их в решение (тип файлов зависит от выбранного типа проекта).

Выражения, операторы и передача управления
Если переменная не была инициализирована при объявлении, ей присваивается стандартное значение, соответствующее ее типу, — например, числовым переменным присваивается 0. При таком удобном синтаксисе, как в VB .NET, всегда лучше инициализировать переменную при объявлении, чем полагаться на значение по умолчанию.



Классы и объекты
Возникает очевидный вопрос: по каким критериям выделять классы в программе? Для этого имеется хорошее эмпирическое правило, которое связывает компоненты объектной модели с частями речи. Классы соответствуют существительным в постановке задачи. В нашем примере центральное место занимает существительное «работник» (Employee). Методы объектов соответствуют глаголам — например, работнику можно повысить зарплату (метод RaiseSalary). Свойства соответствуют прилагательным, описывающим существительные. Разумеется, это соответствие лишь намечает контуры объектной модели.

Наследование и интерфейсы
Хотя наследование не является панацеей ООП и во многих ситуациях лучше воспользоваться интерфейсами, не стоит полагать, что без наследования можно как-нибудь обойтись. Наследование — замечательное средство, способное сэкономить немало времени и сил... если им правильно пользоваться. Критерий правильного использования прост: не используйте наследование, если у вас нет абсолютной уверенности в существовании логической связи типа «является частным случаем».

Обработка событий и делегаты
Давайте вернемся к простому классу Empl oyee и подробно, шаг за шагом разберем все, что необходимо сделать для определения и инициирования событий. Предположим, событие должно инициироваться при попытке увеличения заработной платы более чем на 10 процентов без ввода пароля.

Обработка ошибок в VB .NET
Допустим, пользователь ввел имя файла, но метод ProcessFile не может его обработать. Что тогда? Можно ли отличить одно исключение от другого? Как вы вскоре увидите, небольшое усложнение секции Catch позволяет различать исключения по категориям. Более того, в секции Catch можно даже заново инициировать перехваченное исключение командой Throw, чтобы продолжить его обработку.

Формы Windows, графический вывод и печать
Программисты VB6 легко привыкают к особенностям работы с формами и элементами в VS .NET IDE. В вашем распоряжении оказывается пара новых (притом весьма полезных) инструментов, кратко описанных далее, однако общие принципы работы с панелью элементов (toolbox) почти не изменились.

Ввод-вывод
Класс File, как и класс Directory, состоит из общих методов, которым при вызове обычно передается имя файла. Эти методы применяктея при копировании, удалении и перемещении файлов. Основные методы класса File перечислены в табл. 9.3. Обратите внимание,— все параметры передаются по значению (в таблице отсутствуют методы класса File, предназначенные для работы с потоками данных, — они будут рассмотрены ниже).

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

Поддержка баз-данных в VB .NET
Пространство имен System.Data.OleDb содержит классы, используемые при взаимодействии с OLE DB-совместимыми базами данных (такими, как Microsoft Access или Microsoft Fox Pro). Обычно в программах используются классы OleDbConnectl on, OleDbCommand и OleDbDataReader этого пространства имен. Ниже приведены краткие описания этих важных классов.

Краткий обзор ASP .NET
Сценарии ASP .NET программируются в обычном стиле VB .NET, однако в зависимости от типа клиентского броузера генерируется разный код HTML. Например, если клиент работает в последней версии Internet Explorer, в сгенерированном коде используются конструкции DHTML, а интервальная проверка осуществляется на стороне клиента.

Сборки .NET, установка приложений и COM Interop
Теоретически сборка может быть устроена весьма сложно, поэтому в нее включается манифест — совокупность всех сведений о сборке, необходимых исполнительной среде (CLR) для загрузки, компиляции (при необходимости) и выполнения сборки.

Norton Utilites 2002

Среди пользователей часто можно встретить мнение, что Norton Utilites 2002 неправильно работает с локализованной версией Windows. Это выражается в том, что при проверке жесткого диска Norton Disk Doctor все русские имена файлов меняются на ??????. Чтобы избежать подобных проблем внимательно прочитайте этот раздел.
Если при первой проверке диска программой Norton Disk Doctor обнаружатся ошибки, связанные с именами файлов, то НИ В КОЕМ СЛУЧАЕ не предпринимайте никаких мер по лечению!
Пакет Norton Utilites 2002 корректно работает с любой локализованной версией операционной системы, в том числе и с русифицированной. Ключевая информация определяется по региональным настройкам, которые были выполнены при установке операционной системы на компьютер. Однако в силу различных причин эти настройки могут быть нарушены. Поэтому перед началом эксплуатации Norton Utilites 2002 необходимо проверить региональные установки и восстановить их в случае необходимости.

Программа Norton Disk Doctor
Программа Norton Disk Doctor состоит из двух независимых компонентов: для Windows и для DOS. По существу они дублируют стандартную служебную программу Проверка диска для Windows и системную программу ScanDisk для DOS. Особенностью Norton Disk Doctor является возможность самостоятельного определения параметров жесткого диска (число цилиндров, секторов, объем), которые сравниваются с данными, хранящимися в энергонезависимой памяти CMOS. Благодаря этому исключаются ошибки, связанные с неправильным заданием параметров жесткого диска при настройке BIOS.

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

Системное программирование

Программы и программное обеспечение
Определение (ГОСТ)
Программа - это данные, предназначенные для управления конкретными компонентами системы обработки информации (СОИ) в целях реализации определенного алгоритма.
Определения даются по: ГОСТ 19781-90. Обеспечение систем обработки информации программное. Термины и определения. - М.:Изд-во стандартов, 1990.
Обратить внимание: программа - это данные. Один из основных принципов машины фон Неймана - то, что и программы, и данные хранятся в одной и той же памяти. Сохраняемая в памяти программа представляет собой некоторые коды, которые могут рассматриваться как данные. Возможно, с точки зрения программиста программа - активный компонент, она выполняет некоторые действия. Но с точки зрения процессора команды программы - это данные, которые процессор читает и интерпретирует. С другой стороны программа - это данные с точки зрения обслуживающих программ, например, с точки зрения компилятора, который на входе получает одни данные - программу на языке высокого уровня (ЯВУ), а на выходе выдает другие данные - программу в машинных кодах.

Программы и программное обеспечение

Турбо отладчик (Turbo Debugger) 3.0

Турбо отладчик (Turbo Debugger) - это  современный отладчик, позволяющий  отлаживать  программы  на  уровне исходного текста и предназначенный для программистов,  работающих  на  Турбо  языках фирмы  Borland.  Многочисленные перекрывающие друг друга окна,  а также сочетание спускающихся и раскрывающихся  меню  обеспечивают быстрый, интерактивный пользовательский интерфейс. Интерактивная, контекстно-зависимая система подсказки  обеспечит  вас подсказкой на всех стадиях работы.

Новые свойства и изменения в версии 3.0



Клиппер 5. Справочник

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

Положение курсора, а также цветовые атрибуты
Функции Clipper Tools II/5.0 (CT II) позволяют на одном физическом экране создать при наличии доступной памяти до 255 окон. Более того, CT II поддерживает одновременное использование двух мониторов (цветного и монохромного), подключенных к одному компьютеру. В этом случае при помощи функции MONISWITCH(), описываемой в главе "Видеофункции", доступны две независимые оконные системы из 255 окон каждая.

Паскаль. Основы программирования

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

Структура программы на языке "Паскаль"
Имя программы никак в дальнейшем не используется, поэтому требование обязательности объявления имени программы можно считать излишним. Программу можно выполнять и без имени. С другой стороны, - программа без имени неудобна, а иногда непонятна для пользователей и программистов.

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

Числовые последовательности
Начнем с определения последовательности. Определений числовой последовательности дается много, причем самых разных и достаточно понятных, но, по моим соображениям, самое лучшее с точки зрения и математической строгости и доступности дается в книге: "Курс дифференциального и интегрального исчисления", т. 1 Г.М. Фихтенгольца. Я привожу его с незначительными изменениями.

Документация по Clarion

Clarion Professional Developer интегрированная среда для написания приложений для обработки данных и систем управления информацией для микрокомпьютеров. Язык программирования кларион основа этой среды. В этом руководстве, язык четко расписан по модульному принципу. Вам стоит заглядывать в эту книгу, когда, особенно по началу, вы хотите знать точный синтаксис, требуемый для любого описания, оператора, или функции.
Хорошо структурируемые примеры для каждого пункта были особым предметом нашей заботы. Также, много информации в этой книге сведено для мгновенного доступа либо с Руководством Быстрой Ссылки по Кларион, либо со встроенной системой помощи.

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

Метки описаний и операторов
Во время выполнения программы, описания данных сохраняют за собой области памяти которые управляются в соответствии c выполнимыми операторами. Любой оператор кода или описание данных может быть идентифицировано меткой. Метка описывает определенное местоположение в PRO RAM (памяти процессора?). Ко всем переменным, структурам данных, PROCEDUREМ, FUNCTIONМ, ПОДПРОГРАММАМ можно обращаться по их меткам.

BYTE (однобайтное целое без знака)
BYTE описывает однобайтное беззнаковое целое. Присвоение значения выходящего за пределы диапазона приводит к непредсказуемым результатам.

Выражения
Выражение - это математическая или логическая формула, порождающая значение. Выражение может быть переменной в операторе присваивания, параметром процедуры или функции, индексом массива или условием структур IF, CASE, LOOP или EXECUTE. Выражения могут содержать константы, переменные и/или обращения к функциям, объединенные логическими и/или арифметическими операторами.

Простые операторы присвоения
Знак = присваивает значение ИСТОЧНИКа НАЗНАЧЕНИЮ; помещает значение выражения - ИСТОЧНИКа в переменную - НАЗНАЧЕНИЕ. Если ИСТОЧНИК и НАЗНАЧЕНИЕ являются разными типами данных, то результат зависит от Правил Преобразования Данных.

Последовательность выполнения операторов
В разделе CODE Кларионовских программ, операторы выполняются построчно, в той последовательности, в которой они описаны в исходном модуле. Управляющие операторы используются для изменения порядка их выполнения. Управляющие структуры типа IF, CASE, LOOP и EXECUTE определяют порядок выполнения, вычисляя выражения и выполняя операторы в зависимости от условий.

Коды цветовых стилей (видео атрибуты)
Каждое знакоместо в видеопамяти состоит из двух байт; один данные (символ) и второй - видеоатрибуты. Байт видеоатрибутов содержит трехбитный цвет фона, бит мигания/яркости и четырехбитный цвет переднего плана (текста). Эти биты скомпонованы в одно байтный код цветового стиля с возможными значениями 0..255, который задает комбинацию цветов фона/текста

Что такое Screen
В языке Кларион есть два типа экранных структур - собственно экраны - SCREEN, и PULLDOWN-структуры. PULLDOWN-структуры являются SAA/CUA-совместимыми выпадающими меню. SCREEN-структуры используются для всех остальных типов экранов. SCREEN-структура может быть SAA/CUA-совместимой, а может и не быть. В обоих случаях для PULLDOWN и SCREEN-структур имеется полная поддержка мышки после выполнения команды SETMOUSE.

Команды обработки экранов
ACCEPT ожидает от оператора (человека :) ввода в экранные поля или выбора из PULLDOWN. В PULLDOWN-структуре, ACCEPT производит внутреннюю обработку выпадающих подменю. Из полей типа ITEM, могут быть выбраны только те, которые не запрещены оператором DISABLE. PULLDOWN-структура завершается только если был выбран элемент типа ITEM. По завершении, функция FIELD возвращает номер поля для данного ITEM.

Отчеты
Оператор REPORT задает начало структуры-отчета. HEADER, DETAIL и FOOTER это подструктуры, из которых формируется отчет. Отчет должен быть явно открыт оператором OPEN. Элементы открытого отчета можно выводить на печать оператором PRINT. При переполнении страницы могут автоматически печататься структуры HEADER и FOOTER.

Файлы данных
FILE объявляет структуру файла данных. Метка структуры FILE используется в операторах и функциях, работающих с файлами. Структура FILE должна завершаться точкой или оператором END. Атрибуты структур FILE, KEY, INDEX, MEMO, операторы описания данных и типы данных, которые могу содержаться в файле, целиком зависят от конкретного файлового драйвера. Все, что не поддерживается файловой системой, заданной в атрибуте DRIVER, при открытии файла вызовет сообщение об ошибке файлового драйвера.

QUEUE (описывает QUEUE-структуру)
QUEUE описывает очередь в памяти. Очередь (QUEUE) - это двусвязный список, каждый элемент имеет ссылку на предыдущий и последующий элементы. Метка QUEUE-структуры используется в операторах и функциях, работающих с очередями. При использовании в операторах присваивания, QUEUE рассматривается как данное типа GROUP.

Вспомогательные процедуры и функции
Функция INRANGE сравнивает ВЫРАЖЕНИЕ с включительным диапазоном чисел. Если значение ВЫРАЖЕНИЯ попадает в этот диапазон, то функция возвращает единицу ("ИСТИНУ"). Если же ВЫРАЖЕНИЕ больше ВЕРХНЕГО_ПРЕДЕЛА или меньше НИЖНЕГО_ПРЕДЕЛА, то возвращается ноль ("ЛОЖЬ").

Справочное руководство по языку Ада-83

Ада 83 это язык программирования, разработанный в соответствии с так называемыми стилмановскими требованиями, определенными МО США. Более того, эти требования определили язык с мощными выразительными возможностями, пригодный для широкого класса задач. Вследствие этого языку Ада присущи как свойства классических языков, подобных языку Паскаль, так и свойства, характерные для специализированных языков. Таким образом, этот язык является современным алгоритмическим языком с традиционными управляющими структурами и средствами определения типов и подпрограмм. Он также удовлетворяет требованию модульности; данные, типы и подпрограммы могут образовывать пакеты. Модульность понимается и в физическом смысле, что обеспечивается раздельной компиляцией модулей.
В дополнение к указанному язык обеспечивает программирование задач реального времени с возможностями моделирования параллельных задач и обработки исключений. Он пригоден также для системного программирования; это требует прецизионного управления представлением данных и доступа к зависимым от системы параметрам. Наконец, в языке определены пользовательский и машинный уровни ввода-вывода.

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

Операторы присваивания
При выполнении оператора присваивания вначале вычисляются имя переменной и выражение в порядке, не определенном в языке. Затем, если переменная не является массивом, проверяется принадлежность значения выражения подтипу переменной (если же переменная #x2014; массив, то при присваивании производится преобразование подтипа, как описано в разд. 5.2.1). Наконец, значение выражения становится новым значением переменной.

Спецификаторы представления перечисления
Атрибуты SUCC, PRED и PCS определены даже для перечислимых типов с разрывным представлением; их определение соответствует (логическому) описанию типа, и на них не влияет спецификатор представления перечисления. В примере из-за того, что значения даны с пропуском, эти функции реализуются менее эффективно, чем это могло быть в отсутствие спецификатора представления. Это же справедливо и при использовании таких типов для индексации.

Язык AHDL

Операторы и элементы AHDL являются мощным, многогранным и легким в использовании  средством. Вы можете создавать весь иерархический проект с помощью AHDL или смешивать TDF файлы с другими типами файлов в один проект.
Хотя Вы можете воспользоваться любым текстовым редактором для создания TDF файлов, но только текстовой редактор системы MAX+PLUS II дает Вам возможность воспользоваться его преимуществами, когда Вы вводите, компилируете и отлаживаете Ваш AHDL проект.
AHDL проект легко вставить в иерархию проекта. В текстовом редакторе Вы можете автоматически создавать символ, представляющий TDF файл и вводить его в графический файл проекта (Graphic Design File (.gdf)). Аналогичным образом Вы можете объединять заказные функции и свыше 300 мегафункций и макрофункций, поставляемых Альтерой, включая функции библиотеки параметрических модулей (LPM), в  любой TDF файл.

Как пользоваться языком AHDL