Идентификаторы
|
Наименование
|
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г.