Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
24
Добавлен:
28.06.2014
Размер:
6.79 Кб
Скачать
program LAB2_Zaharov;
uses crt;
type Func = Function(x:real): real; {’ЁЇ ¤«п ¤ ­­®© дг­ЄжЁЁ}

var
eps : real; {’®з­®бвм Ї®¤бзгв }
x : real; {ђҐ§г«мв в Ї®¤бзҐв }
str : string;
i1iter, iiter, i1bis, ibis : integer;
fl : boolean;

{Џа®жҐ¤га  ўлў®¤   ­®¬ «ЁЁ ­  нЄа ­}
procedure Anomaliya (text1, text2 : string; var p_repeat : boolean);
var p_key : char;
y : integer;
i,k : byte;
begin
clrscr;
if p_repeat=true then k:=4 else k:=2;
textcolor(k);
y:=(82 - 4 - length (text1)) div 2;
gotoxy (y,10); write ('Й'); for i:=1 to length (text1)+2 do write ('Н'); write ('»');
gotoxy (y,11); write ('є '); textcolor (k+240); write (text1); textcolor (k); write (' є');
gotoxy (y,12); write ('И'); for i:=1 to length (text1)+2 do write ('Н'); write ('ј');
if length(text2)<>0
then
begin
textcolor (8);
y:=(82 - 8 - length (text2)) div 2;
gotoxy (y,13); write ('Ъ'); for i:=1 to length (text2)+6 do write ('Д'); write ('ї');
gotoxy (y,14); write ('і ',text2,' і');
gotoxy (y,15); write ('А'); for i:=1 to length (text2)+6 do write ('Д'); write ('Щ');
end;
gotoxy(1,1);
if p_repeat=true then
repeat
sound (400); delay (40000);
nosound; delay (50000);
until keypressed
else repeat until keypressed;
k:=1; p_repeat:=true;
gotoxy (60,20); textcolor (blue); write ('ЪДДДДДДДДДДДї');
gotoxy (60,23); textcolor (blue); write ('АДДДДДДДДДДДЩ');
repeat gotoxy (60,21); clreol;
textcolor (15);
textbackground (0);
textcolor (blue); write ('і');
textcolor (15);
if k=1 then textbackground(blue) else textbackground(0);
write (' ЏЋ‚’Ћђ€’њ ');
textbackground (0);
textcolor (blue); write ('і');
textcolor (15);

gotoxy (60,22); clreol;
textcolor (15);
textbackground (0);
textcolor (blue); write ('і');
textcolor(15);
if k=2 then textbackground(blue) else textbackground(0);
write (' ‡Ђ‚…ђ€’њ ');
textbackground (0);
textcolor (blue); write ('і');
textcolor (15);
repeat
p_key:=readkey;
until (p_key=chr(72)) or (p_key=chr(80)) or (p_key=chr(13));
if ((p_key=chr(72)) or (p_key=chr(80))) and (k=1)
then begin k:=2; p_repeat:=false; end
else if ((p_key=chr(72)) or (p_key=chr(80))) and (k=2)
then begin k:=1; p_repeat:=true; end
else
if p_key=chr(13)
then k:=3;
until (k=3);
clrscr;
end;

function fun(x:real) : real; far;
begin
if x=0 then
fun:=2.5
else
fun:=2.5 - (sqrt(x)+exp(ln(x)*1/3))/exp(3/2) - x;
end;

{‚лзЁб«Ґ­ЁҐ ¬Ґв®¤®¬ Ѓ€‘…Љ–€€ ЁбЇ®«м§гп –€Љ‹}
function bisiter (eps:real; l, r: real; f:func; var i1bis : integer) : real;
var x:real;
begin
i1bis:=0;
repeat
x:=(l+r)/2; {„Ґ«Ё¬ ®в१®Є ­  2 а ў­ле}
if f(x)*f(r)<0 {€§¬Ґ­пҐ¬ ®¤Ё­ Ё§ Є®­ж®ў ®в१Є }
then l:=x
else r:=x;
i1bis:=i1bis+1;
until abs(r-l)<eps;
bisiter:=(r+l)/2;
end;

{ЊҐв®¤®¬ Ѓ€‘…Љ–€€, ЁбЇ®«м§гп ђ…Љ“ђ‘€ћ}
function bisrec(eps:real; l, r: real; f:func): real;
var x: real;
begin
if abs(l - r)>eps
then
begin
x := (l+r)/2;
if f(x)*f(r)<0
then l:=x
else r:=x;
ibis:=ibis+1;
bisrec:=bisrec(eps, l, r, fun)
end
else bisrec:=(l+r)/2;
end;

