Нужно сделать чтобы программа выдавала ошибку в транслите с англ. на русский - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Это программа транслирует только с русского на англ., а нужно сделать чтобы в обратном порядке он отменял программу и выдавал ошибку, т.е. например: "саша вышел погRлять" присутствует англ. буква и чтобы он сразу выдал ошибку не транслируя остальные буквы.

Решение задачи: «Нужно сделать чтобы программа выдавала ошибку в транслите с англ. на русский»

textual
Листинг программы
const alph :array [1..34,1..2] of string =
(('а','a'),('б','b'),('в','v'),('г','g'),('д','d'),('е','e'),('ё','e'),('ж','zh'),
('з','z'),('и','i'),('й','y'),('к','k'),('л','l'),('м','m'),('н','n'),('о','o'),('п','p'),
('р','r'),('с','s'),('т','t'),('у','u'),('ф','f'),('х','h'),('ц','c'),
('ч','ch'),('ш','sh'),('щ','sch'),('ь','"'),('ы','y'),('ъ','i'),('э','e'),
('ю','y'),('я','ya'),(' ',' '));
var s, inp, t: string;
    i, j: integer;
    b: boolean;
begin
  inp := '';
  t := '';
  b := false;
  writeln('Введите строку');readln(s);
  for i:=1 to length(s) do
    begin
      for j:= 1 to 34 do
        if alph[j, 1] = s[i] then t := alph[j, 2];
        if length(t) > 0
          then inp := inp + t
          else
            begin
              inp := inp + '?';
              b := true;
              writeln(' ':i - 1, '^');
              writeln('Ошибка транслитерации!');
              break
            end;
        if b then break;
        T:=''
    end;
  writeln('translit :');
  writeln(inp);
  readln;
end.

Объяснение кода листинга программы

  1. В начале кода объявляются переменные s, inp, t и b. Переменная s предназначена для хранения введенной пользователем строки, переменная inp - для временного хранения транслитерации, переменная t - для хранения символа, соответствующего введенному символу алфавита, а переменная b - для контроля выхода из цикла при успешной транслитерации.
  2. Затем идет цикл for, который выполняется для каждого символа во введенной строке.
  3. Внутри цикла проверяется соответствие введенного символа символу алфавита. Если символы совпадают, то в переменную t записывается соответствующий символ транслитерации.
  4. Если длина переменной t становится больше 0, то к переменной inp добавляется символ из переменной t. Если длина переменной t равна 0, то в переменную inp добавляется символ '?'.
  5. После проверки всех символов введенной строки, если в переменной inp есть символы, то выводится сообщение об ошибке транслитерации и цикл прерывается командой break.
  6. Если в процессе выполнения цикла была найдена соответствующая транслитерация, то в конце программы выводится сообщение 'translit :' и значение переменной inp.
  7. В конце программы вызывается функция readln для чтения символа новой строки из стандартного ввода и завершения работы программы.

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы