Реализация программы для выполнения операций (сложения, вычитания, умножения, деления, модуля комплексного числа) над комплексными числами. Построение в треугольной пирамиде сечение, проходящее через одну из сторон основания и середину противоположного ребра

Страницы работы

Содержание работы

Вариант 3

Контрольная работа №1:

1.  Постановка задачи. Исходные данные.

Арифметическое выражение

A = 3,4 + 2i    B = 1 + 0.7i

2.   Анализ решения задачи. Алгоритм решения (блок - схема алгоритма).

3.   Текст программы.

Program ComplexNumbers; {Имя программы: ComplexNumbers - КомплексныеЧисла}

uses    Crt; {Подключение модуля в, котором, содержатся процедуры контроля

              дисплея в текстовом режиме}

{Объявление записи комплексного числа}

TYPE

  Complex = record

    A,B: Real;

END;

{Процедура сложения двух комплексных чисел, где х1 - 1-е слагаемое

 х2 - 2-е слагаемое, а х3 - результат сложения(сумма)}

Procedure Summation(x1,x2:Complex; Var x3: Complex);

Begin

  x3.a:=x1.a + x2.a;

  x3.b:=x1.b + x2.b;

End;

{Процедура вычитания двух комплексных чисел, где х1 - уменьшаемое

 х2 - вычитаемое, а х3 результат вычитания(разность)}

Procedure Subtraction(x1,x2: Complex; Var x3: Complex);

Begin

  x3.a:=x1.a - x2.a;

  x3.b:=x1.b - x2.b;

End;

{Процедура деления двух комплексных чисел, где х1 - делимое х2 - делитель,

 а х3 результат деления(частное)}

Procedure Division(x1,x2: Complex; Var x3: Complex);

Begin

  x3.a:=((x1.a*x2.a)+(x1.b*x2.b))/(Sqr(x2.a)+Sqr(x2.b));

  x3.b:=((x2.a*x1.b)-(x1.a*x2.b))/(Sqr(x2.a)+Sqr(x2.b));

End;

var A,B,S,R,D: Complex; {Объявление переменных типа комплексное число, где

                         А и В - комплексные числа вводимые пользователем,

                             S - результат сложения чисел А+В,

                             R - результат вычитания чисел А-В,

                             D - результат деления чисел S/R.}

BEGIN {Начало}

  ClrScr; {Очистка экрана}

  {Вывод на экран приглашения заполнить комплексное число А}

  Write('A.a = ');  readLn(A.a);

  Write('A.b = ');  readln(A.b);

  {Вывод на экран приглашения заполнить комплексное число B}

  Write('B.a = ');  readLn(B.a);

  Write('B.b = ');  readln(B.b);

  Summation(A,B,S); {Вызов процедуры сложения двух комплексных чисел}

  Subtraction(A,B,R); {Вызов процедуры вычитания двух комплексных чисел}

  Division(S,R,D); {Вызов процедуры деления двух комплексных чисел}

  {Вывод на экран конечного результата выполнения программы}

  WriteLn('A+B/A-B = ',D.a:3:1,' + ',D.b:3:1,'i');

  WriteLn('Работу выполнил Захожий Николай :-))');

  readln; {Задержка выполнения программы до нажатия клавиши(Enter)}

END. {Конец}

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

A.a = 3.4

A.b = 2

B.a = 1

B.b = 0.7

A+B/A-B = 1.9 + 0.1i

Работу выполнил Захожий Николай :-))

Контрольная работа №4:

1.   Постановка задачи. Исходные данные.

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над комплексными числами: 1) сложения; 2) вычитания; 3) умножения; 4) деления; 5) модуля комплексного числа. Используя данный модуль, найти значение заданного арифметического выражения со­гласно варианту задания(см. таблицу 1.1).

2.   Анализ решения задачи. Алгоритм решения (блок - схема алгоритма).

3.   Текст программы.

Текст модуля

UNIT COMPX; {Имя модуля}

