![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Mapина |
![]() ![]()
Сообщение
#1
|
Гость ![]() |
Необходима только правильная функция обработки( function obrab), остальное есть!
Вычислите сумму тех элементов списка, значения которых меньше значений всех элементов, непосредственно следующих за ним. Код program un_list; {$APPTYPE CONSOLE} uses SysUtils, Windows; type TElem = byte; TList = ^Zveno; Zveno = record inf : Telem; next : TList; end; var list: TList; procedure initList (var A : TList); begin A:=nil; end; procedure V_konev (var A : TList; el : TElem); var tmp : TList; p : TList; begin new(tmp); tmp^.inf:=el; tmp^.next:=nil; if A=nil then A:=tmp else begin p:=A; while p^.next<>nil do p:=p^.next; p^.next:=tmp; end; end; procedure Input(var A : TList); var tmp : TElem; begin write('Вводи элементы: '); initList(A); while not eoln do begin read(tmp); V_konev(A, tmp); end; readln; end; procedure clearList (var A : TList); var temp : TList; begin while A<>nil do begin temp:=A; A:=A^.next; dispose(temp); end; end; function obrab(A:Tlist) : integer; {неверная функция обработки} begin result := 0; if a <> nil then while a^.next <> nil do begin if a^.inf < a^.next^.inf then result := result + a^.inf; a := a^.next; end; end; begin setConsoleCP(1251); setConsoleOutputCP(1251); Input(list); writeln('Сумма требуемых эл-ов : ',obrab(list)); clearList(list); readln; end. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
function obrab(A:Tlist) : integer;Набирал прямо здесь - могут быть глюки, но идея именно такая... Последний элемент списка будет суммироваться, если не нужно - надо ставить доп. условие... |
Mapина |
![]()
Сообщение
#3
|
Гость ![]() |
function obrab(A:Tlist) : integer; надо кажется ещё в var good: boolean;да? |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Да, это тоже надо добавить... Я же говорю - не компилировал.
|
Mapина |
![]()
Сообщение
#5
|
Гость ![]() |
спасиб
![]() |
Mapина |
![]()
Сообщение
#6
|
Гость ![]() |
начала пробовать всякие варианты.....оказывается не верно,например, 2 3 4 1 5.....выводит результат 6(2+3+1), а должен 1, потому как после 2 и 3 есть 1, элемент, который меньше их!
program un_list; |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Mapина, давай договоримся, что ты будешь ЧИТАТЬ то, что тебе пишут! Я предупреждал, что:
Цитата Последний элемент списка будет суммироваться, если не нужно - надо ставить доп. условие... Сделай вот так: function obrab(A:Tlist) : integer;- не будет считать последний элемент... Сообщение отредактировано: volvo - 28.06.2007 15:32 |
Mapина |
![]()
Сообщение
#8
|
Гость ![]() |
женщины глупые создания, особенно когда у них в руках техника, которую придумали мужчины! а я типичная женщина...
спасибо, очень тебе благодарна! |
мисс_граффити |
![]()
Сообщение
#9
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Цитата женщины глупые создания, особенно когда у них в руках техника, которую придумали мужчины! бедная Ада Лавлейс... -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
![]() ![]() |
![]() |
Текстовая версия | 22.06.2025 23:23 |