Виды алгоритмов.

Алгоритм представляет из себя перечень команд, последовательных или нет, с условиями или без них. Важно также и наличие исполнителя, для кого собственно адресовывались эти команды (человек или машина).

Рассмотрим несколько видов алгоритмов.

Линейный алгоритм- это алгоритм, в котором действия выполняются одно за другим, последовательно, в определенном порядке. Вот пример простого алгоритма данного вида:

Перед человеком стоит следующая задача.'

провести социологический опрос, на первый взгляд, задача не простая, но на самом деле выполнима и включает в себя всего лишь несколько действий, но, опять же, в определенном порядке.

Ветвление

Алгоритм представляет из себя действия человека нерешительного, зависящего от внешних условий ( вопросов, на которые можно ответить: да или нет.) Иногда одно условие может включать в себя другие условия, объединенные словами и и или. В первом случае необходимо, чтобы оба условия отвечали да. Во втором же достаточно согласия одного из них - действие всё равно выполнится.

Девочку отпустили гулять во двор, но при наступлении темноты или в случае, если пойдет дождь, она должна вернуться домой, чтобы за неё не волновались.

Два действия одновременно выполнятся не могут, так как девочка только одна, и может либо гулять, либо возвращаться домой.

Циклический алгоритм.

Представляет собой повторяющийся набор команд. Виды цикла:

1. цикл, выполняемый п-раз. ( со счётчиком) . Чем-то напоминает упорного человека, который будет биться головой об стенку, но всё равно своего добьётся.

2. цикл с выходом по условию.

Цикл со счётчиком:

Представим, что перед нами шпион, который пришёл сообщить какую-то новость в свой штаб. Но всё не так просто - чтобы тебе открыли, нужно позвонить в дверь определённое число раз, иначе дверь тебе так не откроют, а информация, добытая с таким трудом, так и не попадет, куда следует. И вот шпион стоит перед заветной дверью, звонит, а в голове у него включён своеобразный счетчик.

Цикл с выходным условием.

Разбойники, а точнее морские пираты раздобыли карту сокровищ и отправились на их поиски. Вот они на месте, начинают копать. Но сколько раз придётся это делать, они не знает (может оно совсем близко, а может кто-то постарался закопать его в самые недра земли). Следовательно " включить счетчик" просто не удастся, а каждый раз заново отдавать команду, так "язык отсохнет". Вот тут-то и приходит на помощь "добрый алгоритм" с выходным условием.

Алгоритм с использованием переменной.

Переменная - это область памяти, в которой можно хранить определенную информацию, которая имеет определенное имя.

Допустим, что пираты всё-таки нашли сокровища, но их оказалось очень много всё сразу не унести. Тогда пираты забирают с собой какую-то часть, а остальное перепрятывают, то есть присваивают сокровищу новое местоположение. Обозначим сокровища буквой Х, а новое местоположение У. Вот как выглядит графически хитрость пиратов:
Х:=У - при этом старое местоположение уже никого не интересует, оно просто стёрто из памяти, так как сокровищ там всё равно уже нет, и оно не представляет никакого интереса.

Примеры решения задач:

1. Найдите площадь квадрата (S=ab)

алг Площадь квадрата

начало

Ввод a

Ввод b

S := a* b

Вывод S

Конец

2. Найдите площадь треугольника по формуле Герона

S = р(р – А)(р – В)(р – С)

Для решения данной задачи надо, чтобы подкоренное выражение

р(р – А)(р – В)(р – С) > 0, иначе треугольника не существует.

алг Площадь квадрата

начало

Ввод А

Ввод B

Ввод C

р := (А + В + С) / 2

S1 := р(р – А)(р – В)(р – С)

если S1 > 0

то

S := S1

Вывод S

иначе Вывод «Треугольника не существует»

конец

Блоксхема:

Самостоятельная работа:

Напишите формальный алгоритм и постройте блоксхему

решения квадратного уравнения, используя ветвление.

ах2+ bх + с =0, где

D = b2-4ac, D>=0

X1 = (- b + корень(D))/ 2a,

X2 = (- b - корень(D))/ 2a