ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »