Проба Компл.
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы
 
 glagol.png Программируем по-русски
 

Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку.

Издатель Глагола
 

 

(******************************************************************************)
(**)                        ОТДЕЛ ПроКомпл+;
(******************************************************************************
 * НАЗНАЧЕНИЕ: проверка вычислений с комплексными числами
 ******************************************************************************)
ИСПОЛЬЗУЕТ 
  Матем ИЗ "...\Отделы\Числа\",
  Компл ИЗ "...\Отделы\Числа\",
  Вывод ИЗ "...\Отделы\Обмен\";

ПОСТ
  АРГУМЕНТОВ = 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 или Издателю Глагола:
 email
 
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы