Turbo Pascal и графика



   сибирское здоровье днепр | купить паспорт Украины цена            Оргия с трансами на e-batsa | секс теги | порево    coupon for deluxe checks

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

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

Знакомство со средой Турбо Паскаля
Система Турбо Паскаль довольна значительна по объему. Она поставляется на нескольких дистрибутивных дискетах и устанавливается на жесткий диск. При развертывании системы на жестком диске обычно создается каталог с именем ТР (или PAS, TURBOPAS, PASCAL и т.п.), в который помещаются все файлы с дистрибутивных дискет. Для вызова Турбо Паскаля необходимо отыскать в древовидной структуре каталогов ПК этот каталог и в нем файл TURBO.EXE. Этот файл содержит готовую к работе диалоговую систему программирования Турбо Паскаль. В него входят минимально необходимые части Турбо Паскаля (текстовый редактор, компилятор, компоновщик, загрузчик).

Как начать работу с Турбо Паскалем
Функциональные клавиши
Текстовый редактор
Основные приемы работы в среде Турбо Паскаля
Работа с файлами
Прогон и отладка программы

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

Ваша первая программа
Типы данных
Преобразования типов и действия над ними
Операторы языка
Составной оператор и пустой оператор
Прогон и отладка программы
Операторы повторений
Оператор выбора
Метки и операторы перехода
Массивы

Элементы языка
Алфавит языка Турбо Паскаль включает буквы, цифры, шестнадцатеричные цифры, специальные символы, пробелы и зарезервированные слова. Буквы - это буквы латинского алфавита от а до z и от А до Z, а также знак подчеркивания _ (код ASCII 95). В Турбо Паскале нет различия между прописными и строчными буквами алфавита, если только они не входят в символьные и строковые выражения.

Элементы языка
Алфавит
Идентификаторы
Константы
Выражения
Операции

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

Типы данных
Простые типы 
Порядковые типы
Вещественные типы
Структурированные типы
Массивы
Записи
Множества
Строки
Совместимость и преобразование типов 

Файлы
Под файлом понимается либо именованная область внешней памяти ПК (жесткого диска, гибкой дискеты, электронного «виртуального» диска), либо логическое устройство - потенциальный источник или приемник информации. Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что лает возможность программе работать одновременно с несколькими файлами. Во-вторых, он содержит компоненты одного типа. Типом компонентов может быть любой тип Турбо Паскаля, кроме файлов. Иными словами, нельзя создать «файл файлов». В-третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти.

Доступ к файлам
Имена файлов
Логические устройства
Инициация файла
Процедуры и функции для работы с файлами
Текстовые файлы
Типизированные файлы
Нетипизированные файлы

Указатели и динамическая память
Все переменные, объявленные в программе, размещаются в одной непрерывной области оперативной памяти, которая называется сегментом данных. Длина сегмента данных определяется архитектурой микропроцессоров 80x86 и составляет 65536 байт, что может вызвать известные затруднения при обработке больших массивов данных. С другой стороны, объем памяти ПК (обычно не менее 640 Кбайт) достаточен для успешного решения задач с большой размерностью данных. Выходом из положения может служить использование так называемой динамической памяти.

Указатели и динамическая память
Динамическая память
Адреса и указатели
Объявление указателей
Выделение и освобождение динамической памяти
Использование указателей
Процедуры для работы с динамической памятью
Администратор кучи


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

Типизированные константы
Константы простых типов и типа STRING
Константы-массивы
Константы-записи
Константы-множества
Константы-указатели

Процедуры и функции
Как отмечалось в гл.2, процедуры и функции представляют собой относительно самостоятельные фрагменты программы, оформленные особым образом и снабженные именем. Упоминание этого имени в тексте программы называется вызовом процедуры (функции). Отличие функции от процедуры заключается в том, что результатом исполнения операторов, образующих тело функции, всегда является некоторое единственное значение или указатель, поэтому обращение к функции можно использовать в соответствующих выражениях наряду с переменными и константами. Условимся далее называть процедуру или функцию общим именем «подпрограмма», если только для излагаемого материала указанное отличие не имеет значения.

Процедуры и функции
Локализация имен
Описание подпрограммы
Заголовок
Параметры
Параметры-массивы и параметры-строки
Параметры-функции и параметры-процедуры
Нетипизированные параметры-переменные
Рекурсия и опережающее описание
Расширенный синтаксис вызова функций

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

Структура модулей
Заголовок модуля и связь модулей друг с другом
Интерфейсная часть
Исполняемая часть
инициирующая часть
Компиляция модулей
Доступ к объявленным в модуле объектам
Стандартные модули

Объекты
Исторически первой была идея процедурного структурирования программ, в соответствии с которой программист должен был решить, какие именно процедуры он будет использовать в своей программе, а затем выбрать наилучшие алгоритмы для реализации этих процедур. Появление этой идеи было следствием недостаточной изученности алгоритмической стороны вычислительных процессов, столь характерной для ранних программных разработок (сороковые - пятидесятые годы). Типичным примером процедурно-ориентированного языка является Фортран - первый и все еще один из наиболее популярных языков программирования. Последовательное использование идеи процедурного структурирования программ привело к созданию обширных библиотек программирования, содержащих множество сравнительно небольших процедур, из которых, как из кирпичиков, можно строить «здание» программы.

Основные принципы ООП
Постановка учебной задачи
Создание объектов
Использование объектов

Другие возможности Турбо Паскаля
С помощью внешних процедур (функций) можно осуществить вызов из программы процедур или функций, написанных на языке ассемблера. Ассемблер обеспечивает компиляцию программ, написанных на машинно-ориентированном языке программирования низкого уровня. В Турбо Паскале есть собственный встроенный ассемблер см. гл.12). В этом разделе речь идет о программах, написанных и откомпилированных с помощью внешнего ассемблера, такого как, например, ассемблер фирмы MicroSoft или Turbo Assembler фирмы Borland.

