IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Матрица!
Анька
сообщение 8.12.2004 14:10
Сообщение #1


Гость






Помогите, :p2: пожалуйста, решить 3 задачки, я уже целый день над ними сижу, но ничего не получается!!!
1.
Матрица, симметричная относительно главной диагонали, задана верхним треугольником в виде одномерного массива по строкам. Восстановить исходную квадратную матрицу и напечатать по строкам.
2.
Заданную квадратную матрицу преобразовать, используя умножение строки на число и сложение строк, таким образом, чтобы все элементы первого столбца обратились в нуль, кроме элемента, расположенного на главной диагонали.
3.
Дана вещественная матрица размером N х N, все элементы которой различны. Найти скалярное произведение строки, в которой находится наибольший элемент матрицы, на столбец с наименьшим элементом.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
xds
сообщение 9.12.2004 8:20
Сообщение #2


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Задача 2.
Код

program XMatr;

{ НОД }
function GCD(n, m: Integer): Integer;
begin
 repeat
   if n > m then
     n := n mod m
   else
     m := m mod n;
 until (n = 0) or (m = 0);
 if n = 0 then
   GCD := m
 else
   GCD := n;
end;

var
 n, i, j, k1, k2: Integer;
 a: array[1..100, 1..100] of Integer;

begin
 Write('n> ');
 Readln(n);
 Randomize;
 for i := 1 to n do
   for j := 1 to n do
     a[i, j] := -9 + Random(20);

 Writeln('Исходная матрица:');
 for i := 1 to n do
   begin
     for j := 1 to n do
       Write(a[i, j]: 4);
     Writeln;
   end;
 Writeln;

 for i := 2 to n do
   begin
     k1 := GCD(Abs(a[1, 1]), Abs(a[i, 1]));
     k2 := -a[1, 1] div k1;
     k1 := a[i, 1] div k1;
     for j := 1 to n do
       a[i, j] := a[i, j] * k2 + a[1, j] * k1;
   end;

 Writeln('Преобразованная матрица:');
 for i := 1 to n do
   begin
     for j := 1 to n do
       Write(a[i, j]: 4);
     Writeln;
   end;
end.


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.06.2025 23:03
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"