Вариант 3а) Даны две произвольные матрицы: А разм. 4х4, В разм.
Вариант 3
а) Даны две произвольные матрицы: А разм. 4х4, В разм. 3х3. Элементы основной диагонали в каждой матрице заменить элементами побочной
диагонали и элементы побочной поменять элементами основной. Составить функцию.
Задать свой вопрос2 ответа
Толик
A) Алгоритм такой:
Ввод исходных матриц A(4; 4); B(3; 3)
Цикл по i от 1 до 4 для матрицы A(4; 4)
Вызов процедуры подмены элементов матрицы с параметром i.
Конец цикла
Цикл по i от 1 до 3 для матрицы B(3; 3)
Вызов процедуры замены элементов матрицы с параметром i.
Конец цикла
Вывод обоих матриц
Конец основной программки
Процедура подмены для матрицы M(k; k)
Ввод номера текущей строки n
Q = M(n; n)
M(n; n) = M(n; k-n+1)
M(n; k-n+1) = Q
// Тут i - это текущая строка, k - количество строк в матрице. //
Конец процедуры.
b) Метод такой:
Ввод начальных векторов G = (g1; g2; g3; g4); D = (d1; d2; d3; d4)
Вызов процедуры вычисления длины вектора S1 = P(G)
Вызов процедуры вычисления длины вектора S2 = P(D)
S = (S1 + S2)/2
Вывод результата S
Конец главный программки
Процедура вычисления длины вектора A(a1; a2; a3; a4)
P = sqrt(a1^2 + a2^2 + a3^2 + a4^2)
Конец процедуры
c) Метод таковой:
c = 1,23
Цикл по а от 2 до 8
// так удобнее, чем цикл от 0,2 до 0,8 с шагом 0,1 //
x = COS ( (0.1*a + c)/3.178)
y = 0.7*COS (0.1*a - 1.27)
x1 = Arcsin(x)
y1 = Arcsin(y)
xy1 = Arcsin(x + y)
// Тут Arcsin (t) - это пользовательская функция, которую мы сами определяем в отдельной процедуре. //
z = x1 = y1 + LOG (Абс (xy1))
Вывод еще одного значения z
Конец цикла по а
Конец основной программки
Процедура вычисления Arcsin (t)
// Далее сложность, поэтому что в языках программирования очень редко встречается функция arcsin(x), обычно только sin(x), cos(x), atan(x). //
// Потому вспоминаем тригонометрию. arcsin t = arctg ( t/(1-t^2) )
Arcsin (t) = ATAN (t / SQRT (1 - t*t))
Конец процедуры
Ввод исходных матриц A(4; 4); B(3; 3)
Цикл по i от 1 до 4 для матрицы A(4; 4)
Вызов процедуры подмены элементов матрицы с параметром i.
Конец цикла
Цикл по i от 1 до 3 для матрицы B(3; 3)
Вызов процедуры замены элементов матрицы с параметром i.
Конец цикла
Вывод обоих матриц
Конец основной программки
Процедура подмены для матрицы M(k; k)
Ввод номера текущей строки n
Q = M(n; n)
M(n; n) = M(n; k-n+1)
M(n; k-n+1) = Q
// Тут i - это текущая строка, k - количество строк в матрице. //
Конец процедуры.
b) Метод такой:
Ввод начальных векторов G = (g1; g2; g3; g4); D = (d1; d2; d3; d4)
Вызов процедуры вычисления длины вектора S1 = P(G)
Вызов процедуры вычисления длины вектора S2 = P(D)
S = (S1 + S2)/2
Вывод результата S
Конец главный программки
Процедура вычисления длины вектора A(a1; a2; a3; a4)
P = sqrt(a1^2 + a2^2 + a3^2 + a4^2)
Конец процедуры
c) Метод таковой:
c = 1,23
Цикл по а от 2 до 8
// так удобнее, чем цикл от 0,2 до 0,8 с шагом 0,1 //
x = COS ( (0.1*a + c)/3.178)
y = 0.7*COS (0.1*a - 1.27)
x1 = Arcsin(x)
y1 = Arcsin(y)
xy1 = Arcsin(x + y)
// Тут Arcsin (t) - это пользовательская функция, которую мы сами определяем в отдельной процедуре. //
z = x1 = y1 + LOG (Абс (xy1))
Вывод еще одного значения z
Конец цикла по а
Конец основной программки
Процедура вычисления Arcsin (t)
// Далее сложность, поэтому что в языках программирования очень редко встречается функция arcsin(x), обычно только sin(x), cos(x), atan(x). //
// Потому вспоминаем тригонометрию. arcsin t = arctg ( t/(1-t^2) )
Arcsin (t) = ATAN (t / SQRT (1 - t*t))
Конец процедуры
Andrej Trefinov
Превосходно, скажем так: Функция Arcsin(x) если где-то и применяется, то я не знаю, где.
София Мазо
Вы сказали, молодец, сейчас знаю.
Андрюша Гитарин
Просто Atan (x) есть фактически в любом языке, так что мой метод более универсален.
Олеся Бибилурова
Не передергивайте. Я так сделал, поэтому что он не указал язык. То есть сделал так, чтоб человек мог решить задачку на любом языке.
Арсений Пищулев
PascalABC.NET 3.2, сборка 1504 от 09.07.2017
Внимание! Если программа не работает, обновите версию!
Задание а)
procedure DiagExchangelt;Tgt;(a:array[,] of T);
begin
var n:=a.ColCount;
for var i:=0 to a.RowCount-1 do
Swap(a[i,i],a[i,n-i-1])
end;
begin
var a:=MatrRandom(4,4,-50,50);
a.Println(4); Writeln(4*a.ColCount*'-');
DiagExchange(a);
a.Println(4); Writeln(4*a.ColCount*'-');
Randomize;
var b:=MatrGen(3,3,(i,j)-gt;Random(-50,50)/10);
b.Println(5,1); Writeln(5*b.ColCount*'-');
DiagExchange(b);
b.Println(5,1); Writeln(5*b.ColCount*'-')
end.
Пример
37 21 5 -42
44 0 48 48
14 -26 37 36
-8 43 -43 -24
----------------
-42 21 5 37
44 48 0 48
14 37 -26 36
-24 43 -43 -8
----------------
-2.7 -1.0 2.3
0.0 -3.5 -0.2
-3.6 -5.0 1.2
---------------
2.3 -1.0 -2.7
0.0 -3.5 -0.2
1.2 -5.0 -3.6
---------------
Задание б)
function VLength(Self:array of real):real; extensionmethod;
begin
Result:=Sqrt(Self.Select(x-gt;x*x).Sum)
end;
begin
var G:=Arr(1.6,2.8,4.9,-6.7); G.Println;
var D:=Arr(8.4,1.0,2.6,4.8); D.Println;
Writeln('Полусумма длин одинакова ',(G.VLength+D.VLength)/2)
end.
Результат
1.6 2.8 4.9 -6.7
8.4 1 2.6 4.8
Полусумма длин одинакова 9.48641255163993
Задание в)
begin
var c:=1.23;
Writeln(' a x y z');
for var i:=2 to 8 do begin
var a:=i/10;
var x:=cos((a+c)/3.178);
var y:=0.7*cos(a-1.27);
var z:=ArcSin(x)+ArcSin(y)+Ln(Абс(ArcSin(x+y)));
Writeln(a:3:1,x:11:8,y:11:8,z:11:8)
end
end.
Итог
a x y z
0.2 0.90046079 0.33608696 NaN
0.3 0.88633142 0.39570967 NaN
0.4 0.87132454 0.45137858 NaN
0.5 0.85545501 0.50253747 NaN
0.6 0.83873853 0.54867517 NaN
0.7 0.82119166 0.58933068 NaN
0.8 0.80283178 0.62409780 NaN
В задании в) данные подобраны неправильно: x+ygt;1, потому аргумент арксинуса в формуле для z принимает недопустимое значение.
Внимание! Если программа не работает, обновите версию!
Задание а)
procedure DiagExchangelt;Tgt;(a:array[,] of T);
begin
var n:=a.ColCount;
for var i:=0 to a.RowCount-1 do
Swap(a[i,i],a[i,n-i-1])
end;
begin
var a:=MatrRandom(4,4,-50,50);
a.Println(4); Writeln(4*a.ColCount*'-');
DiagExchange(a);
a.Println(4); Writeln(4*a.ColCount*'-');
Randomize;
var b:=MatrGen(3,3,(i,j)-gt;Random(-50,50)/10);
b.Println(5,1); Writeln(5*b.ColCount*'-');
DiagExchange(b);
b.Println(5,1); Writeln(5*b.ColCount*'-')
end.
Пример
37 21 5 -42
44 0 48 48
14 -26 37 36
-8 43 -43 -24
----------------
-42 21 5 37
44 48 0 48
14 37 -26 36
-24 43 -43 -8
----------------
-2.7 -1.0 2.3
0.0 -3.5 -0.2
-3.6 -5.0 1.2
---------------
2.3 -1.0 -2.7
0.0 -3.5 -0.2
1.2 -5.0 -3.6
---------------
Задание б)
function VLength(Self:array of real):real; extensionmethod;
begin
Result:=Sqrt(Self.Select(x-gt;x*x).Sum)
end;
begin
var G:=Arr(1.6,2.8,4.9,-6.7); G.Println;
var D:=Arr(8.4,1.0,2.6,4.8); D.Println;
Writeln('Полусумма длин одинакова ',(G.VLength+D.VLength)/2)
end.
Результат
1.6 2.8 4.9 -6.7
8.4 1 2.6 4.8
Полусумма длин одинакова 9.48641255163993
Задание в)
begin
var c:=1.23;
Writeln(' a x y z');
for var i:=2 to 8 do begin
var a:=i/10;
var x:=cos((a+c)/3.178);
var y:=0.7*cos(a-1.27);
var z:=ArcSin(x)+ArcSin(y)+Ln(Абс(ArcSin(x+y)));
Writeln(a:3:1,x:11:8,y:11:8,z:11:8)
end
end.
Итог
a x y z
0.2 0.90046079 0.33608696 NaN
0.3 0.88633142 0.39570967 NaN
0.4 0.87132454 0.45137858 NaN
0.5 0.85545501 0.50253747 NaN
0.6 0.83873853 0.54867517 NaN
0.7 0.82119166 0.58933068 NaN
0.8 0.80283178 0.62409780 NaN
В задании в) данные подобраны неправильно: x+ygt;1, потому аргумент арксинуса в формуле для z принимает недопустимое значение.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
выпиши в свою тетрадь те правила этикета которые тебе не были
Разные вопросы.
Облако тегов