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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2011, 23:32   #1
SVing
Ээээ
Пользователь
 
Аватар для SVing
 
Регистрация: 13.09.2011
Сообщений: 99
По умолчанию квадратная матрица A(nхn)

Собственно задание :
Дана квадратная матрица A(nхn). Построить вектор b, где bi, i=1,…,n – среднее арифметическое отрицательных элементов i-ого столбца матрицы

Вот я немного написал, а что дальше не представляю даже, не понимаю я этого. Помогите пожалуйсто продолжить.
Зарание спасибо

Код:
program matr;
uses crt;
var
A:array[1..10,1..10] of real;
b:array[1..10] of real;
max:real;


n : integer;
i : integer;
j : integer;
s : integer;
k : integer;

begin
write('vvedite N');
readln(N);
for i:=1 to N do

for j:=1 to N do
begin
write('A[',i,',',j,']=');
readln(A[i,j]);

end;
writeln ('matrica A:');
for i:=1 to N do
begin
for j:=1 to N do
write (A[i,j]:5:2);
writeln;
end;



for j:=1 to n do
begin
s:=0;
k:=0;
for i:=1 to n do
if A[i,j]<0 then s:=s-b[i,j];
A[i]:=s;


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 29.11.2011 в 13:13.
SVing вне форума Ответить с цитированием
Старый 29.11.2011, 12:10   #2
SVing
Ээээ
Пользователь
 
Аватар для SVing
 
Регистрация: 13.09.2011
Сообщений: 99
По умолчанию

никто не знает?
SVing вне форума Ответить с цитированием
Старый 29.11.2011, 13:20   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

в индексах массива первый параметер - строка, второй - столбце.

поэтому, чтобы перебрать I-й столбец нужно выполнить такой цикл
Код:
for j:=1 to N do 
   ...A[j, i ] ...
следовательно, Ваша задача вырождается в такой код:
Код:
for i:=1 to N do begin{цикл по столбцам}
  K := 0;
  S := 0;
  for j:=1 to N do 
     if A[j, i] < 0 then begin
        Inc(K);
        S := S + A[ j, i ];
     end;
  if K=0 then B[i] := 0
  else B[i] := S/K;
end;
дальше выводите содержимое вектора B
задача решена.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.11.2011, 16:11   #4
SVing
Ээээ
Пользователь
 
Аватар для SVing
 
Регистрация: 13.09.2011
Сообщений: 99
По умолчанию

а каким образом вектор вывести? я просто вообще не понимаю этого
SVing вне форума Ответить с цитированием
Старый 29.11.2011, 17:03   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а каким образом вектор вывести? я просто вообще не понимаю этого
а может быть имеет смысл хотя бы в том коде, который Вы собираетесь сдавать - разобраться?!
Вывод на экран двухмерной матрицы A у Вас сложностей, судя по вышеприведённому коду, не вызвал!

вывести содержимое вектора B можно примерно так:
Код:
WriteLn('Полученный вектор средних значений B:');
for i:=1 to N do 
   Write(B[i]:0:5, '  ');
WriteLn;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.11.2011, 18:41   #6
SVing
Ээээ
Пользователь
 
Аватар для SVing
 
Регистрация: 13.09.2011
Сообщений: 99
По умолчанию

вызвало и большое затруднение. в методичке покапался нашёл похожее ,пришлось помудрить
спасибо! буду пробовать
SVing вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Квадратная матрица (C#) Vovchik123 Помощь студентам 5 26.10.2011 00:50
квадратная матрица Екатерина Воробей Паскаль, Turbo Pascal, PascalABC.NET 24 21.10.2011 13:48
матрица квадратная Максикок Помощь студентам 0 03.04.2011 22:21
Квадратная матрица artem1 Паскаль, Turbo Pascal, PascalABC.NET 3 21.02.2011 15:52
квадратная матрица на С++ innaa639 Помощь студентам 1 24.03.2010 14:46