Лабораторная работа: Готовые лабы в ПАСКАЛЕ (описание внутри)
Описание
Характеристики лабораторной работы
Список файлов
- a
- lab5 (7ая)
- Kraevaia.cfg 442 b
- Kraevaia.dof 2,04 Kb
- Kraevaia.dpr 1,56 Kb
- Kraevaia.exe 43,5 Kb
- Kraevaia.~dpr 1,57 Kb
- b
- lab6 (6ая)
- koshi_sist.cfg 442 b
- koshi_sist.dof 1,97 Kb
- koshi_sist.dpr 2,84 Kb
- koshi_sist.exe 44 Kb
- koshi_sist.~dpr 2,84 Kb
- lab6.txt 2,84 Kb
- c
- Lab4 (4ая)
- Project2.bdsproj 8,19 Kb
- Project2.bdsproj.local 231 b
- Project2.cfg 488 b
- Project2.dof 1,97 Kb
- Project2.dpr 2,41 Kb
- Project2.exe 47 Kb
- Project2.identcache 37 b
- Project2.~dpr 3,78 Kb
- __history
- Project2.dpr.~1~ 3,78 Kb
- objasn_lab4
- Thumbs.db 13,5 Kb
- o1.gif 746,44 Kb
- o2.gif 730,47 Kb
- o3.gif 553,92 Kb
- о4.gif 563,8 Kb
- лаба4.doc 173 Kb
- d
- Lab3 (9ая)
- Project2.cfg 394 b
- Project2.dof 2,05 Kb
- Project2.dpr 3,31 Kb
- Project2.exe 44,5 Kb
- Project2.~dpr 3,31 Kb
- e
- Lab2 (2ая)
- Project.cfg 442 b
- Project.dof 1,97 Kb
- Project.dpr 3,27 Kb
- Project.exe 44,5 Kb
- Project.~dpr 3,03 Kb
- лаба 2.doc 607 Kb
- f
program koshi_sist;
{$APPTYPE CONSOLE}
uses
SysUtils;
var t,h,yt,x0,y0,z0,x1,y1,z1:real;
i,n,ind:integer;
y:array[1..100] of real;
type Chisla=array[1..4] of real;
function p(xt:real):real; //Функция p(x)
begin
p:=0 //Ввести свое значение p(x)
end;
function q(xt:real):real; //Функция q(x)
begin
q:=4; //Ввести свое значение q(x)
end;
function f(xt:real):real; //Функция f(x)
begin
f:=sin(xt); //Ввести свое значение f(x)
end;
function f1(xt,yt,zt:real):real;
begin
f1:=zt; //первое ДУ из систему ОДУ 1ого порядка
end;
function f2(xt,yt,zt:real):real;
begin
f2:=f(xt)-q(xt)*yt-p(xt)*zt; //второе ДУ из систему ОДУ 1ого порядка
end;
procedure Koshi(a,b:integer; y0,z0,e:real; Rx:Chisla; var Ry,Rz:Chisla);
var Rxt,xi,yi,zi,k1,k2,l1,l2,yisled,zisled:r eal;
ind:integer;
begin
//Функция Trunc возвращает целочисленную часть числа с плавающей запятой.
n:=trunc((b-a)/sqrt(e)); //количество разбиений
h:=1/n; //шаг
xi:=a; //Начальное значение х равно a из условия
yi:=y0;
zi:=z0; //Начальные условия
ind:=1;//счетчик точек, значения в которых надо узнать
Rxt:=Rx[ind];//текущая точка, для которой считается значения
while xi<=b do begin
k1:=h*f1(xi,yi,zi);
l1:=h*f2(xi,yi,zi);
k2:=h*f1(xi+h,yi+k1,zi+l1);
l2:=h*f2(xi+h,yi+k1,zi+l1); //коэффициенты
yisled:=yi+(k1+k2)/2;
zisled:=zi+(l1+l2)/2; //следующее значение функций
if (xi+h)>=(Rxt-e) then begin // если дошли до Rxt
Ry[ind]:=yi+(Rxt-xi)/h*(yisled-yi);
// вычисляется значение функций в этой точке с помощью интерполяции
Rz[ind]:=zi+(Rxt-xi)/h*(zisled-zi);
if ind<4 then begin
ind:=ind+1;
Rxt:=Rx[ind]; // берется следующую точку
end;
end;
xi:=xi+h;
yi:=yisled;
zi:=zisled; // присваивается текущие значения.
end;
end;
function ZNACHENIE(xt:real):real;
begin
result:=(1/3)*sin(xt)+cos(2*xt)+(1/3)*si n(2*xt); //Ввести свое решшение
end;
var a,b:integer;
e:real;
Rx,Ry,Rz:Chisla;
begin
a:=0;
b:=1; //Начало и конец интервала
writeln('Vvedite yslovia dlia reshenia zadachi Koshi:');
write('x=');
readln(x0);
write('y(', x0:0:0, ') = ');
readln(y0);
write('y`(', x0:0:0, ') = ');
readln(z0);
write('Vvedite tochnost: e = ');
readln(e);
writeln;
Rx[1]:=0.25; //Точки, в которых требуется посчитать значение
Rx[2]:=0.5;
Rx[3]:=0.75;
Rx[4]:=1;
Koshi(a,b,y0,z0,e,Rx,Ry,Rz);
writeln('Metod Runge-Kutta');
for i:=1 to 4 do
writeln('y[', i, '] = ', Ry[i]:4:4);
{
writeln(' z[', i, '] = ', Rz[i]:4:4); - это если надо вывести значения z
}
writeln;
writeln('Tochnye resheniya DU:');
for i:=1 to 4 do
writeln('y[', i, '] = ', znachenie(Rx[i]):4:4);
writeln;
writeln('Pogreshnost vychisleniy:');
for i := 1 to 4 do
writeln('pogreshnost v toche ',i,' ', abs((Ry[i] - znachenie(Rx[i]))):4:4);
readln;
end.
Распознанный текст из изображения:
-'ч:.~ с
~ см
,~~~~ъ фаФеММ су сс у -.. 8
Распознанный текст из изображения:
Щ~'ис~ . на .с: .
";„". ~фуе~ю Фуга.су ~сл с~~ *
иноясчлен
".,~~,""„:ф'.~ ~ ~ .~ ', ',, ~ ~А,', ЭДМШПО
""','44М4~4Ф /с~ с' ~сс
М~Мсе ркс~ с с ~ ',. ~," ' ', й
(
Начать зарабатывать