
- •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. Структурное программирование
Понятие рекурсии.
Язык Паскаль допускает, чтобы подпрограмма вызывала саму себя (рекурсивное обращение). Эта возможность связана с тем, что при каждом новом обращении к подпрограмме параметры, которые она использует, заносятся в стек, причем параметры предыдущего обращения тоже сохраняются.
В ряде случаев (обычно для рекурсивных алгоритмов) рекурсивное оформление подпрограммы может быть компактным и эффективным, но не следует забывать об опасности переполнения стека.
Пример: вариант функции, рекурсивно вычисляющей факториал числа N.
Function Factorial (N: Byte): LongInt;
Begin
If N in [0..1]
Then Factorial :=1
Else Factorial := N* Factorial(N-1)
End;
оформление подпрограмм
Использование подпрограмм (subroutine) или процедур (procedure) является одним из универсальных приемов программирования. Возможность работы с ними предусмотрена во всех языках программирования. Изначально идея заключалась в следующем: неоднократно выполняемые действия оформляются в виде самостоятельного фрагмента программы так, чтобы к нему можно было обратиться из любой ее точки и затем вернуться назад. Со временем эта идея развилась, появилась категория процедур, текст которых не описывается в программе, а готовится заранее, хранится в специальных библиотеках и доступен для любых программ. В комплект компиляторов с алгоритмических языков обычно включены библиотеки, содержащие процедуры различного назначения, в том числе и для работы с новым периферийным оборудованием. В настоящем приложении описана техника составления процедур при программировании на Макроассемблере. Особое внимание уделено рассмотрению условий, при которых такие процедуры могут использоваться в программах, составленных на языках высокого уровня Си, Паскаль, Фортран и др. Именно ради этого данное приложение включено в текст книги.
Обращение к подпрограмме (ее вызов) выполняет специальная команда сан, содержащая адрес точки входа. Для его указания можно использовать все стандартные способы адресации, например, имя точки входа, явное задание адреса, выбор адреса из регистра и т. д. Команда call помещает в стек адрес возврата и выполняет безусловный переход на указанную точку входа. Адресом возврата является текущее содержимое счетчика команд (IP). После выборки кода инструкции и операндов IP всегда содержит адрес начала следующей команды. Таким образом, специальная команда call нужна для того, чтобы сформировать в стеке адрес возврата для команды ret, завершающей выполнение подпрограммы. Подпрограмма может работать, и обычно работает, со стеком. Причем к моменту выполнения команды ret в верхушке стека должен находиться адрес возврата. Сказанное не означает, что его нельзя изменять. Это делается в особых случаях, когда по каким-то причинам надо вернуться не на вызывающий модуль, а в любое другое место задачи.
Передача параметров
В стандарте языка Паскаль передача параметров может производиться двумя способами - по значению и по ссылке. Параметры, передаваемые по значению, называют параметрами-значениями, передаваемые по ссылке - параметрами-переменными. Последние отличаются тем, что в заголовке процедуры (функции) перед ними ставится служебное слово var.
При первом способе (передача по значению) значения фактических параметров копируются в соответствующие формальные параметры. При изменении этих значений в ходе выполнения процедуры (функции) исходные данные (фактические параметры) измениться не могут. Поэтому таким способом передают данные только из вызывающего блока в подпрограмму (т.е. входные параметры). При этом в качестве фактических параметров можно использовать и константы, и переменные, и выражения.
При втором способе (передача по ссылке) все изменения, происходящие в теле процедуры (функции) с формальными параметрами, приводят к немедленным аналогичным изменениям соответствующих им фактических параметров. Изменения происходят с переменными вызывающего блока, поэтому по ссылке передаются выходные параметры. При вызове соответствующие им фактические параметры могут быть только переменными.
Выбор способа передачи параметров при создании процедуры (функции) происходит в соответствии со сказанным выше: входные параметры нужно передавать по значению, а выходные - по ссылке. Практически это сводится к расстановке в заголовке процедуры (функции) описателя var при всех параметрах, которые обозначают результат работы подпрограммы. Однако, в связи с тем, что функция возвращает только один результат, в ее заголовке использовать параметры-переменные не рекомендуется.
Все глобальные переменные и типизированные константы размещаются в одной непрерывной области оперативной памяти, которая называется сегментом данных. Длина сегмента определяется архитектурой процессора 8086 и составляет 64 Килобайта (65536 байт), что может вызвать определённые трудности при описании и обработке больших массивов данных. С другой стороны объём стандартной памяти - 640 Килобайт. Выход - использовать динамическую память.
Формальные параметры – это наименование переменных, через которые передается информация из программы в процедуру либо из процедуры в программу. Формальные параметры указывают, с какими параметрами следует обращаться к этой подпрограмме (количество параметров, их последовательность, типы). Они задаются в заголовке подпрограммы в виде списка формальных параметров, разбитого на группы, разделенные точками с запятыми. В группу формальных параметров включаются однотипные параметры одной категории. В языке Turbo Pascal существует четыре категории формальных параметров:
1. параметры-значения, которые в подпрограмме не изменяются;
2. параметры-переменные, которые подпрограмма может изменить и передать в основную программу;
3. параметры-константы (используются только в версии 7.0);
4. параметры-подпрограммы (параметры процедурного типа).
Для каждого формального параметра следует указать его имя и через двоеточие тип, а в случае параметра-переменной или параметра-константы - его категорию. Тип формального параметра может быть практически любым, однако в заголовок подпрограммы нельзя вводить новый тип. Например, нельзя записать:
Function Max(A: array[1..100] of Real): Real;
Параметр-значение не может быть файлового типа. Если параметров-значений одного типа несколько, их можно объединить в одну группу, перечислив их имена через запятую, а затем через двоеточие указать общий тип, например:
Procedure One(Max,Min: Real; Number: Word);
Function Two(X,Y: Integer): Real;
Параметр-переменная указывается в заголовке подпрограммы аналогично параметру-значению, но перед именем параметра записывается слово Var. Действие слова Var распространяется в пределах одной группы параметров (до ближайшей точки с запятой). Тип параметров-переменных может быть любым, включая файловый.