КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Билет 20. Отладка программы является непременным этапом при создании практически любой программы, тОтладка программы является непременным этапом при создании практически любой программы, т. к. при написании программы обычно допускаются различные ошибки, и их необходимо выявить либо удостовериться, что в программе ошибок нет. Ошибки в программе могут быть трех типов:
Отладка предполагает выполнение следующих моментов:
Хз что еще
Билет 21 Итерационные циклы: уточнение корня алгебраического уравнения Пусть в результате отделения корней стал известен отрезок [a, b], на котором функция f(x) имеет единственный корень. Требуется уточнить его значение с погрешностью e. Выберем для решения данной задачи метод хорд. Задаем начальное приближение, например, x = a. Хордой соединяем точки кривой на границах отрезка ab:
Ввод (a, b, e) [y - f(x)]/[f(b) - f(a)] = x:= a = (x - a)/(b - a). Пока |f(x)| > e Отсюда точка пересечения y:= f(a); z:= f(b); хорды с осью абсцисс: x = a - f(a)(b - a)/[f(b) - f(a)]; w:=f(x) x = a - f(a)(b - a)/[f(b) - f(a)]. y*w < 0 ДА НЕТ Это очередное приближение. b:= x a:= x Переопределяем отрезок ab. Вывод (x, f(x))
Применим приведенный выше алгоритм для уточнения корня с погрешностью 0,0001 на отрезке [0, 2] уравнения . program Horda; const e = 0.0001; var n: byte; a, b, w, x, y, z: real; begin writeln(‘Введите границы отрезка’); readln(a,b); x:= a; n:= 0; while abs(x*x-1) > e do begin y:= a*a-1; z:= x*x-1; x:=a - y*(b - a)/(z - y); w:= x*x -1; if y*w < 0 then b:= x else a:= x; n:= n + 1 end; writeln(‘Корень уравнения = ’, x); writeln(‘Значение функции в этой точке = ’, x*x-1) writeln(‘Число итераций: ’,n) end.
|