Разработать программу решения задачи, в которой поменять местами первую и последнюю буквы каждого слова в строке символов на английском языке (слова разделены пробелами). Исходные данные строки вводятся с клавиатуры — Pascal(Паскаль)

Модуль

unit Stroka;
 
interface
 
procedure Vvod(var st:string);{ввод строки с проверкой соответствия условию}
function Obmen(st:string):string;{обмен первой и последней букв}
function KolSim(st:string; x:char):byte;{подсчет количества заданного символа}
 
implementation
 
procedure Vvod(var st:string);
var i,k:byte;
begin
repeat
Writeln('Vvedite stroky na anglijskom yazyke, slova razdeleny probelom:');
readln(st);
k:=0;
for i:=1 to length(st) do
if (not (st[i] in ['A'..'Z','a'..'z',' '])) or (st[1]=' '){если в строке есть не английские буквы или пробелы}
   or(st[length(st)]=' ') or((st[i]=' ')and(st[i+1]=' ')) then{или пробел в начале или конце или больше 1 пробела подряд}
    begin
     k:=1;{фиксируем}
     writeln('Povtorite vvod!');
     break;{прекращаем проверку}
   end;
until k=0;{если все нормально, продолжаем программу}
end;
 
function Obmen(st:string):string;
var st1,st2:string;
    x:char;
    i:byte;
begin
st:=st+' ';{добавим пробел в конец, чтобы все слова заканчивались одинаково}
st2:='';{новая строка, пока пустая}
while pos(' ',st)>0 do {пока в строке есть пробелы}
  begin
    st1:=copy(st,1,pos(' ',st)-1);{копируем очередное слово до пробела}
    x:=st1[1];{запоминаем первую букву}
    st1[1]:=st1[length(st1)];{на ее место ставим последнюю}
    st1[length(st1)]:=x;{на последнее-первую}
    st2:=st2+st1+' ';{составляем новую строку}
    delete(st,1,pos(' ',st));{удаляем просмотренное слово с пробелом}
 end;
Obmen:=st2;
end;
function KolSim(st:string; x:char):byte;
var i,k:byte;
begin
k:=0;
for i:=1 to length(st) do{идем по строке}
if st[i]=x then k:=k+1;{если нашли нужный символ, считаем}
KolSim:=k;
end;
end.

Программа

uses Crt,Stroka;{подключаем модуль}
var s:string;
    c:char;
begin
clrscr;
Vvod(s);{вводим строку}
write('Simvol = ');readln(c);{вводим символ}
writeln(Obmen(s));{выводим измененную строку}
writeln('Kol sim ',c,'=', KolSim(s,c));{выводим количество символа}
readln
end.

Leave a Comment

26 − 18 =