ВУЗ:
Составители:
Рубрика:
61
var a,t:string; L,d,p: byte;
begin writeln (′ввод текста′);
readln(t);
d:=length(t);
t:=t+′_′;
while d>50 do begin
a:=′_′; L:=0; p:=pos(′_′,t);
Рис.7. Блок-схема примера 14 while L+p<=50 do begin
a:= a+ copy(t,1,p);
L:= L+p; d:=d-L;
delete(t,1,p);
p:= pos(′ ′,t);
end;
writeln(a);
end;
writeln(t);
end.
Для «очистки» переменной a
присваиваем пустую строку
Ввод t
t:=t+
′
_′
d:=length(t)
конец
p:=pos(
′
_′,t)
a:=
′
_
′
, L:=0
a:=a+copy(t, 1, p)
L:=L+p
delete(t, 1, p)
p:= pos(
′_′, t)
d:=d-L
начало
нет
d>50
Печать t
да
L+p<=50
нет
да
Печать аa
62
Пример 15:
Выбрать из текста слова, в которых первая буква совпадает с
последней. Слова в тексте разделены пробелами.
Обозначение: t – текст;
p–признак {0–последовательность не букв, 1–последовательность букв};
b – первая буква слова;
h – позиция начала слова;
i – номер элемента строки;
L – длина текста.
Коды строчных русских букв не упорядочены: буквам от ′а′ до ′п
′
соответствуют коды 160÷175; буквам от ′р′ до ′я′ - коды 224÷239; прописным
буквам от ′А′ до ′Я′-запоминаем коды 128÷159.
var t:string; b:char; i,L,p,h:byte;
begin
readln(t);
t:= t+′_′;
L:= length(t);
p:=0;
for i:=1 to L do begin {проверка: является ли символ русской
буквой}
if (ord(t[i])>=128) and (ord(t[i])<=175) or
(ord(t[i])>=224) and (ord(t[i])<=239)
then begin
if p=0 then begin
p:=1;
b:= t[i]; { запоминаем первую букву слова}
h:= i; {запоминаем позицию начала слова}
end;
end
else begin
if p<>0 then begin
if b= t[i-1] then
writeln(copy(t,h,i-h); {печать слова}
end;
p:=0;
end;
end;
end.
Пример 15:
начало Выбрать из текста слова, в которых первая буква совпадает с
последней. Слова в тексте разделены пробелами.
Ввод t Обозначение: t текст;
pпризнак {0последовательность не букв, 1последовательность букв};
t:=t+′_′ b первая буква слова;
d:=length(t)
h позиция начала слова;
i номер элемента строки;
нет L длина текста.
d>50 Печать t конец
Коды строчных русских букв не упорядочены: буквам от ′а′ до ′п′
да
соответствуют коды 160÷175; буквам от ′р′ до ′я′ - коды 224÷239; прописным
p:=pos(′_′,t) буквам от ′А′ до ′Я′-запоминаем коды 128÷159.
Для «очистки» переменной a
присваиваем пустую строку var t:string; b:char; i,L,p,h:byte;
begin
a:=′_′, L:=0
readln(t);
нет t:= t+′_′;
Печать аa L+p<=50 L:= length(t);
p:=0;
да for i:=1 to L do begin {проверка: является ли символ русской
a:=a+copy(t, 1, p) буквой}
L:=L+p var a,t:string; L,d,p: byte; if (ord(t[i])>=128) and (ord(t[i])<=175) or
delete(t, 1, p) (ord(t[i])>=224) and (ord(t[i])<=239)
begin writeln (′ввод текста′);
p:= pos(′_′, t) then begin
d:=d-L readln(t);
d:=length(t); if p=0 then begin
t:=t+′_′; p:=1;
while d>50 do begin b:= t[i]; { запоминаем первую букву слова}
h:= i; {запоминаем позицию начала слова}
a:=′_′; L:=0; p:=pos(′_′,t);
end;
Рис.7. Блок-схема примера 14 while L+p<=50 do begin
end
a:= a+ copy(t,1,p);
else begin
L:= L+p; d:=d-L;
if p<>0 then begin
delete(t,1,p);
if b= t[i-1] then
p:= pos(′ ′,t);
writeln(copy(t,h,i-h); {печать слова}
end;
end;
writeln(a);
p:=0;
end;
end;
writeln(t);
end;
end.
end.
61 62
Страницы
- « первая
- ‹ предыдущая
- …
- 29
- 30
- 31
- 32
- 33
- …
- следующая ›
- последняя »
