Const ru : array[1..33] of Char = ('а','б','в','г','д','е','ё','ж','з','и', 'й','к','л','м','н','о','п','р','с','т', 'у','ф','х','ц','ч','ш','щ','ъ','ы','ь', 'э','ю','я'); en : array[0..33] of String = (' ','a','b','v','g','d','e','ye','zh','z','i', 'y','c','l','m','n','o','p','r','s','t', 'u','f','h','c','ch','sh','sch','`','ы','', 'ea','yu','ja');{ транскрипцию записал не заглядывая ни в какие справочники - можете кидаться тапками } Function GetIndex(ss : Char) : Byte;Var ii : Byte;Begin ii:=1; While (ii<=33) and (LowerCase(ss)<>ru[ii]) do Inc(ii); If ii in [1..33] then GetIndex:=ii else GetIndex:=0;end;Function Trans(S : String) : String;Begin If Length(S)>0 then Trans:=en[GetIndex(S[1])]+Trans(Copy(S,2,Length(S)-1)) else Trans:='';end;Begin Writeln(Trans('паскаль')); Writeln(Trans('ява'));end.