|
Вопрос # 4 314/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
помогите решить пожалуйста простенькую задачку =)
Найти наибольшую сумму соседних элементов в массиве:
Z = (0.21,-1.6,3.15,21.9,4.18,12.9,-2.3,7.2,4.5,6.8,9.21,1.7,7.9,-2.4)
 |
Вопрос задал: SniEr (статус: Посетитель)
Вопрос отправлен: 14 июня 2010, 14:02
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Ну вот как-то так:
// Найти наибольшую сумму соседних элементов в массиве
function GetMaxSum(): Integer;
const
N = 14;
Z: array[0..N - 1] = (0.21, -1.6, 3.15, 21.9, 4.18, 12.9,
-2.3, 7.2, 4.5, 6.8, 9.21, 1.7, 7.9, -2.4);
var
Index, Temp: Integer;
begin
Result:= -MAXINT; // По умолчанию
for Index:= 0 to (N - 1) div 2 do
begin
Temp:= Z[2 * Index] + Z[2 * Index + 1];
if Temp > Result
then Result:= Temp;
end;
end;
З.Ы. АХТУНГ! Код не отлаживал, писал на коленке! Возможны баги!
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 14 июня 2010, 14:33
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 14 июня 2010, 17:02; участников в обсуждении: 3.
|
Толяныч (статус: 4-ый класс), 14 июня 2010, 16:11 [#1]:
А зачем так замысловато и, как мне кажется, неправильно?
Ведь, к примеру, -1.6 соседствует не только с 0.21, но и с 3.15 . А так перебор получается по паре значений, чего в условии не было.
|
|
SniEr (статус: Посетитель), 14 июня 2010, 16:12 [#2]:
блин мне в консоли делфи надо было((
|
|
min@y™ (статус: Доктор наук), 14 июня 2010, 16:45 [#3]:
Цитата (SniEr):
блин мне в консоли делфи надо было((
Ну и в чём проблема-то? Бер функцию и вставляй в программу.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
SniEr (статус: Посетитель), 14 июня 2010, 17:02 [#4]:
хех решил в итоге сам , вот какой код получился у меня =)
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
Z:array[1..14] of real =(0.21, -1.6, 3.15, 21.9, 4.18, 12.9,-2.3, 7.2, 4.5, 6.8, 9.21, 1.7, 7.9, -2.4) ;
max:real;
i,n:integer;
begin
max:=-100;
for i:=1 to 13 do
if z[i]+z[i+1]>max then max:=z[i]+z[i+1];
writeln(max);
readln;
{ TODO -oUser -cConsole Main : Insert code here }
end.
|
14 июня 2010, 21:49: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Алгоритмы, преобразования модератором Ерёмин А.А.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|