IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Разработка программы для решения нелинейного уравнения методом секущих
mitz
сообщение 12.09.2013 23:07
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской

Репутация: -  0  +


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

Программа должна быть написана на языке 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= ', а несколько, в зависимости от количества итераций. Как сделать так, чтобы записывалось в файл несколько результатов?
И как реализовать защиту о недопустимых исходных данных и промежуточных результатов?

Сообщение отредактировано: mitz - 12.09.2013 23:08
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 28.07.2025 10:09
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"