Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2011, 16:06   #1
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию Список

Создать список из целых чисел.
Подсчитать сумму чисел попадающих в заданый интервал.

Прошу помочь с проблемкой, а возникла она когда в условии ( если задумка конечно правильная ) я пытаюсь посчитать сумму элементов попадающих в заданый интервал.( выделил черным )
Код:
Program list;
Uses crt;

type
  listing=^N;
  N=record
  data: integer;
  next: listing;
end;
var
  current: listing;
  number: integer;
  head: listing;
  sum: integer;

begin
clrscr;
repeat
  write('Number=');readln(number);
  New(current); current^.data:=number; current^.next:=head;
Until number=0;
writeln('---List---');
current:=head;
sum:=0;
while current<>nil do begin
  if current in ['5'..'9'] then begin sum:=sum+current;
  write(' ',current^.data);
  current:=current^.next;
  writeln(sum);
  end
  else writeln('There is no numbers matching this array');
end;
readln;
end.
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 17.12.2011, 16:08   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

вот так должно быть вроде как
Код:
if current^.data in [5..9] then begin sum:=sum+current^.data;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 17.12.2011 в 16:12.
Mad_Cat вне форума Ответить с цитированием
Старый 17.12.2011, 16:17   #3
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Хм. Возможно я что-то неправильно написал ?

Работает, но выводит интересные числа.

На входе скажем:

9
6
3
2
0

На выходе:

0268

Код:
Program list;
Uses crt;

type
  listing=^N;
  N=record
  data: integer;
  next: listing;
end;
var
  current: listing;
  number: integer;
  head: listing;
  sum: integer;

begin
clrscr;
repeat
  write('Number=');readln(number);
  New(current); current^.data:=number; current^.next:=head;
Until number=0;
writeln('---List---');
current:=head;
sum:=0;
while current<>nil do begin
  if current^.data in [5..9] then begin sum:=sum+current^.data;
  write(' ',current^.data);
  current:=current^.next;
  writeln(sum);
  end
  else writeln('There is no numbers matching this array');
end;
readln;
end.
Люблю на ты.Я человек простой

Последний раз редактировалось Leshii; 17.12.2011 в 16:24.
Leshii вне форума Ответить с цитированием
Старый 17.12.2011, 16:19   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
Сообщение от Leshii Посмотреть сообщение
Код:
if current^.data in ['5'..'9']  _ then begin sum:=sum+current^.data;
Там где нижнее подчеркивание выскочило теперь \Type Mismatch\.
у тя data integer а множество char! как исправить знаешь?
по сабжу
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 17.12.2011, 16:26   #5
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Сорри. Я уже выше исправился.
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 17.12.2011, 17:11   #6
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Спасибо mad_cat. Разобрался. Код ниже.

Код:
Program list;
Uses crt;

type
  listing=^N;
  N=record
  data: integer;
  next: listing;
end;
var
  current: listing;
  number: integer;
  head: listing;
  sum: integer;

begin
clrscr;
repeat
  write('Number=');readln(number);
  New(current); current^.data:=number; current^.next:=head;
  head:=current;
Until number=0;
writeln('---List---');

current:=head;
sum:=0;
while current<>nil do begin
  write(' ',current^.data);
  current:=current^.next;
writeln;
if current^.data in [5..9] then begin sum:=sum+current^.data; end;
  writeln(sum);
end;
readln;
end.
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Список с заглавным звеном, из текстового файла получить список из записей и по нему уже сделать задание Zigfried Помощь студентам 2 04.10.2010 20:29
связать список строк и список целых чисел lirikoff Помощь студентам 5 31.08.2010 13:23
C++. Односвязный список. Уничтожить список Olya90 Помощь студентам 2 10.06.2009 18:52
Данные-проверка-список (список на другом листе) Inbox Microsoft Office Excel 7 26.12.2008 01:43