скачать ИНФОРМАТИКА МЕТОДИЧЕСКИЕ УКАЗАНИЯ К КУРСОВОЙ РАБОТЕ. Губанова Т.В. / СПбГУТ.-СПб, 1998. Получено с www.vizo.ru Госкомсвязи России САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ им.проф. М.А. БОНЧ-БРУЕВИЧА Факультет Вечернего и заочного обучения Губанова Т.В. ИНФОРМАТИКА МЕТОДИЧЕСКИЕ УКАЗАНИЯ К КУРСОВОЙ РАБОТЕ САНКТ-ПЕТЕРБУРГ 1998 УДК 681.142.2 Губанова Т.В. Информатика: методические указания к курсовой работе/ СПбГУТ.-СПб, 1998. План 1998, п.2. Рекомендовано к печати редакционно-издательской комиссией университета. Настоящие методические указания содержат задания к курсовой работе, методические пояснения и рекомендации по их выполнению, необходимый теоретический материал и требования к порядку оформления курсовой работы. ^ Рецензент П.С. Довгий © Издание Санкт-Петербургского государственного университета телекоммуникаций им. проф. М.А. Бонч-Бруевича, 1998 Редактор И.И. Щенсняк Подписано к печати 19.01.98. ЛР № 020475 от 29.04.97г. Объем 1,75 печ. л. Тир. 500 экз. Зак. 12 РИО СПбГУТ. 191186, СПб, наб. р. Мойки, 61 Тип. СПбЦЭ Введение 5 Правила и порядок выполнения курсовой работы 5 Курсовая работа 5 Расчет на ЭВМ характеристик входных и выходных сигналов электрических цепей 5 Методические указания. Пример выполнения курсовой работы 6 Приложение 1 15 Приложение 2 18 Приложение 3 20 Приложение 4 22 Приложение 5 23 Приложение 6 23 Приложение 7 24 Приложение 8 24 Приложение 9 28 Литература 29 ВведениеНастоящие методические указания предназначены для выполнения курсовой работы «Расчеты на ЭВМ характеристик выходных сигналов электрических цепей» по дисциплине «Информатика». ^ Курсовая работа выполняется в следующей последовательности: Из приведенной в конце методических указаний табл. 7 (приложение 8) выбирается код варианта задания курсовой работы. Код определяется значениями трех двухразрядных величин А, Б и В. Описание всех вариантов по курсовой работе, методические указания по их выполнению и необходимый теоретический материал приведены в настоящих методических указаниях. Каждый вариант содержит формулировку задания и необходимый для решения рабочий набор исходных данных. В ходе работы все необходимые записи должны выполняться в рабочей тетради (ученическая тетрадь в клетку). Рабочая тетрадь сдается вместе с пояснительной запиской для проверки и дальнейшей защиты курсовой работы. Пояснительная записка к курсовой работе оформляется на листах бумаги стандартного формата, скрепленных вместе с помощью скоросшивателя. Все записи и графики должны быть выполнены аккуратно. Выполненная курсовая работа включает в себя следующие пункты:
Вышеперечисленные пункты присылаются на проверку преподавателю, после чего студент получает доступ к выходу на ЭВМ. Программа вводится в компьютер, отлаживается и в пояснительную записку включаются результаты выполнения программы для контрольного и рабочего наборов исходных данных. Результатом работы студента в системе MathCAD является построение графиков входного и выходного сигналов. Эти графики также заносятся в пояснительную записку. Для успешного выполнения курсовой работы студенту необходимо:
Новые изучаемые темы:
Постановка задачи Настоящая курсовая работа посвящена решению задачи машинного анализа электрических цепей. В курсовой работе необходимо для заданной электрической цепи (см. рис. 1) по известному входному сигналу Uвх(t) построить выходной сигнал Uвых(t), а затем определить некоторые его характеристики W. Вариант задания определяется индивидуальным кодом студента АБВ следующим образом:
Вычисления величин Uвх(t) и Uвых(t) выполнить для N-равноотстоящих моментов времени t, где t ![]() Прежде чем приступить к выполнению своего варианта курсовой работы рекомендуется внимательно изучить пример выполнения курсовой работы. ^ Рассматривается вариант А=00; Б=00; В=00. Для этого кода согласно табл. 4-6 задание имеет следующий вид: Дана нелинейная безынерционная цепь: ![]() Рис. 1. Электрическая цепь Передаточная характеристика цепи имеет вид (код Б): ![]() ![]() ![]() На входе этой цепи действует сигнал, (код А), имеющий вид, показанный на рис. 2: ![]() Рис. 2. Входной сигнал для кода А=00 Вычислить Umax – максимальное значение выходного сигнала Uвых(t) (код В=00). Рабочий набор исходных данных имеет вид: tнач = 0,5 с; tм = 2,5 с; tкон = 6 с; Uм = 20,5 В; Uвх1 = 3 В. Решение задачи состоит из пяти самостоятельных частей:
Первые четыре части оформляются в виде подпрограмм (процедур или функций). Последняя подзадача - построение графиков – выполняется с помощью интегрированной системы MathCAD. ЗАМЕЧАНИЕ: ввод исходных данных и вывод результатов решения задачи могут быть оформлены также в виде самостоятельных процедур. ^ В рассматриваемом примере курсовой работы входной сигнал Uвх(t) задан в виде графика (рис. 2). В этом случае необходимо перейти от графика к аналитическому выражению. Из графика видно, что Uвх(t) имеет два линейных участка. Поэтому аналитическая запись Uвх(t) будет иметь вид ![]() ![]() Для определения величин ![]() ![]() Решая эти уравнения, получим для начального участка графика: ![]() Составим аналогичную систему уравнений для второго участка графика, находим: ![]() Подставляя значения ![]() ![]() В результате такого перехода окончательно имеем: ![]() ![]() Временной интервал наблюдения сигнала ограничен [tнач, tкон]. Для организации массива входных отсчетов сигнала необходимо этот временной интервал разбить на некоторое определенное конечное число точек N, для каждой из которых будет вычислено значение отсчета входного сигнала. ЗАМЕЧАНИЕ: Массив отсчетов выходного сигнала должен быть в дальнейшем получен из значений выходного сигнала в тех же самых дискретных точках того же самого временного интервала. Полный текст программы, реализующий решение курсовой работы для варианта А=00, Б=00, В=00, приведен на рис. 3. Описание идентификаторов, использованных при решении поставленной задачи, приведено в табл. 1. Описание пользовательских подпрограмм приведено в табл. 2. program kurs_1; (Программа расчета характеристик выходного сигнала электрической цепи) uses Crt; {подключение модуля Crt} const maxind=160; type ArrayType=array [1..maxind] of real; {описание глобальных параметров} {-----------------------------------------------------------------------------------------------------------} {Процедура ввода исходной информации} procedure DATA (var n : integer; var kl : byte; var tn, tm, tk, Um, Uin2: real); begin writeln (`Введите нужное количество отсчетов сигнала`); write (`n=`); readln (n); writeln (`Введите признак kl = 1, если хотите вывести результат на монитор`) writeln (`или признак kl = 0, если хотите записать результаты в файлы f1 и f2`); write (`kl =`); readln (kl); writeln (`Введите ваши исходные данные`); writeln (`Начальный момент наблюдения входного сигнала`); write (`tn=`); readln (tn); write (`Момент времени, разделяющий две ветви алгоритма`); writeln (`расчета входного сигнала`); write (`tm =`); readln (tm); writeln (`Конечный момент времени наблюдения входного сигнала`); write (`tk =`); readln (tk); writeln (Значение входного напряж. соответствующего моменту времени tm`); write (`Um =`); readln (Um); writeln (Заданный параметр передаточной характеристики`); write (`Uin2=`); readln (Uin2); end; {of procedure DATA} {-----------------------------------------------------------------------------------------------------------------------} {Описание процедуры формирования массива входных отсчетов} procedure UIN (n : integer; kl : byte; tn, tm, tk, 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 UIN1} {----------------------------------------------------------------------------------------------------------------------} {Описание процедуры формирования массва выходных отсчетов} procedure UOUT1(n : integer; kl : byte; Uin2 : real; uin : Arraytype; var uout : Array Type); var {описание локальных переменных} i: integer; begin for i:=1 to n do if uin[i] then uout[i]:=4 else uout[i]:=(uin[i]-1)*(uin[i]-1); end; {of procedure UOUT1} {--------------------------------------------------------------------------------------------------------------------} {Описание функции нахождения максимальнго значения выходного сигнала} function MAXI(n : integer; uout : Array Type):real: var max: real; i: integer; begin max:=uout[i]; for i:=2 to n do if uout[i]>max then max:=uout[i]; maxi:=max; end; {of function MAXI} {--------------------------------------------------------------------------------------------------------------------} {Описание процедуры записи массивов входного и выходного сигналов} {на диск в файлы с именами f1.prn и f2.prn} procedure WRITEINFO(n : integer; uin, uout: Array Type); var f1, f2 : text; I : integer; begin assign(f1, `f1.prn`); {связывание и открытие файлов} assign(f2, `f2.prn`); rewrite(f1); rewrite(f2); for i:=1 to n do begin writeln(f1,uin[i]:7:3); {запись в файлах} writeln(f2,uout[i]:7:3); end; close(f1); {закрытие файлов} close(f2); end; {of procedure WRITEINFO} {---------------------------------------------------------------------------------------------------------------------} {процедура вывода на экран результатов работы программы} procedure REZULT(n : integer; kl : byte; uin, uout : Array Type); var i: integer; begin if kl=1 {признак вывода результатов на экран монитора} then begin writeln(`Отсчеты входного сигнала`): for i:=1 to n do writeln(`uin[`.i.`]=`uin[i]:7:3; {вывод входных отсчетов} writeln(`Отсчеты выходного сигнала`); for i:=1 to n do writeln(`uout[`.i.`]=`,uout[i]:7:3); {вывод вых. Отсчетов} writeln(`Макс. Значение вых. Сигнала=`,MAXI(n,uout):7:3); end else begin writeln; writeln; writeln(`Программа закончила свою работу. Массивы`); writeln(`входных и выходных отсчетов сформированы`); writeln(`и записаны в файлы f1.prn и f2.prn соответственно`); end end; {of procedure REZULT} {---------------------------------------------------------------------------------------------------------------------} var n : integer; kl : byte; {глобальные параметры, напрямую недоступные} tn, tm, tk, Um : real; {ни одной из выше описанных процедур} uin, uout : Array Type; {----------------------------------------------------------------------------------------------------------------------} BEGIN {of main} Circr; Data(n, kl, tn, tm, tk, Um, Uin2); Uin1 (n, kl, tn, tm, tk, Um, uin); Uout1(n, kl, Uin2, uin, uout); Writeinfo(n, uin, uout); Rezult(n, uin, uout); Readln END. {of main} Рис 3. Текст программы ^ Таблица 1
^ Таблица 2
Пояснения к тексту программы Предложенная для решения задача разбита на четыре основные части (подзадачи). Каждая из этих частей реализована в виде подпрограммы (процедуры или функции). Ввод исходных данных, необходимых для решения задачи, выделен также в самостоятельную процедуру под именем DATA. В программе предусмотрен вывод результатов решения задачи на экран монитора по желанию пользователя (процедура REZULT). Все подпрограммы разработаны в соответствии с принципом максимальной изоляции данных. Это значит, что любая из подпрограмм описана с использованием только формальных параметров и локальных переменных без ссылок на глобальные переменные, что позволяет сделать подпрограммы в некотором смысле универсальными, а также повысить их надежность за счет устранения их влияния друг на друга. ^ Описание процедуры UIN1 смотри в тексте программы на рис.3. Пояснения к тексту процедуры UIN1 После приведения входного сигнала Uвх(t) к аналитическому виду можно с помощью процедуры UIN1 сформировать массив входных отсчетов в заданных пользователем равноотстоящих точках диапазона наблюдения выходного сигнала. Описание процедуры помещено в разделе деклараций основной программы. Это описание является «образцом действий», в соответствии с которым данная процедура будет выполняться каждый раз при вызове ее из основной программы. Имя процедуры - UIN1 задано в заголовке процедуры. В круглых скобках перечислен список формальных параметров. Шесть из них являются параметрами значениями, один – параметр – переменная, о чем свидетельствует стоящее перед ним зарезервированное слово var. Использование var-параметра в данном случае необходимо, так как в результате работы процедуры будет сформирован массив отсчетов входного сигнала, который в дальнейшем необходимо будет передать в процедуру формирования массива выходных отсчетов. Поэтому после выхода из процедуры UIN1 массив отсчетов входного сигнала должен быть сохранен, ибо без него невозможна дальнейшая работа других подпрограмм (см. прил. 1). В разделе описаний локальных переменных var описаны текущее время t, два коэффициента «a» и «b», вычисляемые по выведенным выше формулам, шаг изменения временного интервала del, вычисляемый по формуле: ![]() Раздел описания переменных внутри процедуры является описанием локальных параметров. Эти параметры доступны только внутри той процедуры, где они описаны (в данном случае внутри процедуры UIN1). Результат работы переменных UIN1 – сформированный массив отсчетов входного сигнала. ^ Описание процедуры UOUT1 смотри в тексте программы на рис. 3. Пояснения к тексту процедуры UOUT1 Список формальных параметров процедуры UOUT1 содержит входные параметры значения n, kl, Uin2, uin, необходимые для расчета и формирования массива выходных отсчетов. По сути эти параметры являются локальными и не сохраняют свои значения после выхода из процедуры; uout – является выходным var-параметром, следовательно, этот параметр сохранит все свои значения и после выхода из процедуры и может быть использован как главной программой, так и другими процедурами. Связь подпрограмм с «внешним миром» осуществляется только с помощью var-параметров (или глобальных параметров) (см. прил. 1). Результат работы процедуры UOUT1 – сформированный массив отсчетов выходного сигнала. ^ Описание функции MAXI смотри в тесте программы на рис. 3. Пояснения к тексту функции MAXI Обратите внимание на заголовок функции и его отличия от заголовка процедуры. Имя функции MAXI. Результат работы функции – единственное значение, представляющее максимальное значение выходного сигнала. Этот результат передается в точку вызова функции из основной программы с помощью имени самой функции MAXI, поэтому в заголовке функции, задан тип этого результата (в данном случае MAXI:real). Список формальных параметров состоит из входных параметров n и uout. Эти параметры заданы как параметры-значения (отсутствует служебное слово var). После выхода из функции нам понадобиться только одно единственное значение – max значение выходного сигнала, которые мы должны были найти в соответствии с заданием, поэтому последним оператором внутри функции стоит оператор присваивания, с помощью которого вычисленное значение максимума выходного сигнала присваивается переменной с именем функции MAXI, значение которого и будет передано затем в точку вызова функции. Процедура записи массивов входного и выходного сигналов в файлы с именами f1.prn и f2.prn Описание процедур WRITEINFO смотри в тексте программы на рис. 3. Пояснения к тексту процедуры WRITEINFO Имя процедуры – WRITEINFO. Список формальных параметров-значений состоит из входных параметров n, uin, uout. В разделе локальных переменных введены описания двух файлов переменных f1 и f2 типа text. В разделе операторов этим файловым переменным f1 и f2 ставятся в соответствие физические файлы на диске с именами «f1.prn» и «f2.prn» соответственно. Это выполняется с помощью специальной процедуры assign. Имена файлов могут быть любыми, но они должны иметь расширение prn, так как в дальнейшем предполагается использование математической системы MathCD, которая для записи и чтения векторов и матриц использует файлы именно с этим расширением. После окончания записи в файлы их необходимо закрыть с помощью процедуры close. ^ Описание процедуры REZULT смотри в тексте программы на рис. 3. Пояснения к тексту REZULT Список формальных параметров процедуры состоит из входных параметров-значений n, kl, uin, uout. Процедура выводит по определенному признаку результат работы программы на экран монитора. Это может быть контрольный расчет, выполненный студентом, или решение задачи при рабочем наборе исходных данных. ЗАМЕЧАНИЕ: Для проверки контрольного расчета студент может воспользоваться окном наблюдения WATCH при проведении пошаговой отладки программы (функциональная клавиша F8). ^ Мы разбили задачу на ряд более простых самостоятельных подзадач, каждую из которых решали независимо друг от друга, реализовав их с помощью набора подпрограмм. Завершает работу над задачей написание главной программы, которая организует совместную работу всех подпрограмм, вызывая их в необходимой последовательности. ^ Методические указания по выполнению контрольного расчета приведены в прил. 7. В рассматриваемом варианте необходимо выбрать контрольный набор значений исходных данных для следующих величин: N, tнач, tм, tкон, Uм, Uвх1. Величины tнач, tкон могут быть выбраны из соображений удобства вычислений. Выберем tнач = 1с, tкон = 7с. Количество расчетных точек N рекомендуется брать не менее 4. Выберем N = 4, при этом вычисления величин Uвх(t) и Uвых(t) выполняются для моментов времени t1 = tнач = 1с, t2 = 3c, t3 = 5c, t4 = tкон = 7с. Для контроля правильности реализации разветвления в подпрограмме формирования массива Uвх следует проверить, что при этом в вычислениях величины Uвх(t) использовались хотя бы по одному разу все приведенные при переходе от графика к аналитическому выражению формулы. Из формул видно, что при t = tнач и t = tкон не проверяется правильность формул, так как образуются нулевые сомножители. Поэтому необходимо выбрать значения величины tм таким образом, чтобы вычисления для t = t2 выполнялась формула Uвх(t) = b(tкон – t). С этой целью выбираем tм = 4с. (см. рис. 4). ![]() Рис. 4. Вычисленные значения входного и выходного сигнала для контрольного расчета Аналогично проверяется подпрограмма формирования массива Uвых. Значение величины Uм, влияющее на амплитуду входного напряжения Uвх(t), выбирается так, чтобы среди отсчетов величины Uвх(t) были значения, меньше Uвх1 и не меньше Uвх1, с тем чтобы проверить расчетные формулы обеих ветвей выходного сигнала. Выберем Uм = 6В, Uвх1 = 3В. Результаты вычислений элементов массива Uвх и Uвых приведены в табл. 1. В подпрограмме-функции определения Umax для поверки ветвей алгоритма необходимо, чтобы максимум функции Uвых(t) не находился на границах интервала [tнач, tкон]. Как видно из рис. 4 b в рассматриваемом варианте это требование выполняется. Из таблицы вычислений видно, что для контрольного расчета максимальное значение Uвых(I) равно Umax = 9В. ^ Таблица 3
^ Для рабочего набора исходных данных tнач = 0,5с; tм = 2,5с; tкон = 6с; Uм = 20,5В; Uвх1 = 3В берутся из таблицы вычислений. Остается выбрать величину n. Рекомендуется выбрать начальное значение n, совпадающее со значением n, взятым при контрольном расчете. В нашем случае n = 4. Далее выполняя расчеты для реального необходимого количества точек. ЗАМЕЧАНИЕ: После успешного завершения работы над программой отсчеты массивов входного и выходного сигналов помещены в файлы f1.prn и f2.prn. На этом работа в системе Turbo Pascal (Borland Pascal) считается оконченной. Студенты запускают систему MathCAD и работают в ней над построением графиков входного и выходного сигналов в полном соответствии с рекомендациями, помещенными в приложении 3. Результаты работы демонстрируются преподавателю и заносятся в пояснительную записку в виде двух графиков. На этом выполнение курсовой работы можно считать завершенным.
|