ГОСТ Р ИСО/МЭК 16022 — 2008
module(nrow-2. 0. chr, 2):
moduJe(nrow-1. 0. chr. 3):
module{0. ncol-2. chr. 4):
module{0. ncol-1. chr. 5):
module{1, ncol-1, chr. 6):
module(2. ncol-1. chr. 7):
module(3. ncol-1, chr. 8):
}
void corner4(int chr)
{ module(nrow-1.0. chr.1);
module(nrow-1. ncol-1.chr.2):
module(0. ncol-3. chr.3);
module{0. ncol-2. chr.4);
moduJe(0, ncol-1, chr.5);
module(1, ncol-3. chr.6);
module(1, ncol-2, chr.7);
module(1, ncol-1. chr.8);
}
Г «есс200» fills an nrow x ncol array wilh appropriate values for ECC2007"
void ecc200(void)
{ tnt row. col. chr.
/* First, fill the array( ] with invalid entries*/2’
for (row=0; row<nrow; row++) {
for (col=0; col<ncol; col++) {
array[row*ncol+col] = 0:
}
}
/* Starting in the correct location for character #1, bit 8.. 73>
chr = 1; row = 4; col = 0;
do {
/* repeatedly first check for one of the special comer cases, then... V*1
if ((row == nrow) && (col == 0)) comerl (chr++);
if ((row == nrow-2) && (col == 0) && (ncd%4)) corner2 <chr++);
if ((row == nrow-2) && (col == 0) && (ncol%8 == 4)) согпегЗ (chr++);
if ((row == nrow+4) && (col == 2) && (!(ncol%8))) corner4 (chr++):
/* sweep upward diagonally, inserting successive characters.... 751
do {
if ((row < nrow) && (col >= 0) && (!array[row*ncol+col]))
Utah (row. col. chr++);
row -= 2; col += 2:
} while ((row >= 0) && (col < ncol));
row += 1; col += 3;
/* & then sweep downward diagonally, inserting successive haracters.... */6’
+
do {
if ((row >=
0
) && (col < ncol) && (!array[row*ncol+col]))
Utah (row. col. chr++);
row += 2; col — 2:
} while ((row < nrow) && (col >= 0)):
row += 3; col += 1;
/* ... until the entire array is scanned T7’
’>Процедура «есс200» заполняет nrow
x
ncol массив соответствующими значениями для символа
версии ЕСС200.
2> Сначала заполняют массив аггау[ ] недопустимыми значениями.
3>Фиксируют начальное положение модуля в матрице для знака с порядковым номерам (chr) 1 и бита с
номером 8 и начинают заполнять матрицу.
Повторно (в цикле) проверяют на предшт одного из специальных угловых случаев, тогда ....
5>Продвигаясь вверх по диагонали, вставляют последовательные знаки.... .
6>Затем продвигаясь вниз по диагонали, вставляют последовательные знаки... .
71...пока не просмотрят весь массив.
52