основные алгоритмы