Заданий контрольной работы 1
Задание 1
Напечатать таблицу значений функции
на отрезке [0, 1] с шагом 0,1. Найти корень функции на этом интервале с точностью 0,01.
Решение
Для нахождения корня функции используем метод деления отрезка пополам.
Program Koren; {название программы}
{Задание1 выполнено учащимся № группы ФИО № варианта}
Uses
crt; {подключение модуля для работы с экраном}
var {объявление переменных}
a,b,eps,h,x,y,y1: real;
begin {начало программы}
clrscr; {очистка экрана}
{вывод сообщений на экран}
writeln('Задание1');
writeln('Программанахождения корня функции
y = exp(x) – exp(–x) – 2');
writeln('Введитеинтервал, на котором нужно найти корень');
readln(a,b); {чтение переменных a, b}
writeln('Введитешаг изменения переменной');
readln(h); {чтение переменной h}
{печать шапки таблицы}
writeln('i==========Т==========i');
writeln('| x | y |');
writeln('|==========+==========|');
x:=a;
repeat {начало цикла х=а}
y:=exp(x)-exp(-x)-2; {вычисление очередного значения у}
{печать полученных значений}
writeln('| ',x:8:2,' | ',y:8:2,' |');
x:=x+h; {вычисление очередного значения х}
until(x>b); {конец цикла х>b}
writeln('i==========T==========i');
writeln('Введитеточность, с которой нужно найти корень');
readln(eps); {ввод точности вычисления}
x:=(b+a)/2; {устанавливаем х на середину отрезка}
y:=exp(x)-exp(-x)-2; {вычисляем у от х}
{организуем цикл, который будет выполняться до тех пор, пока отрезок не станет очень маленьким или у не станет равным 0}
while (((b-a)>eps) and (y<>0)) do
Begin
y1:=exp(a)-exp(-a)-2; {вычисляем у от а}
if y*y1>0 then {если на отрезке от а до х корня нет, то}
a:=x {а=х}
else {иначе}
b:=x; {в=х}
x:=(b+a)/2; {находим новую середину отрезка}
y:=exp(x)-exp(-x)-2; {и значение функции в этой точке}
end; {конец цикла}
{вывод на экран корня данного уравнения}
writeln('Корень функции равен ',x:5:2);
readkey; {ожидание нажатия клавиши}
end. {конец программы}
Результат выполнения программы представлен на рис. 4.1.

Рис. 4.1. Результат выполнения программы