Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal]динамические переменные,


Автор: S0S 19.11.2008, 00:23
Дан массив А размером n*m. Получить сумму последовательности b1...,bn, где bk - количество отрицательных элементов в k-той строке. А, B - динамические переменные smile  smile 

Автор: Ofer 23.11.2008, 01:41
На сколько я понял суть задания - надо создать массивы, используя указатели и динамическую память. Правильно? Тогда, в таком случае, достаточно такого кода.

Код

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  n = 5;
  m = 7;

var
  i,j,Summ : Integer;
  A : array [1..n,1..m] of ^Integer;
  B : array [1..m] of ^Integer;

begin
  Summ := 0;
  Randomize();
  WriteLn('Исходный массив');
  WriteLn;
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      New(A[i,j]);
      A[i,j]^ := random(100) - 50;
      Write(A[i,j]^,' ');
    end;
    WriteLn;
  end;
  WriteLn;

  for i := 1 to n do
  begin
    New(B[i]);
    B[i]^ := 0;
  end;
  
  WriteLn('Массив В');
  WriteLn;
  for i := 1 to n do
  begin
    for j := 1 to m do
      if A[i,j]^ < 0 then
      Inc(B[i]^);
    Write(B[i]^,'  ');
    Summ := Summ + B[i]^;
  end;
  WriteLn;
  WriteLn;
  WriteLn('Сумма количества отрицательных элементов: ',Summ);
  ReadLn;
end.

Автор: S0S 28.11.2008, 22:53
Ofer спасибо респект

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)