Расчёты на ЭВМ характеристик выходных сигналов электрических цепей
Описание процедур и функций. Разработка программы на языке программирования Free Pascal. Передаточная характеристика цепи. Вычисление разности между максимальным и минимальным значением выходного сигнала. Процедура формирования массива входных отсчётов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 07.10.2013 |
Размер файла | 73,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство связи РФ
Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича
Факультет заочного обучения
Курсовая работа
по дисциплине “Информатика”
Расчёты на ЭВМ характеристик выходных сигналов электрических цепей
Студента 2-го курса
Заочного факультета
Специальность 2010
Номер с/б 006027
Архангельск 2012 г.
Содержание
1. Постановка задачи
2. Таблица идентификаторов
3. Таблица описаний процедур и функций
4. Текст программы, выполненный на языке Free Pascal
5. Контрольный расчёт
Список используемой литературы
Литература
1. Постановка задачи
Настоящая курсовая работа посвящена решению задачи машинного анализа электрических цепей.
Разработка программы будет выполнена на языке программирования Free Pascal, который ведёт своё начало от классического языка Pascal, разработаного в конце 60-х годов XX века Никлаусом Виртом. Н. Вирт разрабатывал этот язык как учебный язык для своих студентов. С тех пор Pascal, сохранив простоту и структуру языка, разработанного Н. Виртом, превратился в мощное средство программирования. С помощью современного языка Pascal можно производить простые расчёты, разрабатывать программы для проведения сложных инженерных и экономических вычислений.
После пересчета номера студенческого билета получили следующий код для выбора исходных данных: А=11; Б=05; В=02. Для этого кода согласно таблице приведённой в методических указаниях задание имеет следующий вид:
Дана нелинейная безынерционная цепь:
Рис. 1. Электрическая цепь
Передаточная характеристика цепи имеет вид:
На входе этой цепи действует сигнал в виде аналитического выражения.
Рис. 2. Входной сигнал для кода А=11
Требуется вычислить разность между максимальным и минимальным значением выходного сигнала (код В=02).
Рабочий набор исходных данных имеет вид:
a = 10 В/с; |
|||
b = 10 В/с; |
2. Таблица идентификаторов
Таблица 1
Обозначение в задаче |
Идентификатор |
Назначение |
|
- |
maxind |
Постоянная, задающая максимальное количество элементов в массивах используемых для хранения отсчётов сигналов. |
|
- |
n |
Текущее значение количества отсчётов входного сигнала |
|
- |
monitor |
Переменная, предопределяющая режим работы программы и вывод результатов расчёта. |
|
UВХ(t) |
uin |
Массив для хранения отсчётов входного сигнала |
|
UВЫХ(t) |
uout |
Массив для хранения отсчётов выходного сигнала |
|
tНАЧ |
tn |
Начальный момент наблюдения входного сигнала |
|
tКОН |
tk |
Конечный момент наблюдения входного сигнала |
|
t1 |
t1 |
Промежуточные моменты наблюдения входного сигнала |
|
t2 |
t2 |
||
- |
t |
Текущий момент времени. |
|
- |
td |
Временной интервал между двумя соседними отсчетами входного сигнала |
|
- |
i |
Счётчик цикла |
|
a |
a |
Коэффициенты, используемые в аналитическом выражении входного сигнала |
|
b |
b |
||
- |
min |
Переменная для хранения минимального значения выходного сигнала |
|
- |
max |
Переменная для хранения максимального значения выходного сигнала |
|
k |
k |
Коэффициент, используемый при расчёте выходного сигнала. |
|
- |
f1, f2 |
Логические имена файлов |
3. Таблица описаний процедур и функций
Таблица 2
Подпрограмма |
Входные выходные параметры |
Назначение |
|
Data( var n: integer;var monitor: byte;var tn, tk, t1,t2, k, a, b: real) |
Все формальные параметры процедуры являются выходными (var-параметры). |
Позволяет ввести с клавиатуры необходимые для решения задачи исходные данные и передать эти данные в другие подпрограммы. |
|
Uinput( n: integer;tn, tk, t1,t2, a, b: real;var uin: ArrayType) |
n, tn, tk, t1, t2, a, b, - входные параметры процедуры.Используются процедурой при формировании массива входных отсчётов сигнала.uin - выходной var-параметр, хранит значения отсчётов входного сигнала. |
Процедура формирует массив отсчётов входного сигнала, который в дальнейшем может быть использован в других подпрограммах. |
|
Uoutput( n: integer;k: real;uin: ArrayType;var uout: ArrayType) |
n, k, uin - входные параметры процедуры, используемые при формировании массива выходных отсчётов сигнала.uout - выходной var-параметр, хранит значения отсчётов выходного сигнала. |
Процедура формирует массив отсчётов выходного сигнала, который в дальнейшем может быть использован в других подпрограммах. |
|
Dif( n:integer;uout:ArrayType):real |
n и uout - входные параметры значения, с их помощью рассчитывается разница между максимальным и минимальным значениями выходного сигнала. |
Функция находит разницу между максимальным и минимальным значениями выходного сигнала и возвращает её значение в точку вызова. |
|
Save( n: integer;uin,uout: ArrayType) |
n, uin, uout - входные параметры, которые процедура использует для проведения операции записи массивов входных и выходных сигналов в файлы на диск. |
Процедура записывает отсчёты входного и выходного сигналов в нужном формате в файлы f1.prn и f2.prn соответственно. |
|
Show( n: integer;monitor: byte;uin,uout: ArrayType) |
n, monitor, uin, uout - входные параметры, используемые процедурой для вывода результатов на экран монитора. |
Выводит результат работы программы на экран монитора. |
4. Текст программы, выполненный на языке Free Pascal
Программа расчёта характеристик выходного сигнала электрической цепи
program kr00;
uses crt; {подключение модуля crt}
const
maxind=150;
type
ArrayType=array [1..maxind] of real; {описание глобальных параметров}
var n: integer;
var monitor: byte;
var tn, tk, t1, t2, k, a, b: real;
uin, uout : ArrayType;
Процедура ввода исходной информации
procedure Data (var n: integer;
var monitor: byte;
var tn, tk, t1, t2, k, a, b: real);
begin
writeln('Введите ваши исходные данные.');
writeln;
write('Введите значение a: ');
readln(a);
write('Введите значение b: ');
readln(b);
write('Введите начальный момент времени, t начальное: ');
readln(tn);
write('Введите конечный момент времени, t конечное: ');
readln(tk);
write('Введите первый условный момент времени, t1: ');
readln(t1);
write('Введите второй условный момент времени, t2: ');
readln(t2);
write('Введите количество измерений, но не больше ',maxind,', n: ');
readln(n);
write('Введите множитель k: ');
readln(k);
writeln('Вывести результаты на монитор или в файл?');
write('Если на монитор - введите 1, иначе - 0: ');
readln(monitor);
end;
Процедура формирования массива входных отсчётов
procedure Uinput(n: integer;
tn, tk, t1, t2, a, b: real;
var uin: ArrayType); {Формальные параметры}
var
t, td: real;
i: integer;
begin
t := tn;
td := (tk-tn)/(n-1);
for i:= 1 to n do
begin
if t <= t1 then uin[i] := a*(t - tn);
if (t1 < t) and (t <= t2) then uin[i] := a*(t1 - tn);
if t > t2 then uin[i] := (a*(t1 - tn) - (b*(t - t2)));
t := t + td;
end;
end;
Процедура формирования массива выходных отсчётов
procedure Uoutput(n : integer;
k: real;
uin: ArrayType;
var uout: ArrayType);
var {описание локальных переменных}
i: integer;
begin
for i:= 1 to n do uout[i] := k * uin[i];
end;
Функция нахождения разницы между значениями выходного сигнала
function Dif(n :integer;
uout :ArrayType):real;
var
min, max :real;
i :integer;
begin
i:=1;
min:= uout[i];
max:= uout[i];
for i:=2 to n do begin
if (min > uout[i]) then min := uout[i];
if (max < uout[i]) then max := uout[i];
end;
dif := max - min;
end;
Процедура записи массивов входного и выходного сигнала на диск в файлы с именами f1.prn и f2.prn}
procedure Save(n: integer;
uin, uout: ArrayType);
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:4); {запись в файлах}
writeln(f2, uout[i]:7:4);
end;
close(f1); {закрытие файлов}
close(f2);
end;
Процедура вывода на экран результатов работы программы
procedure Show(n: integer;
monitor: byte;
uin, uout: ArrayType);
var
i: integer;
begin
if monitor = 1 {признак вывода результатов на экран монитора}
then begin
writeln('Отсчеты входного сигнала');
for i:=1 to n do writeln('uin[',i,'] = ',uin[i]:7:4); {вывод входных отсчетов}
writeln('Отсчеты выходного сигнала');
for i:=1 to n do writeln('uout[',i,'] = ',uout[i]:7:4); {вывод вых. Отсчетов}
writeln('Разница между макс. и мин. значениями вых. сигнала = ',Dif(n,uout):7:4);
end else
begin
Save(n, uin, uout);
writeln;
writeln;
writeln('Программа закончила свою работу. Массивы');
writeln('входных и выходных отсчетов сформированы');
writeln('и записаны в файлы f1.prn и f2.prn соответственно');
end
end;
BEGIN
clrscr;
Data(n, monitor, tn, tk, t1, t2, k, a, b); {Ввод данных}
clrscr;
Uinput(n, tn, tk, t1, t2, a, b, uin);
Uoutput(n, k, uin, uout);
Show(n, monitor, uin, uout);
readln;
END.
5. Контрольный расчёт
Таблица 3
Назначение набора |
Набор данных |
Расчёты ручных вычислений |
||||||||||
n |
a |
b |
tn |
tk |
t1 |
t2 |
t |
UВХ(t) |
UВЫХ(t) |
UMAX-UMIN |
||
Контрольный |
12 |
7 |
7 |
5 |
60 |
20 |
45 |
51015202530354045505560 |
0.0035.0070.00105.00105.00105.00105.00105.00105.0070.0035.000.00 |
0.0052.50105.00157.50157.50157.50157.50157.50157.50105.0052.500.00 |
157.5 |
|
Рабочий |
9 |
10 |
10 |
5 |
45 |
10 |
40 |
51015202530354045 |
0.0050.0050.0050.0050.0050.0050.0050.000.00 |
0.0075.0075.0075.0075.0075.0075.0075.000.00 |
75.0 |
Графики (контрольного расчёта) построенные в Mathcad
a:=7, b:=7, tn:=5, tk:=60, t1:=20, t2:=45, t:=5,10..60uin(t):=if[t?t1,a•(t-tn),if[t1?t?t2,a•(t1-tn),[a•(t1-tn)]-[b•(t-t2)]]] |
Входное напряжение |
|
uout(t) := uin(t)•1.5 |
Выходное напряжение |
|
Рис. 3
Список используемой литературы
программирование массив отсчет
1. Губанова Т.В. Информатика: Методические указания к курсовой работе - СПб.: СПбГУТ, 1998.
2. Алексеев Е.Р., Чеснокова О.В., Кучер Т.В., FreePascal и Lazarus, Учебник по программированию - Библиотека ALT Linux; М. Издательский дом ДМК-пресс, 2010.
Размещено на Allbest.ru
Подобные документы
Процедура формирования массивов отсчетов входного и выходного сигналов и времени; вычисление величины заданной характеристики выходного сигнала: функция нахождения длительности импульса; организация текстовых файлов; построение графиков в системе MathCad.
курсовая работа [75,9 K], добавлен 28.09.2012Приведение выходного сигнала к аналитическому вид. Программа расчёта характеристик выходного сигнала электрической цепи. Таблица идентификаторов и описаний пользовательских подпрограмм. Построение графиков по массивам входного и выходного сигналов.
контрольная работа [594,2 K], добавлен 28.09.2012Разработка проектов на языке программирования высокого уровня. Составление алгоритма решения. Определение длительности переднего фронта входного, выходного сигнала. Работа с дисковыми файлами. Представление программы в виде иерархической структуры блоков.
курсовая работа [163,2 K], добавлен 28.05.2015Вычисление значения входного и выходного сигналов в n-равноотстоящих точках, вывод на экран таблицы. Структура программы: модули, список идентификаторов функций, интерфейс. Исходный код программы. Проверка расчетов в Maxima и построение графиков.
курсовая работа [1,4 M], добавлен 14.07.2012Функции формирования массива времени. Формирование массива входного напряжения, массива выходного напряжения. Функция вывода таблицы, расчета заданной точности, вывода титульного листа. Запись в файл массива времени. Блок–схема и текст программы.
курсовая работа [155,6 K], добавлен 22.04.2012Теоретические и практические аспекты решения прикладных задач с применением функций и процедур структурного (модульного) программирования. Особенности разработки схемы алгоритма и программы для вычисления массива z на языке Turbo Pascal 7.0, их описание.
курсовая работа [241,7 K], добавлен 11.12.2009Разработка программы тестирования студентов по MS PowerPoint с кодом на языке Delphi. Создание алгоритма для решения функциональных требований задачи. Описание переменных, вспомогательных процедур, входных и выходных данных для реализации программы.
курсовая работа [1,5 M], добавлен 21.09.2010Особенности разработки программ на языке Turbo Pascal на примере программы обработки массива данных с построением диаграммы. Функции программы и основные требования к ней. Состав входных и выходных данных. Использование предметной области "Садовод".
курсовая работа [789,1 K], добавлен 13.03.2013Разработана программа решения двух задач на языке программирования Turbo Pascal. Спецификация задания. Описание входных и выходных данных. Математическая постановка задачи. Алгоритм ее решения. Описание и блок-схема программы. Результаты тестирования.
курсовая работа [275,8 K], добавлен 28.06.2008Законы электрических цепей, порядок и методы их расчета. Разработка программы на языке программирования Borland C++ Builder 5.0 для анализа разветвленных электрических цепей с использованием матричного метода. Алгоритм решения задачи и описание его работы
курсовая работа [211,5 K], добавлен 08.10.2012