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

UptoLike

75
Пример:
После считывания символа с нужно установить, является ли этот
символ гласной.
if (с= а) or (с=о) or (с=е) or (c=i) or (c=u)
then writeln (да) else writeln (нет);
Можно записать это иначе:
if с in [a, o, e, i, u]
then writeln (да) else writeln (нет
);
Последняя запись более компактна, кроме того, операция in более
быстродейственна.
Пример 20:
Сгенерировать случайным образом пять неповторяющихся чисел
для игры в спортлото «5 из 36».
var loto:set of 1..36;
z,i:1..36; bool:Boolean;
begin
loto:=[ ]; z:=random(36)+1; loto:=[z];
for i:=2 to 5 do
repeat z:=random(36)+1;
if z in loto then bool:=false
else
begin
loto:=loto+[z];
bool:=true;
end;
until bool;
end;
for i:=1 to 36 do if i in loto then write(i:4);
writeln
end.
76
Рис.11. Блок-схема примера 20
Пример 21:
Напечатать все гласные буквы, которые не входят ни в одно слово.
Слова в строке разделены пробелами.
Обозначение: S – строка гласных букв, t – текст, a – слово,
MG – множество гласных букв, p позиция пробела,
L – длина слова, b буква,
R – множество гласных, которые не входят ни в одно слово.
К переменной t добавляем пробел справа, чтобы получить
одинаковый алгоритм
обработки слов.
uses crt;
var R, MG,: set of char;
t,S: string; a:string [40];
p, i , L: byte; b:char;
begin
write (ввод текста); readln(t);
bool:=false
z:=random(36)+1
loto:=[ ]
z:=random(36)+1
loto:=[z]
коне
ц
z in loto
Печать
i
начало
д
а
нет
i:=2
,
5
bool:= true
loto:=loto+[z]
bool:= true
i:=1
,
36
i in loto
д
а
нет
д
а
нет
        Пример:
      После считывания символа с нужно установить, является ли этот                      начало
                                                                                                                                 i:=1,36     конец
символ гласной.
        if (с= ′а′) or (с=′о′) or (с=′е′) or (c=′i′) or (c=′u′)                    loto:=[ ]
                                                                                   z:=random(36)+1                      нет
        then writeln (′да′) else writeln (′нет′);                                                                                i in loto
                                                                                   loto:=[z]
       Можно записать это иначе:                                                                                                      да
       if с in [′a′, ′o′, ′e′, ′i′, ′u′]                                                 i:=2,5
                                                                                                                                 Печать
       then writeln (′да′) else writeln (′нет′);                                                                                   i
                                                                                   z:=random(36)+1
       Последняя запись более компактна, кроме того, операция in более
быстродейственна.
                                                                                                       нет
                                                                                        z in loto               loto:=loto+[z]
       Пример 20:                                                                              да
        Сгенерировать случайным образом пять неповторяющихся чисел                    bool:=false                 bool:= true
для игры в спортлото «5 из 36».
        var loto:set of 1..36;                                             нет
        z,i:1..36; bool:Boolean;                                                       bool:= true
        begin                                                                                да
         loto:=[ ]; z:=random(36)+1; loto:=[z];
         for i:=2 to 5 do
                                                                                                        Рис.11. Блок-схема примера 20
                    repeat z:=random(36)+1;
                    if z in loto then bool:=false
                    else                                                          Пример 21:
                    begin                                                       Напечатать все гласные буквы, которые не входят ни в одно слово.
                          loto:=loto+[z];                                Слова в строке разделены пробелами.
                          bool:=true;                                           Обозначение: S – строка гласных букв, t – текст, a – слово,
                    end;                                                 MG – множество гласных букв,            p – позиция пробела,
                          until bool;                                     L – длина слова,                       b – буква,
               end;                                                       R – множество гласных, которые не входят ни в одно слово.
        for i:=1 to 36 do if i in loto then write(i:4);                         К переменной t добавляем пробел справа, чтобы получить
        writeln                                                          одинаковый алгоритм обработки слов.
        end.                                                                     uses crt;
                                                                                  var R, MG,: set of char;
                                                                                  t,S: string; a:string [40];
                                                                                  p, i , L: byte; b:char;
                                                                                  begin
                                                                                    write (′ввод текста′); readln(t);

                                         75                                                                        76