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

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

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

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

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

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

Цитата:
Сообщение от Stilet Посмотреть сообщение
И у тебя это получилось. Твой код записывает значение в список. По крайней мере этот участок кода, что ты выложил.
но забиндив кнопочку на вывод

PHP код:
var next:pnode;
begin
 ShowMessage
(IntToStr(next^.age));
end
получаю
Изображения
Тип файла: jpg Безымянный.jpg (94.9 Кб, 97 просмотров)
SanekWK вне форума Ответить с цитированием
Старый 23.08.2015, 19:12   #12
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Цитата:
Сообщение от SanekWK Посмотреть сообщение
Вот к примеру, я хочу записать значение возраста в список.
Код:
begin
 Val(Edit1.Text,q,code);
 if code=0 then
 begin
 New(next);
 next^.age:=StrToInt(Edit1.text);
 end
else ShowMessage('Çàïîëíèòå âñå ïîëÿ!');
1) это лишь создание в памяти экземпляра записи о человек, но не сохранение в список
2) запись хранит всю информацию о человеке, поэтому нельзя добавить один возраст..... псевдокод:
Код:
валидация ВСЕХ данных
если всё ок, то:
  1)  создать новую запись (New(tmp))
  2) заполнить все поля (tmp^.Age и т.д.)
  3) добавить tmp в список (в конец желательно)
у тебя нет п.3 и нужно объединить валидацию и сохранение всех данных т. е. нажали кнопку "добавить" - добавили одну "личность" в список
кроме того, тебе нужно будет перед выходом уничтожить список
в основе всех этих операций лежит прямой проход по списку, код которого я выше приводил

Цитата:
Сообщение от SanekWK Посмотреть сообщение
но забиндив кнопочку на вывод

PHP код:
var next:pnode;
begin
 ShowMessage
(IntToStr(next^.age));
end
получаю
сам написал "var nextnode;" т. е. это ДРУГАЯ совсем переменная
как минимум, перенеси её на место после Form1: TForm1, чтоб она стала глобальной и одной на всю программу

Последний раз редактировалось Stilet; 23.08.2015 в 19:37.
GreenWizard вне форума Ответить с цитированием
Старый 23.08.2015, 19:39   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

SanekWK, могу я тебе порекомендовать такой пример для разбора?:
http://www.programmersforum.ru/showthread.php?t=87357
То, что написал ты конечно же не годится хотя бы потому, что ты используешь не глобальную переменную для вывода значения из списка, и уверен что наполняешь его тоже не правильно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.08.2015, 18:22   #14
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
По умолчанию

Спасибо вам что мучаетесь со мною. буду пытаться. до меня маленько доходит

Цитата:
Сообщение от Stilet Посмотреть сообщение
SanekWK, могу я тебе порекомендовать такой пример для разбора?:
http://www.programmersforum.ru/showthread.php?t=87357
То, что написал ты конечно же не годится хотя бы потому, что ты используешь не глобальную переменную для вывода значения из списка, и уверен что наполняешь его тоже не правильно.
все сделал! Програмка теперь записывает в себя возраст!! но при выводе например в компонент memo у нее происходит бесконечный цикл! тупо виснет . где ошибка((
Код:
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;
procedure TForm1.Button2Click(Sender: TObject);
var t:pnode;
begin
  t:=p;
 if t=nil then ShowMessage('List pust')
 else
 begin
  while (t<>nil) do
 memo1.Text:=FloatToStr(t.age);
 t:=t^.next;
 end;
end;
подмогни((

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

вот честно, вижу все эти p, q и охота послать подальше...... может ты там гений и тебе легко запомнить что и где хранится, а мы тут ленивые и тупые, поэтому называем переменные более осмысленно, чтоб не думать лишний раз
---------------
и либо ты ещё где-то ещё дёргаешь свою Пи (p), либо она вначале вовсе не nil (что бывает, поэтому в onCreate пишем p := nil; )

Последний раз редактировалось GreenWizard; 29.08.2015 в 17:53.
GreenWizard вне форума Ответить с цитированием
Старый 29.08.2015, 18:02   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Правильно. Ты сам бесконечный цикл описал )
Надо так:
Код:
while (t<>nil) do begin
 memo1.Append(FloatToStr(t.age));
 t:=t^.next;
end;
Внимательнее читай что по ссылке написано.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.08.2015, 18:30   #17
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Правильно. Ты сам бесконечный цикл описал )
Надо так:
Код:
while (t<>nil) do begin
 memo1.Append(FloatToStr(t.age));
 t:=t^.next;
end;
Внимательнее читай что по ссылке написано.
на memo1.Append ругается((
[Error] Unit1.pas(77): Undeclared identifier: 'append'
SanekWK вне форума Ответить с цитированием
Старый 29.08.2015, 18:31   #18
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от GreenWizard Посмотреть сообщение
вот честно, вижу все эти p, q и охота послать подальше...... может ты там гений и тебе легко запомнить что и где хранится, а мы тут ленивые и тупые, поэтому называем переменные более осмысленно, чтоб не думать лишний раз
---------------
и либо ты ещё где-то ещё дёргаешь свою Пи (p), либо она вначале вовсе не nil (что бывает, поэтому в onCreate пишем p := nil; )
я писал в самом начале
PHP код:
procedure TForm1.Button1Click(SenderTObject);
begin
 p
:=nil;
 
Val(Edit1.Text,qq,code); 
и
PHP код:
p,q:pnode

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

Цитата:
Сообщение от SanekWK Посмотреть сообщение
я писал в самом начале
PHP код:
procedure TForm1.Button1Click(SenderTObject);
begin
 p
:=nil;
 
Val(Edit1.Text,qq,code); 
и теряешь корень списка....
GreenWizard вне форума Ответить с цитированием
Старый 29.08.2015, 18:52   #20
SanekWK
Пользователь
 
Регистрация: 18.08.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от GreenWizard Посмотреть сообщение
и теряешь корень списка....
я настолько безнадежен?
SanekWK вне форума Ответить с цитированием
Ответ


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



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