{****--------*****--------****}

           INTERFACE {Объявление раздела модуля: INTERFACE - ИНТЕРФЕЙС}

{****--------*****--------****}

{Объявление записи комплексного числа}

TYPE

  Complex = record

    A,B: Real;

END;

{Объявление процедуры сложения двух комплексных чисел}

Procedure Summation(x1,x2:Complex; Var x3: Complex);

{Объявление процедуры вычитания двух комплексных чисел}

Procedure Subtraction(x1,x2: Complex; Var x3: Complex);

{Объявление процедуры деления двух комплексных чисел}

Procedure Division(x1,x2: Complex; Var x3: Complex);

{Объявление процедуры умножения двух комплексных чисел}

Procedure multiplication(x1,x2: Complex; Var x3: Complex);

{Объявление процедуры нахождения модуля комплексного числа}

Procedure FindingModulus(x1: Complex; Var z: Real);

{****------****------****}

      IMPLEMENTATION {Объявление раздела модуля: IMPLEMENTATION - РЕАЛИЗАЦИЯ}

{****------****------****}

{Описание процедуры сложения двух комплексных чисел, где х1 - 1-е слагаемое

 х2 - 2-е слагаемое, х3 - результат сложения(сумма)}

Procedure Summation(x1,x2:Complex; Var x3: Complex);

Begin

  x3.a:=x1.a + x2.a;

  x3.b:=x1.b + x2.b;

End;

{Описание процедуры вычитания двух комплексных чисел, где х1 - уменьшаемое

 х2 - вычитаемое, х3 - результат вычитания(разность)0}

Procedure Subtraction(x1,x2: Complex; Var x3: Complex);

Begin

  x3.a:=x1.a - x2.a;

  x3.b:=x1.b - x2.b;

End;

{Описание процедуры деления двух комплексных чисел, где х1 - делимое

 х2 - делитель, х3 - результат деления(частное)}

Procedure Division(x1,x2: Complex; Var x3: Complex);

Begin

  x3.a:=((x1.a*x2.a)+(x1.b*x2.b))/(Sqr(x2.a)+Sqr(x2.b));

  x3.b:=((x2.a*x1.b)-(x1.a*x2.b))/(Sqr(x2.a)+Sqr(x2.b));

End;

{Описание процедуры умножения двух комплексных чисел, где х1 и x2 - множители

 х3 - результат умножения(произведение)}

Procedure multiplication(x1,x2: Complex; Var x3: Complex);

Begin

  x3.a:=(x1.a*x2.a)-(x1.b*x2.b);

  x3.b:=(x1.a*x2.a)+(x1.b*x2.b);

End;

{Описание процедуры нахождения модуля комплексного числа, где x1 - комплексное

 число, z - переменная хранящая результат нахождения модуля комплексного числа}

Procedure FindingModulus(x1: Complex; Var z: Real);

Begin

  z:=SqrT(Sqr(x1.a)+Sqr(x1.b));

End;

END. {конец модуля}

  Текст программы

Program Com_x; {Имя программы}

uses    Crt, COMPX; {Подключение модулей:

                     Crt - содержат процедуры контроля ввода данных

                     с клавиатуры на экран дисплея;

                     COMPX - содержат процедуры для работы с на комплексными

                     числами}

var A,B,S,R,D,U: Complex; {Объявление переменных типа комплексное число, где

                           А и В - комплексные числа вводимые пользователем,

                               S - результат сложения чисел А+В,

                               R - результат вычитания чисел А-В,

                               D - результат деления чисел A/B.

                               U - результат умножения чисел A*B.}

    M: Real; {R - результат нахождения модуля числа |A|}

