У вас вопросы?
У нас ответы:) SamZan.net

Разобрать процедуру GetWord которая находит fp ~ первую позицию слова lp ~ последнюю позицию слова в строке

Работа добавлена на сайт samzan.net: 2016-03-30

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 5.4.2025

Практическое занятие (строки)

1. Разобрать процедуру GetWord, которая находит fpпервую позицию слова, lpпоследнюю позицию слова в строке.

const Lat=['a'..'z','A'..'Z'];

Procedure GetWord(s:string;var fp,lp:integer);

begin

 while (fp<=length(s)) and not (s[fp] in Lat) do fp:=fp+1;

 lp:=fp;

 while (lp<=length(s)) and (s[lp] in Lat) do lp:=lp+1;

 lp:=lp-1;

end;

2. Решить задачу:

Дана строка символов. Заменить в тексте слово, содержащее заданный фрагмент на другое заданное слово, посчитать количество таких замен.

const Lat=['a'..'z','A'..'Z'];

Procedure GetWord(s:string;var fp,lp:integer);

begin

 while (fp<=length(s)) and not (s[fp] in Lat) do fp:=fp+1;

 lp:=fp;

 while (lp<=length(s)) and (s[lp] in Lat) do lp:=lp+1;

 lp:=lp-1;

end;

Procedure Alg(var s:string;fr,z:string; var k:integer);

var i,fp,lp:integer; word_: string;

begin

  i:=1; k:=0;

  while i<=length(s)do begin

     fp:=i;

     GetWord(s,fp,lp);

     word_:= Copy (s,fp,lp-fp+1);

     if Pos(fr,word_)>0 then begin

       delete(s,fp,lp-fp+1);

       insert(z,s,fp);

       i:=fp+length(z)+1;

       k:=k+1;

     end

     else

     i:=lp+1;

   end;

end;

var s,fr,z:string; k:integer;

begin

 writeln('Введите строку');   Readln (s);

 writeln('Введите фрагмент'); Readln (fr);

 writeln('Введите новое слово'); Readln (z);

 Alg(s,fr,z,k);

 writeln(' Результат :',s);

 writeln(' Кол-во :',k);

end.

3. Решить задачу:

Дана строка символов. Переписать наоборот каждое слово, посчитать количество слов.

const Lat=['a'..'z','A'..'Z'];

Procedure GetWord(s:string;var fp,lp:integer);

begin

 while (fp<=length(s)) and not (s[fp] in Lat) do fp:=fp+1;

 lp:=fp;

 while (lp<=length(s)) and (s[lp] in Lat) do lp:=lp+1;

 lp:=lp-1;

end;

Procedure Change(var s:string);

var i,l:integer; c:char;

begin

 l:=length(s);

 for i:=1 to l div 2 do begin

   c:=s[i]; s[i]:=s[l-i+1];  s[l-i+1]:=c;

 end;

end;

Procedure Alg(var s:string; var k: integer);

var i,fp,lp:integer; word_: string;

begin

  i:=1; k:=0;

  while i<=length(s)do begin

     fp:=i;

     GetWord(s,fp,lp);

     word_:= Copy(s,fp,lp-fp+1);

     change(word_);

     delete(s,fp,lp-fp+1);

     insert(word_,s,fp);

     i:=lp+1;

     k:=k+1;

   end;

end;

var s:string; k:integer;

begin

 writeln('Введите строку');

 Readln (s);

 Alg(s,k);

 writeln('Результат :',s);

 writeln('Количество слов:',k);

end.

4. Решить задачу:

Дана строка символов. Найти и вывести на экран слова, начинающиеся и заканчивающиеся одной и той же буквой, посчитать количество таких слов.

const Lat=['a'..'z','A'..'Z'];

Procedure GetWord(s:string;var fp,lp:integer);

begin

 while (fp<=length(s)) and not (s[fp] in Lat) do fp:=fp+1;

 lp:=fp;

 while (lp<=length(s)) and (s[lp] in Lat) do lp:=lp+1;

 lp:=lp-1;

end;

Procedure Alg(var s:string; var k: integer);

var i,fp,lp:integer; word_: string;

begin

  i:=1; k:=0;

  while i<=length(s)do begin

     fp:=i;

     GetWord(s,fp,lp);

     word_:= Copy(s,fp,lp-fp+1);

     if word_[1]=word_[length(word_)] then begin

       k:=k+1;

       writeln(word_);

     end;

     i:=lp+1;

   end;

end;

var s:string; k:integer;

begin

 writeln('Введите строку');

 Readln (s);

 Alg(s,k);

 writeln('Результат :',s);

 writeln('Количество слов:',k);

end.




1. Лекция 1 ОБЩИЕ ПОЛОЖЕНИЯ ХОЗЯЙСТВЕННОГО ПРАВА Предмет хозяйственного права Принципы хозяйственно
2. Малороссия (историография)
3. Физика Шпаргалка
4. Реферат- Экономический суд СНГ- проблемы и перспективы
5. ІІІ ступенів За згадкою старожителів села школа в селі Шандра почала своє існування з другої половини ХІХ
6. Повестка2015. Конференция проводится в рамках совместного проекта Информационноаналитического центра пр
7. Тема 1 Введение в биофизику Области исследования Молекулярная биофизика биофизика биополимеро
8. Средства массовой информации в сети Интернет
9. Эволюция языков программирования
10. реферату Персонал підприємстваРозділ Економіка підприємства Персонал підприємства Класифікація і стру