1. Бородич Ю.С., Вальвачев А.Н., Кузьмин А.И. Паскаль для персональных компьютеров – Минск: Высшая школа, 1991.
2. Бузюков Л.Б., Дубков Е.В. Интегрированная программная система Math CAD в задачах связи. – СПб: СПбГУТ, 1996.
3. Губанова Т.В., Дубкова Е.В. Методические указания к контрольным работам по курсу «Информатика» - СПб: СПбГУТ, 1997.
4. Дьяконов В.П. Справочник по MathCAD PLUS 6.0 PRO. - М.: “СК Пресс”, 1997. - 336 с.: ил.
5. Епанешников А.М, Епанешников В. А., «Программирование в среде Turbo Pascal 7.0» «Диалог-МИФИ», 1993 год.
6. Калинин А.Г., Мацкевич И.В. Универсальные языки программирования. Семантический подход.- М.: Радио и связь, 1991.
7. Кирьянов Д.В. Самоучитель MathCAD 2001.-СПб.: БХВ- Петербург.2002.-544с.
8. Кнут Д. Искусство программирования для ЭВМ. Том 1: Основные алгоритмы.- М.: Мир, 1976.- 736 с. (3-е изд.: Уч.пос.-М.:Издательский дом «Вильямс», 2000.- 720 с.)
9. Кудрявцев Е.М. MathCAD 2000 Pro. – М.: ДМК Пресс, 2001. – 576 с.:ил.
10. Поляков Д.Б., Круглов Н.Ю. Программирование в среде Турбо Паскаль /МАИ.-М., 1992.
11. Хусаинов Б.С. Структуры и алгоритмы обработки данных. Примеры на языке Си. — М.: Финансы и статистика, 2004 год.
12. Mathcad 6.0 Plus. Финансовые, инженерные и научные расчеты в среде Windows 95./Перевод с англ. - М.: Информационно-издательский дом “Филинъ”, 1996. -712 с.
1,200 руб.
Постановка задачи и описание рабочего набора исходных данных 3
Таблица идентификаторов 5
Таблица описания пользовательских подпрограмм 6
Текст программы 11
Контрольный расчет 14
Список использованной литературы 17
Постановка задачи и описание рабочего набора исходных данных
Настоящая курсовая работа посвящена решению задачи машинного анализа электрических цепей.
В курсовой работе необходимо для заданной электрической цепи по известному входному сигналу Uвх(t) построить выходной сигнал Uвых(t), а затем определить некоторые его характеристики W.
Входной сигнал задается в виде графика (А=00) – рис. 1.
Рис. 1. График входного сигнала Uвх(t)
Рабочий набор исходных данных имеет вид: tнач = 0,5 с, tкон = 5 с, tm = 2,5 c, Um = 20,5 B. Для определения входной зависимости необходимо вручную составить аналитическое выражение, соответствующее графику Uвх(t). Далее решение этой задачи представляет собой линейный вычислительный процесс.
Из графика (рис. 1) видно, что Uвх(t) имеет два линейных участка. Поэтому аналитическая запись Uвх(t) будет иметь вид
Для определения величин a1, b1 можно составить систему из двух уравнений для двух значений аргумента t:
Решая эти уравнения, можно получить для начального участка графика:
Составив аналогичную систему уравнений для второго участка графика, можно найти:
Подставляя значения соответствующее исходному графику, в выражение для Uвх(t):
В результате такого перехода окончательный результат имеет вид:
где
При решении задачи необходимо организовать арифметический цикл. В этом цикле для каждого элемента массива входного сигнала Uвх(I) вычисляется значение соответствующего ему элемента массива выходного сигнала Uвх(I). Задание передаточной характеристики в виде аналитического выражения Uвых = f (Uвх) (Б=05): , а=1,5.
В качестве характеристики выходного сигнала необходимо определить разность между максимальным и минимальным значениями сигнала (В=02): .
Вычисления величин Uвх(t) и Uвых(t) нужно выполнить для N-равноотстоящих моментов времени t, где t [tнач, tкон]. Организовать массивы для хранения Uвх(t) и Uвых(t). Произвести вычисление характеристики W выходного сигнала согласно заданию. Массивы входных и выходных отсчетов записать в текстовые файлы с расширением p
. Содержимое этих файлов использовать для построения графиков в интегрированной математической системе MathCAD.
Таблица идентификаторов
Обозначение
в задаче Идентификатор Назначение
Глобальные идентификаторы
n Текущее значение количества отсчетов входного сигнала
Uвх(t) uin Массив для хранения отсчетов входного сигнала
Uвых(t) uout Массив для хранения отсчетов выходного сигнала
tнач tn Начальный момент наблюдения входного сигнала
tкон tk Конечный момент наблюдения входного сигнала
tm tm Момент времени, разделяющий 2 ветви входного сигнала и соответствующий максимальному значению входного сигнала
Um Um Максимальное значение входного сигнала
Локальные идентификаторы
a a Коэффициент, определяющий зависимость выходного сигнала от входного
t t Текущий момент времени
del Временной интервал между двумя соседними отсчетами входного сигнала
i Счетчик цикла
maxi Переменная для хранения максимального значения выходного сигнала
mini Переменная для хранения минимального значения выходного сигнала
f1, f2 Логические имена файлов
Таблица описания пользовательских подпрограмм
Подпрограмма Входные и выходные параметры Назначение
procedure InputData
(var n: integer; var tn, tk, tm, Um, a: real); Все формальные параметры процедуры являются выходными (var – параметры) Позволяет ввести с клавиатуры необходимые для решения задачи исходные данные и передать эти данные в другие подпрограммы
procedure CalcUInput
(n: integer; tn, tk, tm, Um: real; var uin:Arraytype); n, tn, tk, tm, Um – входные параметры. Используются процедурой при формировании массива входных отсчетов сигнала. uin – выходной var – параметр хранит значения отсчетов входного сигнала Процедура формирует массив отсчетов входного сигнала, который в дальнейшем может быть использован в других подпрограммах
procedure CalcUOut
n integer; a: real; uin: Arraytype; var uout: Arraytype); n, a, uin – входные параметры процедуры, используемые при формировании массива выходных отсчетов сигнала. uout – выходной var –параметр, хранит значения отсчетов выходного сигнала Процедура формирует массив отсчетов выходного сигнала, который в дальнейшем может быть использован другими подпрограммами
function Max(n: integer; uout: Arraytype): real; n и uout – входные параметры значения, с их помощью функция рассчитывает свое единственное значение – максимальное значение выходного сигнала Функция находит максимальное значение выходного сигнала и возвращает его в точку вызова
function Min(n: integer; uout: Arraytype): real; n и uout – входные параметры значения, с их помощью функция рассчитывает свое единственное значение – минимальное значение выходного сигнала Функция находит минимальное значение выходного сигнала и возвращает его в точку вызова
procedure SaveInFiles
(n: integer; uin, uout: Arraytype); n, uin, uout – входные параметры, которые процедура использует для проведения операции записи массивов входных и выходных сигналов в файлы на диск Процедура записывает отсчеты входного и выходного сигналов в нужном формате в файлы f1.p
и f2.p
соответственно
procedure ShowResult
(n integer; uin, uout: Arraytype); n, uin, uout – входные параметры, используемые процедурой для вывода результатов на экран монитора Выводит результат работы программы на экран монитора
Предложенная для решения задача разбита на четыре основные части (подзадачи). Каждая из этих частей реализована в виде подпрограммы (процедуры или функции).
Ввод исходных данных, необходимых для решения задачи, выделен также в самостоятельную процедуру под именем InputData. В программе предусмотрен вывод результатов решения задачи на экран монитора с использованием процедуры ShowResult.
Все подпрограммы разработаны в соответствии с принципом максимальной изоляции данных, что позволяет сделать подпрограммы в некотором смысле универсальными, а также повысить их надежность за счет устранения их влияния друг на друга.
Процедура CalcUIn
С помощью процедуры CalcUIn можно сформировать массив входных отсчетов в заданных пользователем равноотстоящих точках диапазона наблюдения выходного сигнала.
Имя процедуры - CalcUIn задано в заголовке процедуры. В круглых скобках перечислен список формальных параметров. Пять из них являются параметрами значениями, один – параметр – переменная, о чем свидетельствует стоящее перед ним зарезервированное слово var. Использование var-параметра в данном случае необходимо, так как в результате работы процедуры будет сформирован массив отсчетов входного сигнала, который в дальнейшем необходимо будет передать в процедуру формирования массива выходных отсчетов. Поэтому после выхода из процедуры CalcUIn массив отсчетов входного сигнала должен быть сохранен, ибо без него невозможна дальнейшая работа других подпрограмм.
1,200 руб.
Процедура CalcUOut
Список формальных параметров процедуры CalcUOut содержит входные параметры значения n, а, uin, необходимые для расчета и формирования массива выходных отсчетов. По сути, эти параметры являются локальными и не сохраняют свои значения после выхода из процедуры; uout – является выходным var-параметром, следовательно, этот параметр сохранит все свои значения и после выхода из процедуры и может быть использован как главной программой, так и другими процедурами.
Связь подпрограмм с «внешним миром» осуществляется только с помощью var-параметров (или глобальных параметров).
Результат работы процедуры CalcUOut – сформированный массив отсчетов выходного сигнала.
Функция Max
Имя функции Max. Результат работы функции – единственное значение, представляющее максимальное значение выходного сигнала. Этот результат передается в точку вызова функции из основной программы с помощью имени самой функции Max, поэтому в заголовке функции, задан тип этого результата (в данном случае Max:real).
Список формальных параметров состоит из входных параметров n и uout. Эти параметры заданы как параметры-значения (отсутствует служебное слово var). После выхода из функции понадобиться только одно единственное значение – максимальное значение выходного сигнала, поэтому последним оператором внутри функции стоит оператор присваивания, с помощью которого вычисленное значение максимума выходного сигнала присваивается переменной с именем функции maxi, значение которого и будет передано затем в точку вызова функции.
Функция Min
Имя функции Min. Результат работы функции – единственное значение, представляющее минимальное значение выходного сигнала. Этот результат передается в точку вызова функции из основной программы с помощью имени самой функции Min, поэтому в заголовке функции, задан тип этого результата (в данном случае Min:real).
Список формальных параметров состоит из входных параметров n и uout. Эти параметры заданы как параметры-значения (отсутствует служебное слово var). После выхода из функции понадобиться только одно единственное значение – максимальное значение выходного сигнала, поэтому последним оператором внутри функции стоит оператор присваивания, с помощью которого вычисленное значение минимума выходного сигнала присваивается переменной с именем функции mini, значение которого и будет передано затем в точку вызова функции.
Процедура SaveInFiles
Имя процедуры – SaveInFiles. Список формальных параметров-значений состоит из входных параметров n, uin, uout.
В разделе локальных переменных введены описания двух файлов переменных f1 и f2 типа text. В разделе операторов этим файловым переменным f1 и f2 ставятся в соответствие физические файлы на диске с именами «f1.p
» и «f2.p
» соответственно. Это выполняется с помощью специальной процедуры assign. Имена файлов могут быть любыми, но они должны иметь расширение p
, так как в дальнейшем предполагается использование математической системы MathCD, которая для записи и чтения векторов и матриц использует файлы именно с этим расширением.
После окончания записи в файлы их необходимо закрыть с помощью процедуры close.
Процедура ShowResult
Список формальных параметров процедуры состоит из входных параметров-значений n, uin, uout. Процедура выводит результат работы программы на экран монитора – сформированные ранее массивы значений входного и выходного напряжений, а также максимальное значение выходного сигнала.
Текст программы
program kurs;
{Программа расчета характеристик выходного сигнала электрической цепи}
uses Crt; {подключение модуля Crt}
const
maxind=500;
type
ArrayType=array [1..maxind] of real; {описание глобальных параметров}
{-----------------------------------------------------------------------------------------------------------}
{Процедура ввода исходной информации}
procedure InputData (var n : integer;
var tn, tk, tm, Um, a : real);
begin
writeln ('Введите нужное количество отсчетов сигнала');
write ('n=');
readln (n);
writeln ('Введите исходные данные:');
write ('Начальный момент наблюдения входного сигнала tn=');
readln (tn);
write ('Конечный момент времени наблюдения входного сигнала tk=');
readln (tk);
write ('Момент времени, разделяющий 2 ветви tm=');
readln (tm);
write ('Значение напряжения в этот момент времени Um=');
readln (Um);
write ('Значение константы a=');
readln (a);
end; {of procedure InputData}
{-----------------------------------------------------------------------------------------------------------------------}
{Описание процедуры формирования массива входных отсчетов}
procedure CalcUInput(n : integer;
tn, tk, tm, Um : real;
var uin : Arraytype); {список формальных параметров}
var
t, a, b, del: real;
i: integer;
begin
t:=tn;
del:=(tk-tn)/(n-1);
a:=Um/(tm-tn);
b:=Um/(tk-tm);
for i:=1 to n do
begin
if t>tm then uin[i]:=b*(tk-t)
else uin[i]:=a*(t-tn);
t:=t+del;
end;
end; {of procedure CalcUInput}
{----------------------------------------------------------------------------------------------------------------------}
{Описание процедуры формирования массва выходных отсчетов}
procedure CalcUOut(n : integer;
a : real;
uin : Arraytype;
var uout : Arraytype);
var {описание локальных переменных}
i: integer;
1,200 руб.