Программирование на языке высокого уровня
Краткое сожержание материала:
Размещено на
Екатеринбург 2012г.
Федеральное агентство связи
ФГОБУ ВПО «Сибирский государственный университет
телекоммуникаций и информатики»
Уральский технический институт связи и информатики (филиал)
КУРСОВАЯ РАБОТА
по дисциплине
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
210406.65 «Сети связи и системы коммутации»
Выполнил: Романцев С.А.
Проверил: Кондратьев В.П.
СОДЕРЖАНИЕ
Задание для курсовой работы
1. Проект в Delphi
1.1 Вид и работа программы
1.2 Код программы
2. Проект в Maple
2.1 Интегрирование дифференциального уравнения. Сравнение с расчетами, выполненными в Delphi
2.2 Спектральная анализ сигнала в Maple
Список используемой литературы
Задание для курсовой работы
Написать программу на языке программирования Паскаль для решения следующей задачи (вариант задания индивидуальный). Результаты расчетов должны выводиться на экран и в файл. Оформление графиков и таблиц выполнять средствами математических пакетов (Maple, MathCad). Демонстрационный вариант программы подготовить в среде визуального программирования Delphi.
Проверить решение промежуточных задач средствами математических пакетов. Построить блок-схемы задачи и вспомогательных частей алгоритма. Оценить погрешность выполненных расчетов.
Напряжение U=U(t) на входе транзистора как функция времени описывается дифференциальным уравнением
с начальными условиями (1), где n - последняя цифра номера зачетной книжки, k - коэффициент усиления (см. ниже), fs(t) - периодический сигнал (рис. 1), m - коэффициент обратной связи.
Указания и пояснения.
1. Дифференциальное уравнение с заданными начальными условиями (задача Коши) решается методом Рунге-Кутта второго порядка с коррекцией (3) на отрезке [0;5] с шагом h=0.01.(в узлах tj =jh, j=0,1,2…). Функция fs(t) в правой части представляет собой регулирующий периодический (период Т) сигнал единичной амплитуды (рис 1, номер варианта n - последняя цифра номера зачетной книжки,). Результаты расчетов--таблица (tj,Uj) и график функции U(t) (на экран и в файл).
2. Значение коэффициента усиления k в правой части дифференциального уравнения есть наименьший положительный корень полинома (2), который вычисляется одним из методов нахождения корней уравнения (метод касательных, метод Вегстейна).
3. Построить спектральные характеристики периодического сигнала fs(t), заданного в аналоговой форме и в виде дискретного сигнала. Длительность сигнала равна 1, период T=k.
4. Период функции U(t) определить с помощью функции автокорреляции.
Курсовая работа выполняется в ЧЕТЫРЕ этапа.
1. Средствами математического пакета Maple решается задача спектрального анализа аналогового и дискретного периодического сигнала fs(t). Сравниваются спектры амплитуд аналогового и дискретного представлений сигнала. (образец выполнения задания - файл вариант11.mws).
2. Создается проект в визуальной среде Delphi, решающий эту же задачу для дискретного сигнала, а результаты выполнения сравниваются визуально.
3. С помощью языка программирования системы Maple решается задача интегрирования дифференциального уравнения (задача Коши) методом (по варианту задания). Окончательные вычисления в программе зависят от результатов расчета программы в Delphi (следующий пункт). Образец выполнения задания - файл RUTTA.mws.
4. Создается проект в визуальной среде Delphi, решающий ту же задачу Коши, результаты расчета которой записываются в файл, который используется в предыдущем пункте. Выводятся графики результатов вычислений в Maple и Delphi и сравниваются между собой. Явные несовпадения свидетельствуют об ошибке в программе на Delphi.
Оформление:
v Формат А4.
v Титул
v Постановка задачи
v Алгоритмы решения вспомогательных задач
v Блок-схемы
v Результаты расчетов, графики
v Литература
Индивидуальное задание № 14
1. Начальные условия: U(0)=0.2
2. полином: x^5-7x-10
3. коррекция:в средней точке
4. метод поиска корня Метод Вегстейна
Сигнал:
1. Проект в Delphi
1.1 Вид и работа программы
Рис. 1 - Форма программы
Рис. 2 - Работа программы (построение графика сигнала)
Рис. 3 - Работа программы (Спектр амплитуд)
1.2 Код программы
unit Romanzew;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
Label1: TLabel;
Label2: TLabel;
ListBox1: TListBox;
SaveDialog1: TSaveDialog;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
Image1: TImage;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
const
Npoint=50;
U0=0.2;
h=5/Npoint;
Nzach=8;
KOC=0.5;
N=40;
m=20;
{------------}
a=0;b=2; epsilon=0.000001;
type
dann=array[0..Npoint]of real;
koef=array[0..m] of real;
var
U:dann;
root:real;
t:real;
kolit:integer;
fn:string;
ft:text;
Y:dann;
v,e:koef;
function f(t:real):real;
begin
f:=t*t*t*t*t-7*t-10;
{ f:=t*sqr(sqr(t))-8*t-1; }
end;
function phi(x:real):real;
begin
phi:=x+f(x);
end;
procedure Iter(a,b:real;var x2,y2:real; var flag:Boolean);
var
x0,x1,y0,y1:real;
begin
kolit:=kolit+1;
x0:=a;y0:=phi(x0);
x1:=b;y1:=phi(x1);
x2:=(x1*y0-y1*x0)/((x1-x0)-(y1-y0));
{writeln(a,b,x2);}
y2:=phi(x2);
flag:=(y0-x0)*(y2-x2)>0;
end;
procedure Vegstein(a,b,eps:real; var x:real);
var
xz,yz:real;
prizn:Boolean;
begin
repeat
Iter(a,b,xz,yz,prizn);
if prizn then a:=xz else b:=xz;
until abs(xz-yz)<eps;
{ writeln('корень===',xz); }
x:=xz;
end;
{=======================================================}
function signal(t:real):real;
var
z:real;
begin
if t<0 then z:=0
else if t<1 then z:=1-sin(Pi*t)
else z:=0;
signal:=z;
end;
function Period(x,T:real):real;
var
z:real;
begin
z:=x-trunc(x/T)*T;
Period:=signal(z);
end;
{==================================================}
procedure graf;
var
x:r...
Основы программирования на языке Turbo Pascal
Предназначено для студентов вуза, начинающих изучать программирование на языке Turbo Pascal и уже знакомых с основными конструкциями языка (развилки,...
Программирование на языке высокого уровня
Исследование классификации компьютерных игр, двигателей прогресса индустрии для персональных компьютеров. Характеристика общей структуры, протокола и...
Программирование на языке высокого уровня С/С++
Учебное пособие написано на основе одноименного учебного курса и посвящено технологии программирования на языках высокого уровня. Рассматриваются элем...