Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2009, 16:03   #1
Maria89
Новичок
Джуниор
 
Регистрация: 26.04.2009
Сообщений: 2
По умолчанию Запись в файл результатов!

всем доброго дня!!!
помогите пожалуйста доделать программу!...
задание состоит в том чтобы найти корень уравнения методом половинного деления и методом Ньютона с точностью e = 0,001.
в принципе я программу написала...но результаты нужно вывести в файл "Вывести на экран и в файл приближенное значение корня
уравнения, вид уравнения, точность, число итераций."
помогите пожалуйста это сделать... уравнение- cos(x-pi/3)-2*x=0


Цитата:
uses crt;
var x: real;f:boolean;
w,v: char;
i:integer;
function ff(x:real): real;
begin
ff:=cos(x-(pi/3))-2*x;
end;
{==================метод бисекций======================}
Procedure Vvod(Var a,b,e:real); Begin
Writeln('Введите a= '); read(a);
Writeln('Введите b= '); read(b);
w:='+'; v:='+';
Writeln('Введите точность e= '); read(e);
End;
Procedure sh;
Begin

Writeln('__________________________ _____________');
Writeln('| n | a | F(a) | b | F(b)|');
Writeln('|______|_________|_______ |______|______|');
end;
Procedure polovina(x:real);
var c, a, b,e, a1, b1,F1,F2: real;
Begin Vvod(a,b,e);
if v<>'*' then
begin F1:=ff(a); If F1<0 then v:='-' else v:='+'; end ;

if (w<>'*') and (v<>'*') then begin x:=(a+b)/2;
F2:=ff(x); If F2<0 then w:='-' else w:='+';end;
i:=1;
if (v<>'*') and (w<>'*') then
Begin
Sh;
Repeat
x:=(a+b)/2;
F2:=ff(x); If F2<0 then w:='-' else if F2>0 then w:='+';
if F2=0 then Begin a:=x; b:=x; End
else if F1*F2<0 then b:=x
else Begin a:=x; F1:=F2; End;
Writeln('|',i:2,' |',a:6:4,' |',v, ' | ',b:6:4, ' | ',w, ' | ' );
i:=i+1;
Until abs(b-a)<e; Writeln(''); Writeln ('Корень x= ',x:5:2, ' на интервале [',a:4:3,';',b:4:3,']'); end
else
Writeln('|',i:2,' |',a:6:1,' |',v,' |',' | ',b:6:2, ' | ',w, ' | ' );
End;
function f2(x:real): real;
begin
f2:=cos(x-(pi/3))-2*x;
end;
function proizv(x:real):real;
begin
proizv:=-sin(x-(pi/3))-2;
end;
{=============================Ньюто н================================== =========}
procedure nuton(x: real);
var x0, xn, e , d:real;
begin
begin
writeln('Введите точность'); readln(e);
writeln('Введите начальное приближение'); readln(x0);
x:=x0;
repeat if ff(x)=0 then break{прерывание цикла};
if (x=-2)or(x=4) then x:=x+e;
xn:=x-f2(x)/proizv(x); d:=x-xn;
x:=xn;
until abs(d)<=e;
writeln('Корень: ', x);
end;
end;

procedure menu;
var n: char;
begin
writeln('================Меню====== ========');
writeln('1 – Метод бисекций');
writeln('2 – Метод касательных');
repeat read(n);
until (n='1')or(n='2');
case n of
'1':begin polovina(x);end;
'2':begin nuton(x); end;
end;{case;}
end;
BEGIN
clrscr;
menu;
END.
Maria89 вне форума Ответить с цитированием
Старый 27.04.2009, 01:01   #2
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию

тебе нужно сохранить результаты...программы на диске! Я так понял.
через функцию
Assign???
Doholyan вне форума Ответить с цитированием
Старый 27.04.2009, 11:30   #3
Maria89
Новичок
Джуниор
 
Регистрация: 26.04.2009
Сообщений: 2
По умолчанию

Doholyan
ну наверное через неё...с реализацией проблема
Maria89 вне форума Ответить с цитированием
Старый 27.04.2009, 12:09   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пропиши примерно такое где нить в начале проги
Код:
Assign(output,'File.txt');
rewrite(output);{Хотя помоему можно и без этой строки}
А в конце
Код:
Close(output)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.04.2009, 23:31   #5
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию

Да...примерно так но лучше указать полный путь...и расширение
Assign(outFile,'F:OutFile.txt);
Rewrite(outFile);
Writeln(outFile,переменная,типа STRING);
только оязательно нужно закрыть файл, а то не сохранит
Doholyan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись в файл Lemo Помощь студентам 3 01.03.2009 19:06
Запись в файл Titan123 Общие вопросы Delphi 6 23.08.2008 01:12
Запись в файл на С++ Mails Помощь студентам 7 31.03.2008 14:37
Запись в файл В_И_К_Т_О_Р Помощь студентам 9 30.01.2008 22:46
запись в файл Prisian Общие вопросы Delphi 6 24.07.2007 13:43