Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.06.2010, 17:27
sun_light sun_light вне форума
Прохожий
 
Регистрация: 08.06.2010
Сообщения: 5
Репутация: 10
Восклицание Что не так?

Это метод Эйлера с заданной точностью. написанно в 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  
Старый 08.06.2010, 17:32
Аватар для Bars1992
Bars1992 Bars1992 вне форума
Активный
 
Регистрация: 24.04.2010
Адрес: Украина, Кременчуг
Сообщения: 249
Репутация: 22
По умолчанию

Я чтото не понял
PHP код:
y:= y0;
  while 
abs(y0-y) <= do 

результатом выражения abs(y0-y) будет ноль так как числа одинаковы а условие abs(y0-y) <= E будет бесконечно равно тру. Возможно в этом проблема?
__________________
Не твори зла, и жизнь повернется к тебе передом
Ответить с цитированием
  #3  
Старый 08.06.2010, 17:43
sun_light sun_light вне форума
Прохожий
 
Регистрация: 08.06.2010
Сообщения: 5
Репутация: 10
По умолчанию

ну y:= y0 я написал что бы цикл запустился, и поидее прога не должна больше сюда обращаться. ну возможно и тут какая то ошибка, но щас мне выдаёт вот эту ошибку
[Pascal Error] Project1.dpr(50): E2010 Incompatible types: 'Integer' and 'Extended' в этой строке
Код:
n:= (x+m)/g;
Ответить с цитированием
  #4  
Старый 08.06.2010, 18:00
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Цитата:
Сообщение от sun_light
ну y:= y0 я написал что бы цикл запустился, и поидее прога не должна больше сюда обращаться. ну возможно и тут какая то ошибка, но щас мне выдаёт вот эту ошибку
[Pascal Error] Project1.dpr(50): E2010 Incompatible types: 'Integer' and 'Extended' в этой строке
Код:
n:= (x+m)/g;

Правильно выдает:
Результат деления будет вещественное число.
а у вас n описан как целое.
n:integer меняем на n:real;
Ответить с цитированием
  #5  
Старый 08.06.2010, 18:06
sun_light sun_light вне форума
Прохожий
 
Регистрация: 08.06.2010
Сообщения: 5
Репутация: 10
По умолчанию

а вот для этой строки n должно быть integer
Код:
 for i := 1 to n do
пишет [Pascal Error] Project1.dpr(52): E2010 Incompatible types: 'Integer' and 'Real'
Ответить с цитированием
  #6  
Старый 08.06.2010, 18:19
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

n надо оставить Integer.
Код:
n:= Round((x+m)/g);
Ответить с цитированием
  #7  
Старый 09.06.2010, 14:55
sun_light sun_light вне форума
Прохожий
 
Регистрация: 08.06.2010
Сообщения: 5
Репутация: 10
По умолчанию

Спасибо. А почему на экран не выводит значения x и y?
Ответить с цитированием
  #8  
Старый 09.06.2010, 15:29
sun_light sun_light вне форума
Прохожий
 
Регистрация: 08.06.2010
Сообщения: 5
Репутация: 10
По умолчанию

вроде исправил. тут надо так - y0:= y
Код:
  y:= y0;
  while abs(y0-y) <= E do
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:35.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025