Написал программу перевода из морзе. Но у меня выводит только одну букву.
Var s,s2:string; i:integer;
Begin
readln (s);
s:=s + ' ';
While i<=length(s2) do begin
i:=i+1;
i:=1;
While s[i] <> ' ' do begin
s2:=s2+s[i];
i:=i+1;
end;
if s2='.-' then write('A');
if s2='-...' then write('Б');
if s2='.--' then write('В');
if s2='--.' then write('Г');
if s2='-..' then write('Д');
if s2='.' then write('Е');
if s2='...-' then write('Ж');
if s2='--..' then write('З');
if s2='..' then write('И');
if s2='.---' then write('Й');
if s2='-.-' then write('К');
if s2='.-..' then write('Л');
if s2='--' then write('М');
if s2='-.' then write('Н');
if s2='---' then write('О');
if s2='.--.' then write('П');
if s2='.-.' then write('Р');
if s2='...' then write('С');
if s2='-' then write('Т');
if s2='..-' then write('У');
if s2='..-.' then write(' Ф');
if s2='....' then write('Х');
if s2='-.-.' then write('Ц');
if s2='---.' then write('Ч');
if s2='----' then write('Ш');
if s2='--.-' then write('Щ');
if s2='.--.-' then write('Ъ');
if s2='-.--' then write('Ы');
if s2='-..-' then write('Ь');
if s2='..-.' then write('Э');
if s2='..--' then write('Ю');
if s2='.-.-' then write('Я');
i:=i+1;
End;
End.
Помогите исправить ошибку.
Другие языки программирования и технологии
Помогите доделать программу перевод из морзе на Паскале.
Если исходный текст вводится в виде азбуки Морзе через пробел и если решать в PascalABC.NET
Var s:string; i:integer;
Begin
write('Текст азбукой Морзе через пробел:');
readln (s);
var s2:=s.Split;
i:=0;
While i <= High(s2) do
begin
if s2[i]='.-' then write('A');
if s2[i]='-...' then write('Б');
if s2[i]='.--' then write('В');
if s2[i]='--.' then write('Г');
if s2[i]='-..' then write('Д');
if s2[i]='.' then write('Е');
if s2[i]='...-' then write('Ж');
if s2[i]='--..' then write('З');
if s2[i]='..' then write('И');
if s2[i]='.---' then write('Й');
if s2[i]='-.-' then write('К');
if s2[i]='.-..' then write('Л');
if s2[i]='--' then write('М');
if s2[i]='-.' then write('Н');
if s2[i]='---' then write('О');
if s2[i]='.--.' then write('П');
if s2[i]='.-.' then write('Р');
if s2[i]='...' then write('С');
if s2[i]='-' then write('Т');
if s2[i]='..-' then write('У');
if s2[i]='..-.' then write(' Ф');
if s2[i]='....' then write('Х');
if s2[i]='-.-.' then write('Ц');
if s2[i]='---.' then write('Ч');
if s2[i]='----' then write('Ш');
if s2[i]='--.-' then write('Щ');
if s2[i]='.--.-' then write('Ъ');
if s2[i]='-.--' then write('Ы');
if s2[i]='-..-' then write('Ь');
if s2[i]='..-.' then write('Э');
if s2[i]='..--' then write('Ю');
if s2[i]='.-.-' then write('Я');
i:=i+1;
End;
End.
Или вместо строки var s2:=s.Split; нужно написать кусок программы для разбиения текста из азбуки Морзе по заданному разделителю. Можно текст по буквам загонять в массив (указанная строка именно это и делает) и расшифровывать этот массив.
Var s:string; i:integer;
Begin
write('Текст азбукой Морзе через пробел:');
readln (s);
var s2:=s.Split;
i:=0;
While i <= High(s2) do
begin
if s2[i]='.-' then write('A');
if s2[i]='-...' then write('Б');
if s2[i]='.--' then write('В');
if s2[i]='--.' then write('Г');
if s2[i]='-..' then write('Д');
if s2[i]='.' then write('Е');
if s2[i]='...-' then write('Ж');
if s2[i]='--..' then write('З');
if s2[i]='..' then write('И');
if s2[i]='.---' then write('Й');
if s2[i]='-.-' then write('К');
if s2[i]='.-..' then write('Л');
if s2[i]='--' then write('М');
if s2[i]='-.' then write('Н');
if s2[i]='---' then write('О');
if s2[i]='.--.' then write('П');
if s2[i]='.-.' then write('Р');
if s2[i]='...' then write('С');
if s2[i]='-' then write('Т');
if s2[i]='..-' then write('У');
if s2[i]='..-.' then write(' Ф');
if s2[i]='....' then write('Х');
if s2[i]='-.-.' then write('Ц');
if s2[i]='---.' then write('Ч');
if s2[i]='----' then write('Ш');
if s2[i]='--.-' then write('Щ');
if s2[i]='.--.-' then write('Ъ');
if s2[i]='-.--' then write('Ы');
if s2[i]='-..-' then write('Ь');
if s2[i]='..-.' then write('Э');
if s2[i]='..--' then write('Ю');
if s2[i]='.-.-' then write('Я');
i:=i+1;
End;
End.
Или вместо строки var s2:=s.Split; нужно написать кусок программы для разбиения текста из азбуки Морзе по заданному разделителю. Можно текст по буквам загонять в массив (указанная строка именно это и делает) и расшифровывать этот массив.
Gegam Myan
Эх, скопировал ты, Юра!
вместо s2 надо сравнивать s[i]
Саша Кочик
Напиши пожалуйста как правильно надо сравнить.
Похожие вопросы
- помогите доделать программу по паскалю пожалуйста
- Помогите доделать программу
- Помогите доделать программу пожалуйста ) На языке Си
- Помогите написать программу перевода чисел из двоичного формата в десятичный на языке C#
- помогите составить программу, сокращающую обыкновенные дроби.на паскале заранее спасибо
- Помогите пожайлуста доделать программу в паскале! Не получается ((
- помогите доделать код на паскале
- Помогите составить программу на паскале!
- помогите с программами в паскале
- Помогите решить программу в паскале)