Основы программирования — Осенний семестр; Михалкович С.С.; 2008; VIII — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Множества)
(Множества)
Строка 46: Строка 46:
 
     end;
 
     end;
 
   end;
 
   end;
   for var i:=0 to n do
+
   writeln(primes);
    if i in primes then
 
        write(i,' ');
 
 
end.  
 
end.  
 
</source>
 
</source>

Версия 00:45, 7 декабря 2011

Множества

Описание множеств. Множества-константы. Пустое множество.

Операции над множествами:

s1+s2 - объединение
s1*s2 - пересечение
s1-s2 - разность
s += s1
s -= s1
s *= s1
s1<s2 - строгое вложение
s1<=s2 - нестрогое вложене
s1>s2 - строгое вложение
s1<=s2 - нестрогое вложене
i in s - принадлежность

Include(s,i);
Exclude(s,i); 

Вывод множеств.

Цикл foreach по множеству.

Пример использования множеств: решето Эратосфена. Алгоритм.

Лекция 25

Алгоритм Эратосфена

Код алгоритма Эратосфена

const n = 10000;
var primes: set of integer;
begin
   primes := [2..n];
   for var i:=2 to round(sqrt(n)) do
   begin
     if not (i in primes) then
       continue;
     var x := i*i;
     while x<=n do
     begin
       Exclude(primes,x);
       x += i;
     end;
   end;
   writeln(primes);
end.