Задачи на замену символов.
Задачи на подсчет символов.
1. Определить количество букв “а” и ”о” в строке символов.
Var
St: Sring[255];
Ko,Ka: Byte;
I,N: Byte;
Begin
WriteLn(‘Введите строку символов ‘);
ReadLn(St);
N:=Length(St); {Определение длины введенной строки}
Ko:=0; Ka:=0;
For I:=1 To N Do Begin
If (St[I]=’o’) OR (St[I]=’O’) Then Ko:=Ko+1;
If (St[I]=’a’) OR (St[I]=’A’) Then Ka:=Ka+1;
End;
WriteLn(‘Количество букв о =’,Ko);
WriteLn(‘Количество букв а =’,Kа);
End.
2. Подсчитать сколько слов в тексте начинается на букву ‘а’.
Var
St: Sring[255];
I,K: Byte;
Begin
WriteLn(‘Введите текст ‘);
ReadLn(St);
N:=Length(St); {Определение длины введенной строки}
K:=0;
If St[1]=’A’ Then K:=K+1;
For I:=2 To N Do
If (Copy(St,I,2)=’ a’) OR (Copy(St,I,2)=’ A’) Then K:=K+1;
WriteLn(‘Количество слов, начинающихся на букву «а»=’,K);
End.
3. Определить среднюю длину слова в тексте.
USES Crt;
VAR
A: STRING [240]; KS, KB, N, I: INTEGER;
BEGIN
ClrScr;
Write('Введите тест '); ReadLn(A);
N:=Length(A);
KS:=0; KB:=0;
FOR I:=1 TO N DO
IF (A[I]=' ') OR (A[I]=',') OR (A[I]='.') THEN KS:=KS+1 ELSE KB:=KB+1;
IF (A[N]<>' ') AND (A[N]<>'.') AND (A[N]<>',') THEN KS:=KS+1;
WriteLn('Средняя длина слова = ',KB/KS:3:0);
END.
Примеры для самостоятельного решения:
1. Подсчитать, сколько слов в тексте оканчивается на букву “а”.
2. Подсчитать, сколько букв “т” в последнем предложении.
3. Подсчитать, сколько раз встречается в тексте слово “кот”.
4. В тексте найти количество слов, у которых первый и последний символы совпадают между собой (слова разделены пробелом).
1. Заменить в тексте последовательность символов ‘аб’ на ’яд’.
Var
St: Sring[255];
I,N: Byte;
Begin
WriteLn(‘Введите строку символов ‘);
ReadLn(St);
N:=Length(St); {Определение длины введенной строки}
S1:=’яд’;
For I:=1 To N-1 Do
If Copy(St,I,2)=’аб’ Then Begin
Delete(St,I,2);
Insert(S1,St,I);
End;
Write(‘Результирующая строка: ’,St);
End.
2. В тексте заменить все запятые, предшествующие первой точке, на пробелы.
Var
St: Sring[255];
I,P: Byte;
Begin
WriteLn(‘Введите строку символов ‘);
ReadLn(St);
P:=POS(‘.’,St); {Определение позиции первой точки}
For I:=1 To P-1 Do
If St[I]=’,’ Then St[I]:=’ ‘;
WriteLn(St);
End.
Примеры для самостоятельного решения.
1. Проверить правильность написания гласных букв: «ча», «ща», «чу», «щу», «жи». «ши».
2. В строке символов слово «она» заменить на слово «он».
1. В тексте убрать лишние пробелы между словами, оставив по одному.
Var
S: String[255];
I: Byte;
Begin
WriteLn(‘Ведите текст’);
ReadLn(S);
I:=1;
While(I<=LengTh(S)) Do Begin
If Copy(S,I,2)=’ ‘ Then Begin
Delete(S,I,1);
I:=I-1;
End;
I:=I+1;
End;
WriteLn(‘Измененный текст ’,S);
End.
2.В тексте удалить все слова, заканчивающиеся на букву "e".
USES Crt;
VAR
S: STRING [250]; PS,N,I: INTEGER;
BEGIN
ClrScr;
Write('Введите текст '); ReadLn(S);
S:= ' '+S+' ';
FOR I:=1 TO Length(S) DO Begin
IF S[I]=' ' THEN Begin
PS:=I-1;
IF S[PS]='E' THEN WHILE(S[PS]<>' ') DO Begin
Delete(S,PS,1); PS:=PS-1;
End;
End;
End;
WriteLn(‘ Измененный текст:’); Write(S);
END.
3. Из текста удалить каждое второе слово. Слова разделены пробелом.
USES Crt;
Type MAS= STRING [20];
VAR
A : MAS;
I,K: INTEGER;
BEGIN
ClrScr;
Write('Введите текст '); ReadLn(A);
i:=1;
While (I<=Length(A)) DO Begin
IF A[I]=' ' THEN Begin
K:=I+1;
While (A[K]<>' ') DO Delete(A,K,1);
I:=I+1;
End;
I:=I+1;
End;
WriteLn(‘Измененный текст:’); Write(A);
END.
4. В тексте удалить удвоенные согласные буквы, оставив по одной.
Var
S: String[255];
SB:String[25];
I,J:Byte;
Begin
WriteLn(‘Введите текст’);
ReadLn(S);
SB:=’бвгджзклмнпрстфхцчшщ’;
For I:=1 To Length(SB) D0
For J:=1 To Length(S) D0
If Copy(S,J,2)=SB[I]+SB[I] Then Delete(S,J,1);
WriteLn(‘Измененный текст ‘,S);
End.
Примеры для самостоятельного решения:
1. Из строки символов удалить все гласные буквы
2. Из строки символов удалить заданное слово
3. Удалить все символы «!», следующие за вторым предложением
4. В тексте удалить все слова, заканчивающиеся на букву «о» (слова разделены пробелом).