Новые книги

Эта «книга — об электронных книгах». Скорее всего, в бумажном виде, но об электронных книгах. Возможно наоборот. Это уже электронная книга для тех, кто хочет читать, используя в качестве носителя какое-то устройство. Книга состоит из такого материала, который обогатит ваши знания за короткое время. В ней представлена базовая информация об электронных книгах и более углублённая информация для профессионалов разного уровня.
Способности цвета оказывать физиологическое и психологическое воздействие на человека удивительно разнообразны. Так цветовым решениям под силу расширять пространство или, наоборот, делать его более сжатым, компактным. Цветом можно как привлечь внимание, так и замаскировать, спрятать что-либо. Цвет способен и согревать, но и создавать ощущение прохлады, и многое другое.

Книга может быть полезна как профессионалам, работающим с цветом, интерьерами, так и широкому кругу читателей, интересующихся воздействием цвета на человека. Описываемые принципы приложимы к любой сфере человеческой жизни, где так или иначе фигурирует цвет. Будь то цветовое оформление огромного производственного цеха, или же создание атмосферы тепла, уюта и релаксации в чайхане; идёт ли речь о подборе обоев мягких, успокаивающих для спальни, либо же жизнеутверждающий, тонизирующих для гостиной; либо речь об одежде, способной сделать человека легче, стройнее или наоборот жёстче, массивней.

Предлагаем уважаемым читателям отправиться в совместное с автором исследование столь богатого и живого океана цвета. В этом путешествии вы, возможно, найдёте для себя что-то новое и практически значимое. А помогать вам будут большое количество иллюстраций, примеров, а также понятный и образный слог автора.

34. Последовательный и прямой доступ



34. Последовательный и прямой доступ

   Смысл последовательного  доступа  заключается в том,  что в каждый

момент времени доступна лишь одна компонента из  всей  последователь-

ности. Для  того,  чтобы обратиться (получить доступ)  к компоненте с

номером К,  необходимо просмотреть от начала файла К-1 предшествующую

компоненту. После обращения к компоненте с номером К можно обращаться

к компоненте с номером К+1. Отсюда следует, что процессы формирования

(записи) компонент   файла и просмотра (чтения)  не могут произвольно

чередоваться. Таким  образом, файл вначале строится при помощи после-

довательного добавления  компонент в конец,  а затем может последова-

тельно просматриваться от начала до конца.

   Рассмотренные ранее  средства работы с файлами обеспечивают после-

довательный доступ.

   TURBO PASCAL  позволяет применять к компонентным и бестиповым фай-

лам, записанным  на диск, способ прямого доступа. Прямой доступ озна-

чает возможность   заранее определить в файле блок,  к которому будет

применена операция ввода - вывода.  В случае бестиповых  файлов  блок

равен размеру буфера,  для компонентных файлов блок - это одна компо-

нента файла.

   Прямой доступ  предполагает,  что файл представляет собой линейную

последовательность блоков.  Если файл содержит n блоков, то они нуме-

руются от 1 через 1 до n.  Кроме того, вводится понятие условной гра-

ницы между блоками, при этом условная граница с номером 0 расположена

перед блоком с номером 1,  граница с номером 1 расположена перед бло-

ком с номером 2 и,  наконец,  условная граница с номером n  находится

после блока с номером n.

   Реализация прямого доступа осуществляется с помощью функций и про-

цедур FileSize, FilePos, Seek и Truncate.

   Функция FileSize( var f ):  Longint возвращает количество блоков в

открытом файле f.

   Функция FilePos( var f ):  Longint возвращает  текущую  позицию  в

файле f. Позиция в файле - это номер условной границы. Для только что

открытого файла текущей позицией будет граница с номером 0.  Это зна-

чит, что  можно записать или прочесть блок с номером 1.  После чтения

или записи первого блока текущая позиция переместится  на  границу  с

номером 1,  и можно будет обращаться к ьлоку с номером 2. После проч-

тения последней записи значение FilePos равно значению FileSize.

   Процедура Seek( var f; N: Longint) обеспечивает назначение текущей

позиции в файле (позиционирование).  В параметре N должен быть  задан

номер условной границы, предшествующей блоку, к которому будет произ-

водиться последующее обращение.  Например, чтобы работать с блоком 4,

необходимо задать значение N, равное 3. Процедура Seek работает с от-

крытыми файлами.

   Процедура Truncate( var f )  устанавливает в текущей позиции приз-

нак конца файла и удаляет (стирает) все последующие блоки.

  

   Пример. Пусть на НМД имеется текстовый файл ID.DAT, который содер-

жит числовые   значения  действительного  типа  по два числа в каждой

строке - значения аргумента и функции соответственно.  Количество пар

чисел не более 200.  Составить программу, которая читает файл, значе-

ния аргумента и функции записывает в одномерные массивы, подсчитывает

их количество,    выводит на экран дисплея и записывает в файл компо-

нентного типа RD.DAT.

 

   Program F;

    var

     rArg, rF: Array[1..200] of Real;

       inf: Text;

       outf: File of Real;

       n, l: Integer;

    begin

      Assign(inf,'ID.DAT');

      Assign(outf,'RD.DAT');

      Reset(inf);

      Rewrite(outf);

      n:=0;

      while not EOF(inf) do

        begin

          n:=n+1;

          ReadLn(inf,rArg[n],rF[n])

        end;

      for l:=1 to n do

       begin

        WriteLn(l:2,rArg[l]:8:2,rF[l]:8:2);

        Write(outf,rArg[l], rF[l]);

       end;

      close(outf)

    end.