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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2009, 13:45   #1
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию Матрица [Delphi]

Здравствуйте уважаемые эксперты. Прошу помощи с решением следующей задачи:Задана матрица размером NxM. Получить массив B, присвоив его k-му элементу значение 0, если все элементы k-го столбца матрицы нулевые, и значение 1 в противном случае. Вот мой код(он во вложении). Проблема заключается в том, что я решил добавить возможность ручного и рандомного заполнения матрицы, после чего программа начала выдавать не понятные мне результаты При рандомном заполнении в искомый массив выводятся всегда 1, не зависимо от исходной матрицы.. Да и при ручном заполнении что-то не так считается.. Массив должен заполняться исходя из столбцов, а заполняется по сумме строк Прошу Вашей помощи..
Вложения
Тип файла: rar Матрица.rar (190.6 Кб, 77 просмотров)
StudeHt вне форума Ответить с цитированием
Старый 10.10.2009, 17:41   #2
StudeHt
Пользователь
 
Регистрация: 05.04.2009
Сообщений: 78
По умолчанию

Неужели никто не подскажет???
StudeHt вне форума Ответить с цитированием
Старый 10.10.2009, 18:12   #3
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Ты както странно там всё сделал.. Можно было не вводить какието массивы, а просто работать со СтрингГридом напрямую.

1.
Код:
if CheckBoxManualFilling.Checked then
    begin
      for i:=1 to Line do
        for j:=1 to Column do
          Matrix[i,j] := StrToInt(StringGridInitialMatrix.Cells[j,i]);
    end;
Что это? Тоесть если чекбокс "ручное заполнение" сброшен, то массиву никаких значений не будет присвоено.... На самом деле массив будет заполне разным муссором.
Если же выставить этот чекбокс, то всё будет работать как надо.

2.

Код:
for i:=1 to Line do
    begin
      Sum:=0;
      for j:=1 to Column do
        Sum:=Sum+Matrix[i,j];
      if Sum=0 then
        Massiv[i]:=0
      else
        Massiv[i]:=1;
    end;
Это не совсем разумно. Может лучше так(на вскидку)?

Код:
For x := 1 To 10 Do
For i := 1 To 10 Do If Massiv[x,i] = 1 Then Flag := True;
If Flag = True Then ..... Else .......
Кароче не надо там считать сумму..
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 10.10.2009, 18:13   #4
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

У меня это заработало:
Вложения
Тип файла: zip Desktop.zip (5.2 Кб, 102 просмотров)
TwiX вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрица в delphi Hegel Помощь студентам 11 10.01.2009 16:59
Delphi, матрица, массив… Мага Помощь студентам 3 10.12.2008 23:35
Delphi, матрица n-го порядка ПаФка Помощь студентам 1 09.12.2008 14:55
Квадратная матрица в Delphi Tomoyo Помощь студентам 10 12.11.2008 18:35
Матрица. Delphi manhunt Помощь студентам 0 29.05.2008 00:32