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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2017, 18:13   #1
qqq``
Пользователь
 
Регистрация: 05.09.2017
Сообщений: 26
По умолчанию дан двумерный массив 3 на 3 найти сумму элементов массива между первым и Последним положительным числом

Нужно запомнить 4 индекса а как потом это записать в последнем цикле я не знаю

Код:
procedure TForm1.Button2Click(Sender: TObject);
const N=3;
var
  i,j,konech,nachal:integer;
begin
 For i:=1 to n do begin
 for j:=1 to n do  begin
 If (Strtoint(stringgrid1.cells[i-1,j-1])) >0 then//Сравниваю ячейки на наличие первого положительного элемента begin
 nachal:=Strtoint(stringgrid1.cells[i-1,j-1]) ; //запоминаю ячейку с положительным числом
 break;
 end;
 end;
 end;
 For i:=3 downto n do begin
   For j:=3 downto n do begin
     If (Strtoint(stringgrid1.cells[i-1,j-1]))> 0 then  // Сравниваю ячейки на наличие последнего положительного элемента
     begin
     konech:=Strtoint(Stringgrid1.Cells[i-1,j-1]); // запоминаю ячейку с полоэжительным числом
     break;
     end;
     end;
   end;
    { For i:=nachal   to konech do begin }
   sum:=(strtoint(stringgrid1.cells[i-1,j-1])) + sum;
          label2.caption:=inttostr(sum);
        end;
 end;
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 16.10.2017 в 10:09.
qqq`` вне форума Ответить с цитированием
Старый 16.10.2017, 08:27   #2
Heilagr
 
Регистрация: 29.09.2017
Сообщений: 4
По умолчанию

Ты запоминаешь не адрес ячейки где хранится первое и последнее положительное число, а сами числа.

Код:
procedure TForm1.Button2Click(Sender: TObject);
  const N=3;
var
  i,j,i_nach,j_nach,i_kon,j_kon,sum:integer;
begin
  For i:=1 to n do begin
   for j:=1 to n do begin
    If (Strtoint(stringgrid1.cells[i-1,j-1])) >0 then//Сравниваю ячейки на наличие первого положительного элемента begin
     i_nach:=i-1 ; //запоминаю 
     j_nach=j-1;  //адрес первого положительного элемента
   break;
    end;
    end;
  end;
  For i:=3 downto n do begin
   For j:=3 downto n do begin
    If (Strtoint(stringgrid1.cells[i-1,j-1]))> 0 then // Сравниваю ячейки на наличие последнего положительного элемента
    begin
      i_kon:=i-1; // запоминаю адрес
      j_kon=j-1; // последнего положительного элемента
      break;
    end;
   end;
  end;
  sum:=0;
  for i:=i_nach+1 to i_kon-1 do 
   for j:=j_nach+1 to j_kon-1 do 
      sum:=sum+(strtoint(stringgrid1.cells[i,j]));
  label2.caption:=inttostr(sum);
end;
end;

Последний раз редактировалось Heilagr; 16.10.2017 в 08:40.
Heilagr вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить разницу элементов массива, что расположены между первым отрицательным та вторым положительным элементами AlexQQ Помощь студентам 0 29.05.2013 19:38
найти сумму элементов массива,расположенных между первым и вторым отрицательными элементами Кристюша5 Паскаль, Turbo Pascal, PascalABC.NET 0 26.05.2012 16:06
Найти сумму элементов последовательности между первым и последним нулем. alonix Помощь студентам 6 16.01.2012 04:48
Вычислить сумму элементов массива, расположенных между первым и последним положительными элементами Fitch573 Помощь студентам 4 09.01.2012 18:04
найти сумму элементов массива расположных между первым и последним положительным Julila Помощь студентам 9 06.01.2011 02:32