Конспект лекций по программированию для начинающих. Гладков В.П. - 199 стр.

UptoLike

Составители: 

201
end
else i:=i+1;
if f
then write('в строке есть две буквы а')
else write('в строке нет двух букв а').
Другое решение этой задачи можно получить, основываясь на втором решении
задачи 12.1.
j:=pos('a',s);
if j>0
then begin s:=copy(s,j+1,length(s)-j);
j:=pos('a',s);
if j>0
then write('в строке есть две буквы а')
else write('в строке нет двух букв а')
end
else write('в строке нет двух букв а').
Упражнения:
1. Проверьте, встречаются ли в заданной строке только две буквы а.
2. Сравните решение задачи 12.2 с решением упражнения 1.
3. Найдите i-е вхождение символа х в строку s.
Пример 12.3. В строке s заменить символы а на символы я.
Решение 1. Просматриваем строку посимвольно, удаляем найденный символ а,
вставляем на его место я.
for i:=1 to length(s) do
if copy(s,i,1)='a'
then begin delete(s,i,1)
insert('я',s,i);
end.
Решение 2. Просматриваем исходную строку посимвольно и переписываем в
выходную строку символы, отличные от а. Вместо символа а переписываем символ
я.
s1:=''; { выходная строка }
for i:=1 to length(s) do
if copy(s,i,1)='a'
then s1:=s1+'я'
else s1:=s1+copy(s,i,1).
Решение 3. Оно основывается на решении 2 задачи 12.1.
j:=pos('a',s);
while j<>0 do
begin s:=copy(s,1,j-1)+'я'+copy(s,j+1,length(s)-j);
j:=pos('a',s)
end.
Упражнение. Замените в строке s символы аа, стоящие рядом, на символ я.
Пример 12.4. Назовем словом любую последовательность букв и цифр. Строка
состоит из слов, разделенных одним или несколькими пробелами. Удалить лишние
пробелы, оставив между словами по одному пробелу.
                                    201

             end
     else i:=i+1;
   if f
   then write('в строке есть две буквы а')
   else write('в строке нет двух букв а').
   Другое решение этой задачи можно получить, основываясь на втором решении
задачи 12.1.
   j:=pos('a',s);
   if j>0
   then        begin s:=copy(s,j+1,length(s)-j);
                       j:=pos('a',s);
                       if j>0
                       then write('в строке есть две буквы а')
                       else write('в строке нет двух букв а')
               end
   else write('в строке нет двух букв а').
   Упражнения:
   1. Проверьте, встречаются ли в заданной строке только две буквы а.
   2. Сравните решение задачи 12.2 с решением упражнения 1.
   3. Найдите i-е вхождение символа х в строку s.
   Пример 12.3. В строке s заменить символы а на символы я.
   Решение 1. Просматриваем строку посимвольно, удаляем найденный символ а,
вставляем на его место я.
   for i:=1 to length(s) do
   if copy(s,i,1)='a'
   then        begin delete(s,i,1)
                       insert('я',s,i);
               end.
   Решение 2. Просматриваем исходную строку посимвольно и переписываем в
выходную строку символы, отличные от а. Вместо символа а переписываем символ
я.
   s1:=''; { выходная строка }
   for i:=1 to length(s) do
        if copy(s,i,1)='a'
        then s1:=s1+'я'
        else s1:=s1+copy(s,i,1).
   Решение 3. Оно основывается на решении 2 задачи 12.1.
   j:=pos('a',s);
   while j<>0 do
   begin       s:=copy(s,1,j-1)+'я'+copy(s,j+1,length(s)-j);
               j:=pos('a',s)
   end.
   Упражнение. Замените в строке s символы аа, стоящие рядом, на символ я.
   Пример 12.4. Назовем словом любую последовательность букв и цифр. Строка
состоит из слов, разделенных одним или несколькими пробелами. Удалить лишние
пробелы, оставив между словами по одному пробелу.