- •Оглавление
- •Часть 1 8
- •Часть 2 96
- •Часть 3 185
- •Введение
- •Часть 1 автоматизация проектирования. Основные понятия. Технические средства
- •1.2. Структура и основные принципы построения сапр
- •1.3. Автоматизированные рабочие места инженеров-конструкторов
- •Лекция №2 Виды обеспечения сапр
- •2.1. Инструментальная база сапр
- •Файловые системы fat
- •Файловая система fat32
- •Файловая система ntfs
- •Общая характеристика систем
- •2.3. Классификация устройств, обеспечивающих получение твердых копий конструкторской документации
- •Сканеры
- •Получение твердых копий
- •Технология печати
- •Струйные принтеры
- •Лазерные принтеры
- •Плоттеры
- •Архитектура системы
- •Лекция №3 Организация и управление данными в сапр
- •3.1. Информационный фонд сапр
- •Языки бд
- •Типовая организация современной субд
- •Организация систем автоматизированного проектирования на базе бд
- •3.2. Внутримашинное представление объектов проектирования
- •3.3. Организация обмена данными. Компьютерные сети
- •Лекция №4 Лингвистическое обеспечение автоматизированного проектирования
- •4.1. Организация программного обеспечения сапр. Языки программирования
- •Основные понятия и определения
- •Вычисления в AutoCad
- •Структура программы на AutoLisp
- •Структура программ
- •Объектно-ориентированное программирование
- •Часть 2 задачи автоматизации проектирования механизмов и машин в машиностроении
- •Лекция №5 Основы методологии проектирования технических объектов. Работа с информацией, вырабатываемой во время проектирования
- •5.1. Методология проектирования технических объектов
- •5.2. Работа с информацией
- •5.3. Сапр как объект проектирования
- •Лекция №6 Геометрическое моделирование и организация графических данных
- •6.1. Назначение и область применения систем обработки геометрической информации
- •6.2. Двухмерное проектирование с помощью системы AutoCad
- •6.3. Параметрическое проектирование с применением системы SolidWorks
- •Лекция №7 Виртуальное производство. Характеристики и основные принципы работы сапр технологических процессов обработки металлов давлением
- •7.1. Виртуальное производство
- •7.2. Предпосылки автоматизации проектирования технологических процессов
- •7.3. Математическое обеспечение виртуального производства
- •Лекция №8 сапр инженерных расчетов
- •8.1. Предпосылки автоматизации проектирования деталей приводных устройств
- •8.3. Автоматизация инженерных расчетов и подготовки рабочих чертежей
- •Лекция №9 Принципы построения и организация технического документооборота в масштабе предприятия
- •9.1. Автоматизация управления подготовкой производства
- •9.2. Структура и принципы организации работ
- •Документ – версия – итерация
- •Часть 3 методы оптимизации, применяемые при решении конструкторских задач
- •Лекция №10 Основы теории оптимизации. Проектные параметры. Критерии качества
- •10.1. Постановка задач оптимизации
- •Выбор целевой функции
- •Назначение ограничений
- •Нормирование управляемых и выходных параметров
- •10.2. Классификация оптимизационных задач
- •10.3. Подходы к решению обобщенных задач оптимизации. Математическая формулировка задач оптимизации
- •Безусловная оптимизация
- •Многомерный случай
- •Оптимизация при линейных ограничениях
- •Оптимизация при нелинейных ограничениях
- •Выбор метода оптимизации
- •Выбор метода безусловной оптимизации
- •Выбор метода для задачи с нелинейными ограничениями
- •Размер задачи
- •Структура ограничений
- •Методы нуль-пространства и ранг-пространства
- •Выбор метода, генерирующего допустимые точки
- •Выбор метода для решения задачи с нелинейными ограничениями
- •Роль пользователя
- •Программное обеспечение
- •Заключение
- •Билиографический список
- •394026 Воронеж, Московский просп., 14
Структура программ
В каждой программе C# вначале должен быть определен класс со статическим методом Main(). Этот метод используется как точка входа для приложения. Внутри метода Main() обычно производится создание объектов и различные операции с ними – то, что составляет жизнь любого приложения. Каждому встроенному типу данных соответствует свой тип в пространстве имен System. Каждый встроенный тип данных наследует большое количество методов, которые во многом упрощают работу с данными этого типа.
double min(double A[], int nn)
//описание функции { double А_m in; int i; ... return (А_min); } double B[10]=... double C[20]; void main()
//определение статического метода Main() { int i,n1; double dd ... ,min(B,10)... }
Основная структурная единица программы - функция. Она выполняет некоторое законченное действие и имеет "стандартный интерфейс" с набором параметров, через который она вызывается из других функций. Программа представляет собой набор функций.
"Интерфейс" функции описан в ее заголовке функции. В нем имеется имя функции, по которому она известна далее в программе, формальные (входные) параметры и результат. Имя функции - идентификатор. Результат функции - это выходная переменная, которую формирует функция и значение которой используется затем в том месте программы, где она вызывается. Результат, как любая другая переменная, должен быть определенного типа. В данном случае -вещественное число -минимальный элемент массива. Сразу огорчим: массив не может быть результатом функции, только простые переменные. После имени функции в круглых скобках идет список формальных параметров, разделенных запятыми. Формальные параметры -это тоже переменные особого рода, что видно из заголовка -их синтаксис в перечислении напоминает определение обычных переменных. Как и все другие переменные они имеют тип и могут быть обычными переменными и массивами. Формальные параметры содержат входные данные функции, передаваемые при ее вызове и могут использоваться только самой функцией в процессе ее работы. Вслед за заголовком идет тело функции -нечто, заключенное в фигурные скобки. Тело функции -это и есть выполняемое функцией законченное действие (алгоритм), представленное в виде операторов и операций над переменными. После открывающейся скобки в теле функции присутствуют определения локальных переменных. Это переменные, которые "известны" только данной функции и являются ее собственностью. Более того, они создаются в памяти при входе в тело функции и исчезают при выходе. Локальными переменными пользуется функция при необходимости иметь собственные данные.
Вне тела функции можно определить глобальные переменные. Этими переменными могут пользоваться все функции, следующие за ними по тексту. Глобальные переменные представляют собой общие данные программы. Сразу после определения функции и далее по тексту до конца программы ее можно вызывать из любой другой функции. Вызов функции -это выполнение ее тела с заданными значениями формальных параметров. Значения формальных параметров, с которыми будет выполняться тело функции при вызове, определяются списком фактических параметров, которые следуют в вызове функции вслед за ее именем, разделенные запятыми и заключенные в скобки. Перед вызовом функции фактические параметры, согласно списка, копируются в соответствующие формальные параметры. В данной точке программы это соответствует действию nn=10, где nn -формальный параметр, 10 -фактический параметр - целая константа. Таким образом, функция получает на вход данные через фактические параметры, которые она "видит" как соответствующие им формальные. Если формальный параметр является массивом, то действует исключение из общего правила. Функция не создает собственный массив (в данном случае А[]), а "отображает" пока неизвестным нам образом свой массив на тот, который является фактическим параметром (в данном случае B[]). То есть вместо массива A[] транслятор создает указатель на произвольный массив, который будет "подсунут" функции при ее вызове. Поскольку массив A[] "ненастоящий", размерность его может быть переменной и ее можно не указывать. На месте фактического параметра -массива в вызове функции указывается только его имя (без скобок). После того, как функция вызвана, она возвращает значение переменной-результата, которое можно использовать в дальнейших вычислениях в той части программы, где находится вызов. Его можно сохранить в другой переменной, использовать в арифметических, логических и других выражениях. При этом не следует забывать, что результат имеет свой тип, который оказывает влияние на характер последующих над ним операций. Функции, которые не возвращают никакого результата, тем не менее должны подчиняться общим правилам их определения. Для них введен пустой тип void, который обозначает, что переменная-результат является чисто фиктивной. Поэтому результат такой функции нельзя использовать в выражении, ее можно только вызывать. В программе должна быть всегда функция main, которая вызывается первой после загрузки программы в память в начале ее работы. Для исключения ошибок, причины которых мы пока не знаем, эту функцию следует пока размещать последней.