|
(******************************************************************************)
(**) ОТДЕЛ ПроКомпл+;
(******************************************************************************
* НАЗНАЧЕНИЕ: проверка вычислений с комплексными числами
******************************************************************************)
ИСПОЛЬЗУЕТ
Матем ИЗ "...\Отделы\Числа\",
Компл ИЗ "...\Отделы\Числа\",
Вывод ИЗ "...\Отделы\Обмен\";
ПОСТ
АРГУМЕНТОВ = 20; (* число аргументов *)
ВИД
Функция = ЗАДАЧА(z1-,z2+:Компл.Вид);
Вектор = РЯД АРГУМЕНТОВ+1 ИЗ Компл.Вид;
(******************************************************************************)
ЗАДАЧА Арифметика;
ПЕР
z,z1,z2:Компл.Вид;
УКАЗ
Вывод.Цепь('^*** Арифметика: доб, выч, умн, дел.^');
Компл.алгВид(1, 1,z1);
Компл.алгВид(2,-1,z2);
Вывод.ЧВещ(' Пусть z1 = (%5f;%5f), а z2 = (%5f;%5f), тогда:^',
z1.x,z1.y,z2.x,z2.y);
Компл.доб(z1,z2,z); Вывод.ЧВещ('z1 + z2 = (%5f;%5f)^',z.x,z.y,0,0);
Компл.выч(z1,z2,z); Вывод.ЧВещ('z1 - z2 = (%5f;%5f)^',z.x,z.y,0,0);
Компл.умн(z1,z2,z); Вывод.ЧВещ('z1 * z2 = (%5f;%5f)^',z.x,z.y,0,0);
Компл.дел(z1,z2,z); Вывод.ЧВещ('z1 / z2 = (%5f;%5f)^',z.x,z.y,0,0)
КОН Арифметика;
(******************************************************************************)
ЗАДАЧА Корень;
ПЕР
a,z,a1:Компл.Вид;
n:ЦЕЛ;
УКАЗ
Компл.алгВид(-1,1,a);
Вывод.Цепь('^*** 3 кубических корня из (-1;1)^');
Вывод.Цепь('n, z, z**(1/3), [z**(1/3)]**3^');
ОТ n:=0 ДО 2 ВЫП
Компл.кор(a,n,3,z);
Компл.степКЦ(z,3,a1);
Вывод.ЧВещ('%d, (%5f;%5f), ',n,a.x,a.y,0);
Вывод.ЧВещ('(%5f;%5f), (%5f;%5f)^',z.x,z.y,a1.x,a1.y)
КОН
КОН Корень;
(******************************************************************************)
ЗАДАЧА Оборот(прямИмя-,обрИмя-:ЦЕПЬ; прямФ,обрФ:Функция);
ПЕР
i:ЦЕЛ;
z0:Вектор;
y,z1:Компл.Вид;
УКАЗ
Компл.алгВид( 0, 0,z0[ 1]);
Компл.алгВид( 0.5, 0.5,z0[ 2]);
Компл.алгВид(-0.5, 0.5,z0[ 3]);
Компл.алгВид(-0.5,-0.5,z0[ 4]);
Компл.алгВид( 0.5,-0.5,z0[ 5]);
Компл.алгВид( 1, 0,z0[ 6]);
Компл.алгВид( 1, 1,z0[ 7]);
Компл.алгВид( 0, 1,z0[ 8]);
Компл.алгВид(-1, 1,z0[ 9]);
Компл.алгВид(-1, 0,z0[10]);
Компл.алгВид(-1,-1,z0[11]);
Компл.алгВид( 0,-1,z0[12]);
Компл.алгВид( 1,-1,z0[13]);
Компл.алгВид( 5, 0,z0[14]);
Компл.алгВид( 5, 3,z0[15]);
Компл.алгВид( 0, 3,z0[16]);
Компл.алгВид(-5, 3,z0[17]);
Компл.алгВид(-5, 0,z0[18]);
Компл.алгВид( 5,-3,z0[19]);
Компл.алгВид( 0,-3,z0[20]);
Вывод.Цепь('^z0, y=');
Вывод.Цепь(прямИмя);
Вывод.Цепь('(z0), z1=');
Вывод.Цепь(обрИмя);
Вывод.Цепь('(y)^');
ОТ i:=1 ДО АРГУМЕНТОВ ВЫП
Вывод.ЧВещ('(%10.2e;%10.2e), ',z0[i].x,z0[i].y,0,0);
прямФ(z0[i],y);
ЕСЛИ Матем.код = 0 ТО
Вывод.ЧВещ('(%10.2e;%10.2e), ',y.x,y.y,0,0);
обрФ(y,z1);
ЕСЛИ Матем.код = 0 ТО
Вывод.ЧВещ('(%10.2e;%10.2e)^',z1.x,z1.y,0,0)
ИНАЧЕ
Вывод.ЧВещ('неопределено^',z1.x,z1.y,0,0)
КОН
ИНАЧЕ
Вывод.ЧВещ('неопределено^',z1.x,z1.y,0,0)
КОН
КОН
КОН Оборот;
УКАЗ
Арифметика;
Корень;
Оборот('ln' ,'exp',Компл.ln ,Компл.exp);
Оборот('arcsin' ,'sin',Компл.arcsin ,Компл.sin);
Оборот('arccos' ,'cos',Компл.arccos ,Компл.cos);
Оборот('arctg' ,'tg' ,Компл.arctg ,Компл.tg );
Оборот('Arsh' ,'sh' ,Компл.Arsh ,Компл.sh );
Оборот('Arch' ,'ch' ,Компл.Arch ,Компл.ch );
Оборот('Arth' ,'th' ,Компл.Arth ,Компл.th );
Оборот('lnГ' ,'exp',Компл.lnГ ,Компл.exp)
КОН ПроКомпл.
▲ Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com или Издателю Глагола:
|
|