Основы алгоритмизации и программирования. Часть третья. Структурированные типы данных. Асламова В.С - 32 стр.

UptoLike

63
Рис. 8. Блок-схема примера 15
Пример 16:
Проверить является ли буква согласной или гласной.
var r,a:strihg[9]; s:char; i:byte;
begin
r:=согласная; writeln (ввод русской прописной буквы);
readln(s);
a:=аоиеяуыэю;
for i:= 1 to 9 do
if s=a[i] then begin r:=гласная;
break end; {break- досрочное завершение цикла}
writeln(r); readln;
end.
да
Коне
ц
t:= t +
_
L:=length(t)
Ввод t
p:=0
i:=1,L
(ord(t[i])>=128) and
(ord(t[i])<=175)
or
(ord(t[i])>=224) and
(ord(t[i])<=239)
p
:=0
да
нет
да
p:= 1
b:=t[i]
h:=i
1
1
нет
p
<>0
нет
нет
да
начало
Печать
copy(t,h,i-h)
b
=t
[
i-1
]
1
64
Пример 17:
Посчитать сколько слов в тексте начинается на букву «а». Слова в
тексте разделены пробелами.
Рис.9. Блок-схема примера 17
var a:string; t:char; p,k,L:byte;
begin
writeln(ввод текста);
readln(a); a:= a+_;
k:=0;
p:= pos(_,a); {ищем позицию конца слова}
while p<>0 do
begin
L:=length(a); {определяем длину текста}
t:= copy(a,1,1); {t - первая буква слова}
if t =a
then k:= k+1;
a:=copy(a,p+1,L-p); {удаляем слово}
p:= pos(_,a);
end;
k:=k +1
a:=copy(a,p+1,L-p)
p:=pos(_,a)
k:=0
1
a:= a +
_
p:=pos(_,a)
коне
ц
P<>0
Печать
К
Ввод текста а
начало
нет
а
нет
t=a
L:=length(a)
t:=copy(a,1,1)
а
1
k -кол-во слов,
начинающихся
с буквы а
                                                                                       Пример 17:
                    начало
                                                                                      Посчитать сколько слов в тексте начинается на букву «а». Слова в
                                                                               тексте разделены пробелами.
                     Ввод t

                                                                                        начало                                                     1
                  t:= t + ′_′
                 L:=length(t)                                       1
                                                                                      Ввод текста а
                                                                                                                                              L:=length(a)
                     p:=0
                                                                Печать                                        k -кол-во слов,                t:=copy(a,1,1)
   1
                                                              copy(t,h,i-h)                                   начинающихся
                    i:=1,L                                                                k:=0                с буквы а
                                        Конец                             да                                                                                  нет
                                                                                                                                                 t=′a′
                                                     нет
                                                                b=t[i-1]                                                                               да
                                                                                       a:= a +′_′
              (ord(t[i])>=128) and                                                                                                              k:=k +1
                                            нет                           да         p:=pos(′_′,a)
                (ord(t[i])<=175)
                        or                                       p<>0
              (ord(t[i])>=224) and
               (ord(t[i])<=239)                                         нет
                                                                                                      нет                                a:=copy(a,p+1,L-p)
                                                                   1                     P<>0               Печать          конец           p:=pos(′_′,a)
                                                                                                              К
                                                                                                да
                         да
        нет                       да   p:= 1                                                1
                     p:=0              b:=t[i]
                                        h:=i

                                                                                                              Рис.9. Блок-схема примера 17
                              Рис. 8. Блок-схема примера 15                       var a:string; t:char; p,k,L:byte;
       Пример 16:                                                                 begin
                                                                                     writeln(′ввод текста′);
    Проверить является ли буква согласной или гласной.                               readln(a); a:= a+′_′;
var r,a:strihg[9]; s:char; i:byte;                                                   k:=0;
begin                                                                                p:= pos(′_′,a);                  {ищем позицию конца слова}
 r:=′согласная′; writeln (′ввод русской прописной буквы′);                           while p<>0 do
 readln(s);                                                                          begin
 a:=′аоиеяуыэю′;                                                                        L:=length(a);                  {определяем длину текста}
 for i:= 1 to 9 do                                                                      t:= copy(a,1,1);               {t - первая буква слова}
 if s=a[i] then begin r:=′гласная′;                                                     if t =′a′ then k:= k+1;
 break end;                         {break- досрочное завершение цикла}                 a:=copy(a,p+1,L-p);            {удаляем слово}
 writeln(r); readln;                                                                    p:= pos(′_′,a);
end.                                                                                 end;
                                       63                                                                              64