Задание №1
Составить программу решения данной задачи в соответствии с номером своего варианта. Использовать данную функцию или процедуру в качестве фрагмента программы, организовать в программе обращение к ней, указав соответствующие фактические параметры при каждом вызове подпрограммы.
Вариант 1.
Составить программу вычисления наибольшего общего делителя трёх введённых чисел х, у, z, используя процедуру вычисления наибольшего общего делителя этих чисел.
Procedure NOD(a,b:integer; var k:integer);
Begin
While a<>b do
If a>b then a:=a-b else b:=b-a;
k:=a;
End;
Вариант 2.
Составить программу, которая определяет, являются ли три введённые числа х, у, z взаимно-простыми. Взаимно-простыми называются числа, наибольший общий делитель которых равен 1. Использовать функцию вычисления наибольшего общего делителя этих чисел.
Function NOD(a,b:integer):integer;
Begin
While a<>b do
If a>b then a:=a-b else b:=b-a;
NOD:=a;
End;
Задание №2
1. Составить программу вычисления значения выражения:
, используя функцию для вычисления значения .
2. Напишите программу вычисления выражения:
, где .
Вычисление значений х оформить в виде подпрограммы-функции.
Задание №3
1.Составить программу, которая вычисляет периметр треугольника, если заданы координаты вершин . Вычисление расстояния между двумя точками оформить в виде функции по известной формуле: .
2. Составить программу, которая находит наибольшую сторону треугольника, если заданы координаты вершин . Вычисление расстояния между двумя точками оформить в виде функции по известной формуле: .
procedure PrintMatrix(a: array[,] of integer);
begin
for var i := a.GetLowerBound(0) to a.GetUpperBound(0) do
begin
writeln;
for var j := a.GetLowerBound(1) to a.GetUpperBound(1) do
write(a[i, j], ' ');
end;
writeln;
end;
begin
var a := MatrixRandom(9, 9, 10, 99);
PrintMatrix(a);
var i := (a.GetLowerBound(0) + a.GetUpperBound(0)) div 2 + (a.GetLowerBound(0) + a.GetUpperBound(0)) mod 2;
var j := (a.GetLowerBound(1) + a.GetUpperBound(1)) div 2 + (a.GetLowerBound(1) + a.GetUpperBound(1)) mod 2;
writeln('A[', i, ', ', j, '] = ', a[i, j]);
end.
#include <iomanip>
int main()
{
using namespace std;
const int N = 4;
const int M = 4;
int Y[N][M];
//как-нибудь заполняем матрицу
for (int i = 0; i < N; ++i)
for (int j = 0; j < M; ++j)
Y[i][j] = (i + 1) * (j + 1);
//выведем её на экран
for (int i = 0; i < N; ++i)
{
for (int j = 0; j < M; ++j)
cout << setw(3) << Y[i][j];
cout << endl;
}
//находим сумму элементов побочной диагонали
int S = 0;
for (int i = 0; i < N; ++i)
for (int j = 0; j < M; ++j)
if (j == M - 1 - i)
S = S + Y[i][j];
cout << "Sum of adverse diagonal of array: " << S << endl;
//находим сумму всех элементов матрицы
int Sum = 0;
for (int i = 0; i < N; ++i)
for (int j = 0; j < M; ++j)
Sum = Sum + Y[i][j];
cout << "Sum of all elements of array: " << Sum << endl;
return 0;
}