![]() |
|
#1
|
|||
|
|||
![]() Это метод Эйлера с заданной точностью. написанно в Turbo Delphi.
Код:
program Eiler; {$APPTYPE CONSOLE} uses SysUtils, InOut, Math; const E = 0.01; var x,y,g,m,y0,x0 :Extended; n,i: integer; function F(x,y:extended):Extended; begin Result := 0.2*(power(y,0.5))*x; end; begin Write(RusWD('Введите значение Хо: ')); readln(x); Writeln; Write(RusWD('Введите значение Yо: ')); readln(y); Writeln; Write(RusWD('Введите значение Хк: ')); readln(m); Writeln; Write(RusWD('Введите шаг: ')); readln(g); Writeln; Writeln(' X ',' ',' Y '); y:= y0; while abs(y0-y) <= E do begin y:= y0; n:= (x+m)/g; for i := 1 to n do begin y := y+g*f(x,y); x := x+g; end; end; Writeln(x:7:5,' ',y:7:5); Readln; end. |
#2
|
||||
|
||||
![]() Я чтото не понял
PHP код:
результатом выражения abs(y0-y) будет ноль так как числа одинаковы а условие abs(y0-y) <= E будет бесконечно равно тру. Возможно в этом проблема? Не твори зла, и жизнь повернется к тебе передом ![]() |
#3
|
|||
|
|||
![]() ну y:= y0 я написал что бы цикл запустился, и поидее прога не должна больше сюда обращаться. ну возможно и тут какая то ошибка, но щас мне выдаёт вот эту ошибку
[Pascal Error] Project1.dpr(50): E2010 Incompatible types: 'Integer' and 'Extended' в этой строке Код:
n:= (x+m)/g; |
#4
|
|||
|
|||
![]() Цитата:
Правильно выдает: Результат деления будет вещественное число. а у вас n описан как целое. n:integer меняем на n:real; |
#5
|
|||
|
|||
![]() а вот для этой строки n должно быть integer
Код:
for i := 1 to n do |
#6
|
|||
|
|||
![]() n надо оставить Integer.
Код:
n:= Round((x+m)/g); |
#7
|
|||
|
|||
![]() Спасибо. А почему на экран не выводит значения x и y?
|
#8
|
|||
|
|||
![]() вроде исправил. тут надо так - y0:= y
Код:
y:= y0; while abs(y0-y) <= E do |