Program Euler;
Uses Crt;
Var
xn,xk,yn,h,x,y:real;
i:integer;
Function f(x,y:real):real;
begin
{Здесь приводим выражение для вычисления функции f(x,y) }
f:=y-x;
end;
Begin
ClrScr;
Writeln(' Решение дифференциального уравнения ');
Writeln(' y`=y-x методом Эйлера ');
{ Ввод исходных данных }
Writeln(' Введите начало отрезка ');
Readln(xn);
Writeln(' Введите конец отрезка ');
Readln(xk);
Writeln(' Введите шаг ');
Readln(h);
Writeln(' Введите начальное значение y ');
Readln( yn);
{ xn:=0; yn:=1.5; xk:=1.5; h:=0.25;}
{ Выводим шапку таблицы и первую точку }
Writeln(' -------------------');
Writeln('| № | x | y |');
Writeln(' -------------------');
{ Начинаем расчет }
x:=xn; y:=yn; i:=1;
Writeln('|', i:2, ' |', x:5:2, ' |', y:7:4, ' |');
repeat
y:=y+h*f(x,y);
i:=i+1;
x:=x+h;
Writeln('|', i:2, ' |', x:5:2, ' |', y:7:4, ' |');
until x>xk-h;
Writeln(' -------------------');
Readln;
End.
Осуществить ввод элементов
1)Само дифференциальное ур-е(f)
2)Начальный шаг (h)
3)Начальное условие (y0)
4)Начало отрезка (a)
5)Конец отрезка (b)
Program Euler;
Uses Crt;
Var
xn,xk,yn,h,x,y:real;
i:integer;
Function f(x,y:real):real;
begin
{Здесь приводим выражение для вычисления функции f(x,y) }
f:=y-x;
end;
Begin
ClrScr;
Writeln(' Решение дифференциального уравнения ');
Writeln(' y`=y-x методом Эйлера ');
{ Ввод исходных данных }
xn:=0; yn:=1.5; xk:=1.5; h:=0.25;
{ Выводим шапку таблицы и первую точку }
Writeln(' -------------------');
Writeln('| № | x | y |');
Writeln(' -------------------');
{ Начинаем расчет }
x:=xn; y:=yn; i:=1;
Writeln('|', i:2, ' |', x:5:2, ' |', y:7:4, ' |');
repeat
y:=y+h*f(x,y);
i:=i+1;
x:=x+h;
Writeln('|', i:2, ' |', x:5:2, ' |', y:7:4, ' |');
until x>xk-h;
Writeln(' -------------------');
Readln;
End.
Цитата: Alexanchez12
Есть программа. Нужно сделать так чтобы вначале она просила ввести:
1)Само дифференциальное ур-е(f)
2)Начальный шаг (h)
3)Начальное условие (y0)
4)Начало отрезка (a)
5)Конец отрезка (b)
1)Само дифференциальное ур-е(f)
2)Начальный шаг (h)
3)Начальное условие (y0)
4)Начало отрезка (a)
5)Конец отрезка (b)
так:
Код:
а насчёт
Цитата: Alexanchez12
Есть программа. Нужно сделать так чтобы вначале она просила ввести:
1)Само дифференциальное ур-е(f)
1)Само дифференциальное ур-е(f)
матан я конечно сдал давно, но я думаю что саму структуру уравнения менять нельзя, иначе программа перестанет корректно работать, как максимум можно сделать ввод дополнительных коэффициентов, что бы уравнение приобрело например такой вид: y`=ay-bx, где a и b вводятся с клавиатуры?? Если я неправ, то поправьте.