Цитата:
Сообщение от igor278130
Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 5 латинских букв , между соседними словами – запятая, за последним словом – точка. Преобразовать последовательность следующим образом:
А) перенести первую букву каждого слова в конец слова;
b) перенести последнюю букву каждого слова в начало слова;
c) удалить из каждого слова первую и последнюю буквы;
|
Да без проблем, пожалуйста:
Код:
var
S:string;
i,j,N,L: integer;
W,W1:Array[1..255] of String;
C:Char;
Begin
writeln('Enter the string: ');
readln(S);
N:=1;
i:=0;
Repeat
Inc(i);
W[N]:='';
While (S[i]<>',') and (S[i]<>'.') do
begin
W[N]:=W[N]+S[i];
Inc(i);
end;
If S[i]<>'.' then Inc(N);
Until S[i]='.';
For i:=1 to N do
begin
L:=Length(W[i]);
C:=W[i][1];
W1[i]:='';
for j:=2 to L do W1[i]:=W1[i]+W[i][j];
W1[i]:=W1[i]+C;
end;
For i:=1 to N do
if i<N then Write(W1[i]+',') else Write(W1[i]+'.');
Writeln;
For i:=1 to N do
begin
L:=Length(W[i]);
C:=W[i][L];
W1[i]:='';
W1[i]:=W1[i]+C;
for j:=1 to L-1 do W1[i]:=W1[i]+W[i][j];
end;
For i:=1 to N do
if i<N then Write(W1[i]+',') else Write(W1[i]+'.');
Writeln;
For i:=1 to N do
begin
L:=Length(W[i]);
W1[i]:='';
for j:=2 to L-1 do W1[i]:=W1[i]+W[i][j];
end;
For i:=1 to N do
if i<N then Write(W1[i]+',') else Write(W1[i]+'.');
Readln
End.