• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Программирование матричных операций

Aizen_Stas

Новые
Регистрация
26 Окт 2011
Сообщения
20
Реакции
0
Баллы
0
Программирование матричных операций

Разработать программу решения четырех взаимосвязанных задач частой работы:
1)расчета элементов квадратной матрицы A = (ai,j ), i,j = 1,2,...,n по заданной формуле;
2)вычисления элементов вектора X = (xi), i = 1,2,...,n по заданному правилу;
3)требуемого упорядочения элементов матрицы А или вектора Х;
4)вычисления значения y по заданной формуле.
Размерность задачи n назначается преподавателем (в моем случае n=6)


Вариант 77
1)aij=(-1)*ln(j)*ln(i)
2)xi=bij,где bij – элемент матрицы В,полученной упорядочением по возрастанию столбцов матрицы А ;
3)упорядочить элементы первой строки матрицы А по убыванию абсолютных значений;
4)Посмотреть вложение 5 тема.docx
 
Всё понял, кроме:
Пункт 1. Во-первых, произведение или сумма логарифмов? Во-вторых, Вы уверены, что там просто (-1), а не, скажем, (-1) в какой-нибудь степени, например j или (i+j)?
Пункт 2. Что значит "упорядочение по возрастанию столбцов матрицы А"? По возрастанию чего? Как сравнивать между собой столбцы? Я не умею.
Пункт 4. Кто такие в приведенной формуле Xi и откуда они берутся?

В общем, так. Помощь получите, когда выложите ясное, четкое, грамотно сформулированное и однозначное задание. Сразу скажу: отговорки типа "А мне так дали" не принимаются. Разбирайтесь с преподами.

Так, ну сейчас еще раз внимательно посмотрел, вроде начинает проясняться. Большинство возражений снимаю, кроме одного:
Итак, сформировали матрицу А по формуле (в ней по-прежнему желательно уточнение). Упорядочили столбцы по возрастанию элементов и тем самым получили матрицу В. А вот что есть вектор Х - извините, но в упор не понимаю.
 
Пардон,в формуле и правда есть оплошность: aij=(-1)*ln(j)+ln(i).
Над остальным пока помозгую,чтобы внятно объяснить
 
Пардон,в формуле и правда есть оплошность: aij=(-1)*ln(j)+ln(i).
Над остальным пока помозгую,чтобы внятно объяснить
Странно это - почему бы в таком случае просто не написать aij=ln(i)-ln(j)? Ну ладно, Вам видней...
 
Опечатка в методичке была(
xi=bii-вектор,представляющий собой главную диагональ вектора B
 
не вектора,а матрицы B :tehnari_ru_281:
 
Пожалуйста:
Код:
CONST
 N=6;
VAR
 A,B:Array[1..N,1..N] of Real;
 X:Array[1..N] of Real;
 Dummy,Y:Real;
 i,j,k:Byte;
BEGIN
 Writeln('Initial array (matrix A):');
 For i:=1 to N do
  begin
   For j:=1 to N do
    begin
     A[i,j]:=Ln(j)-Ln(i);
     Write(A[i,j]:8:3);
    end;
   Writeln;
  end;
 Writeln;

 B:=A;

 Writeln('Ordered array (matrix B):');
 For j:=1 to N do
  For i:=1 to N do
   For k:=1 to N-i do
    If B[k,j]>B[k+1,j] then
     begin
      Dummy:=B[k,j];
      B[k,j]:=B[k+1,j];
      B[k+1,j]:=Dummy;
     end;

 For i:=1 to N do
  begin
   For j:=1 to N do Write(B[i,j]:8:3);
   Writeln;
  end;
 Writeln;

 Writeln('Vector X:');
 For i:=1 to N do
  begin
   X[i]:=B[i,i];
   Write(X[i]:8:3);
  end;
 Writeln;
 Writeln;

 Writeln('Ordered first line of matrix A:');
 For j:=1 to N do
  For k:=1 to N-j do
   If Abs(A[1,k])<Abs(A[1,k+1]) then
    begin
     Dummy:=A[1,k];
     A[1,k]:=A[1,k+1];
     A[1,k+1]:=Dummy;
    end;
 For j:=1 to N do Write(A[1,j]:8:3);
 Writeln;
 Writeln;

 Writeln('Product:');
 Y:=1;
 For i:=1 to N do
  If X[i]<>-1 then Y:=Y*(X[i]+1)*i;
 Write('Y= ',Y:0:5);

 Readln
END.
 
Спасибо-осталось только разобраться и переиначить под свой способ
 
Как понимать Dummy?
А зачем тут что-то как-то понимать? Просто имя переменной. В буквальном переводе - муляж, пустышка. В программе используется при перестановке местами двух элементов массива как временное хранилище значения одного из них.
Удачного переиначивания!
 
Еще раз спасибо за труд!
 
Назад
Сверху