ГОСТ Р ИСО/МЭК 16022 — 2008
Приложение F
(обязательное)
Размещение знаков символа в символе версии ЕСС 200
F.1 Программа размещения знаков символа
Следующая программа на языке программирования С генерирует схемы размещения знаков символа:
#indude <stdio.h>
include <alloc.h>
int nrow. ncol. * array:
/* «module» places «chr+bit» with appropriate wrapping within arrayf) 711
void module (int row. int col, int chr, int bit)
{ if (row < 0) { row += nrow; col += 4 - ((nrow+4)%8);)
if (col < 0) { col ♦= ncol; row += 4 - ((ncol+4)%8);}
array(row*ncot+colJ =
10
*chr + bil;
}
/* «Utah» places the 8 bits of a utah-shaped symbol character in ECC200 72>
void utah(int row. int col. int chr)
{ module(row-2. cd-2. chr. 1):
module(row-2.col-1 .chr. 2);
module(row-l, col-2, chr. 3):
module(row-1, col-1, chr. 4);
modu*e(row-1, col. chr. 5);
modulefrow. col-2, chr. 6);
module(row. col-1, chr. 7);
module(row. col. chr. 8):
}
/* «oomerN» places 8 bits of the four special corner cases in ECC20073>
void corner1(int chr)
{ module<nrow-1. 0. chr. 1);
module(nrow-1. 1. chr. 2);
module(nrow-1. 2. chr. 3);
module(0.ncol-2.chr.4);
module<0,ncol-1. chr. 5);
module(1,ncoM. chr. 6):
module(2.ncoH. chr. 7);
moduie(3.ncol-1, chr. 8);
}
void corner2 (int chr)
{ module(nrow-3. 0. chr. 1);
module(nrow-2. 0. chr. 2);
module(nrow-1. 0. chr. 3);
module(0. ncol-4. chr. 4);
module(0. ncol-3 .chr .5);
module{0. ncol-2. chr. 6);
module(0, ncol-1. chr. 7);
module(1. ncol-1. chr .8);
}
void corner3(int chr)
{ module(nrow-3. 0. chr. 1);
1> Процедура «module» записывает в матрицу array/ ) числа вида «Ю‘ chr+bit». где chr — порядковый
номер знака символа, a bit — номер бита данного знака символа, которые записывают, начиная с первого
знака и бита.
2>Процедура яUtah» размещает 8 битов знака символа, имеющего форму штата Юта. в символе вер
сии ЕСС200.
3>Процедура «comer» размещает 8 битов для четырех специальных угловых случаев в символе версии
ЕСС200.
51