Внешние процедуры (функции)
Использование встроенных машинных кодов
Обращение к функциям операционной системы
Поддержка процедур обработки прерываний
Запуск внешних программ
Оверлей
Прямое обращение к памяти и портам
Длинные строки

Встроенный ассемблер
Ассемблером называется машинно-зависимый компилятор, преобразующий специальным образом составленные текстовые строки в машинные инструкции. Как и любой другой компилятор, ассемблер упрощает разработку программ за счет того, что предоставляет пользователю доступ к кодам машинных инструкций и операндам с помощью символьных имен. В этой главе рассматриваются приемы программирования с помощью ассемблера, встроенного в компилятор Турбо Паскаля. Встроенный ассемблер имеется в версиях 6.0 и 7.0 Турбо Паскаля и в руках опытного программиста представляет собой мощный инструмент, позволяющий «выжать» из ПК все возможное.

Встроенный ассемблер
Общее описание МП 8086/8088
Регистры
Адресация
Система команд
Специфика встроенного ассемблера
Оператор ASM
Синтаксис ассемблерных команд
Директивы ассемблера
Ассемблерные подпрограммы

Использование библиотеки CRT
Во многих случаях стандартные для Паскаля возможности ввода/вывода данных с помощью процедур Read, ReadLn, Write, WriteLn оказываются явно недостаточными для разработки удобных в использовании диалоговых программ. Например, процедуры Read/ReadLn вводят с клавиатуры только типизированные данные, причем с обязательным эхо-повтором набираемых символов на экране. С их помощью нельзя определить факт нажатия какой-либо специальной клавиши (функциональной клавиши, клавиши управления курсором и т.п.). Процедуры Write/WriteLn выводят сообщения, начиная с того места на экране, где в данный момент находится курсор, причем по мере вывода курсор автоматически сдвигается на экране, а если очередной символ выводится в самом нижнем правом углу экрана, осуществляется «прокрутка» экрана: его содержимое сдвигается вверх на одну строку.

Использование библиотеки CRT
Программирование клавиатуры
Текстовый вывод на экран
Программирование звукового генератора

Использование библиотеки GRAPH
Начиная с версии 4.0, в состав Турбо Паскаля включена мощная библиотека графических подпрограмм Graph, остающаяся практически неизменной во всех последующих версиях. Библиотека содержит в общей сложности более 50 процедур и функций, предоставляющих программисту самые разнообразные возможности управления графическим экраном. Для облегчения знакомства с библиотекой все входящие в нее процедуры и функции сгруппированы по функциональному принципу.

Использование библиотеки Graph
Переход в графический и возврат в текстовый
Процедуры и функции
Координаты, окна, страницы
Линии и точки
Многоугольники
Дуги, окружности, эллипсы
Краски, палитры, заполнения
Сохранение и выдача изображений
Вывод текста

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

Введение в Turbo Vision
Простейшая программа в Turbo Vision
Формирование строки статуса
Формирование меню
Команды
События и их обработка
Программирование диалоговых запросов
Инкапсуляция новых полей и методов
Создание и использование групп
Вывод текста

Общая характеристика объектов
Все свойства Turbo Vision заключены в полях и методах входящих в библиотеку объектов. Каждый объект предназначен для тех или иных целей, поэтому, если Вы хотите использовать какие-то возможности Turbo Vision, Вы должны создать и использовать экземпляры объектов с нужными Вам свойствами. Этот процесс не представляет никакой сложности: вспомните обычные переменные или константы Турбо Паскаля; если, например, в программе понадобится осуществить преобразование строковых данных, Вы объявляете переменную типа String, для реализации математических вычислений - переменную типа Real и т.д. Точно также обстоит дело и с объектами: для создания окна Вы можете объявить переменную типа TWindow, для использования отсортированной коллекции строк - переменную типа TStringCollection и т.д.

Общая характеристика объектов
Структура объектов
Абстрактные объекты и методы
Функциональность объектов
Обзор видимых элементов
Группы видимых объектов
Терминальные видимые объекты
Невидимые элементы
Потоки
Коллекции

Видимые элементы
Любой видимый элемент Turbo Vision имеет два важнейших свойства: он полностью контролирует изображение в пределах выделенного ему участка экрана и знает, как обрабатывать связанные с этим участком события - нажатие на клавиши или отметку мышью. Эти свойства определяются двумя псевдоабстрактными методами объекта TView (этот объект является родителем всех остальных видимых элементов Turbo Vision): Draw и HandleEvent. Метод Draw знает, как рисовать объект, но не знает, когда это нужно делать. Метод HandleEvent, наоборот, знает когда, но не знает как. Эти методы в наибольшей степени воплощают основной принцип программ, управляемых событиями: процесс создания изображений и процесс обработки событий - это два разных процесса в том смысле, что в первом случае мы сообщаем программе как создается изображение, а во втором - когда это нужно делать.

Видимые элементы
Территориальность
Вывод изображения
Заполнение области
Цвет изображения
Группы
Создание группы и изменение ее состава
Z-упорядочение и дерево видимых элементов
Активные элементы
Модальные видимые элементы

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

События
Природа событий
Виды событий
События от мыши
События от клавиатуры
Сообщения
Пустые сообщения
Маршрутизация событий
Позиционированные события
Общие события

Коллекции
Одним из недостатков языка Паскаль (и Турбо Паскаль) является невозможность создания и использования в программе массивов с переменной размерностью - так называемых динамических массивов. Этот недостаток особенно ощутимо сказывается в диалоговых программах, работа которых в существенной своей части определяется действиями пользователя. Если программист заранее не знает, какие именно требования к используемым в программе массивам предъявит пользователь, он обычно резервирует для них максимально возможные объемы памяти или размещает массивы в куче. И тот и другой способы нельзя считать вполне удовлетворительными: в первом случае возникают неестественные ограничения на предельно возможные размеры массивов или выделенная под их размещение память расходуется нерационально, во втором случае приходится прибегать к дополнительным ухищрениям, чтобы организовать индексированный доступ к динамической памяти.

