|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
поиск двух соседних элементов массива
Здравствуйте уважаемые пользователи форума Delphi Sources.
Я хочу обратиться к вам за помощью, она заключается в разработке программы поиска двух соседних элементов массива, сумма которых максимальна(тема курсовой работы). Самому сделать что то подобное мне даже близко не удалось, я очень надеюсь на вас. Ибо курсовую работу сдавать уже завтра. |
#2
|
||||
|
||||
Если нет желания самому что-то делать и разбираться - добро пожаловать в раздел форума "Работа".
Если есть - пробуй, ищи в гугле статьи, примеры, пиши, пиши, пиши, - и когда совсем зайдешь в тупик, выкладывай наработки и спрашивай, "что не правильно". Подсказка для самостоятельного написания: проходишь по массиву, складываешь во временной переменной текущий и следующий элементы, если эта сумма больше текущего максимума - сохраняешь как максимум и запоминаешь текущий индекс. З.Ы. программу такой сложности можно в почти готовом виде в гугле найти (найти похожее и по аналогии сделать). Даже странно, что это - курсовая. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 27.05.2012 в 15:36. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
Esterlen (27.05.2012)
|
#3
|
|||
|
|||
Цитата:
К сожалению поиски ни к чему дельному не привели (У меня слишком маленькие познания в сфере программирования в среде Delphi 7 чтобы сделать по аналогии чего либо). Программирование - это не профильный предмет видимо поэтому тема курсового проекта кажется вам "странной". Все таки было очень круто если бы кто то из участников форума написал бы код, тем более такого простого. Для таких специалистов как вы не должно составить никого труда. Спасибо за ответ Последний раз редактировалось Esterlen, 27.05.2012 в 15:52. |
#4
|
||||
|
||||
Цитата:
Мало кто станет тратить время просто потому, что студент ничего не делал по предмету в семестре. Подсказку (а вернее весь алгоритм) я уже написал. От Вас остается только переписать то же самое на делфи. Если в семестре хоть что-нибудь делали - труда не составит. jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
|||
|
|||
Цитата:
уважаемым людям завтра на работу,а седня они отдыхают |
#6
|
|||
|
|||
Цитата:
А в чем проблема? Грубо, алгоритм очень простой. Сначала проходишь по массиву и создаешь новый массив, состоящий из сумм соседних элементов (ну и индексы запоминаешь, т.е. у тебя элементом нового массива будет запись, состоящая из значения суммы и 2х индексов). Ну а потом в получившемся массиве ищешь макс. элемент по значению суммы. Тут можно оптимизировать, что бы считать за один проход, т.е. просто запоминать макс. значение прямо в процессе поиска, т.к. мы рассматриваем только сумму соседних элементов. |
#7
|
||||
|
||||
навскидку:
Код:
procedure TForm1.Button1Click(Sender: TObject); var M : array [0..9] of integer; i,fEidx, sEidx, newS, oldS :integer; begin oldS:=0; Label1.Caption:=''; for i:=0 to Length(M)-1 do begin randomize; M[i]:=random(1000); Label1.Caption:=Label1.Caption+'|'+IntToStr(M[i]); end; for i:=1 to Length(M)-1 do begin newS:=M[i-1]+M[i]; if oldS<newS then begin oldS:=newS; fEidx:=i-1; sEidx:=i; end; end; ShowMessage(IntToStr(fEidx)+'('+IntToStr(M[fEidx])+')'+'+'+IntToStr(sEidx)+'('+IntToStr(M[sEidx])+')='+IntToStr(oldS)); end; Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|