IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> сумма элементов списка
сообщение
Сообщение #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.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






начала пробовать всякие варианты.....оказывается не верно,например, 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.

 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Rhinc Inc
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Mapина   сумма элементов списка   28.06.2007 17:25
volvo   function obrab(A:Tlist) : integer; var p: tlist; b…   28.06.2007 17:34
Mapина   function obrab(A:Tlist) : integer; var p: tlist; b…   28.06.2007 17:40
how long does it take lasix to w   Lupin Keflex   15.09.2021 16:32
volvo   Да, это тоже надо добавить... Я же говорю - не ком…   28.06.2007 18:06
Mapина   спасиб :)   28.06.2007 18:12
Mapина   начала пробовать всякие варианты.....оказывается н…   28.06.2007 19:11
azithromycin over the counter ca   Rhinc Inc   19.12.2021 3:32
volvo   Mapина, давай договоримся, что ты будешь ЧИТАТЬ то…   28.06.2007 19:32
Mapина   женщины глупые создания, особенно когда у них в ру…   28.06.2007 21:32
мисс_граффити   бедная Ада Лавлейс...   28.06.2007 22:40
lasix for dog without prescripti   Urolosin Y Propecia   1.11.2021 6:03
how long does it take for gabape   flomax cialis   5.12.2021 3:59
nishaknapp   Why not settling on games that is fun and at the s…   16.01.2023 6:24


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 5.05.2024 0:35
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name