{ЊҐв®¤®¬ ЏђЋ‘’›• €’…ђЂ–€‰ ЁбЇ®«м§гп –€Љ‹}
function iteriter (eps:real; f:func; var i1iter : integer) : real;
var x : real;
tmp : real;
begin
i1iter:=0;
x:=0;
repeat
tmp:=f(x);
x:=tmp+x;
i1iter:=i1iter+1;
until Abs(tmp)<eps;
iteriter:=x;
end;

{ЊҐв®¤®¬ ЏђЋ‘’›• €’…ђЂ–€‰ ЁбЇ®«м§гп ђ…Љ“ђ‘€ћ}
function iterrec (eps:real; x: real; f:func): real;
var tmp: real;
begin
tmp:=f(x);
iiter:=iiter+1;
if (abs(tmp) > eps)
then
begin
x:=tmp+x;
iterrec:=iterrec(eps, x, fun);
end
else iterrec:=x;
end;

begin
repeat
clrscr;
writeln;
writeln (' ‹ Ў®а в®а­ п а Ў®в  # 2');
writeln (' Ђ­ «Ё§ ¬Ґв®¤  ЎЁбҐЄжЁЁ Ё Їа®бв®© ЁвҐа жЁЁ');
writeln (' ¤«п аҐиҐ­Ёп га ў­Ґ­Ё© ЇаЁ ЁбЇ®«м§®ў ­ЁЁ ४габЁЁ.');
writeln;
iiter:=0;
ibis:=0;
write ('‚ўҐ¤ЁвҐ в®з­®бвм eps > ');
readln (eps);
if (eps>=1) or (eps<=0)
then
begin
fl:=true;
Anomaliya ('‚­Ё¬ ­ЁҐ, ®иЁЎЄ !!!','’®з­®бвм ¤®«¦­  Ўлвм ў Ё­вҐаў «Ґ (0;1)!',fl);
end
else
begin
writeln;
writeln (' ЪДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДВДДДДДДДДДДДДДДДВДДДДДДДДДДї');
writeln (' і ЊҐв®¤ і Љ®«ЁзҐбвў® і x : f(x)=0 і ’®з­®бвм і');
writeln (' і і ЁвҐа жЁ© і і і');
writeln (' ГДДДДДДДДДДВДДДДДДДДДДЕДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДґ');
{Џ®¤бзсв ¬Ґв®¤®¬ Ѓ€‘…Љ–€€ б ЁбЇ®«м§®ў ­ЁҐ¬ –€Љ‹Ђ}
x:=bisiter (eps, 0, 10, fun, i1bis);
writeln (' і і жЁЄ« і ',i1bis:2,' і ',x:9:11,' і ',eps:4:6,' і');
writeln (' і ЎЁбҐЄжЁп ГДДДДДДДДДДЕДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДґ');
{Џ®¤бзсв ¬Ґв®¤®¬ Ѓ€‘…Љ–€€ ЁбЇ®«м§го ђҐЄгабЁо}
x:=bisrec(eps, 0, 10, fun);
writeln (' і і ४габЁп і ',ibis:2,' і ',x:9:11,' і ',eps:4:6,' і');
writeln (' ГДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДґ');
{Џ®¤бзсв ¬Ґв®¤®¬ ЏђЋ‘’›• €’…ђЂ–€‰ ЁбЇ®«м§гп –€Љ‹}
x:=iteriter(eps, fun, i1iter);
writeln (' і Їа®бвлҐ і жЁЄ« і ',i1iter:2,' і ',x:9:11,' і ',eps:4:6,' і');
writeln (' і ГДДДДДДДДДДЕДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДґ');
{Џ®¤бзсв ¬Ґв®¤®¬ ЏђЋ‘’›• €’…ђЂ–€‰ ЁбЇ®«м§гп ђ…Љ“ђ‘€ћ}
x:=iterrec(eps, 0, fun);
writeln (' і ЁвҐа жЁЁ і ४габЁп і ',iiter:2,' і ',x:9:11,' і ',eps:4:6,' і');
writeln (' АДДДДДДДДДДБДДДДДДДДДДБДДДДДДДДДДДДБДДДДДДДДДДДДДДДБДДДДДДДДДДЩ');
readln;
fl:=false;
Anomaliya ('Џа®Ја ¬¬  ўлЇ®«­Ґ­  гбЇҐи­®.','',fl);
end;
until fl=false;
end.
Соседние файлы в папке LAB2