Дискретность. Процесс решения задачи должен быть разбит на последовательность отдельных шагов-команд, которые выполняются одна за другой. Только после завершения одной команды начинается выполнение следующей.
Понятность. Алгоритм должен содержать только те команды, которые известны исполнителю.
Детерминированность. Каждый шаг и переход от шага к шагу должны быть точно определены, чтобы его мог выполнить любой другой человек или механическое устройство. У исполнителя нет возможности принимать самостоятельное решение (алгоритм исполняется формально).
Конечность. Обычно предполагают, что алгоритм заканчивает работу за конечное число шагов. Результат работы алгоритма также должен быть получен за конечное время. Можно расширить понятие алгоритма до понятия процесса, который по различным каналам получает данные, выводит данные и потенциально может не заканчивать свою работу.
Массовость. Алгоритм должен решать не одну частную задачу, а класс задач. Не имеет смысла строить алгоритм нахождения наибольшего общего делителя только для чисел 10 и 15.
Цикл с предусловием это такой цикл, в котором условие проверяется перед выполнением тела цикла. А цикл с постусловием - на оборот, он сначала выполнит, а потом проверит условие и если условие true, то цикл завершится.
Цикл с постусловием, можно использовать в таких ситуациях, когда надо что-то сделать и если чего-то не хватает, то сделать еще раз. Напрмер отправить письмо на email, а если не отправилось, то повторить еще 3 раза. Сначала выполнится тело цикла, в котором находятся функции отправки письма и если отправка удачная, то сообщаем until() true. Иначе тело выполнится еще и еще и еще кучу раз, если мы не задали счетчик в теле цикла, как вариант...
Цикл с предусловием можно использовать, если надо проверять какое-то значение ПЕРЕД выполнением тела цикла и тебе не важно, должно ли оно хоть раз выполниться. Например запросить пароль у пользователя. Но если пользователь уже ввёл пароль, то зачем его запрашивать? Тут можно было бы использовать while
Дискретность. Процесс решения задачи должен быть разбит на последовательность отдельных шагов-команд, которые выполняются одна за другой. Только после завершения одной команды начинается выполнение следующей.
Понятность. Алгоритм должен содержать только те команды, которые известны исполнителю.
Детерминированность. Каждый шаг и переход от шага к шагу должны быть точно определены, чтобы его мог выполнить любой другой человек или механическое устройство. У исполнителя нет возможности принимать самостоятельное решение (алгоритм исполняется формально).
Конечность. Обычно предполагают, что алгоритм заканчивает работу за конечное число шагов. Результат работы алгоритма также должен быть получен за конечное время. Можно расширить понятие алгоритма до понятия процесса, который по различным каналам получает данные, выводит данные и потенциально может не заканчивать свою работу.
Массовость. Алгоритм должен решать не одну частную задачу, а класс задач. Не имеет смысла строить алгоритм нахождения наибольшего общего делителя только для чисел 10 и 15.
Объяснение:
А цикл с постусловием - на оборот, он сначала выполнит, а потом проверит условие и если условие true, то цикл завершится.
Цикл с постусловием, можно использовать в таких ситуациях, когда надо что-то сделать и если чего-то не хватает, то сделать еще раз. Напрмер отправить письмо на email, а если не отправилось, то повторить еще 3 раза. Сначала выполнится тело цикла, в котором находятся функции отправки письма и если отправка удачная, то сообщаем until() true. Иначе тело выполнится еще и еще и еще кучу раз, если мы не задали счетчик в теле цикла, как вариант...
Цикл с предусловием можно использовать, если надо проверять какое-то значение ПЕРЕД выполнением тела цикла и тебе не важно, должно ли оно хоть раз выполниться. Например запросить пароль у пользователя. Но если пользователь уже ввёл пароль, то зачем его запрашивать? Тут можно было бы использовать while