close

Вход

Забыли?

вход по аккаунту

?

Анд (2)

код для вставкиСкачать
Кривощеков А., АИ-III-024
Лабораторная работа №2.
Транслитерация с использованием конечного автомата.
Текст программы:
const string1:array [1..2] of char=('ъ','ь');
string2ru:array [1..22] of char=('а','б','в','г','д','е','з','и','к','л','м','н','о','п','р','с','т','у','ф','х','ц','э');
string3ru:array [1..9] of char=('ё','ж','й','ч','ш','щ','ы','ю','я');
string2en:array [1..22] of char=('a','b','v','g','d','e','z','i','k','l','m','n','o','p','r','s','t','u','f','h','c','e');
string3en:array [1..9] of string=('yo','zh','iy','ch','sh','sch','yi','yu','ya');
var c:char;
s:string;
f:text;
state,i,x:integer;
procedure compare(c:char; var i,state,x:integer);
begin
for i:=1 to 2 do
if c=string1[i] then
begin
x:=i;
state:=1;
exit;
end;
for i:=1 to 22 do
if c=string2ru[i] then
begin
x:=i;
state:=2;
exit;
end;
for i:=1 to 9do
if c=string3ru[i] then
begin
x:=i;
state:=3;
exit;
end;
state:=4;
end;
procedure trans1(c:char; var i,state,x:integer);
begin
s:=s+string2en[x];
state:=1;
end;
procedure trans2(c:char; var i,state,x:integer);
begin
s:=s+string3en[x];
state:=1;
end;
procedure trans3(c:char; var i,state,x:integer);
begin
s:=s+c;
state:=1;
end;
begin
assign(f,'text.txt');
reset(f);
state:=1;
repeat
case state of
1:begin read(f,c); compare(c,i,state,x); end;
2:begin trans1(c,i,state,x); end;
3:begin trans2(c,i,state,x); end;
4:begin trans3(c,i,state,x); end;
else begin writeln('Перевод окончен.'); end; end;
until eof(f);
close(f);
rewrite(f);
write(f,s);
close(f);
end.
В файле text.txt имеем текст: "Андрей Андрюшечка румяная щека". После компиляции имеем текст: "Аndreiy Аndryushechka rumyanaya scheka".
Документ
Категория
Рефераты
Просмотров
7
Размер файла
13 Кб
Теги
анд
1/--страниц
Пожаловаться на содержимое документа