русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ПРОЦЕДУРА ЗАПОЛНЕНИЯ FillChar


Дата добавления: 2014-11-27; просмотров: 579; Нарушение авторских прав


 

С помощью процедуры FillChar можно заполнить любое поле памяти одним и тем же однобайтным значением. Заголовок процедуры имеет вид

 

FillChar(VarV; N:word; b:byte)

или FillChar(Var V; N:word; ch:char).

 

Здесь V - переменная любого типа;

N - количество байтов в поле V, которые заполняются значением b или ch.

Поскольку после имени формальной переменной V не записано имя типа, то этой переменной может соответствовать фактический параметр любого типа.

 

Предположим, что нам требуется обнулить целочисленный массив A и вещественный массив B. В цикле это можно сделать следующим образом:

 

Vari,j : word;

A : array[1..1000] ofinteger;

B : array[0..25,1..5] of real;

Begin

Fori:=1 to 1000 do

a[i]:=0;

Fori:=0 to25 do

For j:=1 to 5 do

b[i,j]:=0;

 

Однако более эффективно (по быстродействию и требуемому объему памяти) эта задача решается с помощью процедуры FillChar:

 

FillChar(A,SizeOf(A),0); FillChar(B,SizeOf(B),0).

 

Здесь процедура FillChar заполняет каждый байт полей A и B нулевым значением.

Если в массиве A нужно обнулить только элементы 101 .. 500, а в матрице B - ее первые две строки, то это можно сделать следующим образом:

 

FillChar(A[101],400*SizeOf(integer),0);

FillChar(B,2*5*SizeOf(real),0).

 

Если массив, элементы которого занимают свыше одного байта памяти, нужно заполнить ненулевым значением, то в этом случае использование процедуры FillChar приведет к ошибке. Например, при обращении

FillChar(A,SizeOf(A),1)

каждому элементу массива A будет присвоено значение 257, а не 1 ( = 00010001 ).

 

Процедура FillChar может быть использована также для заполнения строки одним и тем же символом. Однако в этом случае нужно позаботиться о принудительном установлении в нулевом байте текущей длины строки.



 

Пример.

VarS1 : string[80];

S2 : string;

Begin

FillChar(S1,SizeOf(S1),' '); S1[0]:=chr(80);

FillChar(S2[1],100,#32); S2[0]:=chr(100);

 

Так как SizeOf(S1) = 81, то процедура FillChar заполняет пробелом все байты строки S1, в том числе и нулевой байт. После этого в нулевой байт принудительно заносится текущая длина строки. При отсутствии оператора S1[0]:=chr(80) в нулевой байт S1[0], как и в другие байты строки S1, будет занесен пробел, номер которого по таблице ASCII равен 32. Следовательно, при дальнейшей обработке строки S1 будет считаться, что ее длина равна 32 символам.

 

В строке S2 заполнение пробелом начинается с адреса S2[1], т.е. с первого ее символа. Поскольку содержимое нулевого байта при этом не изменилось (в данном случае оно осталось неопределенным), то оператором присваивания формируется конкретное значение текущей длины строки S2.

Каждый байт строки, в том числе и нулевой байт, рассматривается как символ. В связи с этим нельзя указывать текущую длину строки оператором S1[0] := 80.

 

 



<== предыдущая лекция | следующая лекция ==>
П Р О Г Р А М М Ы Н А Т У Р Б О П А С К А Л Е | ПРОЦЕДУРА ПЕРЕМЕЩЕНИЯ ДАННЫХ MOVE


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.