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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2014, 18:51   #11
King Kong
Пользователь
 
Регистрация: 06.04.2014
Сообщений: 23
По умолчанию

я немного не понимаю что это значит. по коду видно что это паскаль
King Kong вне форума Ответить с цитированием
Старый 28.04.2014, 18:56   #12
reflexx
Пользователь
 
Регистрация: 27.04.2014
Сообщений: 21
По умолчанию

Эмм, консольное приложение, написанное на Delphi 7.
reflexx вне форума Ответить с цитированием
Старый 28.04.2014, 22:54   #13
King Kong
Пользователь
 
Регистрация: 06.04.2014
Сообщений: 23
По умолчанию

Вот я рандомно формирую обычную матрицу, но мне нужно чтобы она была треугольная? как это сделать?
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
begin
StringGrid.ColCount:=6;
StringGrid.RowCount:=6;
for i:=1 to StringGrid.RowCount-1 do
begin
for j:=1 to StringGrid.ColCount-1 do
begin
StringGrid.Cells[j,i]:=IntToStr(random(100));
end;
end;
end;
King Kong вне форума Ответить с цитированием
Старый 28.04.2014, 23:37   #14
reflexx
Пользователь
 
Регистрация: 27.04.2014
Сообщений: 21
По умолчанию

ТС, же вам написал как должны выглядеть циклы в треугольной матрице. Смотрите по примеру и переносите на свой StringGrid.
reflexx вне форума Ответить с цитированием
Старый 29.04.2014, 00:43   #15
King Kong
Пользователь
 
Регистрация: 06.04.2014
Сообщений: 23
По умолчанию

выдаёт ошибку ( пишу вот так :
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 i,j:integer;
begin
   StringGrid.ColCount:=5;
   StringGrid.RowCount:=5;
   for i:=1 to StringGrid.RowCount-1 do
    begin
     for j:=1 to StringGrid.ColCount-1 do
      begin
       StringGrid.Cells[j,i]:=IntToStr(random(100));
      end;
    end;
for i:=1 to StringGrid.ColCount - 1 do
for j:=0 to i-1 do
StringGrid.Cells[i,j]:=0
end;
King Kong вне форума Ответить с цитированием
Старый 29.04.2014, 09:50   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, попробуйте такой код заполнения вашего грида:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 i,j:integer;
begin
   Randomize;
   StringGrid.FixedCols := 0;
   StringGrid.FixedRows := 0;
   StringGrid.ColCount := 5;
   StringGrid.RowCount := 5;
   for i:=0 to StringGrid.RowCount-1 do
    begin
     for j:=0 to StringGrid.ColCount-1 do
       if j<i
         then StringGrid.Cells[j,i] := '0'
         else StringGrid.Cells[j,i] := IntToStr(random(99)+1);
    end;
end;

во-вторых, термин "треугольная матрица" допускает не однозначное толкование.
вполне возможно, что имеется в виду матрица, которая в разных строках содержит РАЗНОЕ количество элементов (например, в первой строке - N элементов, во второй строке - N-1 элементов и т.д.).
Для этого в Delphi совершенно не обязательно делать квадратную матрицу и половину заполнять нулями, можно воспользоваться динамическим двухмерным массивов и задать разное число элементов в каждой строке...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.04.2014, 19:37   #17
King Kong
Пользователь
 
Регистрация: 06.04.2014
Сообщений: 23
По умолчанию

спасибо) неправильно считает сумму максимальных элементов всех строк этой матрицы. Что не так?
Код:
summ:= 0;
n:= StringGrid.ColCount ;
max:= 0 ;
  for i:=0 to n-1 do
  begin
    Max:=StrToInt(StringGrid.Cells[i, 0]);
    for j:=i to n-1 do
      if StrToInt(StringGrid.Cells[i, j]) > Max then
      begin
       Max:=StrToInt(StringGrid.Cells[i, j]);
      end;
  Summ:=Summ + Max;
  end;
King Kong вне форума Ответить с цитированием
Старый 01.05.2014, 18:23   #18
King Kong
Пользователь
 
Регистрация: 06.04.2014
Сообщений: 23
По умолчанию

почему не так считает? в чём ошибка?
King Kong вне форума Ответить с цитированием
Старый 02.05.2014, 11:02   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от King Kong Посмотреть сообщение
почему не так считает? в чём ошибка?
чисто умозрительно - у Вас проблема в том, что Вы перепутали столбцы и строки: Вы перебирайте столбцы, а Вам нужно перебирать строки.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.05.2014, 13:53   #20
King Kong
Пользователь
 
Регистрация: 06.04.2014
Сообщений: 23
По умолчанию

спасибо )теперь всё работает!
King Kong вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Треугольная последовательность. Помочь исправить ошибки в коде (C) lmbe Помощь студентам 0 27.12.2013 03:17
Паскаль. Матрица NxN -> текстовый файл -> Матрица NxN - найти max по диагоналям -> типизированный файл Лунатик13 Помощь студентам 1 20.02.2012 15:54
Матрица druger Помощь студентам 3 29.10.2011 20:54
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11