Совместимость и преобразование типов данныхРефераты >> Программирование и компьютеры >> Совместимость и преобразование типов данных
1.
С помощью несложной программы мы сможем узнать внутренний код произвольного символа.
Program Code_pf_Char;
{Программа читает символ с клавиатуры и выводит на экран
этот символ и соответствующий ему внутренний код}
var
ch: Char; {В эту переменную читается символ}
begin
Write('Введите любой символ: ');
ReadLn(ch); {Читаем один символ}
WriteLn(ch, ' = ',ord(ch)); {Преобразуем его к целому и выводим на экран}
END.
Обращаем внимание: при вызове
WriteLntch,' = ',ord(ch));
третьим параметром обращения указан вызов функции ORD (СН) , что с точки зрения языка является выражением; во многих случаях при вызове процедур и функций в качестве параметров вызова можно указывать не только переменные или константы, но и выражения с их участием.
2.
Давайте посмотрим, как можно реализовать на универсальном языке программирования простейшие инструкции лингвиста (даже не используюшие этих понятий), касающиеся этапа преобразования орфографического текста в фонетическую транскрипцию. Далее приведен пример задачи и ее решения на языке Паскаль.
Непроизносимые гласные:
Сочетания "вств" и "стн" транскрибируются как [ств] и [сн] соответственно, т. е.:
1) /вств/ -> [ств]
2) /стн/ -> [лнц]
Реализация двух данных правил на языке Паскаль:
program transcription;
var
Word: String;
I, J, K: Integer;
begin
Write('Введите слово: '); ReadLn(Word);
K := Pos('вств', word);
while (K <> 0) do
begin
delete(Word, K, 1);
K := Pos('вств', Word);
end;
K := Pos('стн', Word);
while (K <> 0) do
begin
delete(Word, K+1, 1);
K := Pos('стн', Word);
end;
WriteLn('Транскрипция: ', Word);
end.
Как видно из примера, два правила, изложенные в лингвистическом описании, реализуются программой в двадцать с лишним строк. Нетрудно заметить, что а) такая запись очень громоздка, б) она трудна для восприятия, в) она совершенно не имеет ничего общего с записью, естественной для лингвиста и поэтому плохо отражает суть происходящих преобразований. А если бы мы чуть-чуть усложнили правила, введя несколько слов-исключений, требуя проверить, не является ли транскрибируемое слово производным от одного из них, программа увеличилась бы в два раза или более.