Построение временной функции

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    19,56 kb
  • Опубликовано:
    2012-03-15
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Построение временной функции

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра «ТЭС»







ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

К КУРСОВОЙ РАБОТЕ

ПО ДИСЦИПЛИНЕ Информатика

Тема

Построение временной функции









Минск 2011

Введение

программа временная функция

Алгоритмический язык “Паскаль“ был разработан профессором ВТУ в Цюрихе Н. Виртом. Свой алгоритмический язык он назвал в честь французского ученого Блэза Паскаля.

Язык Паскаль получил широкое распространение во всем мире благодаря простоте и доступности широкому кругу людей, работающих в различных отраслях народного хозяйства.

Успеху языка способствовало и то, что по своей идеологии Паскаль наиболее близок к современной теории и технологии программирования, так как довольно полно отражает идеи структурного программирования. Кроме того, он приспособлен для применения общепризнанной в настоящее время технологии разработки программ методом пошаговой детализации (нисходящего программирования). И, наконец, язык предоставляет гибкие возможности в отношении используемых структур данных.

Язык Паскаль позволяет создавать не только несложные программы, но и структурированные программы трудоемких и сложных вычислений предоставляя возможности работы, как с числовой, так и символьной информацией.

Язык Паскаль постоянно совершенствовался. Для персональных компьютеров появились революционные по своей сущности компиляторы с языка Паскаль для IBM PC (главным образом фирм Microsoft и Borland), представляющие диалоговые системы, называемые интегрированными средами (Turbo Pascal). К настоящему времени существуют ряд версий интегрированных сред языка Turbo Pascal 5.0, 5.5, 6.0, 7.0, 8.0, причем соблюдается принцип их совместимости снизу вверх.

1. Постановка задачи

Составить схему алгоритма и программу для построения графика временной функции, работающую как в машинном, так и в реальном времени. Реальное время в диапазоне (t0-tкон) формируется таймером в виде программного модуля с метками Тк, называемыми временем квантования. При вычислении функции использовать алгоритм Горнера.

Функция: y=

где t0=0 с, tкон=10 с, Тк=0.5 с;

x - корень нелинейного уравнения tgx-1/3(tgx)+1/5(tgx)-1/3=0, которое надо решить методом Ньютона с точностью , при начальном значении корня, лежащего в диапазоне [0;0.8]; m-наименьший по абсолютному значению корень квадратного уравнения

az+bz+c= 0

При a=1,5=2=-2

Коэффициенты a = 1.5, b = 4.3, d = sin 60.

2.Описание методов решения

.1 Метод простой итерации

Суть метода простой итерации состоит в том, что уравнение y=f(x) заменяется на выражение x=φ(x). Условие, при котором данный процесс сходится, определяется теоремой: если интервал (a;b) является интервалом изоляции корня уравнения x=φ(x) и во всех точках данного интервала выполняется условие |φ’(x)|<1, то процесс нахождения корня данным методом будет сходящимся.

Алгоритм нахождения корня:

x1= φ(x0);

x2= φ(x1);

xn= φ(xn-1);

Счёт заканчивается, когда |xn+1 - xn|<eps или |f(xn+1)|<eps.

.2 Схема Горнера

Существуют различные методы решения полиномов на языке PASCAL. Один из них - разложение полинома по схеме Горнера.

Полином:

= a0 + a1t + a2t2+ a3t3+ a4t4+ … + antn

по схеме Горнера представляется в виде

y = a0 + t(a1 + t(a2 +t(a3 +… + t(an-1 + t an)…)))

Данное разложение полинома удобно тем, что в нём отсутствует возведение в степень, что значительно ускоряет вычисление полинома.

3. Таблица идентификаторов

Идентификаторы

Наименование

a1, b1,с1

Коэффициенты квадратного уравнения

z1,z2

Корни квадратного уравнения

m

Наименьший по абсолютному значению корень квадратного уравнения

е

Точность вычисления корня

x

Корень нелинейного уравнения

x0

Начальное приближение

t

Время

y

Значение временной функции


4.Схемы алгоритмов

