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

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

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2019, 09:49   #1
Enotik_1998
Пользователь
 
Регистрация: 09.03.2018
Сообщений: 77
По умолчанию Работа с матрицами в delphi7

Здравствуйте. Нужна помощь с задачей: Найти количество строк, все элементы которых кратны 2. Квадратная матрица вводится и выводится в stringgrid.
У меня выдаёт следующую ошибку:
Project Project1.exe raised exception class EConvertError with message "Количество строк, все элементы которых кратны 2:0' is not a valid integer value'. Process stopped. Use Step or Run to continue.
Вот мой исходный код:
Код:
procedure TForm1.Button3Click(Sender: TObject);
begin
n:=StringGrid1.ColCount;
m:=StringGrid1.RowCount;
k:=0;
For i:=0 to n-1 do
For j:=0 to m-1 do
a[i+1,j+1]:=StrToInt(StringGrid1.Cells[j,i]);
For i:=0 to n-1 do
For j:=0 to m-1 do
StringGrid1.Cells[j,i]:=IntToStr(a[j+1,i+1]);
for i:=0 to n-1 do begin
g:=true;
for j:=0 to m-1 do
if a[i,j] mod 2<>0 then
begin
g:=false;
break;
end;
if g then inc(k);
end;
Edit1.Text:=('Количество строк, все элементы которых кратны 2: ' +IntToStr(k));
end;

Последний раз редактировалось Enotik_1998; 27.03.2019 в 10:35.
Enotik_1998 вне форума Ответить с цитированием
Старый 27.03.2019, 10:14   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

а зачем ещё одна тема? Чем ваши предыдущие не устраивают? Тем более, что название темы достаточно нейтральное (на грани нарушения п.3.2 правил)



Цитата:
Сообщение от Enotik_1998 Посмотреть сообщение
Project Project1.exe raised exception class EConvertError with message "Количество строк, все элементы которых кратны 2:0' is not a valid integer value'.
где-то в гриде есть такая надпись? Вот Вы её и пытаетесь перевести в число через StrToInt(), не удивительно, что это не выходит.

p.s. форматирования кода как не было, так и нет.

p.p.s. какой смысл переносить данные из грида в массив и тут же переносить данные из этого массива в этот же грид?! ЗАЧЕМ?
сделайте тогда это раз пять. Для надёжности.

Цитата:
Сообщение от Enotik_1998 Посмотреть сообщение
Код:
for j:=0 to m-1 do
if a[i,j] mod 2<>0 then
и это очередная ересь - нет смысла делать цикл по j, если внутри цикла ничего от j не зависит и не меняется.
Вы же просто m раз повторяете одно и то же действие! Этот цикл не нужен.

Последний раз редактировалось Serge_Bliznykov; 27.03.2019 в 10:19.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.03.2019, 11:31   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
нет смысла делать цикл по j, если внутри цикла ничего от j не зависит
зависит
Код:
if a[i,j] mod 2<>0 then
а надпись наверно заголовок строки или колонки, т.е. индексировать в соответствующих местах обращения к ячейкам грида с 1 а не с 0
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.03.2019, 11:41   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
зависит
Код:
if a[i,j] mod 2<>0 then
ой. я сослепу прочитал a[i,i]
извините, разумеется тут я не прав!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.03.2019, 13:25   #5
Enotik_1998
Пользователь
 
Регистрация: 09.03.2018
Сообщений: 77
По умолчанию

спасибо, теперь всё работает
Enotik_1998 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с матрицами в delphi7 Enotik_1998 Компоненты Delphi 5 26.03.2019 18:07
[РЕШЕНО] Работа с матрицами в delphi7 Enotik_1998 Компоненты Delphi 9 22.03.2019 10:46
Работа с матрицами Prime97 Помощь студентам 2 29.12.2015 15:23
Работа с матрицами на c# lola1990 Помощь студентам 4 09.10.2011 23:26
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19