Mail.ruПочтаМой МирОдноклассникиИгрыЗнакомстваНовостиПоискСмотриComboВсе проекты

Помогите доработать код на паскале

Павел Бержной Знаток (480), на голосовании 3 года назад
var
a:string;
i:integer;
begin
readln(a);
for i:=1 to length(a) do
case a[i] of
'а':a[i]:='би';
'б':a[i]:='ра';
'в':a[i]:='гу';
'г':a[i]:='со';
'д':a[i]:='ну';
'е':a[i]:='вя';
'ё':a[i]:='ди';
'ж':a[i]:='су';
'з':a[i]:='мо';
'и':a[i]:='ко';
'й':a[i]:='жа';
'к':a[i]:='лу';
'л':a[i]:='те';
'м':a[i]:='ма';
'н':a[i]:='фе';
'о':a[i]:='ге';
'п':a[i]:='ва';
'р':a[i]:='лю';
'с':a[i]:='ша';
'т':a[i]:='са';
'у':a[i]:='ня';
'ф':a[i]:='ци';
'х':a[i]:='цо';
'ц':a[i]:='ма';
'ч':a[i]:='жи';
'ш':a[i]:='цу';
'щ':a[i]:='не';
'ъ':a[i]:='бу';
'ы':a[i]:='ка';
'ь':a[i]:='ли';
'э':a[i]:='су';
'ю':a[i]:='га';
'я':a[i]:='па';
end;
writeln(a);
readln;
end.

Вот такой код, нужно чтобы одну букву переводило в две соответствующие ей, но выбивает ошибку "Нельзя преобразовать тип string к char" как решить проблему без применения массива, с минимумом возможного кода. Заранее спасибо.
Голосование за лучший ответ
Krab Bark Искусственный Интеллект (190407) 3 года назад
Проще всего построить по исходной строке новую. Иначе придется писать кучу delete и insert.
Да и массив бы тут многократно облегчил программу.
Павел БержнойЗнаток (480) 3 года назад
Понял, спасибо, буду тогда переписывать всё.
Krab Bark Искусственный Интеллект (190407) В переписанном виде она может выглядеть так: const q='абвгдеёжзийклмнопрстуфхцчшщъыьэюя'; t='бирагусонувядисумокожалутемафегевалюшасаняцицомажицунебукалисугапа'; var s,p:string; i,k:integer; begin readln(s); p:=''; for i:=1 to length(s) do begin k:=2*pos(s[i],q); p:=p+t[k-1]+t[k] end; writeln(p); readln end.
SK Гуру (4699) 3 года назад
кодировку нужно указать ansi

for i:=1 to length(a) do
case a[i] of
'а':begin delete(a,i,1);insert('би',a,i); end;
'б':begin delete(a,i,1);insert('ра',a,i); end;
'в':begin delete(a,i,1);insert('гу',a,i); end;
'г':begin delete(a,i,1);insert('со',a,i); end;
'д':begin delete(a,i,1);insert('ну',a,i); end;
'е':begin delete(a,i,1);insert('вя',a,i); end;
'ё':begin delete(a,i,1);insert('ди',a,i); end;
Похожие вопросы
Также спрашивают