ВУЗ:
Составители:
Рубрика:
9
for i:=1 to 13 do i:=Номер мыши, стоящей в кругу за i;
Когда все мыши стоят в кругу от 1 до max (max=13), то переход от одной
мыши к другой выражается оператором i:=i mod max + 1. Если при переходе мы
попадаем в мышь, которой уже нет в круге, то номер этой мыши пропускается.
Program Cat;
Const Max=13; {число мышей}
Var krug:set of 1..max; {множество мышей}
i,j:byte; {параметры циклов}
k:1..max; {искомый номер}
Begin
for k:=1 to max do
begin
krug:=[1..max]; i:=k;
repeat
for j:=1 to max do
repeat
i:=i mod max + 1
until i in krug;
if i<>1 then krug:=krug-[i]
until (i=1) or (krug=[1]);
if krug=[1] then break
end;
write('Номер мыши, с которой надо начать счет: ',k);
readln
End.{Cat}
Решим задачу, в которой используется массив из множеств.
Задача 5. Пусть дан фрагмент программы . Найдите значения A, B, C типа
ассортимент, перечисленные ниже.
type
продукт = (хлеб , масло, молоко, мясо, рыба, соль, колбаса, сахар, кофе);
ассортимент = set of продукт;
магазины = array[1..20] of ассортимент;
а) А – продукты , которые есть во всех магазинах ;
б) В – продукты , которые есть хотя бы в одном магазине;
в) С – продукты , которых нет ни в одном магазине.
♣ Множество А получается как пересечение множеств ассортиментов про-
дуктов всех магазинов. Множество B есть объединение множеств ассортимен-
тов продуктов всех магазинов. Множество С получается как разность множест-
ва, состоящего из всех возможных продуктов, и множества В . ♠
Program Shops_;
Uses crt;
Const Max=20; {количество магазинов}
Type
products=(bread,butter,milk,meat,fish,salt,cheese,sausage,sugar,coffee);
assortiment=set of products;
Страницы
- « первая
- ‹ предыдущая
- …
- 7
- 8
- 9
- 10
- 11
- …
- следующая ›
- последняя »