Колекции
Элементы коллекций
Создание коллекций
Доступ к элементам коллекций
Отсортированные коллекции
Коллекции строк
Полиморфные коллекции
Коллекции и управление памятью

Потоки
Основным способом хранения данных в Turbo Vision является их размещение в полях объектов. Это, разумеется, не означает, что Ваша программа должна использовать исключительно поля объектов и/или методы доступа к ним - программа в среде Turbo Vision - это прежде всего программа на Турбо Паскале, а следовательно, Вы можете использовать в ней и все другие средства этой системы программирования. Однако в ходе изучения Turbo Vision Вы уже, очевидно, смогли по достоинству оценить мощные возможности, предоставляемые техникой объектно-ориентированного программирования и средой Turbo Vision, и, надеюсь, вряд ли захотите широко использовать в своей программе неинкапсулированные данные.

Потоки
Сущность потоков
Регистрация объектов
Создание и удаление потока
Работа с потоком
Методы Put и Get
Методы Store и Load
Обработка ошибок
Прямой доступ к потокам
Потоки с произвольными данными


Ресурсы Turbo Vision
Ресурсы - это индексированные потоки. Главное отличие ресурсов от потоков заключается в том, что к объектам, хранящимся в ресурсе, можно обращаться по ключам - уникальным строкам, идентифицирующим объекты. Таким образом, ресурсы спроектированы специально для облегчения произвольного доступа к потокам. Использование ресурсов открывает перед Вами ряд интересных возможностей.

Ресурсы Turbo Version
Сущность потоков
Регистрация объектов
Строковые ресурсы

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

Объекты-контролеры
Типы объектов-контролеров
TPXPictureValidator
TFilterValidator
TRangeValidator
TLookupValidator
TStringl22/glookupValidator
Использование объектов-контролеров
Контроль текстового ввода
Проверка других объектов

Практика использования
Программирование с использованием библиотеки Turbo Vision весьма специфично по сравнению с обычным программированием в среде Турбо Паскаля. Эта специфика прежде всего связана с широко используемым в Turbo Vision механизмом ООП: как правило, нельзя чисто механически перенести старую программу в новую объектно-ориентированную среду, обычно для этого требуется переосмысление всего проекта в целом. Другая особенность Turbo Vision - интенсивное использование динамической памяти: если Вы не имеете достаточного опыта работы с кучей, у Вас могут быть проблемы, связанные с динамически размещаемыми объектами. И, наконец, программы, управляемые событиями - это еще одна весьма специфичная особенность Turbo Vision, которая вначале может создавать определенные трудности в отладке.

Практика использования
Контроль за динамической памятью
Обработка ошибок инициации
Отладка программ
Использование оверлея
Порядок вызова наследуемого метода
Конструктор
Деструктор
Другие методы
Примеры программных реализаций

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

Среда Турбо Паскаля

Варианты кодировки знакогенераторов ПК

Стандартный знакогенератор ПК IBM PC имеет кодировку символов, изображенную на рис.2.1. Символы с кодами от 0 до 127, образующие первую половину символов знакогенератора (рис.П2.1, а), построены по стандарту ASCII и одинаковы на всех IBM-совместимых ПК. Вторая половина символов (коды 128...255) могут отличаться на ПК разного типа.

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

Сообщения и коды ошибок

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

Стандартные библиотечные модули
Тексты программ
Тексты программ
Программа определения дня недели
Определение биоритмов
Игра НИМ

Создание Windows-приложений на основе Visual C#

Microsoft Visual Studio .NET - это интегрированная среда разработки (Integrated Development Environment (IDE)) для создания, документирования, запуска и отладки программ, написанных на языках .NET. Это мощный инструмент профессиональной разработки сложных приложений, один из лучших во всем мире. Набор его функций чрезвычайно велик, сейчас мы рассмотрим его основные элементы. Другие пункты меню и управляющие окна будут описаны в тексте следующих лекций.

Основы работы с Visual Studio .NET
Начальная страница (Start Page) содержит следующие вкладки: Projects, Online Resources и My Profile. По умолчанию мы находимся на вкладке Projects, на которой расположен список недавних проектов. Мы можем перейти по гиперссылке от названия проекта и сразу продолжить работу над ним. На этой же вкладке расположены кнопки New Project и Open Project , по нажатию на которые мы запустим диалоговые окна создания нового или открытия существующего документа соответственно.

Формы
XML-документирование кода
Создание иконки для приложения
Solution Explorer
Class View
Properties Window
Properties Window - 2
Toolbox
Toolbox - 2
Режимы дизайна и кода

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

Создание MDI-приложений
Перечисление MdiLayout
Вырезание, копирование и вставка фрагментов
Контекстное меню
Диалоговые окна
OpenFileDialog
SaveFileDialog
SaveFileDialog - 2
Сохранение файла при закрытии формы
OpenFileDialog и SaveFileDialog для SDI

Операция Drag-and-Drop
Операция Drag-and-Drop предназначена для перемещения и копирования объектов при помощи мыши. Выделив фрагмент текста в Microsoft Word, его можно перетащить в другой документ или в другую позицию текущего документа, нажав и затем отпустив левую кнопку мыши

Почтовая программа Ballet
Добавление проектов
Создание Мастера
Запуск формы-заставки при загрузке приложения
Класс CoreException.cs
Класс DeadConnectionException.cs
Класс ParseException.cs
Класс ResponseException.cs
Класс ShutdownException.cs
Класс FromQuotedPrintableTransform.cs

