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

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


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

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 119
от 17.12.2005, 23:36

Администратор:Калашников О.А.
В рассылке:Подписчиков: 143, Экспертов: 41
В номере:Вопросов: 2, Ответов: 3


Вопрос № 31357: Здравствуйте, Уважаемые Эксперты! Прошу вашей помощи в следующей задаче: Имеется динамическая структура, состоящая из чисел (пользователь сам задает кол-во чисел и заполняет динамическую структуру). Затем программа запрашивает число (назовем ...
Вопрос № 31358: Здравствуйте, Уважаемые Эксперты! Прошу вашей помощи в следующей задаче: Имеется динамическая структура, состоящая из чисел (пользователь сам задает кол-во чисел и заполняет динамическую структуру). Затем программа запрашивает число (назовем ...

Вопрос № 31.357
Здравствуйте, Уважаемые Эксперты!
Прошу вашей помощи в следующей задаче:
Имеется динамическая структура, состоящая из чисел (пользователь сам задает кол-во чисел и заполняет динамическую структуру). Затем программа запрашивает число (назовем его "X") у пользователя. После этого программа сверяет X с каждым элементом структуры. Если элемент меньше X, то программа дублирует этот элемент, смещая последующие элементы структуры.
Например:
[][]--->[1][]--->[3][]--->[5][]--->[7][/];
Вводится X.
Допустим X=4
Результат должен быть таким:
[][]--->[1][]--->[1][]--->[3][]--->[3][]--->[5][]--->[7][/]
Как это реализовать с помощью динамической структуры?
Загвоздка в том, как сместить элементы динамической структуры?

Приложение:

Отправлен: 12.12.2005, 21:04
Вопрос задал: Иванов Евгений Андреевич (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Иванов Евгений Андреевич!
В Паскале есть изумительный объект, который специально создан для работы с динамическими данными, называется TCollection. В нем есть все неоходимые методы для работы: вставка, удаление и т.п. Используйте его.
TCollection.AtInsert(Index: Integer; Item: Pointer);
Здесь Index - номер индекса, куда нужно вставить новый пункт, Item - это указатель на данные, которые Вы вставляете.
Пробежаться по всей коллекции можно так:
For i:=0 To Collection1.Count-1 Do
If Collection1.Item^ Collection1.AtInsert(i. Collection1.Item);
Ответ отправил: sir henry (статус: Академик)
Отправлен: 13.12.2005, 05:11

Отвечает: Маренич Владимир
Здравствуйте, Иванов Евгений Андреевич!
Вы не уточнили, какая динамическая структура используется: одно- или двусвязный список? Вот пример, как это сделать с односвязным

Приложение:

Ответ отправил: Маренич Владимир (статус: 9-ый класс)
Отправлен: 13.12.2005, 11:37


Вопрос № 31.358
Здравствуйте, Уважаемые Эксперты!
Прошу вашей помощи в следующей задаче:
Имеется динамическая структура, состоящая из чисел (пользователь сам задает кол-во чисел и заполняет динамическую структуру). Затем программа запрашивает число (назовем его "X") у пользователя. После этого программа сверяет X с каждым элементом структуры. Если элемент меньше X, то программа дублирует этот элемент, смещая последующие элементы структуры.
Например:
[][]--->[1][]--->[3][]--->[5][]--->[7][/];
Вводится X.
Допустим X=4
Результат должен быть таким:
[][]--->[1][]--->[1][]--->[3][]--->[3][]--->[5][]--->[7][/]
Как это реализовать с помощью динамической структуры?
Загвоздка в том, как сместить элементы динамической структуры?

Приложение:

Отправлен: 12.12.2005, 21:07
Вопрос задал: Иванов Евгений Андреевич (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Romodos
Здравствуйте, Иванов Евгений Андреевич!
Ну вообще-то не надо ничего сдвигать.
Просто надо между двумя элементами встроить третий.
Надо воспользоваться динамическими списками.
т.е. вот описание элемента. Когда нашли элемент y,то
ссылку y->next переправляем на новый,а новый->next переправляем на следующий
элемент
type
plist=^list;
list=record;
a:integer;
next:plist;
end;

Вообще работа со списками уже описывалась. Поищите в архиве.
---------
FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 13.12.2005, 14:36


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.pasplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное