Необходима только правильная функция обработки( function obrab), остальное есть!
Вычислите сумму тех элементов списка, значения которых меньше значений всех элементов, непосредственно следующих за ним.
function obrab(A:Tlist) : integer;Набирал прямо здесь - могут быть глюки, но идея именно такая... Последний элемент списка будет суммироваться, если не нужно - надо ставить доп. условие...
var p: tlist;
begin
result := 0;
while a <> nil do begin
good := true;
p := a^.next;
while (p <> nil) and good do begin
if p^.inf <= a^.inf then good := false;
else p := p^.next;
end;
if good then result := result + a^.inf;
a := a^.next;
end;
end;
function obrab(A:Tlist) : integer;
var p: tlist;
begin
good: boolean;да?
Да, это тоже надо добавить... Я же говорю - не компилировал.
спасиб
начала пробовать всякие варианты.....оказывается не верно,например, 2 3 4 1 5.....выводит результат 6(2+3+1), а должен 1, потому как после 2 и 3 есть 1, элемент, который меньше их!
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;
var p: tlist;
good: boolean;
begin
result := 0;
while a <> nil do
begin
good := true;
p := a^.next;
while (p <> nil) and good do
begin
if p^.inf <= a^.inf then good := false
else p := p^.next;
end;
if good then result := result + a^.inf;
a := a^.next;
end;
end;
begin
setConsoleCP(1251);
setConsoleOutputCP(1251);
Input(list);
writeln('Сумма: ',obrab(list));
clearList(list);
readln;
end.
Mapина, давай договоримся, что ты будешь ЧИТАТЬ то, что тебе пишут! Я предупреждал, что:
function obrab(A:Tlist) : integer;- не будет считать последний элемент...
var p: tlist;
good: boolean;
begin
result := 0;
while a <> nil do
begin
p := a^.next;
good := (p <> nil);
while (p <> nil) and good do
begin
if p^.inf <= a^.inf then good := false
else p := p^.next;
end;
if good then result := result + a^.inf;
a := a^.next;
end;
end;
женщины глупые создания, особенно когда у них в руках техника, которую придумали мужчины! а я типичная женщина...
спасибо, очень тебе благодарна!
Lupin Keflex
Urolosin Y Propecia
flomax cialis
Rhinc Inc
Why not settling on games that is fun and at the same time your earning. Well it'll make suspense because the game is well but dude just try it and it gave me hope while pandemic is real rn. https://iwatchmarkets.com/21/5-positive-effects-of-playing-online-casino-games/