Что такое реляционная база данных?
Реляционная база данных представляет собой множество взаимосвязанных таблиц, каждая из которых содержит информацию об объектах определенного типа. Каждая строка таблицы содержит данные об одном объекте (например, товаре, фирме, клиенте), а столбцы таблицы содержат различные характеристики этих объектов — атрибуты (например, наименования и цены товаров, адреса и телефоны фирм или клиентов).

Объект Command
Вывод связанных таблиц
Вывод связанных таблиц - 2
Вывод связанных таблиц - 3
Связывание элементов управления с данными
Связывание элементов управления с данными - 2
Объект CurrencyManager
Объект CurrencyManager - 2
Изменение записей
Изменение записей - 2

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

Службы Platform Invoke
Службы COM Interoperability
Обзор механизма преобразования
Работа службы Platform Invoke. Запуск WinAPI
Работа службы Platform Invoke. Запуск WinAPI - 2
Библиотека secur32.dll
Диалоговые окна. Библиотека user32.dll
Динамик компьютера. Библиотека Kernel32.dll
Проявление окна
Завершение работы Windows, перезагрузка

Печать содержимого RichTextBox
В качестве исходного приложения, в котором будем реализовывать возможность печати, возьмем проект TextEditor, созданный нами во второй лекции. Как мы знаем, максимальный объем элемента TextBox ограничивается 64 Кб, для работы с многостраничными документами этого явно мало. Поэтому удаляем с формы элемент txtBox и на его место помещаем элемент RichTextBox, которому задаем имя rtbText. Свойству Dock устанавливаем значение Fill, кроме того, удаляем значение свойства Text.

Программа Picture Viewer
Программа Picture Viewer - 2
Программа Picture Viewer - 3
Печать содержимого PictureBox
Печать содержимого PictureBox - 2
Рисование в Windows-формах
Рисование в Windows-формах - 2
Элемент управления TrackBar
Элемент управления TrackBar - 2
Элемент управления TrackBar - 3

Концепция асинхронного программирования
Локальные методы, вероятность исключений которых сведена к минимуму, не нуждаются в асинхронном подходе (например, изменение цвета шрифта текста или его размера), но другие методы (ожидание чтения файла или запуск web-службы) требуют его в самом начале разработки. Среда Common Language Runtime поддерживает достаточно широкое количество методов и классов асинхронного программирования.

Метод EndOperation
Способ опроса (Pooling)
Способ Callback
Асинхронный запуск произвольного метода
Асинхронный запуск произвольного метода - 2
Асинхронный запуск метода
Обновление пользовательского интерфейса
Обновление пользовательского интерфейса - 2
Меры безопасности в многопоточных приложениях
Автоматическая синхронизация

Создание справки
Справка — непременный атрибут любой, даже самой небольшой программы. Хорошо написанная справка дает пользователям возможность быстро освоить основы работы с программой, практически не прибегая к помощи дополнительных учебников. Ее содержание может быть совсем маленьким — таким как справка к блокноту Windows, или огромным — таким как MSDN (библиотека, представляющая собой, по сути, гигантскую справочную систему).

Подготовка HTML-страниц
Подготовка HTML-страниц - 2
Подготовка HTML-страниц - 3
Подготовка HTML-страниц - 4
Подготовка HTML-страниц - 5
Подготовка HTML-страниц - 6
Создание проекта в HTML Help Workshop
Создание содержания
Создание содержания - 2
Создание указателя

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

Частные сборки
Частные сборки - 2
Создание автозагрузочного диска
Сборки со строгим именем
Создание сборки со строгим именем
Создание сборки со строгим именем - 2
Защита сборок. Утилита ilasm.exe
Как вскрывать защищенные сборки
Как вскрывать защищенные сборки - 2
Глобальный кэш сборок GAC

