Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 079
от 07.01.2003, 13:20

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 136
Отправлено ответов: 393
Активность: 288.9 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Ayl
Статус: Профессиональный
Общий рейтинг: 117.39
[Подробней >>]
Vadim
Статус: Опытный
Общий рейтинг: 148.27
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 121.59
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 д.
[Подробней >>]
 
Tancho
Статус: Доверительный
Общий рейтинг: 132.39
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 135. Здравствуйте уважаемые эксперты! Не могу разобраться с программой. Какой-то очень интересный глюк. Н... (ответов: 4)

Вопросов: 1, ответов: 4


 Вопрос № 135

Здравствуйте уважаемые эксперты!
Не могу разобраться с программой. Какой-то очень интересный глюк. Нужно создать динамический массив из Byt'ов. Элементы добавляются только в конец при нажатии клавиши 1. Так вот, смотрю в отладчике. При первом проходе все нормально (создается первый элемент), при втором не выполняется строка {1}. Дальше вроде все нормально. В чем ошибка?
Заранее благодарен.


Приложение:


Вопрос отправлен: 04.01.2003, 13:16
Отправитель: Shurik

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Добрый день, Shurik!
И правильно делает. Скажи спасибо, что не выдает ошибку об обращении к чужой памяти!
Смотри. Пусть ты сейчас хочешь занести 2-й элемент. Твой список выглядит так:
PtrXEl -> (1, nil)
Т.е. значение PtrXEl^.ElPtr = nil.
Теперь смотри, что происходит. Ты в цикле repeat (а он всегда выполнится хотя бы 1 раз) просматриваешь элементы. После первого же присваивания значение PtrCurrent будет равно nil. И все. Приехали.
Что бы это исправить, надо переписать цикл. Скорее всего, надо раскомментировать цикл while и перед ним поставить еще один Inc (k). Тогда должно заработать.

Ответ отправлен: 04.01.2003, 15:37
Отправитель: Ayl


Отвечает Vadim

Добрый день, Shurik!
Круто, но непонятно :)).
Посмотри такой код (см. приложение). В нем можно разобраться без всякого отладчика :)).


Приложение:

Ответ отправлен: 06.01.2003, 13:08
Отправитель: Vadim


Отвечает Sensey

Здравствуйте, Shurik!
В общем держи. Думаю разберешься...
Основной глюк был в REPEAT UNTIL при добавлении.
Сравни и поймешь.
(Подсказка- ты модифицировал текущий nil-om, а потом что-то с ним пытался делать)


Приложение:

Ответ отправлен: 04.01.2003, 13:59
Отправитель: Sensey


Отвечает Tancho

Доброе время суток, Shurik!
Мне кажеться что у тебе все в порядке, только в твоем
списке всегда надо иметь начало и про этом надо иметь
всегда Первый елемент! Вставь в начале Головную прогу
'PtrFirstElement^.m := 1; '(или чего хочешь другово)
и все будеть как должно иначе что будеть если в самом
начале ответь будеть '2'?


Ответ отправлен: 07.01.2003, 13:06
Отправитель: Tancho



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (38)
C / C++ (28)
Perl (4)
Delphi (21)
Pascal (23)
Basic / VBA (12)
Java / JavaScript (7)
PHP (3)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (26)
"Железо" (33)
Поиск информации (17)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (16)
Юристу
Гражданское право (8)
Семейное право (5)
Трудовое право (4)
КоАП (3)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное