var s : integer; t, t1,t2: string; b1: boolean; begin b1 := false; writeln('введите строку'); readln(t); t2 := ''; repeat p1 := pos(' ',t); if p1>0 then begin t2 := copy(t,1,p1-1); if length(t2)>0) then t1 := t2 + ' ' + t1; delete(t,1,p1); end else if (length(t)>=1) then //обработка кнца строки begin t2 := t; t1 := t2 + ' ' + t1; b1 := true; end else b1 := true; // еще одна проверка, если пследний символ строки - пробел until (b1 = true); writeln('ответ ',t1) end.
Program Tlg; var s:string; i,n:integer; p:real; begin Writeln('Введите текст телеграммы, разделяя слова ровно одним пробелом'); Readln(s); Write('Укажите стоимость слова в рублях: '); Read(p); n:=1; for i:=1 to length(s) do if s[i]=' ' then Inc(n); Writeln('Стоимость телеграммы, руб: ',n*p:0:2) end.
Тестовое решение: Введите текст телеграммы, разделяя слова ровно одним пробелом Грузите апельсины бочками братья Карамазовы Укажите стоимость слова в рублях: 3.78 Стоимость телеграммы, руб: 18.90
program RevStr; var s,s1:string; i,j,n:integer; begin Write('Исходная строка: '); Readln(s); s:=' '+s; n:=length(s); i:=n; j:=n; s1:=''; while i>0 do begin j:=i; while (s[j]=' ') and (j>1) do Dec(j); { удалили пробелы } i:=j; while (s[j]<>' ') and (j>1) do Dec(j); { пробежали по непробелам } if j>0 then s1:=s1+' '+Copy(s, j+1, i-j); i:=j-1 end; s1:=Copy(s1,2,length(s1)-1); Writeln(s1) end.
Тестовое решение: Исходная строка: А роза упала на лапу Азора Азора лапу на упала роза А
s : integer;
t, t1,t2: string;
b1: boolean;
begin
b1 := false;
writeln('введите строку');
readln(t);
t2 := '';
repeat
p1 := pos(' ',t);
if p1>0 then
begin
t2 := copy(t,1,p1-1);
if length(t2)>0) then t1 := t2 + ' ' + t1;
delete(t,1,p1);
end
else if (length(t)>=1) then //обработка кнца строки
begin
t2 := t;
t1 := t2 + ' ' + t1;
b1 := true;
end
else b1 := true; // еще одна проверка, если пследний символ строки - пробел
until (b1 = true);
writeln('ответ ',t1)
end.