Безопасность операционной системы Windows
Операционная система Windows, включая самые последние на сегодняшний день версии Windows XP/2003, содержит ряд уязвимостей, немедленно замечаемых заинтересованными лицами. В Интернете встречается программка PassView (http://www.nht-team.org/) — она позволяет узнавать пароли от многих программ, установленных на вашем компьютере, среди которых Internet Explorer, Outlook Express, ICQ.

Модель безопасности .NET Framework
Безопасность доступа кода
Функционирование безопасности доступа кода
Уровни безопасности
Использование безопасности доступа кода
Использование безопасности доступа кода - 2
Администрирование политики безопасности
Администрирование политики безопасности - 2
Тестирование безопасности доступа кода
Тестирование безопасности доступа кода - 2

Подготовка к запуску программы
Файл программы расположен в каталоге Code\Glava11\Educationcenter\Manager\bin\Debug\Manager.exe, приложение настроено на подключение к базе данных, расположенной в той же самой папке. Дополнительно, в каталоге Code\Glava11\Educationcenter\DataBase\ EducationCenter.mdb находится копия базы данных. При авторизации можно ввести любой пароль — соответствующие участки кода в форме Authorization.cs закомментированы.

Описание работы программы
Форма frmClient
Форма frmCourse - форма курсов
Форма frmEmployee
Форма frmGroup - форма добавления группы
Форма frmPaymentType - оплата за услуги
Дополнительные классы
Класс ManagerTreeNode(ManagerTreeNode.cs)
Класс ClientTreeNode(Clients.cs)
Класс GroupTreeNode (Groups.cs)

Интерфейс ISelectingForm(SelectingFormInterface.cs)
Добавляем в окне Solution Explorer новый проект Windows Control Library и называем его FindControl. Это пользовательский элемент управления, с которыми мы сталкивались в лекции 3

Элемент управления FindControl
Элемент управления FindControl - 2

Основы программирования на C#

Имена нынешнего поколения продуктов от Microsoft сопровождаются окончанием .Net (читается Dot Net), отражающим видение Microsoft современного коммуникативного мира. Компьютерные сети объединяют людей и технику. Человек, работающий с компьютером или использующий мобильный телефон, естественным образом становится частью локальной или глобальной сети. В этой сети используются различные специальные устройства, начиная от космических станций и кончая датчиками, расположенными, например, в гостиницах и посылающими информацию об объекте всем мобильным устройствам в их окрестности. В глобальном информационном мире коммуникативная составляющая любых программных продуктов начинает играть определяющую роль.
В программных продуктах .Net за этим именем стоит вполне конкретное содержание, которое предполагает, в частности, наличие открытых стандартов коммуникации, переход от создания монолитных приложений к созданию компонентов, допускающих повторное использование в разных средах и приложениях. Возможность повторного использования уже созданных компонентов и легкость расширения их функциональности - все это непременные атрибуты новых технологий. Важную роль в этих технологиях играет язык XML, ставший стандартом обмена сообщениями в сети.

Visual Studio .Net - открытая среда разработки
Среда разработки Visual Studio .Net - это уже проверенный временем программный продукт, являющийся седьмой версией Студии. Но новинки этой версии, связанные с идеей .Net, позволяют считать ее принципиально новой разработкой, определяющей новый этап в создании программных продуктов. Выделю две важнейшие, на мой взгляд, идеи: открытость для языков программирования;принципиально новый подход к построению каркаса среды - Framework .Net.

Открытость
Framework .Net - единый каркас среды разработки
Библиотека классов FCL - компонент каркаса
Единство каркаса
Встроенные примитивные типы
Структурные типы
Архитектура приложений
Модульность
Общеязыковая исполнительная среда CLR
Двухэтапная компиляция

Создание C#
Язык C# является наиболее известной новинкой в области создания языков программирования. В отличие от 60-х годов XX века - периода бурного языкотворчества - в нынешнее время языки создаются крайне редко. За последние 15 лет большое влияние на теорию и практику программирования оказали лишь два языка: Eiffel, лучший, по моему мнению, объектно-ориентированный язык, и Java, ставший популярным во многом благодаря технологии его использования в Интернете и появления такого понятия как виртуальная Java-машина.

Виды проектов
Консольный проект
Консольный проект - 2
Язык C# и первые проекты
Язык C# и первые проекты - 2
Язык C# и первые проекты - 3
Windows-проект
Начало начал - точка "большого взрыва"
Начало начал - точка "большого взрыва" - 2
Выполнение проекта после "большого взрыва"

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

Система типов
Система типов - 2
Типы или классы? И типы, и классы
Типы или классы? И типы, и классы - 2
Семантика присваивания
Преобразование к типу object
Примеры преобразований
Примеры преобразований - 2
Семантика присваивания
Операции "упаковать" и "распаковать"

Где, как и когда выполняются преобразования типов?
Необходимость в преобразовании типов возникает в выражениях, присваиваниях, замене формальных аргументов метода фактическими. Если при вычислении выражения операнды операции имеют разные типы, то возникает необходимость приведения их к одному типу. Такая необходимость возникает и тогда, когда операнды имеют один тип, но он несогласован с типом операции. Например, при выполнении сложения операнды типа byte должны быть приведены к типу int, поскольку сложение не определено над байтами.

Преобразования ссылочных типов
Преобразования типов в выражениях
Преобразования внутри арифметического типа
Преобразования внутри арифметического типа - 2
Преобразования внутри арифметического типа - 3
Явные преобразования
Преобразования строкового типа
Преобразования и класс Convert
Проверяемые преобразования
Проверяемые преобразования - 2

Объявление переменных
Переменные и типы - тесно связанные понятия. С объектной точки зрения переменная - это экземпляр типа. Скалярную переменную можно рассматривать как сущность, обладающую именем, значением и типом. Имя и тип задаются при объявлении переменной и остаются неизменными на все время ее жизни. Значение переменной может меняться в ходе вычислений, эта возможность вариации значений и дало имя понятию переменная (Variable) в математике и программировании.

Проект Variables
Синтаксис объявления
Синтаксис объявления - 2
Время жизни и область видимости переменных
Поля
Глобальные переменные уровня модуля
Глобальные переменные уровня модуля - 2
Локальные переменные
Локальные переменные - 2
Глобальные переменные уровня процедуры

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

Приоритет и порядок выполнения операций
Перегрузка операций
С чего начинается выполнение выражения
Операции "увеличить" и "уменьшить"
Операции "увеличить" и "уменьшить" - 2
Операции sizeof и typeof
Как получить подробную информацию о классе?
Как получить информацию о классе? - 2
Как получить информацию о классе? - 3
Статические поля и методы классов

Присваивание
В большинстве языков программирования присваивание - это оператор, а не операция. В языке C# присваивание унаследовало многие особенности присваивания языка C++. В C# оно толкуется как операция, используемая в выражениях. Однако в большинстве случаев присваивание следует рассматривать и использовать как обычный оператор.

Присваивание
Специальные случаи присваивания
Определенное присваивание
Еще раз о семантике присваивания
Рассмотрим объявления:
Класс Math и его функции
Класс Math и его функции - 2
Класс Random и его функции
Класс Random и его функции - 2
Класс Random и его функции - 3

Операторы языка C#
Состав операторов языка C#, их синтаксис и семантика унаследованы от языка С++. Как и положено, потомок частично дополнил состав, переопределил синтаксис и семантику отдельных операторов, постарался улучшить характеристики языка во благо программиста. Посмотрим, насколько это удалось языку C#.

Оператор присваивания
Блок или составной оператор
Блок или составной оператор - 2
Пустой оператор
Операторы выбора
Оператор if
Оператор switch
Оператор switch - 2
Оператор switch - 3
Операторы перехода

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

Процедуры и функции - методы класса
Процедуры и функции. Отличия
Описание методов. Синтаксис
Описание методов. Синтаксис - 2
Список формальных аргументов
Список формальных аргументов - 2
Тело метода
Вызов метода. Синтаксис
О соответствии формальных аргументов
Вызов метода. Семантика

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

Корректность методов
Корректность методов - 2
Корректность методов - 3
Инварианты и варианты цикла
Инварианты и варианты цикла - 2
Рекурсия
Рекурсия - 2
Рекурсия - 3
Решение задачи "Ханойские башни"
Решение задачи "Ханойские башни" - 2

Объявление массивов
Массив задает способ организации данных. Массивом называют упорядоченную совокупность элементов одного типа. Каждый элемент массива имеет индексы, определяющие порядок элементов. Число индексов характеризует размерность массива. Каждый индекс изменяется в некотором диапазоне [a,b]. В языке C#, как и во многих других языках, индексы задаются целочисленным типом. В других языках, например, в языке Паскаль, индексы могут принадлежать счетному конечному множеству, на котором определены функции, задающие следующий и предыдущий элемент.

Объявление массивов
Объявление одномерных массивов
Объявление одномерных массивов - 2
Массивы языка C#
Массивы языка C# - 2
Динамические массивы
Многомерные массивы
Многомерные массивы - 2
Массивы массивов
Массивы массивов - 2

Класс Array
Зададимся естественным вопросом: к какому или к каким классам принадлежат объекты ar1, ar2 и ar3? Ответ прост: все они принадлежат к разным классам. Переменная ar1 принадлежит к классу int[] - одномерному массиву значений типа int, ar2 - double[] - одномерному массиву значений типа double, ar3 - двумерному массиву значений типа int. Следующий закономерный вопрос: а что общего есть у этих трех объектов?

Класс Array
Класс Array - 2
Массивы как коллекции
Статические методы класса Array
Статические методы класса Array - 2
Сводка свойств и методов класса Array
Класс Object и массивы
Класс Object и массивы - 2
Массивы объектов
Массивы объектов - 2

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

Строки С++
Строки С#
Класс char
Класс char - 2
Класс char - 3
Символы и строки постоянной длины в C#
Символы и строки постоянной длины в C# - 2
Символы и строки постоянной длины в C# - 3
Класс char[] - массив символов
Класс char[] - массив символов - 2

Класс String
В предыдущей лекции мы говорили о символьном типе char и строках постоянной длины, задаваемых массивом символов. Основным типом при работе со строками является тип string, задающий строки переменной длины. Класс String в языке C# относится к ссылочным типам. Над строками - объектами этого класса - определен широкий набор операций, соответствующий современному представлению о том, как должен быть устроен строковый тип.

Объявление строк. Конструкторы класса string
Операции над строками
Строковые константы
Строковые константы - 2
Неизменяемый класс string
Статические свойства и методы класса String
Метод Format
Метод Format - 2
Методы Join и Split
Методы Join и Split - 2

Пространство имен RegularExpression и классы регулярных выражений
Стандартный класс String позволяет выполнять над строками различные операции, в том числе поиск, замену, вставку и удаление подстрок. Существуют специальные операции, такие как Join, Split, которые облегчают разбор строки на элементы. Тем не менее, есть классы задач по обработке символьной информации, где стандартных возможностей явно не хватает. Чтобы облегчить решение подобных задач, в Net Framework встроен более мощный аппарат работы со строками, основанный на регулярных выражениях

Немного теории
Синтаксис регулярных выражений
Синтаксис регулярных выражений - 2
Классы пространства RegularExpressions
Класс Regex
Классы Match и MatchCollection
Классы Group и GroupCollection
Классы Capture и CaptureCollection
Перечисление RegexOptions
Класс RegexCompilationInfo

Классы и ООП
Объектно-ориентированное программирование и проектирование построено на классах. Любую программную систему, выстроенную в объектном стиле, можно рассматривать как совокупность классов, возможно, объединенных в проекты, пространства имен, решения, как это делается при программировании в Visual Studio .Net.

Две роли классов
Синтаксис класса
Поля класса
Доступ к полям
Методы класса
Доступ к методам
Методы-свойства
Методы-свойства - 2
Методы-свойства - 3
Индексаторы

Развернутые и ссылочные типы
Для развернутого типа характерно то, что каждая сущность ни с кем не разделяет свою память; сущность жестко связывается со своим объектом. В этом случае сущность и объект можно и не различать, они становятся неделимым понятием. Для ссылочных типов ситуация иная - несколько сущностей могут ссылаться на один и тот же объект. Такие сущности разделяют память и являются разными именами одного объекта.

Классы и структуры
Структуры
Синтаксис структур
Синтаксис структур - 2
Класс Rational или структура Rational
Встроенные структуры
Встроенные структуры - 2
Еще раз о двух семантиках присваивания
Перечисления
Перечисления - 2

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

Отношения "является" и "имеет"
Отношение вложенности
Отношение вложенности - 2
Расширение определения клиента класса
Отношения между клиентами и поставщиками
Сам себе клиент
Наследование
Наследование - 2
Добавление полей потомком
Конструкторы родителей и потомков

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

Две стратегии реализации интерфейса
Две стратегии реализации интерфейса - 2
Преобразование к классу интерфейса
Проблемы множественного наследования
Коллизия имен
Коллизия имен - 2
Коллизия имен - 3
Наследование от общего предка
Встроенные интерфейсы
Упорядоченность объектов и IComparable

Как определяется функциональный тип и как появляются его экземпляры
Слово делегат (delegate) используется в C# для обозначения хорошо известного понятия. Делегат задает определение функционального типа (класса) данных. Экземплярами класса являются функции. Описание делегата в языке C# представляет собой описание еще одного частного случая класса. Каждый делегат описывает множество функций с заданной сигнатурой. Каждая функция (метод), сигнатура которого совпадает с сигнатурой делегата, может рассматриваться как экземпляр класса, заданного делегатом.

Функции высших порядков
Вычисление интеграла
Вычисление интеграла - 2
Функции обратного вызова
Функции обратного вызова - 2
Наследование и полиморфизм
Наследование и полиморфизм - 2
Делегаты как свойства
Делегаты как свойства - 2
Делегаты как свойства - 3

Классы с событиями
Каждый объект является экземпляром некоторого класса. Класс задает свойства и поведение своих экземпляров. Методы класса определяют поведение объектов, свойства - их состояние. Все объекты обладают одними и теми же методами и, следовательно, ведут себя одинаково. Можно полагать, что методы задают врожденное поведение объектов. Этого нельзя сказать о свойствах - значения свойств объектов различны, так что экземпляры одного класса находятся в разных состояниях. Объекты класса "человек" могут иметь разные свойства: один - высокий, другой - низкий, один - сильный, другой - умный.

Делегаты и события
Как зажигаются события
Как зажигаются события - 2
Классы receiver. Как обрабатываются события
Классы с событиями в каркасе .Net Framework
Пример "Списки с событиями"
Пример "Списки с событиями" - 2
Класс sender
Класс sender - 2
Классы receiver

Наследование и универсальность
До недавнего времени Framework .Net и соответственно язык C# не поддерживали универсальность. Так что те, кто работает с языком C#, входящим в состав Visual Studio 2003 и ранних версий, должны смириться с отсутствием универсальных классов. Но в новой версии Visual Studio 2005, носящей кодовое имя Whidbey, проблема решена, и программисты получили наконец долгожданный механизм универсальности

Синтаксис универсального класса
Класс с универсальными методами
Класс с универсальными методами - 2
Два основных механизма объектной технологии
Стек
Стек - 2
Ограниченная универсальность
Ограниченная универсальность - 2
Синтаксис ограничений
Список с возможностью поиска по ключу

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

Жизненный цикл программной системы
Первый закон (закон для разработчика)
Второй закон (закон для пользователя)
Третий закон (закон чечако)
Отладка
Создание надежного кода
Создание надежного кода - 2
Искусство отладки
Отладочная печать и условная компиляция
Отладочная печать и условная компиляция - 2

Организация интерфейса
Практически все проекты, построенные в наших лекциях, были консольными приложениями. В реальной жизни консольные проекты - это большая редкость. Причина, по которой из 12 возможных типов проектов мы выбирали наименее используемый, понятна. Нашей целью являлось изучение свойств языка, классов библиотеки FCL, для этих целей консольный проект вполне подходит, позволяя избегать введения не относящихся к сути дела деталей. Теперь цель достигнута - основные средства языка C# рассмотрены, учебный курс завершается.

Форма и элементы управления
Взаимодействие форм
Модальные и немодальные формы
Передача информации между формами
Передача информации между формами - 2
Образцы форм
Главная кнопочная форма
Шаблон формы для работы с классом
Работа со списками (еще один шаблон)
Элемент управления класса ListBox

Абстрактный класс Figure
Абстрактный класс, относящийся к этапу проектирования системы, вместе с тем является важнейшим элементом заключительного семейства классов. В этом проявляется мощь объектно-ориентированного подхода к разработке программных систем. Заметьте, на данном уровне большая часть текста представляет документацию, являющуюся неотъемлемой частью программного проекта.

Классы семейства геометрических фигур
Класс Ellipse
Класс Circle
Класс LittleCircle
Класс Rect
Класс Square
Класс Person
Динамические структуры данных
Динамические структуры данных - 2
Динамические структуры данных - 3

Основы программирования на C# (2)

Visual Studio .Net - открытая среда разработки Среда разработки Visual Studio .Net - это уже проверенный временем программный продукт, являющийся седьмой версией Студии. Но новинки этой версии, связанные с идеей .Net, позволяют считать ее принципиально новой разработкой, определяющей новый этап в создании программных продуктов. Выделю две важнейшие, на мой взгляд, идеи:
* открытость для языков программирования;
* принципиально новый подход к построению каркаса среды - Framework .Net.

Имя .Net
Имена нынешнего поколения продуктов от Microsoft сопровождаются окончанием .Net (читается Dot Net), отражающим видение Microsoft современного коммуникативного мира. Компьютерные сети объединяют людей и технику. Человек, работающий с компьютером или использующий мобильный телефон, естественным образом становится частью локальной или глобальной сети. В этой сети используются различные специальные устройства, начиная от космических станций и кончая датчиками, расположенными, например, в гостиницах и посылающими информацию об объекте всем мобильным устройствам в их окрестности.

Открытость
Framework .Net - единый каркас среды разработки
Библиотека классов FCL - компонент каркаса
Единство каркаса
Встроенные примитивные типы
Структурные типы
Архитектура приложений
Модульность
CLR - динамический компонент каркаса
Управляемый модуль и управляемый код

Класс char
В C# есть символьный класс Char, основанный на классе System.Char и использующий двухбайтную кодировку Unicode представления символов. Для этого типа в языке определены символьные константы - символьные литералы. Константу можно задавать: символом, заключенным в одинарные кавычки;escape-последовательностью, задающей код символа;Unicode-последовательностью, задающей Unicode-код символа.

Класс char[] - массив символов
Класс char[] - массив символов - 2
Существует ли в C# тип char*
Класс String
Объявление строк. Конструкторы класса string
Операции над строками
Строковые константы
Неизменяемый класс string
Статические свойства и методы класса String
Метод Format

Два основных механизма объектной технологии
В момент вызова метода передаются фактические аргументы и фактические типы. В данном примере в качестве фактических типов использовались встроенные типы int и string и тип Person, определенный пользователем. Общая ситуация такова: если в классе объявлен универсальный метод со списком параметров MT1, ...Tn (...), то метод вызывается следующим образом: MTYPE1, ... TYPEn(...), где TYPEi - это конкретные типы.

Ограниченная универсальность
Синтаксис ограничений
Список поиска элементов по ключу
Список поиска элементов по ключу - 2
Список поиска элементов по ключу - 3
Как справиться с арифметикой
Как справиться с арифметикой - 2
Родовое порождение класса. Предложение using
Универсальность и специальные случаи классов
Универсальные структуры

Компьютерная графика, мультимедиа и игры на Visual C#

Это первая в мире книга по новейшей версии языка Visual C# 2005 из платформы Visual Studio 2005, которую издательство “Жарков Пресс” получило непосредственно от корпорации Microsoft (США). Сразу же отметим, что все программы из данной книги прекрасно работают также и на платформах предыдущих версий Visual Studio 2004, Visual Studio .NET 203 и Visual Studio .NET 2002.
Наша основная цель – дать читателю ту информацию, которую он больше нигде не найдет. Поэтому мы не будем дублировать известные книги по языку программирования Visual C# и давать подробные объяснения по теории этого языка. Если у читателя возникнуть вопросы, он легко отыщет книгу по данному языку  (некоторые книги приведены в нашем списке литературы) и там найдет ответ, так как терминология по всем тематикам у нас общая. Мы будем давать лишь краткие пояснения, чтобы начинающий пользователь постепенно осваивал различные базовые дисциплины, по возможности не используя другие книги; опытный пользователь может пропускать эти пояснения. К достоинствам книги, рассчитанной на широкий круг новичков и опытных специалистов, мы относим практическую направленность, простоту изложения (без описания сложных теорий, но давая ссылки на книги, в которых эти сложные теории можно изучить), наличие подробных методик и пошаговых инструкций, большое количество примеров и иллюстраций.

Методика разработки приложений для выполнения расчетов с эффектами анимации
Для всех желающих быстро изучить новейший самый современный, совершенный и перспективный (в мире программирования) язык высокого уровня Visual C#, сразу же создавать на этом языке последних версий Visual C# 2005, Visual C# 2004, Visual C# .NET 2003 и Visual C# .NET 2002 мощные профессиональные приложения и применять их на практике в разнообразных сферах деятельности

Методика разработки приложений
Краткие сведения о возможностях Visual Studio
Рисование простых линий на форме
Рисование простых линий на форме - 2
Рисование сложных линий и печать формы
Рисование сложных линий и печать формы - 2
Рисование заполненных фигур и печать
Рисование текста и печать текстового файла
Рисование текста и печать текстового файла - 2
Методика создания вычислительной системы

Вывод на экран выступлений и анимаций всех персонажей
Cтроим программу и запускаем на выполнение обычным образом: Build, Build Solution; Debug, Start Without Debugging. В ответ Visual C# выполняет программу и на рабочий стол выводит форму Form1 в режиме выполнения.

Вывод на экран анимаций всех персонажей
Вывод на экран анимаций всех персонажей - 2
Вывод на экран анимаций всех персонажей - 3
Вывод на экран анимаций всех персонажей - 4
Вывод на экран анимаций всех персонажей - 5
Вывод на экран анимаций всех персонажей - 6
Вывод на экран анимаций всех персонажей - 7
Вывод на экран анимаций всех персонажей - 8
Вывод на экран анимаций всех персонажей - 9
Вывод на экран анимаций всех персонажей - 10

Графический редактор P-CAD Schematic

Основное назначение графического редактора P-CAD Schematic -построение электрических принципиальных схем радиоэлектронных устройств. Экранный интерфейс редактора представлен на Рисунок 1.2. Слева от рабочего окна расположена панель инструментов размещения объектов Placement Toolbar. Если установлена утилита P-CAD Document ToolBox, то выводится панель команд DocTool Toolbar. Прочие параметры окна редактора и их функции рассмотрены ранее в параграфе «Интерфейс пользователя» главы 1.
После запуска редактора производится настройка его конфигурации.

Настройка конфигурации редактора P-CAD Schematic
После нажатия на кнопку Page Setup можно (3.34) в области Sheets выбрать имя листа для печати, а в области Image Scale — форматку листа. При необходимости в окне Title области Image Options можно разрешить распечатку форматки и произвести разворот (Rotate) форматки при печати, а в окнах X offset и Y offset задать расстояния изображения схемы до краев листа.

Вывод схемы на печать
Окно команды File/Print
Окно команды Page Setup
Генерация списка соединений
Выбор формата списка соединений
Окно команды File/Reports
Активизации кнопки Add
Конфигурирование файлов отчетов
Меню выбора отчета для компонентов схемы
Меню установки последовательности отчета

Сообщения об ошибках программы P-CAD Schematic
В области окна Workspace Size (размер форматки) необходимо выбрать один из стандартных листов, на который будут выводиться сформированные данные: элементы библиотек, создаваемые электрические схемы и т. д. Габариты выбранного формата листа подсвечиваются в строках окна Width (ширина) и Height (высота).

SCHNETPG CPP (411) V12 00 SCH
VIEWPART CPP (465) V12 00 SCH
ASCIIFNC CPP (1752) V12 00 SCH
WINUTIL CPP (1511) V12 00 SCH
PINTOOL CPP (305) V12 00 SCH
EDITNET CPP (233) V12 00 SCH
PIN2 CPP (102) V12 SCH
SCH CPP (377) V12 00 SCH
Настройка конфигурации PCAD Schematic
Настройка конфигурации PCAD Schematic

27 уроков по Word 97
Руководство по программному пакету ERwin
Есенберлин Ильяс - Золотая Орда
Эхерн Джерри - Побег Из Гарема
Безопасность жизнедеятельности. В вопросах и ответах, задачах и решениях
XML - статьи
Поисковые системы
Построение сетей на инфракрасных лучах и лазерах
Экслер Алекс - Забавные Дневники
Физическое окружение вычислительной техники
Возможности вычислительных машин и человеческий разум
Организация вычислительных систем
Объектно-ориентированное проектирование с примерами
Практическая работа с таблицами Excel
MS Excel 2000 для начинающих
Программирование в IIS
MS Excel 97
Полезные советы по MS Office
Файнток Дэвид - Николас Сифорт
Учебник по автоматической установке Windows XP