.1 Схема алгоритма метода простых итераций


                                        начало





                     нет

                                              да





4.2 Схема Горнера

                                      начало



                                       a,m,l,n

                                    





        

        

                                            

                                             



4.3 Схема основной программы

начало



Решение квадратного уравнения

итераций

Схема Горнера

конец

5.Текст программы

{$N+}

program Kursovoj;

uses crt,dos,graph;

=5;{ максимально возможный уровень сложности }=3;{ текущий уровень сложности }_ENTER=13;_ESC=27;=1e-3;=5; {kol-vo rezhimov}

NameRegime: array [1..k]of string[36] =

('1 - reshenie kvadratnogo yravnenija',

'2 - reshenie nelinejnogo yravnenija',

'3 - metod Gornera',

'4 - Grafik',

'5 - Vyxod');=array[1..MAXLEV]of integer;

,j : byte;,d,r,v,x,x0,a,b,a1,b1,c1,z,m:real;,t,gd,gm,h:integer;:word;zastavka;max =50;= [27,28,29,31,32,33,35,36,37,39,40,41,43,44,45,47,48,49,51,52,53];= [22,23,24,25,26];

: array[1..55,1..2] of integer =

((27,22),(27,23),(27,24),(27,25),(27,26),(28,22),(29,22),(29,23),(29,24),(29,25),(29,26),

(31,23),(31,24),(31,25),(32,22),(32,26),(33,23),(33,24),(33,25),

(35,22),(35,23),(35,24),(35,25),(35,26),(36,22),(36,24),(36,26),(37,23),(37,25),

(39,22),(40,22),(40,23),(40,24),(40,25),(40,26),(41,22),

(47,23),(47,24),(47,25),(48,22),(48,26),(49,23),(49,24),(49,25),

(51,23),(52,22),(53,23),(53,24),(52,25),(51,26),(52,26),(53,26),

(43,24),(44,24),(45,24));

matx= record: string[255];,y,l: integer;;

: array[1..max] of matx;,b,n:integer;,c2,c3: byte;

writex(x,y: integer; s: string);i,d: integer;k:longint;for k:= 1 to 100000 do;i:=0 to length(s)-1 do((i+y)<50)and((i+y)>0) then(x,i+y);odd(random(2)) then textcolor(c1)textcolor(c2);

{ for d:=1 to 55 do(x=xy[d,1])and((y+i)=xy[d,2]) then begin textbackground(c3);(c3);end; }

{ delay(2);}(s[i+1]);

{ textbackground(black);};;

init;i,j:integer;:=lightgreen;:=green;:=white;(c80+font8x8);;;;i:=1 to max do begin[i].l:=random(20)+200;j:=0 to sym[i].l do sym[i].s[j]:=chr(random(143)+32);[i].x:=random(80)+1;[i].y:=-random(100);;;

;

a:=1 to max dosym[a] do begin(x,y,' '+s);;

