Показать сообщение отдельно
Старый 02.06.2012, 19:52   #8 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Lizaa Посмотреть сообщение
2. Дана целочисленная квадратная матрица:
1) выполните сжатие матрицы, удалив из нее те столбцы, в которых количество отрицательных элементов совпадает с количеством положительных;
2) определите количество строк, в которых расположены максимальные элементы матрицы.
Код:
Const
 N0=10; { for example; change if you want to }
Var
 A:Array [1..N0,1..N0] of Integer;
 Max:Integer;
 i,j,p,M,N,Pos,Neg,Num:Byte;
 b:Boolean;
Begin
 M:=N0;
 N:=N0;
 Randomize;
 Writeln('Initial matrix:');
 For i:=1 to M do
  begin
   For j:=1 to N do
    begin
     A[i,j]:=-99+Random(199);
     Write(A[i,j]:4);
    end;
   Writeln;
  end;
 For j:=1 to N do
  begin
   Pos:=0;
   Neg:=0;
   For i:=1 to M do
    begin
     if A[i,j]>0 then Inc(Pos);
     if A[i,j]<0 then Inc(Neg);
    end;
   If Pos=Neg then
    begin
     for i:=1 to M do
      for p:=j+1 to N do
       A[i,p-1]:=A[i,p];
     Dec(N);
    end;
  end;
 Writeln('Compressed matrix:');
 For i:=1 to M do
  begin
   For j:=1 to N do
    Write(A[i,j]:4);
   Writeln;
  end;
 Writeln;
 Max:=-200;
 Num:=0;
 For i:=1 to M do
  For j:=1 to N do
   If A[i,j]>Max then Max:=A[i,j];
 For i:=1 to M do
  begin
   b:=false;
   j:=0;
   Repeat
    Inc(j);
    If A[i,j]=Max then b:=true;
   Until b or (j=N);
   If b then Inc(Num);
  end;
 Writeln('Number of lines, containing maximal element = ',Max,', is ',Num);
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070