![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 05.11.2010
Сообщений: 25
|
![]()
_В символьном массиве пределить, сколько раз встречается символ звездочка на главной диагонали_
Есть ошибка, помогите исправить!) procedure TForm1.Button1Click(Sender: TObject); var a:array [1..5, 1..5] of char; col, i, j:integer; begin if i=j then col:=0; for i:=1 to 5 do for j:=1 to 5 do a[i,j]:=StrToInt(StringGrid1.Cells[i,j]) if (a(i=j)) and (a[i,j]='*') then col:=col+1; Label1.Caption:='Количество звездочек на главной диагонали равно '+IntToStr(col); end; |
![]() |
![]() |
![]() |
#2 |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]() Код:
И еще, в начале сравниваются i и j. Их значения известны, чтобы делфи могла их сравнить? И еще. Если используешь СтринГрид - в нём нумерация индексов идет от нуля. Лучше сама напишу))) Код:
Последний раз редактировалось Риндера; 10.11.2010 в 11:09. |
![]() |
![]() |
![]() |
#3 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
1) лишняя проверка. не нужно перед выполнением цикла проверять i=j
2) массив символьный, зачем в число преобразовать StringGrid перед внесением в массив?! InToStr не нужен! 2) в StringGrid нумерация идёт от нуля (если только выключены FixedCols = 0 и FixedRows = 0) + порядок другой сначала столбец, потом строка. Цитата:
p.s. работоспособность кода не проверял p.p.s. При заполнении массива, если ячейка в StringGrid пустая будет ошибка! чтобы её не было, можно предварительно проверить строчку на пустоту. например, так: Код:
Последний раз редактировалось Serge_Bliznykov; 10.11.2010 в 13:45. |
|
![]() |
![]() |
![]() |
#4 |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]()
Serge_Bliznykov, мы учитываем случай, если стринггрид не квадратный.
И еще, зачем лишний массив? При присваивании элементов грида целочисленному массиву, делфи наткнется на символ звездочки и выдаст ошибку. И поскольку у нас все-таки квадратная матрица, то не важно, стобец ли сначала, или стока. |
![]() |
![]() |
![]() |
#5 |
А может и не...
Участник клуба
Регистрация: 27.03.2010
Сообщений: 1,269
|
![]()
Тогда о какой главной диагонали может идти речь???
Перемешивай дело с бездельем и не сойдешь с ума...
|
![]() |
![]() |
![]() |
#6 |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]()
Не надо паники) Посмотри мой код во втором посте. Ну и вообще, убрать или добавить проверку не составит никакого труда, и это скорее зависит от конкретной задачи... Я так, на всякий случай написала...
Например, когда я писала прогу перемножения матриц, где размер их задавался пользователем, там нужна была проверка... И тут у человека в коде изначально была проверка, значит, наверное она ему нужна. |
![]() |
![]() |
![]() |
#7 | |||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Да, я полностью согласен. Понятие главной диагонали определено исключительно для квадратной матрицы. Цитата:
не сумеет - нужно делать так, как она попыталась с самого начала... Цитата:
Но всё же, как педант, не могу не отметить, что это, всё же, неверно. Даже если в данном случае это и не важно! Будучи преподавателем, я бы придрался... ![]() А вот, если бы массив A мы заполняли так: Код:
![]() |
|||
![]() |
![]() |
![]() |
#8 |
А может и не...
Участник клуба
Регистрация: 27.03.2010
Сообщений: 1,269
|
![]()
Только для квадратной матрицы, имеющей главную диагональ, достаточно и такого:
Код:
Перемешивай дело с бездельем и не сойдешь с ума...
|
![]() |
![]() |
![]() |
#9 |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]() |
![]() |
![]() |
![]() |
#10 | |
Пользователь
Регистрация: 05.11.2010
Сообщений: 25
|
![]()
Ребят, огромное спасибо, все получилось...Вот этот код, написанный Риндерой, получился:
Цитата:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Nero - ошибка драйвера DMA. ошибка CRC | NecRoMat | Софт | 5 | 09.05.2012 01:29 |
Это ошибка Delphi или моя ошибка??? | bloodeagle | Общие вопросы Delphi | 3 | 12.11.2009 15:26 |
Ошибка в статье = ошибка в рограмме. | Alex Cones | Общие вопросы Delphi | 14 | 29.07.2009 18:17 |
Ошибка в Аfor i:=1 to SI do. Пишит что ошибка в SI | Алексей_xXx | Помощь студентам | 2 | 29.05.2009 00:09 |
...Ошибка 101 (net::ERR_CONNECTION_RESET): Неизвестная ошибка... | infrared | Помощь студентам | 0 | 16.04.2009 17:44 |