
- •5 Какими характеристиками определяются дискретные системы идентификации?
- •1.1.2 2. Основные этапы математического моделирования
- •Запуск пакета MatLab?
- •10.Рабочая среда MatLab 6.Х содержит следующие элементы:
- •11. Назначение программы matlab.
- •15.Назовите два способа запуска пакета Simulink ?
- •13.Возможности моделирования, предоставляемые пакетом прикладных программ Control System Toolbox (сst) и matlab Simulink.
- •14.Основные этапы работы с программой.
- •16.Назовите основные разделы Simulink?
- •Методы определения амплитудно-частотных характеристик
- •Экспериментальный:
- •Аналитический:
- •40. Что такое «запасы устойчивости по фазе и по амплитуде»?
- •41. Какие различные формы имеет функция plot?
- •42. Какая функция позволяет выводить множество графиков в одном окне?
- •2.Содержание к разделу «Численные методы»
- •1.Общие понятия. Численные методы и математические модели га.
- •2.Постановка задачи. Решение уравнений с одной переменной.
- •3.Решение уравнений с одной переменной методом хорд.
- •4.Решение уравнений с одной переменной методом касательных (Ньютона).
- •5.Решение уравнений с одной переменной методом половинного деления.
- •1. Анализ существующих методов решения задачи
- •21.Постановка задачи численного интегрирования
- •22.Квадратурные формулы Ньютона-Котеса.
- •23. Численное интегрирование. Приближенное вычисление с помощью формул трапеций.
- •24. Численное интегрирование. Приближенное вычисление с помощью формул Симпсона. Формула Симпсона
- •25. Особенности задач численного дифференцирования. Формулы численного дифференцирования
- •28. Численные методы решения обыкновенных дифференциальных уравнений. Модификации метода Эйлера. Неявный метод Эйлера
- •29. Численные методы решения обыкновенных дифференциальных уравнений. Метод Эйлера – Коши. Метод Эйлера-Коши
- •30. Численные методы решения обыкновенных дифференциальных уравнений. Неявный метод Эйлера – Коши
- •31.Численные методы решения обыкновенных дифференциальных уравнений. Первый улучшенный метод Эйлера.
- •32.Численные методы решения обыкновенных дифференциальных уравнений. Метод Рунге-Кутты.
- •33.Численные методы решения обыкновенных дифференциальных уравнений. Метод Рунге-Кутты третьего порядка точности
- •34.Численные методы решения обыкновенных дифференциальных уравнений. Метод Рунге-Кутты четвертого порядка точности
- •35.Методы обработки и анализа экспериментальных данных. Сущность метода наименьших квадратов.
- •36.Метод наименьших квадратов. Виды приближающих функций. Метод наименьших квадратов
- •5 Билет
- •6 Билет
- •7 Билет
- •Понятие рекурсии.
- •Передача параметров
- •Локальные и глобальные переменные.
- •10.Строковые данные. Обработка символьных данных
- •11.Строковые данные. Программирование задач обработки символьных данных
- •12.Особенности программирования задач, включающих действия со структурами данных. Записи. Записи с вариантами. Оператор присоединения With.
- •Запись с вариантами.
- •13.Особенности программирования задач, включающих действия со структурами данных. Множества. Операции над множествами. Использование множеств при создании экспертных систем.
- •Операции над множествами Бинарные операции
- •Унарные операции
- •1. Объявление указателей
- •2. Выделение и освобождение динамической памяти
- •18. Структурное программирование
13.Особенности программирования задач, включающих действия со структурами данных. Множества. Операции над множествами. Использование множеств при создании экспертных систем.
Множество — это структурированный тип данных, представляющий собой набор взаимосвязанных по какому-либо признаку или группе признаков объектов, которые можно рассматривать как единое целое. Каждый объект в множестве называется элементом множества..
Понятие множества в языке ПАСКАЛЬ основывается на математическом представлении о множествах: это ограниченная совокупность различных элементов. Для построения конкретного множественного типа использует- ся перечисляемый или интервальный тип данных. Тип элементов, состав- ляющих множество, называется базовым типом.
Множественный тип описывается с помощью служебных слов Set of, например:
type M= Set of B;
Здесь М - множественный тип, В - базовый тип. Пример описания переменной множественного типа:
type
M= Set of 'A'..'D';
var
MS: M;
Операции над множествами Бинарные операции
пересечение:
объединение:
разность (дополнение):
симметрическая разность:
Декартово или прямое произведение:
Унарные операции
Абсолютное дополнение:
Мощность множества:
14.Работа с файлами. Различные типы файлов. Представление информации на внешних устройствах ПК. Файловые типы Turbo Pascal. Прямой и последовательный доступ к компонентам файлов.
Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что дает возможность программе работать одновременно с несколькими файлами. Во-вторых, он содержит компоненты одного типа. Типом компонентов может быть любой тип Паскаля, кроме файлов. Иными словами, нельзя создать «файл файлов». В-третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти.
strongФайловый тип или переменную файлового типа в Паскале можно задать одним из трех способов:
Type <имя_ф_типа>=file of<тип_элементов>;
<имя_ф_типа>=text;
<имя_ф_типа>=file;
Здесь <имя_ф_типа> – имя файлового типа (правильный идентификатор); File, of – зарезервированные слова (файл, из); <тип_элементов> – любой тип Паскаля, кроме файлов.
В зависимости от способа объявления можно выделить три вида файлов Паскаля:
типизированные файлы Паскаля(задаются предложением file of..); Типизированные файлы Паскаля. Длина любого компонента типизированного файла строго постоянна, т.к. тип компонент определяется при описании, а, следовательно, определяется объем памяти, отводимый под каждую компоненту. Это дает возможность организовать прямой доступ к каждой компоненте (т.е. доступ по порядковому номеру
текстовые файлы Паскаля(определяются типом text); Текстовые файлы Паскаля. Текстовые файлы предназначены для хранения текстовой информации. Именно в таких файлах хранятся, например, исходные тексты программ. Компоненты текстовых файлов могут иметь переменную длину, что существенно влияет на характер работы с ними. Доступ к каждой строке текстового файла Паскаля возможен лишь последовательно, начиная с первой. К текстовым файлам применимы процедуры assign, reset, rewrite, read, write и функция eof. Процедуры и функции seek, filepos, filesize к ним не применяются. При создании текстового файла в конце каждой записи (строки) ставится специальный признак EOLN(end of line – конец строки). Для определения достижения конца строки существует одноименная логическая функция EOLN(<имя_ф_переменной>), которая принимает значение true, если конец строки достигнут.
нетипизированные файлы Паскаля(определяются типом file). в типизированном файле числа 6, 65 и 165 как целые будут представлены одним и тем же числом байт. А в текстовых файлах, после преобразования в строку, они будут иметь разную длину. Это вызывает проблемы при расшифровке текстовых файлов. Пусть в текстовый файл пишутся подряд целые числа (типа byte): 2, 12, 2, 128. Тогда в файле образуется запись 2122128. При попытке прочитать из такого файла переменную типа byte программа прочитает всю строку и выдаст сообщение об ошибке, связанной с переполнением диапазона.
Введение файлового типа в язык Паскаль вызвано необходимостью обеспечить возможность работы с периферийными (внешними) устройствами ЭВМ, предназначенными для ввода, вывода и хранения данных.
Файловый тип данных или файл определяет упорядоченную совокупность произвольного числа однотипных компонент. Понятие файла достаточно широко. Это может быть обычный файл на диске, коммуникационный порт ЭВМ, устройство печати, клавиатура или другие устройства. При работе с файлами выполняются операции ввода - вывода. Операция ввода означает перепись данных с внешнего устройства (из входного файла) в основную память ЭВМ, операция вывода - это пересылка данных из основной памяти на внешнее устройство (в выходной файл).
Файлы на внешних устройствах часто называют физическими файлами. Их имена определяются операционной системой. В программах на языке Паскаль имена файлов задаются с помощью строк. Например, имя файла на диске может иметь вид:
'LAB1.DAT'
'c:\ABC150\pr.txt'
'my_files'
Файловый тип, являющийся составным типом, образуется из компонент одинакового типа, которые называются элементами. В отличие от массивового типа количество элементов файла в описании не установлено, оно зависит от выполнения программы и особенно от того, с каким набором данных файл будет связан. Описание файлового типа
Описание файлового типа состоит из ключевого слова file, за которым следует ключевое слово of, а за ним описание типа элементов файла. Элементами файла могут быть объекты любых простых типов, а также любые агрегаты, за исключением файлов
┌──────┐ ┌────┐ ┌─────┐
файловый тип ───>│ file ├──┬─>│ of ├───>│ тип ├─────>
└──────┘ │ └────┘ └─────┘ ^
└─────────────────────┘
Смысл последовательного доступа заключается в том, что в каждый момент времени доступна лишь одна компонента из всей последовательности. Для того, чтобы обратиться (получить доступ) к компоненте с номером К, необходимо просмотреть от начала файла К-1 предшествующую компоненту. После обращения к компоненте с номером К можно обращаться к компоненте с номером К+1. Отсюда следует, что процессы формирования (записи) компонент файла и просмотра (чтения) не могут произвольно чередоваться. Таким образом, файл вначале строится при помощи последовательного добавления компонент в конец, а затем может последовательно просматриваться от начала до конца.
TURBO PASCAL позволяет применять к компонентным и бестиповым файлам, записанным на диск, способ прямого доступа. Прямой доступ означает возможность заранее определить в файле блок, к которому будет применена операция ввода - вывода. В случае бестиповых файлов блок равен размеру буфера, для компонентных файлов блок - это одна компонента файла.
Прямой доступ предполагает, что файл представляет собой линейную последовательность блоков. Если файл содержит n блоков, то они нумеруются от 1 через 1 до n. Кроме того, вводится понятие условной границы между блоками, при этом условная граница с номером 0 расположена перед блоком с номером 1, граница с номером 1 расположена перед блоком с номером 2 и, наконец, условная граница с номером n находится после блока с номером n.
Реализация прямого доступа осуществляется с помощью функций и процедур FileSize, FilePos, Seek и Truncate.
15.Библиотека стандартных подпрограмм. Модуль Graph Правила организации библиотечных подпрограмм. Использование библиотеки подпрограмм для решения задач Разработка и отладка программ с использованием графики.
Библиотека(от англ.library) в программировании — сборник подпрограмм или объектов, используемых для разработки программного обеспечения n(ПО).
Термин «библиотека подпрограмм» по всей видимости одними из первых упомянули Уилкс М., Уиллер Д., Гилл С. в качестве одной из форм организации вычислений на компьютере Исходя из изложенного в их книге под библиотекой понимался набор «коротких, заранее заготовленных программ для отдельных, часто встречающихся (стандартных) вычислительных операций».
Библиотека стандартных подпрограмм -это совокупность подпрограмм, составленных на одном из языков программирования и удовлетворяющих определенным единым требованиям к структуре, организации их входов и выходов, описаниям подпрограмм и т.п. |
Стандартные подпрограммы имеют единую форму обращения, что обеспечивает простоту и удобство настройки параметров подпрограммы на решение конкретной задачи. В качестве примера можно привести библиотеку стандартных подпрограмм по численным математическим методам решения уравнений, вычисления интегралов, нахождения экстремумов и т.п.
Для управления экраном в графическом режиме с помощью программ в Turbo Pascal существуют специальные графические процедуры и функции. Описание этих процедур и функций содержится в специальном библиотечном модуле CRAPH. Запуск графической системы. Для запуска графической системы необходимо сделать следующее:
Подключить модуль CRAPH - библиотеку графических процедур: uses graph;
Установить графический режим с помощью двух переменных:
var DriverVar, ModeVar: integer;
begin
DriverVar:=Detect;
InitGraph(DriverVar, ModeVar,’\TP\GRAPH’);
При получении варианта Библиотеки на языке Паскаль было установлено следующее правило:версия подпрограммы на языке Паскаль имеет имя, совпадающее с именем этой подпрограммы на языке Фортран, а предоставляемый пользователю модуль (Unit) получает имя, которое состоит из имени версии этой подпрограммы на языке Фортран с добавлением в конце двух символов "_p". Это относится как к именам головных подпрограмм, так и к именам всех вызываемых из них подпрограмм.
В частности, имена библиотечных подпрограмм состоят из пяти символов.
Первые два символа идентифицируют главу или подглаву, к которой данная подпрограмма относится.
Вторые два символа идентифицируют подпрограмму внутри соответствующей главы (подглавы).
Пятый символ предназначен для идентификации различных версий подпрограммы. Для пятого символа выбрана следующая мнемоника:
R - |
вычисления проводятся с обычной точностью для вещественного случая; |
D - |
вычисления проводятся с удвоенной точностью для вещественного случая; |
E - |
вычисления проводятся с точностью типа Extended языка Паскаль для вещественного случая; |
C - |
вычисления проводятся с обычной точностью для комплексного случая; |
P - |
вычисления проводятся с удвоенной точностью для комплексного случая; |
Z - |
вычисления проводятся с точностью типа Extended языка Паскаль для комплексного случая; |
I |
вычисления определены для целочисленных данных; |
T - |
проверка (тестирование) правильности задания входной информации. Использование библиотеки подпрограмм для решения задач тусинбедим |
Для разработки и отладки программы можно использовать четыре тестовых файла, размером 100х100 пикселов, использующих 16-ти цветную палитру. 16BLUE.bmp - синего цвета, 16RED.bmp - красного цвета, 16WHITE.bmp - белого цвета, ZEBRA.bmp - красная, желтая, зеленая, голубая, синяя полосы с текстом на них. Имя файла необходимо указывать в качестве параметра командной строки для программы. Вывести на экран заданный графический файл. Вывести размеры изображения по горизонтали и вертикали, название файла.
16.Организация программ. Средства структурирования. Модули.
Структура модуля.
Многомодульная программа в языке Паскаль имеет четко выраженную иерархическую структуру, которую также можно трактовать как сеть без циклов. Вершины такой сети могут быть упорядочены и распределены по уровням. Основные виды объектов языков программирования (типы, константы, переменные, процедуры), их назначение и отношения между ними. Средства структурирования программ: модули, разделы, блоки, подпрограммы. Модуль Паскаля – это автономно компилируемая программная единица, включающая в себя различные компоненты раздела описаний (типы, константы, переменные, процедуры и функции) и, возможно, некоторые исполняемые операторы инициирующей части.
Основным принципом модульного программирования является принцип «разделяй и властвуй». Модульное программирование – это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняются определенным правилам. Использование модульного программирования позволяет упростить тестирование программы и обнаружение ошибок. Аппаратно-зависимые подзадачи могут быть строго отделены от других подзадач, что улучшает мобильность создаваемых программ.
Модули создаются, как правило, для обеспечения компактности кода, о чем приходиться заботиться крупным проектам. Стоит также отметить, что использование модулей в каком-то смысле снимает ограничение на сегментацию памяти, так как код каждого модуля располагается в отдельном сегменте.
Структура модуля выглядит так:
Unit <имя модуля>; Interface <интерфейсная часть> Implementation <исполняемая часть> Begin <инициализация> End.
<имя_модуля> - имя модуля (правильный идентификатор);
INTERFACE – зарезервированное слово (интерфейс); начинает интерфейсную часть модуля;
IMPLEMENTATION – зарезервированное слово (выполнение); начинает исполняемую часть модуля;
BEGIN – зарезервированное слово; начинает инициирующую часть модуля; причем конструкция begin <инициирующая часть> необязательна;
END – зарезервированное слово – признак конца модуля.
Bota
17. Все глобальные переменные и типизированные константы размещаются в одной непрерывной области оперативной памяти, которая называется сегментом данных. Длина сегмента определяется архитектурой процессора 8086 и составляет 64 Килобайта (65536 байт), что может вызвать определённые трудности при описании и обработке больших массивов данных. С другой стороны объём стандартной памяти - 640 Килобайт. Выход - использовать динамическую память.
Динамическая память - это оперативная память ЭВМ, предоставляемая Турбо-Паскалевой программе при её работе, за вычетом сегмента данных (64 К), стека (обычно 16 К) и собственно тела программы. По умолчанию размер динамической памяти определяется всей доступной памятью ЭВМ и, как правило, составляет не менее 200 - 300 Кбайт.
Динамическую память обычно используют при: 1. обработке больших массивов данных; 2. разработке САПР; 3. временном запоминании данных при работе с графическими и звуковыми средствами ЭВМ.
Размещение статических переменных в памяти осуществляется компилятором в процессе компиляции. Динамические переменные - размещаются в памяти непосредственно в процессе работы программы. При динамическом размещении заранее неизвестны ни тип, ни количество размещаемых данных, к ним нельзя обращаться по именам, как к статическим переменным. Турбо-Паскаль представляет средство управления динамической памятью: указатели.
Указатель - это переменная, которая в хранит качестве своего значения адрес байта памяти. В 8086 адреса задаются совокупностью двух шестнадцатиразрядных слов - сегмента и смещения. Сегмент - участок памяти, имеющий максимальную длину 64 К и начинающийся к физического адреса, кратного 16 (то есть 0, 16, 32, 48 и т.д.). Смещение - указывает, сколько байт от начала сегмента нужно пропустить, чтобы обратиться по нужному адресу. Фрагмент памяти в 16 байт называется параграфом. Сегмент адресует память с точностью до параграфа, а смещение - с точностью до байта.
Каждому сегменту соответствует непрерывная и отдельно адресуемая область памяти. Сегменты могут следовать в памяти один за другим, или с некоторыми интервалами, или, наконец, перекрывать друг друга. Таким образом любой указатель по своей внутренней структуре представляет собой совокупность двух слов (типа Word), трактуемых как сегмент и смещение. Указатель адресует лишь первый байт типа данных.
Справка: процессор 8086. 8086 имеет 16 - битовые регистры, всего 14 штук, из них: • 12 - регистры данных и адресов; • 1 - указатель команд (регистр адреса команды); • 1 - регистр состояния (регистр флагов).
Регистры данных и адресов делятся на три группы: • регистр данных; • регистр указателей и индексов; • регистр сегментов.
Процессор 8086 всегда генерирует 20-ти бытовые адреса за счёт добавления 16-ти битового смещения к содержимому регистра, умноженному на 16: физический адрес = смещение + 16 * регистр сегмента. Вместо умножения на 16 содержимое регистра сегмента используется так, как если бы оно имело четыре дополнительных нулевых бита: пусть: смещение = 10H регистр сегмента = 2000H тогда:
|
0000 |
0000 |
0001 |
0000 |
(смещение) |
0010 |
0000 |
0000 |
0000 |
(0000) |
(номер блока) |
0010 |
0000 |
0000 |
0001 |
0000 |
(физический адрес) |
физический адрес = 20010H
У 8086 адрес ячейки задаётся номером блока и смещением, что обусловлено тем, что команды 8086 и её данные должны располагаться в разных частях памяти (в разных сегментах). Если требуется адресоваться к данным, то потребуется адресация блока памяти, с которого начинается сегмент данных (из регистра сегмента данных) и позиция желаемой ячейки в этом сегменте (смещение).
В дополнение к области памяти 1 Мбайт, 8086 может адресоваться к внешним устройствам через 65536 (64 К) портов ввода-вывода. Имеются специальные команды ввода-вывода, позволяющие иметь непосредственный доступ к первым 256 (от 0 до 255) портам. Другие команды позволяют получить косвенный доступ к порту с помощью занесения идентифицирующего его номера (0 - 65535) в определенный регистр данных. Подобно ячейке памяти любой порт может быть 8 или 16- битовым.
Распределение памяти IBM PC. • 16 - старших байт - команды начальной загрузки системы. • Первые 1024 ячейки - вектора прерываний.
Типы прерываний. Существуют 2 вида прерываний - одни можно игнорировать, другие обязательно обслужить как можно скорее. 8086 может распознать 256 различных прерываний, каждому из них однозначно соответствует код типа (целое число от 0 до 255). Код используется в качестве указателя ячейки в области памяти с младшими адресами (область векторов прерываний).