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 
 К началу страницы 
+ Ответить 
APAL
сообщение 23.09.2013 8:47
Сообщение #2


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


  Append  (процедура)
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Открывает существующий файл для продолжения записи в файл.

Объявление:
Procedure Append(Var F : Text);

Где:
F - переменная текстового файла.

Режим:
Windows, Real, Protected

Замечания:
Параметр F - переменная текстового файла, которая должна быть связана с
внешним файлом при помощи вызова процедуры Assign.

Append открывает существующий внешний файл с именем, определенным в файловой
переменной F. Если внешний файл с данным именем не существует, то происходит
ошибка ввода/вывода. Если F уже открыт, то он закрывается и вновь
открывается. Текущая позиция файла устанавливается на конец файла.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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