{ delay(1); {150}

:=y+1;y>50 then begin:=random(80)+1;:=-random(100);

;

(65000);;nelinyr;

{----AAA---}f1(a:extended):extended;k:real;:=sin(a)/cos(a);:=arctan(1/3*(k*k*k)-1/5*(k*k*k*k*k)+1/3);f2(a:extended):extended;k,g:real;:=sin(a)/cos(a);:=cos(a)/sin(a);:=-g+k-(k*k*k);;f(a:extended):extended;k:real;:=sin(a)/cos(a);:=k-1/3*(k*k*k)+1/5*(k*k*k*k*k)-1/3;;

{---AAAA---}

{----- reshenie nelinejnogo yravnenija -----};(' //____ Reshenie nelinejnogo yravnenija ____//');;(' Trebuetsa reshit nelinejnoe yravnenie metodom prostoj iteracii ');(' s zadannoj tochnostju e = ',e:4:3);(' ┌─────────────────────────────────────────────┐');('Nelinejnoe yravnenie imeet vid :│tg(x) - 1/3(tg(x)^3) + 1/5(tg(x)^5) - 1/3 = 0│');(' └─────────────────────────────────────────────┘');('Введите границы отрезка изолирующего корень');(' a = ');readln(x0);(' b = ');readln(b);;

(f(x0)*f(b)<0) and (f2(x0)<1) then begin:=f1(x0); x0:=x;:=n+1;(f(x))<e;(' ╔════════╗');('Koren nelinejnogo yravnenija raven ║x = ',x:3:2,'║');(' ╚════════╝');('Kolichestvo proizvedennyx iteracij n = ',n);('Znachenie fynkcii v tochke X ravno f(x) = ',f(x):3:6);end('Фиг вам');;(' //_________________________________________//');;

('privet expertint');;;kvyravn;;

{----- reshenie kvadratnogo yravnenija ------}

(' //____ Reshenie kvadratnogo yravnenija ____//');;('vvedite koeficienti a1,b1,c1');('a1 = '); readln(a1);('b1 = '); readln(b1);('c1 = '); readln(c1);;(' ┌────────────────────────┐');('Kvadratnoe yravnenie imeet vid : │ a1*z^2 + b1*z + c1 = 0 │');(' └────────────────────────┘');

('Diskreminant raven : ░ d = b1^2 - 4*a1*c1 ░ , gde a1,b1,c1 - koeficienti; ' );(' d - diskreminant.' );:=sqr(b1)-4*a1*c1;(' ░ d = ',d:0:0,' ░');d>=0 then begin:=((-b1)+sqrt(d))/(2*a1);:=((-b1)-sqrt(d))/(2*a1);;(' Korni kvadratnogo yravnenija :');(' ╔════════════╗');(' ║ z1 = ',z:4:3,' ║');(' ║ z2 = ',v:0:0, ' ║');:=z;(' ╚════════════╝');;abs(z)>abs(v) then:=v;;(' ╓───────────────╖');('Naimen6ii po modulu koren kv. yr-ija : ▓ m = z = ',m:4:3,' ▓');(' ╙───────────────╜');(' //__________________________________________//');;

;Graffik;;:=detect;(gd,gm,'');(0,240,640,240);(320,0,320,480);:=0;t0<=20 do begin:=abs(1.5*t0*t0*t0+4.3*t0*t0+(sqrt(3)/2)*t0+x+m);:=round(y/20);(250);(t0*2+320,240-h,15);:=t0+0.001;

;('graffik');;gorner;;:=0.5;:=0;:=(sqrt(3))/2;(' //____________Tablica Gornera____________//');;(' ╔════════════╦════════════╗');t:=0 to 20 do begin:=t/2;:=abs(a*r*r*r+b*r*r+d*r+x+m);(' ║t = ',r:4:1);(' ║ y = ', y:6:2,'║');

;(' ╚════════════╩════════════╝');;(' //_________________________________________//');

;;

{---------------------------}

{---------------------------}igra;

:ArOfint;{ комбинация игрока }

comp:ArOfint;{ комбинация компьютера }

:integer;{ уровень сложности ■ число цифр в числе }

:integer;{ угадано чисел }:integer;{ из них на своих местах }

:integer;{ код клавиши,нажатием которой игрок завершил ввод }

:boolean;

:integer;

{ " получить " строку цифр у компьютера }

procedure GetComp(var a:ArOfInt;n:integer);:integer;;i:=1 to n do[i]:=random(10);otl then begin;('Комбинация компьютера: ');i:=1 to n do write(a[i]);;;;

{ Сколько цифр угадано? }ugad(comp,igrok:ArOfInt;n:integer):integer;:integer;{ угадано цифр },j:integer;:boolean;{ TRUE,если igrok[i]=comp[j]}:=0;i:=1 to n do { проверим каждую цифру игрока }

j:=1;:=FALSE;

{ будем igrok[i]последовательно сравнивать с числами

компьютера }igrok[i]=comp[j] then

begin[j]:=-1;{ пометим найденное число }

u:=u+1;:=TRUE;j:=j+1;(j>n)or found;

ugad:=u;;

{ Сколько цифр на своих местах? }

function mesto(comp,igrok:ArOfInt;n:integer):integer;:integer;:integer;:=0;i:=1 to n docomp[i]=igrok[i]m:=m+1;:=m;

end;

{ Процедура вводит с клавиатуры строку цифр заданной длины.}

{ Процедура завершает работу,если введено заданное количество цифр }

{ и нажата клавиша <Enter>.}GetIgrok(var a:ArOfint;n:integer;mes:string):integer;:char;{ символ }:integer;{ десятичный код символа }

x,y:integer;{ положение курсора }

i:integer;:integer;:=1;(mes);:=readkey;:=ord(ch);(ch >='0') and (ch<='9') and (i<=n)begin(ch);(ch,a[i],code);:=i+1;(dec=8) and (i > 1)begin:=i-1;:=whereX;:=whereY;(x-1,y);(' ');(x-1,y);;((i>n) and (dec=K_ENTER)) or (dec=K_ESC);:=dec;;{ GeIgrok }

pravila(n:integer);

begin;;('Компьютер задумал число из ',n,' цифр. Вы должны его отгадать.');('После ввода очередного числа программа сообщает');('сколько цифр');('угадано, и сколько из них находятся на своих местах.');(' Например,');('если задумано число 4345 и введено 4251,');(' то угаданы две цифры,');('и одна цифра находится на своем месте.');('При вводе можно использовать <Backspace>.');(' После ввода числа');('следует нажать клавишу <Enter> или <Esc> -');(' для прекращения игры.');;;

{ основная процедура }:=CURLEV;:=FALSE;(level);{ вывести правила игры }

GetComp(comp,level);:=GetIgrok(igrok,level,'Ваш вариант-> ');KeyCode<>K_ESC then begin:=ugad(comp,igrok,level);:=mesto(comp,igrok,level);('Угадано:',nu,'. На своих местах:',nm);

end;((nu=level) and (nm=level)) or (KeyCode=K_ESC);KeyCode<>K_ESCwriteln('***ВЫ УГАДАЛИ ЧИСЛО!***')

else begin('Игра завершена по нажатию <Esc>.');('Задуманное число:');

for i:=1 to level do write(comp[i]);;;('Нажмите <Enter> для завершения.');;;

{-----------------------}

{-----------------------};(200,200);(12);('╔═══════════════════════════════╗');('║ KURSOVAJA RABOTA ║');('║ vychislenie vremennoj funkcii ║');('╚═══════════════════════════════╝');;;true do;(24,4);{peresulka kursora v to4ku na4ala zagolovka}('GLAVNOE MENU');j:=1 to 5 do begin(25,7+j);(nameregime[j]);end;(20,15);('Vvedite nomer rezhima i nazhmite <ENTER>');(i);i of

:kvyravn;

:nelinyr;

:gorner;

:graffik;

:begin clrscr;igra; halt; end;(20,17);('takogo rezhima nety v menu. POVTORITE!!!');(1000);;;

end;.

6. Результаты расчета

.1 Исходные величины

Заданная точность: ε=10-3

Коэффициенты квадратного уравнения:

а1=1,5; b1=2; с1= -2;

Время (начальное, конечное, квантования):

t0=0 с, tкон=10 с, Тк=0.5 с;

Коэффициенты временной функции:

а= 1,5; b=4,3; d= sin60;

.2 Вычисленные величины

t

y

0

1

0,5

2.6

1

7.6

1,5

17

2

31

2,5

53.43

3

82.03

3,5

120.9

4

169.2

4,5

228.3

5

300

5,5

385

6

484.9

6,5

600

7

732

7,5

882

8

1051

8,5

1240

9

1450

9.5

10

1939


Наименьший по абсолютному значению корень квадратного уравнения m= 0.667

Корень уравнения       x=0.33

График временной функции


Список использованной литературы

1.Тарасевич Л.А. Лекционный материал 1 курс 2005-2006гг.

. Ю.С. Бородич, А.Н. Вальвачёв, А.И.Кузьмич Паскаль для персональных компьютеров» Минск 1991г.

.В.А. Скляров, И.Р. Булатова «Знакомьтесь : Паскаль!» Минск, 1988г.


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!