Непейвода Н.Н. Программирование. Раздел 3

Непейвода Н.Н. Программирование. Страница 354

8.6.1. Поддержка модульности в стандартном языке Pascal

Ближайшая задача, решаемая ниже, — развитие примера работы с очере­дями из § 8.1 в направлении реализации операционных подпрограмм некото­рой специальной библиотеки. Требуется составить следующие подпрограм­мы:

StateQueue — функция, вырабатывающая значение состояния очереди: Empty(пустая), Full(заполненная) или Normal(нормальная), в зависи­мости от наличия сохраняемых элементов;

GetEIQueue — функция, вырабатывающая значение элемента очереди и извлекающая элемент из очереди, если состояние очереди (значение, вырабатываемое функцией StateQueue) — не Empty, и специальное, выделенное значения типа элемент очереди NotElв противном случае;

PutEIQueue — процедура, помещающая элементпараметр в очередь для хранения, если это возможно, т. е. когда состояние очереди (зна­чение, вырабатываемое функцией StateQueue) — не Full. Если очередь заполнена, то процедура должна выдавать сообщение об ошибке об­ращения к ней.

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

Существует довольно много вариантов реализации очередей, приспо­собленных для использования в различных режимах. Среди режимов, опре­деляющих выбор конкретного решения, можно указать, с одной стороны, на дисциплину доступа к данным, когда чередование записи и чтения ин­формации более или менее равномерно, а с другой — на работу большими порциями, при которой чередуются периоды с относительным преоблада­нием записи с периодами относительно более частого чтения. В первом случае при достаточно большом объеме памяти, отводимой для хранения элементов, ситуации с переполнением очереди являются исключительными, во втором — необходима особая забота об обработке переполнений. На вы­бор варианта реализации очереди влияет и то, предусматривается или нет режим работы с приоритетами: требуется ли обеспечить возможность про­пускания элемента "вперед". Список подобных особенностей использования очередей легко продолжить. Зачастую трудно заранее предвидеть поведение вычислительного процесса, а значит, и оптимальную реализацию очереди. Именно поэтому весьма желательно явно разделять уровни использования и реализации: если реализация окажется неудачной, смена ее не повлечет изменение использующей программы.

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама