Школьники обычно знакомятся с понятием алгоритма и его видами на уроках информатики в 8 классе. Эта тема является фундаментальной для тех учеников, которые планируют связать свою карьеру с программированием или другой сферой IT. Чтобы узнать, что такое алгоритмы и какие они бывают – читайте этот материал.
Что такое алгоритм?
Алгоритм – это последовательность некоторых действий. К свойствам алгоритма относят:
- Понятность: алгоритм должен быть понятен для того, кто его выполняет;
- Выполнимость: алгоритм состоит из простейших задач, которые легко выполняются;
- Конечность: после завершения выполнения алгоритма должен определенный результат.;
- Результативность.
Простейшим примером алгоритма из повседневной жизни может служить кулинарный рецепт. В нем обычно указано необходимое количество ингредиентов и последовательность действий, которые приведут к конечному результату – готовому блюду.
Алгоритм работает с некоторыми информационными объектами. Это могут быть числа, какие-либо символы, строки, таблицы. Все это называют величинами, при этом они бывают постоянными и переменными.
Над величинами производить несколько типов операций:
- Арифметические операции (сложение, умножение, деление, вычитание, возведение в степень).
- Сравнение (больше или меньше, равно или не равно).
- Логические операции.
Обычно в языках программирования величины задают с помощью переменных, при этом они могут быть разного типа:
- Числовые переменные целого типа;
- Числовые переменные вещественного типа;
- Переменные символьного типа;
- Строковые переменные.
Чтобы в алгоритме была переменная, ее нужно завести или объявить. Во время объявления нужно также указать тип переменной (например, переменная числовая целого типа). У каждой переменной должно быть имя, его можно задать:
- Латинской буквой (a, b).
- Латинским названием (abc, ab2).
- Словом (sum).
Есть три способа записи алгоритмов:
- Вербальный – запись обычными словами.
- Символьный – объяснение при помощи определенного набора символов или команд, которые понимает исполнитель.
- Графический – запись алгоритма блок-схемами.
Для описания алгоритмов лучше всего использовать блок-схемы.
Исполнителем в программировании является комплекс «компьютер + система программирования». Поэтому программист составляет программу на том языке, на который ориентирована система программирования (например, Pascal).
Виды алгоритмов
Есть три вида базовых алгоритмов: линейный, ветвление и циклический. Рассмотрим каждый из них детально.
Разветвляющийся алгоритм
Ветвление – это алгоритмическая конструкция, когда в зависимости от проверки условия выбирается та или иная ветвь, по которой дальше пойдет алгоритм. Рассмотрим блок-схему разветвляющегося алгоритма.
В таком виде алгоритмов всегда есть условие, которое необходимо проверить. Если оно выполняется, тогда происходит одна последовательность действий (в нашем случае, покупается нужное мороженое).
Если же условие не выполнилось, происходит другая последовательность действий (выбор другого мороженого). В какой-то части алгоритма две ветви объединяются в одну (в данной ситуации это происходит во время оплаты покупки на кассе).
Пример разветвляющегося алгоритма
Рассмотрим правила записи условия.
if (усл.) then действие 1 else действие 2;
Перед условием записывается слово «if». После него в скобках идет само условие. Если условие выполнено, необходимо написать слово «then» и набор действий этой ветви. Далее прописывается ветвь действий при невыполнении условия после слова «else». Обратите внимание, что перед else не ставится точка с запятой.
Попробуем написать программу в паскале. Пользователь при входе вводит свой возраст. Если ему меньше 18 лет, программа пишет «Привет, ученик», если больше 18 – «Здравствуйте, учитель».
program usl;
var v: integer;
begin
read (v);
if (v>18) then
write («Здравствуйте, учитель»)
else
write («Привет, ученик»);
end.
Сначала задается имя программы, потом создается переменная, которую необходимо считать. После прописываются условия и действия каждой ветви. В конце программы пишется end.
Циклический алгоритм
Циклический алгоритм или алгоритмическая конструкция повторения реализуется с помощью циклов. Цикл позволяет:
- Ту или иную последовательность действий выполнить необходимое количество раз.
- Ту или иную последовательность действий выполнять, пока определенное условий истинно или пока оно ложно.
Существует три типа циклов:
- Цикл с предусловием;
- Цикл с постусловием;
- Цикл-счетчик, который выполняет заданное количество действий.
Рассмотрим блок-схема для каждого вида циклического алгоритма.
На этом изображении представлен цикл с предусловием. Он сначала проверяет некоторое логическое условие. Если это условие истинно, тогда выполняется тело цикла (набор действий, которые происходят именно в цикле).
После этого исполнитель опять проверяет условие и если оно опять истинно, тело цикла выполняется еще раз. Так происходит до тех пор, пока условие не станет ложным. Если условие в самом начале будет ложным, тело цикла не выполнится ни разу.
В циклическом алгоритме с постусловием тело цикла в любом варианте выполняется, как минимум, один раз. Далее проверяется условие. Если оно ложное, алгоритм пойдет дальше и тело цикла больше не выполняется. Если оно истинно, тело цикла выполняется повторно до тех пор, пока условие не станет ложным.
Цикл-счетчик выполняет ровно столько раз, сколько будет задано.
Пример циклического алгоритма
Рассмотрим правила записи циклического алгоритма на языке паскаль. В самом начале пишется слово «for», после него идет имя какой-либо уже описанной ранее переменной. Далее пишут:
- Оператор присваивания (=),
- Начальное значение переменной (в нашем случае – 1);
- Специальное слово «to»;
- Последнее значение i, до которого будет идти цикл-счетчик (в нашем случае – 100);
- Специальное слово «do»
for i: = 1 to do
тело цикла
Линейный алгоритм
Линейный алгоритм – это алгоритм, в котором все действия выполняются последовательно друг за другом. В отличие от разветвляющегося алгоритма, этот вид алгоритма не может пойти по одному из двух путей. Линейный будет всегда идти по одному пути.
Блок-схема линейного алгоритма выглядит так.
Сначала выполняется первое действие, после – второе, третье и так далее.
Пример линейного алгоритма
Рассмотрим задачу из жизни, которая будет решаться с помощью линейного алгоритма. Мама дала ребенку деньги, за которые ему необходимо купить два мороженых. Необходимо написать программу, которая посчитает сдачу.
program sdacha;
var s, m1, m2, den :real;
begin
read (den, m1, m2);
s:= den-m1-m2;
write (s);
end.
После присвоения имени программе необходимо создать 4 переменных. В первой переменной будет храниться сумма, которую дала мама ребенку, во второй – цена первого мороженого, в третьей – цена второго мороженого, в четвертой – сдача. После команды begin начинается сама программа. Задается значение переменных для считывания. В конце программы пишется end.
Алгоритмы и структуры данных
Данные – это совокупность величин, с которыми работает компьютер. Они бывают:
- Исходными (заданы по умолчанию);
- Промежуточными (получены в процессе вычислений);
- Результатами (окончательный ответ).
В программу вводят исходные данные, исполнитель выполняет заданные действия и получает промежуточные данные, а после выполнения всех команд программы появляются результаты.
Данные по своей структуре бывают простые и структурированные. Простые величины имеют одно значение (a:=5; b:=10; c:=235), структурированные – имеют множество значений. К структурированным величинам относятся массивы, строки.
Структурное программирование – это не только форма описания алгоритма и программы, но это еще и способ мышления программиста. При размышлении над составлением алгоритма необходимо представлять его при помощи стандартных структур, то есть складывать сложную программу из простых частей.
Будущие программисты в вузах изучают дисциплину «Алгоритмы и структуры данных». Но чтобы углубленно изучать алгоритмы и писать сложные программы, нужно освоить общие техники проектирования и базовые алгоритмы еще в школе.
Если у вас не получается самостоятельно разобраться с этой или другими техниками, стоит обратиться за помощью к репетитору по информатике. Педагог узнает о проблемах, которые возникают у ученика и выяснит цель изучения дисциплины. Учитель поможет подготовиться к следующему уроку, итоговой контрольной, выпускному экзамену и поступлению на IT-специальность.
Найти репетитора по информатике или другому предмету вы можете на сайте BUKI.