Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
гр 106411 Рогач С. Н..DOC
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
146.94 Кб
Скачать

2.2 Схемы алгоритмов подпрограмм Функция решения системы уравнений:

да нет

Решение нелинейного уравнения Заданная функция производная функция

Само решение нелинейного уравнения

Да нет нет

Временная функция

2.3 Схема алгоритма основной программы.

Да нет

Нет да

Нет да

Компоновка программы пользователя и распечатка листинга программы. {программу подготовил студент группы 106411} {Рогач с.В.}

Program var_10;

uses crt;

var

c : real; для cистемы уравнений

d : real; для нелинейного уравнения

a , b :real; для функции

t0, tkon, tkv :real; для функции

X0,eps:real; для нелинейного уравнения

----------------- Решение системы ------------------- ----------------- определяет b ---------------------- procedure sistema;

type massiv = array[1..3,1..2] of real;

var

I,j : byte; Счётчики

syst : massiv;

r1, r2 : real; решения системы

begin

clrscr;

Writeln('Решаем систему уравнений a1z + b1p = d1 ');

Writeln(' a2z + b2p = d2 ');

Writeln('Введите коэффициенты a1, b1, d1, a2, ... ');

for j:= 1 to 2 do

begin

for i:= 1 to 3 do

begin

gotoXY (25 + i*6, 4 + j);

read(syst[i,j]);

end;

end;

for j:= 1 to 2 do

for i:= 3 downto 1 do

syst[i,j]:= syst[i,j]/syst[1,j];

for i:= 1 to 3 do syst[i,2]:= syst[i,1]-syst[i,2];

r2:= syst[3,2]/syst[2,2];

r1:= (syst[3,1]- r2*syst[2,1]);

if r1 > r2 then c:= r1 else c:= r2;

Writeln('Наибольшее решение системы c= ',c:4:2);

Writeln('Для продолжения любую клавишу'); readkey;

end;

--------------- решение нелинейного уравнения ------------------- procedure nuton;

var d, x, xpred :real;

function f(w:real):real; Заданная функция

begin

f:=0.25*x*x*x + x - 1.2502; ;

end;

function fpr(v:real):real; Её производная

begin

fpr:=0.75*x*x + 1;

end;

begin

clrscr;

Writeln('Решаем нелинейное уравнение 0.25*x^3 + x - 1.2502 = 0'); Writeln('методом Ньютона ');

Write('Введите диапазон начального значения корня : X0= ');readln(x0); Write('Вводим точность расчёта : E = '); readln(eps);

x:= x0;

repeat

begin

xpred:=x;

x:= xpred - f(xpred)/fpr(xpred);

end;

until (f(x)<eps) and (abs(x-xpred)< eps);

d:= x;

Writeln('Корень уравнения 0.25*x^3 + x - 1.2502 = 0; x= ',d:0:4); Write('Для продолжения нажмите любую клавишу'); readkey;

end;

*************************************************************

procedure koeficientu;

begin

clrscr;

Writeln('Сейчас происходит подготовка к выводу значений '); Writeln('временной функции f(t) = |at^2 + bt + c + d| ,где ');

Writeln(' d - корень уранения 0.25x^3 + x - 1.2502 ');

Writeln(' c - наибольший корень системы.');

Writeln('Ввод недостающих коэффициентов:');

Write('Введите a; a = '); readln(a); b:=abs(d - a);

Write('b =|d - a| = ',b:5:3); Writeln('');

Writeln('Ввод параметров функции:');

Write('Введите начальное время t0; t0 = '); readln(t0);

Write('Введите конечное время tkon; tkon = '); readln(tkon);

Write('Введите время квантования tkv; tkv = '); readln(tkv);

Writeln('');

end;

procedure tablica;

var

t : real;

i : byte;

vyb : byte;

функция

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

function funt(af, bf, cf, df, tf :real):real;

begin

funt:=abs(cf + df + tf*(bf + af*tf));

end;

begin

clrscr;

Writeln('В каком времени рассчитывать функцию?');

Writeln(' 1 - если в машинном ');

Writeln(' 2 - если в реальном ');

readln(vyb);

Write('Для вывода результатов нажмите любую клавишу.'); readkey;

clrscr;

t:= t0; i:=1;

Writeln(' | Значение t | Значение f(t) | ');

Writeln(' ------------------------------- ');

while t <= tkon do

begin

gotoXY (20+1, i+2); write('|');

gotoXY (20+14, i+2); write('|');

gotoXY (20+31, i+2); write('|');

gotoXY (20+4, i+2);

writeln(t:5:3);

gotoXY (20+18, i+2);

writeln(funt(a,b,c,d,t):6:4);

if vyb = 2 then delay(trunc(tkv*58000));

t:= t + tkv; i:= i + 1;

end;

Writeln(' ------------------------------- ');

Writeln('Программу разработал Рогач Сергей Николаевич.'); readkey;

end;

BEGIN

sistema; считаем c

nuton; считаем d

koeficientu; ввод коэффициентов

tablica; вывод таблицы

END.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]