Вариант 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. Результат выполнения программы.
Работу выполнил Захожий Николай :-))
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.