|
#1
|
|||
|
|||
Функция
Помогите пожалуйста со 2-ым заданием. Вообщем нужно завтра сдать лаб. раб., но я ни как не могу понять 2-ое задание.
1)Процедура Вывести в порядке возрастания их кодов все строчные буквы латинского алфавита, имеющиеся в тексте. Эту сделал. 2)Функция Уточнить корень уровнения e^x-10x=0 на отрезке [a, b] методом половинного деления. Это я вообще даже приблизительно не понимаю как сделать, и не успеваю. 3) Процедуру подключить как Unit, а функцию как отдельную библиотеку dll. Это я думаю что сделаю. Помогите пожалуйста. |
#2
|
||||
|
||||
Метод половинного деления вообще самый простой.
1. Подставляешь в уравнение a и b вместо x - если на отрезке есть решение и оно 1 (в общем случае - нечетное количество решений, но это лирика), то а будет больше нуля, а b - меньше (ну или наоборот, не суть важна, главное был переход через 0). 2. Делишь отрезок пополам a<c<b, получаешь 2 отрезка a,c и c,b. Проверяешь оба как в п.1, на одном будет переход через 0, на другом не будет. Затем опять делишь тот отрезок где есть переход через 0 и проверяешь полученную пару, так до тех пор пока отрезок у тебя не станет меньше какой-то заданной длины. Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение: | ||
Swd (28.05.2012)
|
#3
|
|||
|
|||
Спасибо, ещё бы понять как это в код преобразовать
Может кто-нибудь сможет написать код к этой функции? Пожалуйста Последний раз редактировалось Swd, 28.05.2012 в 20:15. |
#4
|
|||
|
|||
Завтра сдавать, помогите пожалуйста
|
#5
|
|||
|
|||
Цитата:
Ну что-то типа: Код:
function F(x : Double) : Double; begin // Здесь твоя функция end; function FindSolution(a, b, e : Double) : Double; var Fa, Fb, Fc : Double; begin Repeat Fa := F(a); Fb := F(b); Fc := F((a+b)/2); If Sigh(Fa) = Sign(Fc) Then a := (a+b)/2 Else b := (a+b)/2; Until Abs(Fc) < Abs(e); end; Здесь нет проверки, что решение существует. e - искомая точность. Лучше всего задавать отличной от 0, хотя и можно достаточно маленькой. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Swd (30.05.2012)
|