Виды алгоритмов.
Алгоритм представляет из себя перечень команд, последовательных или нет, с условиями или без них. Важно также и наличие исполнителя, для кого собственно адресовывались эти команды (человек или машина).
Рассмотрим несколько видов алгоритмов.
Линейный алгоритм- это алгоритм, в котором действия выполняются одно за другим, последовательно, в определенном порядке. Вот пример простого алгоритма данного вида:
Перед человеком стоит следующая задача.'
провести социологический опрос, на первый взгляд, задача не простая, но на самом деле выполнима и включает в себя всего лишь несколько действий, но, опять же, в определенном порядке.
Ветвление
Алгоритм представляет из себя действия человека нерешительного, зависящего от внешних условий ( вопросов, на которые можно ответить: да или нет.) Иногда одно условие может включать в себя другие условия, объединенные словами и и или. В первом случае необходимо, чтобы оба условия отвечали да. Во втором же достаточно согласия одного из них - действие всё равно выполнится.
Девочку отпустили гулять во двор, но при наступлении темноты или в случае, если пойдет дождь, она должна вернуться домой, чтобы за неё не волновались.
Два действия одновременно выполнятся не могут, так как девочка только одна, и может либо гулять, либо возвращаться домой.
Циклический алгоритм.
Представляет собой повторяющийся набор команд. Виды цикла:
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



