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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2008, 03:04   #1
Брутальный М.
Пользователь
 
Регистрация: 22.12.2008
Сообщений: 13
По умолчанию Действительная квадратная матрица

Дана действительная квадратная матрица порядка n.Построить последовательность действительных чисел а1,...,а2 по правилу : если в i-й строке матрицы элемент,принадлежащий главной диагонали,отрицателен,то аi равно сумме элементов i-й строки,предшествующих первому отрицательному элементу;в противном случае аi равно сумме последних элементов i-й строки,начиная с первого по порядку наотрецательного элемента.
Брутальный М. вне форума Ответить с цитированием
Старый 29.12.2008, 15:55   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Код:
uses crt;
const n=4;//для тестирования пойдет, потом можно больше
var m:array[1..n,1..n] of real;//матрица
    a:array[1..n] of real;//массив сумм
    i,j,k,l:integer;
    sm:real;
begin
clrscr;
randomize;
writeln('Matrica M:');
for i:=1 to n do
  begin
   for j:=1 to n do
     begin
       m[i,j]:=10*random-3;
       write(m[i,j]:6:2);
     end;
   writeln;
  end;

for i:=1 to n do
if m[i,i]<0 then //если на главной диагонали отрицательный
   begin
     for j:=1 to n do
     if m[i,j]<0 then  //ищем первый отрицательный
       begin
        k:=j; //запоминаем его место
        break;
       end;
     sm:=0;
     for l:=1 to k-1 do
     sm:=sm+m[i,l]; //считаем сумму по условию
     a[i]:=sm;//заносим в массив
   end
else //если неотрицательный
    begin
      for j:=1 to n do
      if m[i,j]>=0 then //ищем первый неотрицательный
        begin
         k:=j;//запоминаем место
         break;
        end;
      sm:=0;
      for l:=k to n do
      sm:=sm+m[i,l]; //считаем сумму по условию
       a[i]:=sm;
    end;
writeln('Massiv A:');
for i:=1 to n do
write(a[i]:7:2);
readln
end.
puporev вне форума Ответить с цитированием
Старый 30.12.2008, 12:42   #3
Брутальный М.
Пользователь
 
Регистрация: 22.12.2008
Сообщений: 13
По умолчанию

ой спасибо
Брутальный М. вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Действительная матрица lexx007 Помощь студентам 1 14.12.2008 00:51
квадратная матрица паскаль. Барби Помощь студентам 39 11.12.2008 00:41
Квадратная матрица в Delphi Tomoyo Помощь студентам 10 12.11.2008 18:35
Паскаль. Квадратная матрица Deimossy Помощь студентам 2 20.11.2007 13:23