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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2015, 18:56   #21
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от GreenWizard Посмотреть сообщение
и теряешь корень списка....
ух ты. убрал в начале p:=nil; бесконечности не наблюдаю. выводит содержимое, но при вводе нового значения ничего не происходит. не могу понять почему он не сохраняет и не выводит второе значение. первое сохранил и всё. потом пусто
SanekWK вне форума Ответить с цитированием
Старый 29.08.2015, 19:03   #22
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
на memo1.Lines.Append(...
Цитата:
я настолько безнадежен?
Полный код в студию - оценим по шкале Дурихтера
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.08.2015, 19:04   #23
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Цитата:
Сообщение от SanekWK Посмотреть сообщение
я настолько безнадежен?
вот давай без нытья))) опасно это)
запомни: если что-то не работает и ты не понимаешь вообще код, то бери лист бумаги и вручную обсчитывай каждую строку кода!
ты добавляешь узел верно, но перед этим пишешь p := nil и теряешь ранее добавленные узлы
кроме того, как заметил Stillet, ты пишешь "memo1.Text := ......" и каждый раз стираешь старые значения..... напиши memo1.Lines.Add(.......)
GreenWizard вне форума Ответить с цитированием
Старый 29.08.2015, 19:18   #24
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
на memo1.Lines.Append(...
Полный код в студию - оценим по шкале Дурихтера
строго не судите, могу добавить коментарии
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
    TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    RadioButton5: TRadioButton;
    Label2: TLabel;
    RadioButton6: TRadioButton;
    RadioButton7: TRadioButton;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    memo1: TMemo;
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }

  end;
  pnode=^node;
  node=record
  next:pnode;
  age:Integer;
  isMJ:Boolean;
  education:Byte;
  vopros:Boolean;
  end;
var
  Form1: TForm1;
  shet,code,qq:Integer;
  p,q,t:pnode;
implementation
{$R *.dfm}
procedure TForm1.Button3Click(Sender: TObject);
begin
   Form1.Close;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 Val(Edit1.Text,qq,code);
 if code=0 then
 begin
 New(q);
 q^.age:=StrToInt(Edit1.Text);
 q^.next:=nil;
 if p=nil then p:=q
 else
 begin
 t:=p;
 while t^.next<>nil do
 t:=t^.Next;
 t^.Next:=q;
 end;
 end

 else
 ShowMessage('Îøèáêà');
end;
procedure TForm1.Button2Click(Sender: TObject);
var t:pnode;
begin
  t:=q;
 if t=nil then ShowMessage('ÏÓñòîé ëèñò')
 else
 begin
  while (t<>nil) do begin
 memo1.Lines.add(FloatToStr(t.age));
 t:=t^.next;
 end;
end;

end;
end.
Цитата:
Сообщение от GreenWizard Посмотреть сообщение
вот давай без нытья))) опасно это)
запомни: если что-то не работает и ты не понимаешь вообще код, то бери лист бумаги и вручную обсчитывай каждую строку кода!
ты добавляешь узел верно, но перед этим пишешь p := nil и теряешь ранее добавленные узлы
кроме того, как заметил Stillet, ты пишешь "memo1.Text := ......" и каждый раз стираешь старые значения..... напиши memo1.Lines.Add(.......)
блин, вписал да, теперь он выводит только последнее сохранённое. например я три раза ввожу возраст: 12 жму кнопку первую, на которой весь код button3click, еще раз ввожу какой нибудь возраст и так далее. потом жму кнопку на вывод в memo и он выводит только последнее число

вот програмка с исходниками
Вложения
Тип файла: zip Новая папка (2).zip (210.2 Кб, 6 просмотров)

Последний раз редактировалось Stilet; 29.08.2015 в 19:42.
SanekWK вне форума Ответить с цитированием
Старый 29.08.2015, 19:30   #25
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 Val(Edit1.Text,qq,code);
 if code=0 then
 begin
 New(q);
 q^.age:=StrToInt(Edit1.Text);
 q^.next:=nil;
 if p=nil then p:=q
 else
 begin
 t:=p;
 while t^.next<>nil do
 t:=t^.Next;
 t^.Next:=q;
 end;
 end

 else
 ShowMessage('Îøèáêà');
end;
%*№!!!!!! ты тут один код постишь, а у себя пишешь другой? откуда тут проход, ещё и такой корявый?

ты же писал:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 p:=nil; <= это убрать и тут всё более-менее верно будет
 Val(Edit1.Text,qq,code);
 if code=0 then
 begin
 New(q);
 q^.age:=StrToInt(Edit1.Text);
 q^.next:=p;
 p:=q;
 end
 else
 ShowMessage('ohibka');
end;

Последний раз редактировалось GreenWizard; 29.08.2015 в 19:33.
GreenWizard вне форума Ответить с цитированием
Старый 29.08.2015, 19:33   #26
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от GreenWizard Посмотреть сообщение
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 Val(Edit1.Text,qq,code);
 if code=0 then
 begin
 New(q);
 q^.age:=StrToInt(Edit1.Text);
 q^.next:=nil;
 if p=nil then p:=q
 else
 begin
 t:=p;
 while t^.next<>nil do
 t:=t^.Next;
 t^.Next:=q;
 end;
 end

 else
 ShowMessage('Îøèáêà');
end;
%*№!!!!!! ты тут один код постишь, а у себя пишешь другой? откуда тут проход, ещё и такой корявый?
это я подкорректировал) не могу понять просто смысл основной. до меня вообще что то долго доходит. ни книг ни учебников. в паскале одно пишут. на форуме другое

Последний раз редактировалось SanekWK; 29.08.2015 в 19:37.
SanekWK вне форума Ответить с цитированием
Старый 29.08.2015, 19:37   #27
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

что тебе сказать? нужно просто сесть и разобраться.
GreenWizard вне форума Ответить с цитированием
Старый 29.08.2015, 19:38   #28
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от GreenWizard Посмотреть сообщение
что тебе сказать? нужно просто сесть и разобраться.
по пальцам можешь обьяснить как односвязный линейный список организовать, сохранить в него данные и вывести его весь на экран. ) Я то что моими криворучками написано выложил, открыть можете у себя
SanekWK вне форума Ответить с цитированием
Старый 29.08.2015, 19:42   #29
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
Радость

Цитата:
Сообщение от SanekWK Посмотреть сообщение
вот програмка с исходниками
вот гляньте если не сложно, названия кнопок правда не совпадают. но это мелочи
SanekWK вне форума Ответить с цитированием
Старый 29.08.2015, 19:42   #30
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пример в 13-м посте не помог?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с лабой Rainb0wDash Помощь студентам 9 17.10.2013 15:57
Компонент StringBox: двойной TStringList apromix Компоненты Delphi 0 25.06.2010 23:00