BEGIN {Начало}

  ClrScr; {Очистка экрана}

  {Вывод на экран приглашения заполнить комплексное число А}

  Write('A.a = ');  readLn(A.a);

  Write('A.b = ');  readln(A.b);

  {Вывод на экран приглашения заполнить комплексное число B}

  Write('B.a = ');  readLn(B.a);

  Write('B.b = ');  readln(B.b);

  {Вызовы процедур действия на комплексными числами и

   вывод их результата на экран дисплея}

  Summation(A,B,S);

  WriteLn('A + B = ',S.a:3:1,' + ',S.b:3:1,'i');

  Subtraction(A,B,R);

  WriteLn('A - B = ',R.a:3:1,' + ',R.b:3:1,'i');

  Division(A,B,D);

  WriteLn('A / B = ',D.a:3:1,' + ',D.b:3:1,'i');

  multiplication(A,B,U);

  WriteLn('A * B = ',U.a:3:1,' + ',U.b:3:1,'i');

  FindingModulus(A, M);

  WriteLn('M     = ',M:5:2);

  WriteLn('Работу выполнил Захожий Николай :-))');

  readln; {Задержка выполнения программы до нажатия клавиши(Enter)}

END. {Конец}

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

A.a = 3.4

A.b = 2

B.a = 1

B.b = 0.7

A+B = 4.4 + 2.7i

A-B = 2.4 + 1.3i

A/B = 2.0 + -0.3i

A*B = 2.0 + 4.8i

Работу выполнил Захожий Николай :-))

Контрольная работа №5:

1.   Постановка задачи. Исходные данные.

В треугольной пирамиде построить сечение, проходящее через одну из сторон основания и середину противоположного ребра.

3.   Текст программы.

Program Outline_of_pyramid; {Имя программы: Outline_of_pyramid-Рисовать контур

                             пирамиды}

uses Crt, Graph;  {Подключение модулей:

                   Crt - содержат процедуры контроля ввода данных с клавиатуры

                   на дисплей;

                   Graph - содержат более чем 50 графических процедур такие,

                   как InitGraph, GraphResult, SetColor, Line и много других}

var i, Gd, Gm: Integer; {Объявление переменных целочисленного типа, где

                         Gd - переменная хранящая номер графического драйвера;

                         Gm - переменная хранящая номер графического режима;

                          i - счётчик}

Const pX = 220; {Сдвиг фигуры по оси Х}

Const pY = 50; {Сдвиг фигуры по оси Y}

BEGIN {Начало}

  ClrScr; {Очистка экрана}

  Randomize; {Вызов генератора случайных чисел}

  Gd := Detect; {Присвоение переменной номера графического драйвера}

  InitGraph(Gd, Gm, 'egavgh'); {Переход экрана дисплея к графическому режиму}

  REPEAT {Цикл повторять до}

    i:=0; {Обнуляем счетчик}

    SetColor(11); {Установка цвета линии(в данном случае это светло-бирюзовый)}

    {Рисуем основание ПИРАМИДЫ}

    Line(0+pX,300+pY,200+pX,300+pY);

    Line(0+pX,300+pY,100+pX,200+pY);

    Line(200+pX,300+pY,100+pX,200+pY);

    {Рисуем рёбра ПИРАМИДЫ}

    Line(100+pX,200+pY,100+pX,0+pY);

    Line(100+pX,0+pY,200+pX,300+pY);

    Line(0+pX,300+pY,100+pX,0+pY);

    {Установка цвета линии(в данном случае это все возможные цвета)}

    SetColor(Random(15));

    {Рисуем сечение ПИРАМИДЫ}

       {Линии:}

    Line(100+pX,100+pY,200+pX,300+pY);

    Line(100+pX,100+pY,0+pX,300+pY);

    Line(200+pX,300+pY,0+pX,300+pY);

       {Штриховка:}

    While i < 200 do  Begin  Line(100+pX,100+pY,i+pX,300+pY); i:=i+2;  end;

  UNTIL KeyPressed; {Выход из цикла, если нажата любая клавиша}

  CloseGraph; {Выход из графического режима}

  Write('Работу выполнил Захожий Николай :-))'); {Вывод на экран инф. строки}

  Readln; {Задержка выполнения программы до нажатия клавиши(Enter)}

END. {Конец}

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

Работу выполнил Захожий Николай :-))

Похожие материалы

Информация о работе