| 
| 
 | Вопрос # 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 » Алгоритмы, преобразования модератором Ерёмин А.А. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |