|
Вопрос # 5 388/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Мне нужно написать программу для вычисления систем нелинейных уравнений методом Ньютона. Я уже писал эту программу в Паскале, но в Дэлфи никак не могу. Подскажите кто как может. В программе должна быть возможность решать не менее 2х уравнений одновременно, с постороением графика. Никак не могу справиться сданной задачей. Неделю пытаюсь, уже не знаю куда обратиться...
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: Maks6169 (статус: Посетитель)
Вопрос отправлен: 8 июня 2011, 01:19
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 15; последнее сообщение — 14 июня 2011, 06:08; участников в обсуждении: 5.
|
Мережников Андрей (статус: Абитуриент), 8 июня 2011, 05:59 [#1]:
если есть рабочая программа на паскале, то в чем проблема перенести ее в Delphi? Отличия будут только в вводе/выводе информации.
|
|
min@y™ (статус: Доктор наук), 8 июня 2011, 08:18 [#2]:
Цитата (Maks6169):
Никак не могу справиться сданной задачей. Неделю пытаюсь, уже не знаю куда обратиться...
Ну а конкретнее? Что не получается-то?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Maks6169 (статус: Посетитель), 8 июня 2011, 11:00 [#3]:
я пытался перенести, но либо программа работает не так как ожидалось, либо ошибку выдаёт, а про график я вообще молчу, ни разу с таким не сталкивался.
|
|
min@y™ (статус: Доктор наук), 8 июня 2011, 11:24 [#4]:
Да не надо ничего переносить! Надо написать заново, с нуля, только основываясь на отлаженном паскальном коде. Этот код содержит в себе алгоритм действий, который надо воспроизвести на delphi.
А построение графика - это отдельная подзадача. За неё берись позже, когда будет готова первая часть.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Maks6169 (статус: Посетитель), 8 июня 2011, 11:32 [#5]:
спасибо за совет, попробую.
|
|
nar (статус: Посетитель), 8 июня 2011, 20:51 [#6]:
паскалевский код в студию.
|
|
Maks6169 (статус: Посетитель), 10 июня 2011, 01:55 [#7]:
у меня ещё одна проблема, я не знаю как ввести несколько уравнений с синусами, косинусами, квадратами и т. д. И сделать с ними определённые операции. Всё время выскакивает ошибка.
|
|
bugmenot (статус: 3-ий класс), 10 июня 2011, 02:15 [#8]:
function Y(X: Real): Real;
begin
Y := 2*Sin(X)/(Sqr(Cos(X))/3);
end;
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
|
Maks6169 (статус: Посетитель), 10 июня 2011, 02:19 [#9]:
вся проблема в том что мне нужно ввести данное уравнение с клавиатуры...
|
|
min@y™ (статус: Доктор наук), 10 июня 2011, 08:19 [#10]:
Цитата (Maks6169):
вся проблема в том что мне нужно ввести данное уравнение с клавиатуры...
А ты сколько лет уже програмируешь? Для решения такой задачи нужен нехилый стаж за плечами.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
bugmenot (статус: 3-ий класс), 10 июня 2011, 18:11 [#11]:
Цитата (Maks6169):
ввести данное уравнение с клавиатуры...
Боян, юзай поиск. Множество раз уже поднимался вопрос.Цитата (min@y™):
нужен нехилый стаж за плечами Как будто стаж внезапно перейдет в качество... Поиск. Там название книги с курсом.
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
|
Maks6169 (статус: Посетитель), 12 июня 2011, 19:16 [#12]:
кароче нифига у меня не получается, сделал только вот чёunit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Edit3: TEdit;
Edit4: TEdit;
Label2: TLabel;
Button1: TButton;
Label4: TLabel;
Edit7: TEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
a,b,e,x,en:real;
n,i,c,d:integer;
fi:text;
Form1: TForm1;
implementation
{$R *.dfm}
function f(x:real;n:integer):real;
begin
case n of
1: f:=x*x*x*x+d*x*x+x+c;
2: f:=x*x*x+c*x;
3: f:=x*x*c+d*x;
end;
end;
function f1(x:real;n:integer):real;
begin
case n of
1: f1:=4*x*x*x+2*d*x+1;
2: f1:=3*x*x+c;
3: f1:=2*x*c+d;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
a:=StrToInt(Edit1.Text);
b:=StrToInt(Edit2.Text);
c:=StrToInt(Edit3.Text);
d:=StrToInt(Edit4.Text);
n:=StrToInt(Edit7.text);
en:=abs(a-b);
Label5.Caption:=FloatToStr(x);
x:=b;
i:=1;
while (abs(en)>e) do begin
x:=x-f(x,n)/f1(x,n);
en:=abs(x-b);
b:=x;
i:=i+1;
end;
end;
end.
но даже это не пашет, кто может подправить чтобы 2 уравнения вычислялись?
|
|
Maks6169 (статус: Посетитель), 13 июня 2011, 00:09 [#13]:
или чтобы это хоть как то работало...
|
|
Maks6169 (статус: Посетитель), 13 июня 2011, 22:58 [#14]:
хоть скажите тут хоть чтото правильное есть или нет?
|
|
Мережников Андрей (статус: Абитуриент), 14 июня 2011, 06:08 [#15]:
Цитата (Maks6169):
while (abs(en)>e) do begin
где присваивается значение e?
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|