|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
10.11.2010, 21:01 | #1 (permalink) |
Member
Регистрация: 10.11.2010
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Методы нахождения корня на паскале
Метод половинного деления: Код:
uses Crt; function f(x:real):real; begin f:=1+sin(x)-1.14*exp(-x); end; var x,eps,a,b,c,d:real; begin clrScr; writeln('vvedite a b'); readln(a,b); writeLn('vvedite tochnost eps'); readln(eps); repeat c:=(a+b)/2; if(f(a)*f(c))<0 then b:=c else a:=c; until (b-a)<=eps; x:=(a+b)/2; d:=(b-a)/2; writeLn('koren x=',x:0:7, ' d=' ,d:0:7); readln end. Код:
uses crt; function F(x:real):real; begin F:=1+sin(x)-1.14*exp(-x); end; function F1(x:real):real; begin F1:=cos(x)+1.14*exp(-x); end; function Newton(x1,e:real):real; var x2,b:real; begin x2:=x1; repeat b:=x2; x2:=b-F(b)/F1(b); until abs(x2-b)>e; Newton:=x2; end; var a,eps:real; begin clrscr; write('Введите начальное приближение a='); readln(a); write('Введите точность eps='); readln(eps); write('X=',Newton(a,eps):0:5); readln end. Код:
var a,e,fa,fas,xa,xp,l,fx,fxp:real; n:integer; function FunX(b:real):real; begin fx:=1+sin(b)-1.14*exp(-b); fxp:=cos(b)+1.14*exp(-b); end; begin write ('vvedite tochnost_'); readln (e); write ('vvedite nachalnoe priblizenie x0_'); readln (xp); n:=0; repeat xa:=xp; fx:=1+sin(xa)-1.14*exp(-xa); fxp:=cos(xa)+1.14*exp(-xa); l:=(-1)/(fxp+1); xp:=xa+l*fx; n:=n+1; until abs(xp-xa)<e; writeln ('otvet: x=', xp:9:4); writeln ('kol-vo provedennix vichislenii=',n); readln; end. |
10.11.2010, 21:01 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Интересующие вас ответы могут содержаться в этих темах Методы сортировки Программа на Паскале |
10.11.2010, 21:17 | #2 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
В каждом листинге перед оператором until вставьте оператор вывода вычисленного значения.
__________________
Убить всех человеков! |
10.11.2010, 21:39 | #4 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
к примеру, в первом листинге вставьте перед строкой с until следующую команду:
Код:
writeln(c);
__________________
Убить всех человеков! |
10.11.2010, 21:45 | #5 (permalink) |
Member
Регистрация: 10.11.2010
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
а как результат проги скопировать в блокнот допустим?
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
10.11.2010, 21:53 | #6 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Сделайте вывод в текстовый файл и потом его распечатайте. Также можно реализовать вывод непосредственно на печатающее устройство прямо из программы, указав в операторе Writeln в качестве параметра устройство печати.
__________________
Убить всех человеков! |
10.11.2010, 21:54 | #7 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Способы подробно описаны в справочной системе среды разработки
__________________
Убить всех человеков! |
10.11.2010, 21:56 | #8 (permalink) |
Member
Регистрация: 10.11.2010
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
еще вопрос, в первой проге он выдает числа в конце с Е, а можно их как-то в привычном виде выдать, как-нибудь примерно до 7 знака
Последний раз редактировалось Veina; 10.11.2010 в 22:01 |
10.11.2010, 22:04 | #9 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Организация вывода в файл:
в разделе переменных определяем файловую переменную var .... F: Text; .... В начале исполнимого модуля связываем файловую переменную с текстовым файлом, указывая полный путь к файлу и открываем его для перезаписи (или создания, при первом обращении к файлу): begin ... assign(F,'путь'); rewrite(F); ... В операторах вывода результатов вычислений в качестве параметра устройства вывода указываем наш файл: Writeln(F,'text'); Writeln(F,c); В конце программы (перед конечным оператором end.) закрываем файл командой close(F); Форматированный вывод значений можно организовать, используя параметры вывода значений. К примеру, форма записи C:4:8 определяет формат вывода числа с по крайней мере 4-мя знакоместами под целую часть и 8 значащими разрядами дробной части. Это используется для организации вывода значений в несколько выравненных по левому краю столбцов и, естественно, для избавления от экспоненциальной формы числа . Writeln(F,c:6:7); как пример к вашему вопросу
__________________
Убить всех человеков! |
10.11.2010, 22:13 | #10 (permalink) |
Member
Регистрация: 10.11.2010
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
еще вопрос, в первой проге он выдает числа в конце с Е, а можно их как-то в привычном виде выдать, как-нибудь примерно до 7 знака
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|