![]() |
Прежде чем задать вопрос, смотрите 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. |
![]() ![]() |
![]() |
Текстовая версия | 22.06.2025 11:41 |