{Напишите программу, которая находит минимальное и максимальное среди чётных положительных чисел, записанных в файле, и выводит результат в другой файл.} var f:text; min, max,a :integer; find:boolean;{есть/нет числа удовлетворяющие условию} begin assign(f,'dan.txt'); reset(f); min:=0; max:=0; find:=false; while not eof(f) do begin read(f,a); if not find and (a>0) and (a mod 2=0) then begin min:=a; find:=true; end else if find and (a>0) and (a mod 2=0) and (min>a) then min:=a;
if (a>0) and (a mod 2=0) and (max<a) then max:=a; end; close(f); assign(f,'res.txt'); rewrite(f); if max=0 then writeln(f,'чётных положительных чисел нет') else writeln(f,'min среди чётных положительных чисел =',min, chr(13), 'max среди чётных положительных чисел нет',max); close(f); end.
Заданный отрезок делим на 10 частей с шагом 0,2 и находим значения функции в этих точках.
Выделяем промежутки, на которых значения функции имеют разные знаки.
№ a b fa fb x fx
1 -1 -0,8 10 3,28 -0,702381 0,784438776
2 -0,8 -0,6 3,28 -1,28 -0,656140 -0,218060942
3 -0,6 -0,4 -1,28 -3,68 -0,706667 0,8832
4 -0,4 -0,2 -3,68 -3,92 -3,466667 270,48
5 -0,2 0 -3,92 -2 0,208333 2,296875
6 0 0,2 -2 2,08 0,098039 -0,269896194
7 0,2 0,4 2,08 8,32 0,133333 0,48
8 0,4 0,6 8,32 16,72 0,201905 2,129240816
9 0,6 0,8 16,72 27,28 0,283333 4,4175
10 0,8 1 27,28 40 0,371069 7,283730865 .
Как видим, корни уравнения находятся на промежутках -0,8 -0,6 и 0 0,2.
По заданию надо найти положительный корень.
Применяем метод хорд.
Δ = b - a a fb b fa
0,2 0 2,08 0,2 -2
0,101960784 0,098039216 2,08 0,2 -0,269896
0,090250128 0,109749872 2,08 0,2 -0,028536
0,089028723 0,110971277 2,08 0,2 -0,002936
fb - fa x погрешность х2-х1 абс.погр.
4,08 0,098039216 - 0,111111111 точное значение
2,349896 0,109749872 0,0117 0,001361239
2,108536 0,110971277 0,0012 0,000139834
2,082936 0,111096767 0,0001 1,43442E-05.
С точностью 0,01 ответ 0,1097.
среди чётных положительных чисел, записанных в файле,
и выводит результат в другой файл.}
var f:text;
min, max,a :integer;
find:boolean;{есть/нет числа удовлетворяющие условию}
begin
assign(f,'dan.txt'); reset(f);
min:=0; max:=0;
find:=false;
while not eof(f) do
begin
read(f,a);
if not find and (a>0) and (a mod 2=0) then
begin
min:=a; find:=true;
end
else
if find and (a>0) and (a mod 2=0) and (min>a) then
min:=a;
if (a>0) and (a mod 2=0) and (max<a) then
max:=a;
end;
close(f);
assign(f,'res.txt');
rewrite(f);
if max=0 then writeln(f,'чётных положительных чисел нет')
else
writeln(f,'min среди чётных положительных чисел =',min, chr(13),
'max среди чётных положительных чисел нет',max);
close(f);
end.