Другие языки программирования и технологии

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

В строке имеются пары, состоящие из русского и английского слов, разделенных дефисом (чертой). Вывести строку на экран, поменяв слова в таких парах местами. ===================================================================================== Вот набросок помогите доделать ну или переделайте как правильней while Pos(' ', S) > 0 do begin S1 := Copy(S, 1, Pos(' ', S) - 1); Delete(S, 1, Pos(' ', S)); {в S1 очередная пара} end; S1 := Copy(S1, Pos('-', S)+1, Length(S1)) + '-' + Copy(S1, 1, Pos('-', S)-1);
Попытка есть, значит будем помогать.
Итак, есть строка S, в ней есть пары из русского и английского слов, разденных черточкой. Надо сформировать новую строку, где эти слова были бы обращены.
Первый глупый вопрос - а есть ли в строке что-то кроме таких пар? Отдельные слова бывают? А если будет пара анг-анг или рус-рус, их менять надо? А если в паре французское и украинское слова (например, cat-факел надо менять, а chat-смолоскип) ?
Будем считать, что строка уже правильная (т. е. только из пар рус-анг) и пары разделены пробелами.
Итак:
объявления переменных и ввод сделаешь сам, все шаблонно
R:='';{готовим результат}
repeat {а если в строке только одна пара - ее же все равно обменять надо, без всяких пробелов! }
if Pos(' ', S)>0 then begin
S1 := Copy(S, 1, Pos(' ', S) - 1); {Вырезали первое слово}
Delete(S, 1, Pos(' ', S)); {сократили строку}
end else begin {если нет пробелов - вся строка в обработку}
S1:=S;
S:='';
end;
if Pos('-',S1)>0 then begin{проверить на то, что строка корректна - по минимуму, там хотя бы '-' должен быть}
{тут еще надо бы проверить, что слова английское и русское, но опускаем}
S1 := Copy(S1, Pos('-', S)+1, Length(S1)) + '-' + Copy(S1, 1, Pos('-', S)-1);{меняем местами}
end;
R:=R+S1;{Добавляем замененную пару в ответ, или незамененную, если это неверная пара}
if S<>'' then R:=R+' ';{добавляем пробел}
until S = '';{пока S не закончится}
теперь - вывод и точка!
Енот
Енот
91 860
Лучший ответ
напиши тесты а то так понять не могу