субота, 7 лютого 2015 р.
пʼятниця, 6 лютого 2015 р.
Програмування операцій з квадратними масивами(матрицями) на мові Pascal
Програмування
операцій з квадратними масивами(матрицями)
Program MATRIX; {Найменування програми}
Uses CRT;
var i1, i2, i3:
integer; {Лічильник рядків}
j1, j2, j3: integer; {Лічильник стовпців}
operation: integer; {Варіант розвитку програми}
det: real; {Визначник} k:
integer; {Робоча змінна}
{Масиви (матриці), що використовуються в програмі}
MAS1, {Матриця А} MAS2, {Матриця В} MAS3: array [1 .. 10,1 .. 10]
of real; {Матриця С}
BEGIN {Початок програми}
WriteLn ('Що Ви бажаєте робити з матрицями?');
{Вибір користувачем варіанту розвитку програми}
WriteLn ('Якщо Ви бажаєте знайти визначник матриці, натисніть 1');
WriteLn ('Якщо Ви бажаєте знайти зворотну матрицю,
натисніть 2');
WriteLn ('Якщо Ви бажаєте транспонувати матрицю,
натисніть 3');
WriteLn ('Якщо Ви бажаєте скласти матриці,
натисніть 4');
WriteLn ('Якщо Ви бажаєте відняти матриці,
натисніть 5');
WriteLn ('Якщо Ви бажаєте перемножити матриці,
натисніть 6');
ReadLn (operation); {Занесення обраного варіанту в
пам'ять}
WriteLn ('Введіть кількість рядків матриці, не
більше 10');
ReadLn (m1);
WriteLn ('Введіть кількість стовпців початкової
матриці, не більше 10');
ReadLn (n1);
If ((1> n1) or
(n1> 10) or (1> m1) or (m1> 10)) {Умови помилки}
then begin
WriteLn ('ПОМИЛКА !!!'); end
for i1: = 1 to m1 do
for j1: = 1 to n1 do
Read (MAS1 [i1, j1]); end;
for i1: = 1 to m1 do {Відповідь вихідної матриці}
begin
for j1: = 1 to n1 do
Write (MAS1 [i1, j1]); WriteLn;
end;
Case operation of {Оператор вибору
«operation»}
1: begin {Визначник}
if (m1 <> n1)
then writeLn ('ПОМИЛКА !!!') {Умова
помилки} else
begin {Формула визначника}
det: = (MAS1 [1,1] *
MAS1 [2,2] * MAS1 [3,3]+ MAS1 [2,1] * MAS1 [3,2] * MAS1 [1,3] + MAS1 [1,2] * MAS1
[2,3] * MAS1 [3,1])- (MAS1 [3,1] * MAS1 [2,2] * MAS1 [1,3]+ MAS1 [3,2] * MAS1
[2,3] * MAS1 [1,1]+ MAS1 [2,1] * MAS1 [1,2] * MAS1 [3,3]);
WriteLn ('Визначник матриці розміром 3х3, det =', det);
{Висновок визначника} end; end;
2: begin {обернена матриця}
if (m1 <> n1)
then WriteLn ('ПОМИЛКА !!!') {Умова помилки}
else begin {Визначник}
det: = (MAS1 [1,1] *
MAS1 [2,2] * MAS1 [3,3] + MAS1 [2,1] * MAS1 [3,2] * MAS1 [1,3]+ MAS1 [1,2] *
MAS1 [2,3] * MAS1 [3,1])- (MAS1 [3,1] * MAS1 [2,2] * MAS1 [1,3]+ MAS1 [3,2] *
MAS1 [2,3] * MAS1 [1,1]+ MAS1 [2,1] * MAS1 [1,2] * MAS1 [3,3]);
if det = 0 then WriteLn
('ПОМИЛКА !!!') {Умова помилки} else begin {Союзна матриця}
for i1: = 1 to m1 do
for j1: = 1 to n1 do
MAS2 [i1, j1]: = MAS1 [j1, i1]; {Підсумкова формула}
for i1: = 1 to m1 do
for j1: = 1 to n1 do
MAS3 [i1, j1]: = (1/det) * MAS2 [i1, j1];
WriteLn; WriteLn ('обернена матриця:');
for i1: = 1 to m1 do
begin {Відповідь оберненої матриці}
for j1: = 1 to n1 do
Write (MAS3 [i1, j1]);
WriteLn; end; end;
end; end;
3: begin {Транспонування матриці}
for i1: = 1 to m1 do
for j1: = 1 to n1 do
MAS2 [i1, j1]: = MAS1 [j1, i1]; {Формула}
WriteLn ('Транспонована матриця:');
for i1: = 1 to m1 do
begin {Відповідь транспонованої матриці}
for j1: = 1 to n1 do
Write (MAS2 [i1, j1]);
WriteLn; end; end;
4,5: begin {Додавання / віднімання матриць} {Введення другої матриці}
WriteLn ('Введіть кількість рядків другої матриці'); ReadLn (m2);
Writeln ('Введіть кількість стовпців другого матриці'); ReadLn (n2);
If (n2 <> n1) or
(m2 <> m1) then WriteLn ('OSHIBKA !!!') {Умова помилки}
else begin
WriteLn ('Введіть другу матрицю');
for i1: = 1 to m1 do
for j1: = 1 to n1 do
Read (MAS2 [i1, j1]);
end;
for i1: = 1 to m1 do {Вигляд другої матриці}
begin
for j1: = 1 to n1 do
Write (MAS2 [i1, j1]); WriteLn; end;
if operation = 4 then
k: = 1;
if operation = 5 then
k: = -1;
for i1: = 1 to m1 do
for j1: = 1 to n1 do
MAS3 [i1, j1]: = MAS1
[i1, j1] + k * MAS2 [i1, j1]; {Підсумкова формула}
writeln ('Сума / різниця:');
for i1: = 1 to m1 do begin
for j1: = 1 to n1 do
Write (MAS3 [i1, j1]); WriteLn; end; end;
6: begin {Множення матриць} {Введення другого матриці}
WriteLn ('Введіть кількість рядків другий
матриці'); ReadLn (m2);
Writeln ('Введіть кількість стовпців другого
матриці'); ReadLn (n2);
If ((1> = m2) or
(m2> = 10) or (1> = n2) or (n2> = 10) {Умова помилки}
or (n2 <> m1))
then WriteLn ('ПОМИЛКА !!!') else begin
WriteLn ('Введіть другу матрицю');
for i2: = 1 to m2 do
for j2: = 1 to n2 do
Read (MAS2 [i2, j2]); end;
for i2: = 1 to m2 do
begin {Вигляд другої матриці}
for j2: = 1 to n2 do
Write (MAS2 [i2, j2]); WriteLn;
end;
m3: = m1; n3: = n2;
for i3: = 1 to m3 do
for j3: = 1 to n3 do
begin MAS3 [i3, j3]: = 0;
for i2: = 1 to m2 do
{Підсумкова формула}
MAS3 [i3, j3]: = MAS3
[i3, j3] + MAS1 [i3, i2] * MAS2 [i2, j3];
end;
begin {Вигляд добутку матриць}
writeln;
writeln ('Добуток двох матриць:');
for i3: = 1 to m1 do
begin
for j3: = 1 to n2 do
Write (MAS3 [i3, j3]);
WriteLn;
end; end; end; end; {End Case}
END. {Кінець програми}
четвер, 5 лютого 2015 р.
Математичні ігри та сайти для англомовних школярів
математичні ігри та сайти для англомовних школярів
середа, 28 січня 2015 р.
Вища алгебра для "просунутих" шанувальників математики
К вашему вниманию представляем курс обучающих уроков Алгебры.
- Группы алгебра
- Определение циклической подгруппы
- Левый смежный класс | Правый смежный класс
- Гомоморфизм | Мономорфизм | Эпиморфизм | Изоморфизм | Автоморфизм в алгебре
- Неабелевая группа
- Группа G
- Группа G и ее нормальные подгруппы
- Внешнее произведение групп
- Абелевая группа в алгебре
- Теорема: Любая целочисленная прямоугольная матрица элементарными преобразованиями строк и столбцов приводится к диагональному виду
- Дискретные подгруппы в алгебре
- Евклидово пространство
- Линейное пространство
- Кольцо называется коммутативным, ассоциативным, антикоммутативным. Кольцо Ли в алгебре
- Алгебра Вейля
- Алгебра с умножением называется алгеброй Ли
субота, 4 жовтня 2014 р.
Про математиків та матем. дискусії
Теорема Морли
16 Сентябрь 2014, 21:51
Самым известным результатом Фрэнка Морли является теорема о трисектрисах треугольника, носящая его имя.
Сначала определим трисектрису, а затем докажем теорему. Читать полностью ‘Теорема Морли’ »
Теорема Содди
2 Апрель 2014, 15:48
Следующая довольно красивая теорема, долгое время считавшаяся гипотезой, принадлежит именно ему, хотя доказал ее Коксетер.
Теорема Содди. Пусть три окружности с радиусами
касаются внешним образом. Пусть
— радиус окружности, касающейся трех данных окружностей внешним образом, а
— радиус окружности, касающейся трех данных окружностей внутренним образом. Тогда имеют место равенства
Бесконечность или -1/12?
20 Февраль 2014, 8:08
Дэвид Берман, Марианна Фрейбергер
Недавно обсуждался очень странный результат. Утверждается, что, когда вы сложите все натуральные числа
то сумма будет равна
. Данная идея демонстрируется в видео Numberphile, где утверждается, что результат доказан, а также рассказывается, что он повсеместно используется в физике. Данная идея так поразила людей, что она даже попала в “Нью-Йорк Таймс’’. Итак, что же все это значит? Читать полностью ‘Бесконечность или -1/12?’ »
Теорема (звезда Давида)
2 Февраль 2014, 7:52
Эта теорема представляет собой одно из арифметических свойств биномиальных коэффициентов, или чисел
.
Теорема (звезда Давида). Наибольший общий делитель чисел
и
равен наибольшему общему делителю чисел
и
.
Чтобы понять, почему эта теорема называется звездой Давида, посмотрите на следующий рисунок. Наибольший общий делитель чисел, стоящих в синих углах и наибольший общий делитель чисел, стоящих в фиолетовых углах, равны. Вместе эти два треугольники образуют звезду Давида.
Например, если
и
, теорема утверждает, что наибольший общий делитель
и
равен наибольшему общему делителю
и
. Очевидно, это не самый интересный пример, потому что при упрощении обоих НОД получаем НОД
, который равен
. Давайте рассмотрим другой пример. Читать полностью ‘Теорема (звезда Давида)’ »
Аксиома Паша
29 Ноябрь 2013, 23:26
Теория графов и коммуникация
1 Ноябрь 2013, 21:36
В начале 70-х годов прошлого века Джон Пирс предложил коммуникационную сеть, состоящую из соединенных между сосбой в различных точках направленных циклов. Чтобы сообщение попало из исходной точки одного цикла в точку назначения на другом цикле, необходимо было понять, в каких точках нужно переходить на следующие циклы.
Рональд Грэм и Генри Поллак предложили считать каждый цикл вершиной графа, которую отмечали последовательностью символов из алфавита
таким образом, чтобы расстояние Хэмминга между строками соответствовало расстояниям в графе. Тогда переходить на другой цикл следовало, когда адрес нового цикла имел меньшее расстояние Хэмминга до точки назначения. Читать полностью ‘Теория графов и коммуникация’ »
Підписатися на:
Дописи (Atom)









