Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2012, 19:17   #1
xxxartikxxx
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 23
Восклицание Вектор из матрицы

Из матрицы A получить компоненты вектора X={xi}, i=1,2,...,n, по следующему правилу:в качестве вектора принять главную диагональ матрицы , которая преобразована следующим образом: в начале каждой строки должны быть ее неотрицательные элементы, а в конце - отрицательные элементы (с сохранением порядка следования тех или иных элементов).

Код матрицы:
program matrx;
type
Matr=array[1..20,1..20]of real;
var
i,j,n:integer ;
a:Matr;
begin
writeln;
writeln('vedite n');
readln(n);
for i:=1 to n do
for j:=1 to n do
begin
a[i,j] := -2 * (j / 2 - 3.1) * (i - 3.9) + Exp(2.5*Ln(i * j))- 10;
write('a[',i,',',j,']=',a[i,j]:6:2,' ');
end;
writeln;
readln;
end.

Последний раз редактировалось xxxartikxxx; 30.11.2012 в 20:56.
xxxartikxxx вне форума Ответить с цитированием
Старый 01.12.2012, 08:58   #2
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Код:
program matrx;
const
  m= 20;
type
  tVector= array[1..m] of double;
  tMatr= array[1..20]of tVector;
var
  i,j,n: integer;
  a: tMatr;
  v: tVector;
  b: double;
begin
  writeln;
  writeln('vedite n');
  readln(n);
  for i:=1 to n do begin
    for j:=1 to n do begin
      a[i,j] := -2 * (j / 2 - 3.1) * (i - 3.9) + Exp(2.5*Ln(i * j))- 10;
      write(a[i,j]:10:2,' ');
    end;
    writeln
  end;
  for i:=1 to n do begin
    j:= 2;
    while j<=n do
      if (a[i,j-1]<0) and (a[i,j]>=0) then begin
        b:= a[i,j];
        a[i,j]:= a[i,j-1];
        a[i,j-1]:= b;
        if j>2 then dec(j)
      end
      else inc(j)
  end;
  writeln('modified matrix:');
  for i:=1 to n do begin
    for j:=1 to n do write(a[i,j]:10:2,' ');
    writeln
  end;
  for i:=1 to n do v[i]:= a[i,i];
  writeln('vector:');
  for j:=1 to n do write(v[j]:10:2,' ');
  writeln;
  writeln('all done.');
  readln
end.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 01.12.2012, 19:10   #3
xxxartikxxx
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 23
По умолчанию

Цитата:
Сообщение от TinMan Посмотреть сообщение
Код:
type
  tVector= array[1..m] of double;
пишет неизвестное имя типа
xxxartikxxx вне форума Ответить с цитированием
Старый 01.12.2012, 19:19   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Зачем же нужно было даблпостить?

11:25 TinMan, к Вам никаких претензий
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 02.12.2012 в 11:27.
BDA вне форума Ответить с цитированием
Старый 02.12.2012, 02:12   #5
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от xxxartikxxx Посмотреть сообщение
пишет неизвестное имя типа
Замени на real.

Цитата:
Сообщение от BDA Посмотреть сообщение
Зачем же нужно было даблпостить?
Да уж - совершенно неясно, зачем..
Извини, BDA, не заметил, что такая ситуевина.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
умножение матрицы на вектор 13xxx Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2010 22:15
Перемножение матрицы на вектор. Sid23 Помощь студентам 2 17.01.2010 23:41
Умножение матрицы на вектор ciaonataha Общие вопросы C/C++ 1 28.04.2009 20:36
Умножение матрицы на вектор Илья Кибель Помощь студентам 5 27.10.2007 11:02