ВУЗ:
Составители:
Рубрика:
202
Решение. Лишними пробелами называются второй, третий и т.д., следующие за
первым пробелом. Следовательно, чтобы найти лишний пробел, нужно искать два
пробела, стоящие рядом, и удалять второй пробел в каждой найденной паре.
j:=pos(' ',s);
while j<>0 do
begin delete(s,j,1);
j:=pos(' ',s)
end.
Пример 12.5. Строка символов - это любая последовательность символов,
заключенная в апострофы. Задана строка символов, состоящая из слов и строк,
разделенных одним или несколькими пробелами. Нужно удалить из строки все
незначащие пробелы. Незначащими пробелами называются пробелы, не стоящие в
апострофах.
Решение. Запишем формально определение незначащего пробела. Текущий
пробел незначащий, если предыдущий символ является пробелом и этот пробел не
стоит в апострофах. Введем логическую переменную p, которая принимает
значение false, если предыдущий символ не является пробелом, и значение true,
если предыдущий символ - пробел. Введем логическую переменную q, которая
принимает значение false, если пробел находится не в апострофах,
и значение true,
если пробел в апострофах. Тогда формальное определение незначащего пробела
запишется так:
(copy(s,i,1)=' ') and p and not q (текущий символ пробел И предыдущий пробел И не
в апострофах).
Составляем программу:
p:=false;
q:=false;
s1:='';
for i:=1 to length(s) do
begin if not((copy(s,i,1)=' ') and p and not q)
then s1:=s1+copy(s,i,1);
if copy(s,i,1)=' '
then p:=true else p:=false;
if copy(s,i,1)='''' then q:=not q
end;
Пример 12.6. Подсчитать количество гласных русских букв в строке.
Решение. Гласной буквой является такая буква, которая принадлежит
множеству гласных букв. Для решения задачи просматриваем строку посимвольно
и проверяем каждый символ на принадлежность гласным буквам:
k:=0; { количество гласных букв }
for i:=1 to length(s) do
if pos(copy(s,i,1),'аоуэыяёюеи')>0
then k:=k+1;
Пример 12.7. Задано предложение, состоящее из слов, разделенных одним или
несколькими пробелами. Определить самое длинное слово предложения.
Решение. Чтобы выделить окончание слова, нужно анализировать два символа:
первый символ должен быть отличен от пробела, а второй должен быть пробелом.
202 Решение. Лишними пробелами называются второй, третий и т.д., следующие за первым пробелом. Следовательно, чтобы найти лишний пробел, нужно искать два пробела, стоящие рядом, и удалять второй пробел в каждой найденной паре. j:=pos(' ',s); while j<>0 do begin delete(s,j,1); j:=pos(' ',s) end. Пример 12.5. Строка символов - это любая последовательность символов, заключенная в апострофы. Задана строка символов, состоящая из слов и строк, разделенных одним или несколькими пробелами. Нужно удалить из строки все незначащие пробелы. Незначащими пробелами называются пробелы, не стоящие в апострофах. Решение. Запишем формально определение незначащего пробела. Текущий пробел незначащий, если предыдущий символ является пробелом и этот пробел не стоит в апострофах. Введем логическую переменную p, которая принимает значение false, если предыдущий символ не является пробелом, и значение true, если предыдущий символ - пробел. Введем логическую переменную q, которая принимает значение false, если пробел находится не в апострофах, и значение true, если пробел в апострофах. Тогда формальное определение незначащего пробела запишется так: (copy(s,i,1)=' ') and p and not q (текущий символ пробел И предыдущий пробел И не в апострофах). Составляем программу: p:=false; q:=false; s1:=''; for i:=1 to length(s) do begin if not((copy(s,i,1)=' ') and p and not q) then s1:=s1+copy(s,i,1); if copy(s,i,1)=' ' then p:=true else p:=false; if copy(s,i,1)='''' then q:=not q end; Пример 12.6. Подсчитать количество гласных русских букв в строке. Решение. Гласной буквой является такая буква, которая принадлежит множеству гласных букв. Для решения задачи просматриваем строку посимвольно и проверяем каждый символ на принадлежность гласным буквам: k:=0; { количество гласных букв } for i:=1 to length(s) do if pos(copy(s,i,1),'аоуэыяёюеи')>0 then k:=k+1; Пример 12.7. Задано предложение, состоящее из слов, разделенных одним или несколькими пробелами. Определить самое длинное слово предложения. Решение. Чтобы выделить окончание слова, нужно анализировать два символа: первый символ должен быть отличен от пробела, а второй должен быть пробелом.
Страницы
- « первая
- ‹ предыдущая
- …
- 198
- 199
- 200
- 201
- 202
- …
- следующая ›
- последняя »