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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2019, 18:40   #1
Илья_ter
 
Регистрация: 14.01.2019
Сообщений: 4
По умолчанию Поиск нулей в динам массиве

Как в динамическом массиве выполнить поиск нулей кроме главной диагонали и записать их индексы. Причем когда нашли первый 0 в строке, то тут же переходим на следующую строку, дальше так же по всем строкам. А потом в другом динамическом массиве с числами, выполнить сумму чисел по записанным индексам. Пожалуйста помогите, не получается

Код:
procedure TForm1.Button8Click(Sender: TObject);
begin
For i:=0 to n-1 do
  For j:=0 to m-1 do
p:=0;
begin
if (i=j) then p:=2 else p:=1;
While (p<m) and (a[i,j]<>0) do inc(p);
If (p<m) then
k:=a[i,j];
inc(p);
begin
a:=in_mas;
n:=StringGrid1.ColCount;
m:=StringGrid1.RowCount;
For i:=0 to n-1 do
  For j:=0 to m-1 do
a[i,j]:=k;
a[i,j]:=k+k;
end;
edit1.Text:=inttostr(k)+'+'+inttostr(k);
end;
end;
Илья_ter вне форума Ответить с цитированием
Старый 14.01.2019, 18:41   #2
Илья_ter
 
Регистрация: 14.01.2019
Сообщений: 4
По умолчанию

Код:
a:=in_mas;
это я вернулся к другому массиву
Илья_ter вне форума Ответить с цитированием
Старый 14.01.2019, 21:11   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Мож у меня что с глазами - я в упор не вижу тут ни одного динамического массива. Спископипастено откуда-то что-то отдаленно похожее -- и "сделайте мне из этого что-то то, что мне задано, и не говорите, что я не представил исходный код." StringGrid-ы с каких краев взялись ?

Последний раз редактировалось digitalis; 14.01.2019 в 21:28.
digitalis вне форума Ответить с цитированием
Старый 14.01.2019, 21:18   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Там вообще код странный.
Код:
For i:=0 to n-1 do
  For j:=0 to m-1 do
p:=0;
Зачем р кучу раз обнулять?

Код:
begin
if (i=j) then p:=2 else p:=1;
Зачем бегин? Зачем сравнивать i и j после цикла. Зачем р обнулять, если его переприсваивают.

Очерелной бессмысленный бегин.

Код:
a[i,j]:=k+k;
Смысл вне цикла?..
p51x вне форума Ответить с цитированием
Старый 14.01.2019, 21:22   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Дык я ж и говорю - взято из сети какое-то бессмысленное мычание - а теперь: "ребяты, по быстрому сделайте мне из этой ###ни нужную мне прогу завтра к зачету!" .
Чем засорять форум такой... <censored> - Не лучше ли открыть в той же сети обучалку на тему: Динамические массивы? И пальцы меньше мозолить, и голове польза возможна хотя вряд ли
http://konspect.blogspot.com/2012/02...in-delphi.html

Последний раз редактировалось digitalis; 14.01.2019 в 21:26.
digitalis вне форума Ответить с цитированием
Старый 15.01.2019, 08:48   #6
Илья_ter
 
Регистрация: 14.01.2019
Сообщений: 4
По умолчанию

Да это я главную диагональ обхожу (i=j) , p переменная поиска нулей
Илья_ter вне форума Ответить с цитированием
Старый 15.01.2019, 10:27   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Так не обходите же. Это условие вне цикла. Да и зачем p вообще при таком условии, а тем более проводить с ним такие операции... Вообще нужен один двойной цикл с бреком и условием, что элемент равен 0 и не лежит на диагонали.
p51x вне форума Ответить с цитированием
Старый 15.01.2019, 11:12   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

ТС же не понимает для чего begin end нужно )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.01.2019, 09:23   #9
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Итого: паскаль или делфи?
как вводим массив?
где инициализация через setlength()?
можете нормально ТЗ расписать, а не своими словами?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 17.01.2019, 15:18   #10
Илья_ter
 
Регистрация: 14.01.2019
Сообщений: 4
По умолчанию

Смотри, файл. Тут 2 таблицы. Ищем в правой нули, но только первый попавшийся в строке и запишем его индекс. И далее по строкам. В левой таблице, на тех же индексах выполнить сумму.
Вот заполним массив таблицей с нулями а дальше тогда как?..

Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
sum:=0;
p:=0;
m:=StringGrid2.RowCount; //кол.строк
n:=StringGrid2.ColCount; //кол.столбцов
Setlength(a,m,n);
  a[i,j]:=StrToInt(StringGrid2.Cells[j,i]);//заполним массив
...
Изображения
Тип файла: jpg bandicam 2019-01-17 15-08-23-990.jpg (49.0 Кб, 54 просмотров)
Илья_ter вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск не пересекающихся нулей в матрице Armageddets Помощь студентам 10 04.11.2014 12:08
Delhhi. Графики ф-ий. Поиск нулей Nasty1 Помощь студентам 0 02.04.2012 21:42
посчитать количество нулей в массиве melie91 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 22.02.2011 13:49
Матрица n*n и поиск нулей. Avus Общие вопросы Delphi 2 20.12.2010 15:46
В массиве G(6;8) определить номер столбца с наименьшим количеством нулей. Катюня Помощь студентам 2 21.01.2009 06:26