Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите исправить код 
:(
    Опции темы
Truegirl
Дата 6.12.2009, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 20.11.2008

Репутация: нет
Всего: нет



по заданию надо разделить список на 2. в первом четные элементы, во втором нечетные. проблема в том что в списках добавляется 0, а я не пойму почему, кто знает как  исправить помогите пожалуйста

Код

program Project1;

type  Pe=^TypElem;
      TypElem=record
        t: integer;
        p: pe;
      end;

      TypChet=record
        t: integer;
        p: pe;
      end;

      TypNeChet=record
        t2: integer;
        p2: pe;
      end;

var Elem, nach1, che, nach2, nechet, nach3: Pe;
    ch: char;

begin
  New(Elem);
  nach1:=Elem;
  Elem^.p:=elem;
  while elem <> nil do
  begin
    writeln('Vvedite chislo: ');
    readln(elem^.t);
    write('povtorit vvod? (y/n) ');
    readln(ch);
    if (ch='n')or(ch='N') then elem:=nil
    else begin
      new(elem^.p);
      elem:=elem^.p;
    end;
  end;

  writeln('dannie spiska: ');
  elem:=nach1;

  New(che);  nach2:=che;

  New(nechet);  nach3:=nechet;

  while elem<>nil do
  begin

    if (elem^.t mod 2=0) then
    begin
      che^.t:=elem^.t;
      New(che^.p);
      che:=che^.p;
    end else
    begin
      nechet^.t:=elem^.t;
      New(nechet^.p);
      nechet:=nechet^.p;
    end;

    write(Elem^.t:5);
    elem:=elem^.p;

  end;


  che:=nil;    nechet:=nil;

  writeln;
  writeln('----------------------');
  Writeln('Chetnii spisok: ');
  che:=nach2;

  repeat
    Write(che^.t:5);
    che:=che^.p;
  until che=nil;

  writeln;
  writeln('----------------------');
  writeln('ne chetnii spisok: ');
  nechet:=nach3;
  while nechet<>nil do
  begin
    Write(nechet^.t:5);
    nechet:=nechet^.p;
  end;
  

  readln;
end.


PM MAIL   Вверх
kuzyara
Дата 7.12.2009, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 13.11.2006

Репутация: нет
Всего: 1



учись отлаживать свой код. Разбей программу на несколько основных блоков, и выводи информацию после каждого о том, какие действия этот блок сделал. С этими указателями очень легко запутаться. То есть опеделись, на каком этапе подкрадываютя нули: на вводе, на раделении или на выводе. Рекомендую сделать одну процедуру, которая выводит весь список на экран, и с помощью неё легко можно будет обнаружить, на каком этапе ошибка.

Добавлено через 11 минут и 50 секунд
Цитата(Truegirl @  7.12.2009,  03:02 Найти цитируемый пост)
    if (elem^.t mod 2=0) then
    begin
      che^.t:=elem^.t;
      New(che^.p);
      che:=che^.p;
    end else
    begin
      nechet^.t:=elem^.t;
      New(nechet^.p);
      nechet:=nechet^.p;
    end;

а вообще, по моему создавать новый элемент четного/нечетного списка нужно не после присваивания, а до него. И наче по выходу из цикла у тебя в конце останется один элемент, которому ты так и не присвоила никакого значеиня.
--------------------
подпись
PM MAIL   Вверх
Grizzzli
Дата 15.12.2009, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.5.2009

Репутация: нет
Всего: нет



надо исправлять

Это сообщение отредактировал(а) Grizzzli - 15.12.2009, 01:55
PM MAIL   Вверх
Truegirl
Дата 15.12.2009, 01:58 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 20.11.2008

Репутация: нет
Всего: нет



Все-таки все равно не пойму что не правильно и как это исправить, помогите очень надо!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0385 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.