0 / 0 / 1
Регистрация: 07.01.2013
Сообщений: 57
|
||||||
1 | ||||||
Определить номера строк массива, содержащих только положительные элементы и найти среди них наибольший20.10.2013, 11:21. Показов 3560. Ответов 18
Метки нет Все метки)
(
Добрый день,написала программу но эта кнопка работает неправильно, неверно находит строки с положительными элементами, максимум тоже через раз считает:
Определить номера строк массива, содержащих только положительные элементы и найти среди них наибольший.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
20.10.2013, 11:21 | |
Ответы с готовыми решениями:
18
Определить номера строк массива, содержащих только положительные элементы Определить номера строк массива, содержащих только положительные элементы и найти среди них наименьший
Определить номера строк матрицы, содержащих только положительные элементы |
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 22
|
|
20.10.2013, 11:29 | 2 |
Давай определимся:
1. Какой у тебя массив одномерный или многомерный??? Просто вложенный цикл у тебя замудренный, сначала пробегаешься по одномерному, и тут же работаешь с многомерным....
0
|
0 / 0 / 1
Регистрация: 07.01.2013
Сообщений: 57
|
|
20.10.2013, 11:35 [ТС] | 3 |
У меня многомерный массив
Добавлено через 1 минуту Просто сначала я похожу по строкам чтоб индекс узнать
0
|
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 22
|
|
20.10.2013, 11:55 | 4 |
1. max - это максимальное значение. Присваивай ему изначально супер маленькое значание: -999999, а не первое значение строки, каждый раз при переходе на новую строку.
2. Пробегая по строкам и если в элементе строки имеется отрицательное значение, то просто выходи из текущего цикла по этой строке.(ничего не выводя в Edit) Думаю это сократит алгоритм.
0
|
0 / 0 / 1
Регистрация: 07.01.2013
Сообщений: 57
|
|
20.10.2013, 12:05 [ТС] | 5 |
А я ведь не могу знать в какой ячейке будет самое маленькое число, массив рандомно заполняется, поэтому я беру первую ячейку как бы предполагая что оно максимальное и дальше сравниваю остальные элементы
0
|
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 22
|
|
20.10.2013, 12:07 | 6 |
пришли процедурку в которой у тебя происходит генерация массива, я пришлю свой вариант кнопочки
![]()
0
|
0 / 0 / 1
Регистрация: 07.01.2013
Сообщений: 57
|
||||||
20.10.2013, 12:14 [ТС] | 7 | |||||
сам массив, n и m глобальные переменные
0
|
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 22
|
|
20.10.2013, 12:35 | 8 |
Как то так, только генерируется массив всегда с отрицательным элементом
![]() procedure TForm1.Button1Click(Sender: TObject); var i,j,m,n,max,flag:Integer; begin n:=10 ; m:=10; for i:=0 to n-1 do begin max:=-999999999;//наименьшее число flag:=0;//флаг положительности элементов в строке for j:=0 to m-1 do begin if ((D[i,j]>max) and (D[i,j]>0))then max := D[i,j]; // Если больше 0 и больше наименьшего нашего числа if (D[i,j]) <0 then begin flag:=1;Break;end; //если в строке обнаружился отрицательный элемент выходим и флаг ставим 1 end; //Если отрицательных элементов нет, выводим результат if (flag=0) then Memo1.Lines.Add('Строка без отрицательных элементов: '+ inttostr(i)+ ' Максимальный элемент: '+inttostr(max)); end; end; Добавлено через 3 минуты принудительно сделал положительный массив и вставил отрицательные элементы, вроде работает: D[i,j]:= Random(100); D[0,0]:=-10;
0
|
0 / 0 / 1
Регистрация: 07.01.2013
Сообщений: 57
|
|
20.10.2013, 12:46 [ТС] | 9 |
индексы считает теперь верно.но с максимумом что то не так, я так понимаю что максимум нужно найти в той строке где все элементы положительные,но так не получалось поэтому я в каждой строке выводила максимум
0
|
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 22
|
|
20.10.2013, 12:49 | 10 |
теперь все верно??? У меня не должно выводиться максимум в строке с отрицательным значением хотя бы одного элемента
0
|
0 / 0 / 1
Регистрация: 07.01.2013
Сообщений: 57
|
|
20.10.2013, 12:53 [ТС] | 11 |
вот я скрин сделала ,0 строка отрицательная но тут выводит максимум , а во второй строке непонятно что выводит
0
|
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 22
|
|
20.10.2013, 13:04 | 12 |
что то вы не так выводите, у меня вроде все верно, но может я не верно понял суть задания....
0
|
0 / 0 / 1
Регистрация: 07.01.2013
Сообщений: 57
|
|
20.10.2013, 13:05 [ТС] | 13 |
Я оставлю так,пусть тогда во всех считает строках, не получается чтоб отрицательные не считал,спасибо)
0
|
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 22
|
|
20.10.2013, 13:08 | 14 |
Да нет не должен считать в отрицательных, у меня же в цикле стоит, что при нахождении отрицательно значения происходит выход из цикла. Как тут скриншот вставить ??? Покажу как у меня отработал цикл с вашим набором значений
0
|
0 / 0 / 1
Регистрация: 07.01.2013
Сообщений: 57
|
|
20.10.2013, 13:09 [ТС] | 15 |
на панели инструментов скрепка
0
|
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 22
|
|
20.10.2013, 13:10 | 16 |
0
|
0 / 0 / 1
Регистрация: 07.01.2013
Сообщений: 57
|
||||||
20.10.2013, 13:16 [ТС] | 17 | |||||
У меня вот в таком виде записан,в принципе все как и у вас я только не в мемо, а в едит вывожу и все
Да, у вас верно считает
0
|
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 22
|
||||||
20.10.2013, 13:20 | 18 | |||||
Не обернули, поэтому Edit4.Text:=Edit4.Text+' '+inttostr(max); выполняется всегда , а не по условию
0
|
0 / 0 / 1
Регистрация: 07.01.2013
Сообщений: 57
|
|
20.10.2013, 13:23 [ТС] | 19 |
все теперь не считает отрицательные,спасибо огромное вам
![]()
0
|
20.10.2013, 13:23 | |
Помогаю со студенческими работами здесь
19
В двумерном массиве определить номера строк, содержащих только положительные элементы
В матрице найти номера строк, содержащих только нулевые элементы, и номера строк, содержащих только чётные элементы, Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |