Разработка программы для решения нелинейного уравнения методом секущих

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
MitZ
Сообщения: 5
Зарегистрирован: 19 май 2009, 19:49

16 сен 2013, 03:11

Доброй ночи, помогите, пожалуйста, с программой:

Программа должна быть написана на языке Pascal.
Метод должен быть реализован в виде отдельной подпрограммы.
Программа должна обеспечивать решение уравнений трех видов.
Результаты работы программы должны быть выведены на экран дисплея и помещены в текстовый файл на диск.
В программе должна быть предусмотрена защита о недопустимых исходных данных и промежуточных результатов.
Программа предназначена для использования на персональных компьютерах типа IBM PC стандартной комплектации.

Вот что более-менее скомпоновал:

Код: Выделить всё

uses
	CRT;
var
	E,x0,x1,y0,y1,x:real;
	imax,i,j,k,m:integer;
  fi:text;
function F(x:real):real;
begin
	F := 1-exp(j*ln(abs(x)))-exp(k*ln(abs(pi*exp(m*ln(abs(x)))/4)));
end;

begin
	ClrScr;
        writeln('Введите j,k,m'); readln(j,k,m);
	E:=1.0E-10;
	x0:= 1; x1:= x0+(10-100)*E;
	i:=1; imax:=20;
	y0:=F(x0);
	repeat
		y1:=F(x1);
		x:=x1-(x1-x0)/(y1-y0)*y1;
                writeln('Xn+1 = ',x);
		if abs(x-x1)<E then break;
		x0:=x1; y0:=y1;
		x1:=x; 	inc(i);
	until (i=imax);
	writeln('X = ',x+E:0:10,'; Iterates: ',i);
  readkey;

  assign(fi,'file.txt');
 	rewrite(fi);
  writeln(fi, 'Xn+1 = ', x);
	writeln(fi,'X = ',x+E:0:10,'; Iterates: ',i);
	close(fi);
end.
В общем, не получается никак сделать так, чтобы выводилась в файл не одна строка 'X= ', а несколько, в зависимости от количества итераций. Как сделать так, чтобы записывалось в файл несколько результатов?
И как реализовать защиту о недопустимых исходных данных и промежуточных результатов?
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

16 сен 2013, 11:25

Как сделать так, чтобы записывалось в файл несколько результатов?
Очевидно, внести вывод результатов в тело цикла итераций
И как реализовать защиту о недопустимых исходных данных и промежуточных результатов?
Исходные данные - это j;k;m и на область определения exp они не влияют. Кстати, математически, функцию F можно упростить
Промежуточные результаты - это значения, возвращаемые функцией F(x). Они уже по определению допустимы, т.к. их возвратила функция и не возникло исключительной ситуации.
Возможно имелась ввиду защита от недопустимых данных во время выполнения вычислений промежуточных результатов?
It's a long way to the top if you wanna rock'n'roll
Ответить