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

> ВНИМАНИЕ!

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

 
 Ответить  Открыть новую тему 
> Динамический список, Подсчитать сумму первых пяти элементов
forMator
сообщение 17.05.2007 18:25
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


Привет всем!! Дан динамический список. Нужно найти сумму пяти первых элементов. Подскажите почему сумма считается неправильно!!??

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type pspis=^spisok;
spisok=record
data:integer;
next:pspis;
end;
Var i,n,a:integer;
x,y,u:pspis;
s:integer;
begin
  { TODO -oUser -cConsole Main : Insert code here }
  s:=0;
  u:=nil;
  write('n=');readln(n);
  for i:=1 to n do begin
  new(Y);
  WRITE('a=');readln(a);
  y^.data:=a;
  y^.next:=nil;
  if u=nil then u:=y else x^.next:=y;
  x:=y;
  end;
  writeln('vvedennii spisok:');
  y:=u;
  while y<>nil do begin
  writeln(y^.data);
 for i:=1 to n do 5 s:=s+y^.data;  ----мне кажется что здесь моя ошибка!!
  y:=y^.next;
  end;
  writeln('сумма=',s);
  readln;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.05.2007 18:37
Сообщение #2


Гость






writeln('vvedennii spisok:');
y:=u;
{ Сначала закончи выводить список... }
while y<>nil do begin
  writeln(y^.data);
  y := y^.next;
end;
{ ... а потом - будешь считать: }
y := u;
for i:=1 to n do begin
  s:=s+y^.data;
  y:=y^.next;
end;
writeln('сумма=',s);

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


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


Спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
forMator
сообщение 23.05.2007 13:19
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


А как в динамическом списке подсчитать сумму элементов больших 1-го элемента?
У меня не получается. Помогите пожалуйста.


Program project1;
type pspis=^spisok;
spisok=record
data:nteger;
next:pspis;
end;
Var s,k,i,n,a:integer;
x,y,u:pspis;
begin
u:=nil; k:=0; s:=0;
write('n='); readln(n);
for i:=1 to n do begin
new(y);
write('a='); readln(a);
y^.data:=a;
y^.next:=nil;
if u=nil then u:=y else x^.next:=y;
x:=y;
end;
writeln('vvedennii spisok:');
y:=u;
while y<>nil do begin
writeln(y^.data);
k:=k+1;
if k=1 then a:=y^.data;
if y^.data>a then s:=s+y^.data;
y:=y^.next;
end;
writeln('s=',s);
readln;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.05.2007 13:24
Сообщение #5


Гость






Чего ж не получается? Все нормально считает...
 К началу страницы 
+ Ответить 
forMator
сообщение 23.05.2007 13:29
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


Ошибся немного... Значит, работает. Это невнимательность. Спасибо большое!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 

- Текстовая версия 26.07.2025 9:18
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"