× Главная Раздел 1 Введение. Тема 1.1 Роль информации и связанных с ней процессов в окружающем мире. Тема 1.2 Системы. Раздел 2 Математические основы информатики Тема 2.1 Тексты и кодирование. Тема 2.2 Системы счисления. Тема 2.3 Элементы комбинаторики, теории множеств и математической логики. Тема 2.4 Дискретные объекты. Раздел 3 Алгоритмы и элементы программирования Тема 3.1 Алгоритмические конструкции. Тема 3.2 Составление алгоритмов и их программная реализация Тема 3.3 Анализ алгоритмов Тема 3.4 Математическое моделирование Раздел 4 Использование программных систем и сервисов. Тема 4.1 Компьютер –универсальное устройство обработки данных. Тема 4.2 Подготовка текстов и демонстрационных материалов. Тема 4.3 Работа с аудиовизуальными данными. Тема 4.4 Электронные (динамические) таблицы. Тема 4.5 Базы данных. Тема 4.6 Автоматизированное проектирование. Тема 4.7 3D-моделирование. Тема 4.8 Системы искусственного интеллекта и машинное обучение. Раздел 5 Информационно-коммуникационные технологии. Работа в информационном пространстве. Тема 5.1 Компьютерные сети. Тема 5.2 Деятельность в сети Интернет. Тема 5.3 Социальная информатика. Тема 5.4 Информационная безопасность. Тестовые задания Практические работы

Алгоритмы и элементы программирования

Алгоритм – последовательность чётко определенных действий, выполнение которых ведёт к решению задачи. Алгоритм, записанный на языке машины, есть программа решения задачи.
Алгоритм – это совокупность действий, приводящих к достижению результата за конечное число шагов.

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

Свойства алгоритмов:

  1. Дискретность (от лат. discretus — разделенный, прерывистый) – это разбиение алгоритма на ряд отдельных законченных действий (шагов).
  2. Детерминированность (от лат. determinate — определенность, точность) - любое действие алгоритма должно быть строго и недвусмысленно определено в каждом случае. Например, алгоритм проезда к другу, если к остановке подходят автобусы разных маршрутов, то в алгоритме должен быть указан конкретный номер маршрута 5. Кроме того, необходимо указать точное количество остановок, которое надо проехать, скажем, три.
  3. Конечность – каждое действие в отдельности и алгоритм в целом должны иметь возможность завершения.
  4. Массовость – один и тот же алгоритм можно использовать с разными исходными данными.
  5. Результативность – алгоритм должен приводить к достоверному решению.

Основная цель алгоритмизации – составление алгоритмов для ЭВМ с дальнейшим решением задачи на ЭВМ.

Примеры алгоритма:

Существует несколько способов записи алгоритмов. На практике наиболее распространены следующие формы представления алгоритмов:

  1. словесная (запись на естественном языке);
  2. псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);
  3. графическая (изображения из графических символов – блок-схема);
  4. программная (тексты на языках программирования – код программы).

Рассмотрим подробно каждый вариант записи алгоритмов на примере следующей задачи. Требуется найти частное двух чисел.

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

Пример словесной записи:

Словесный способ не имеет широкого распространения, так как такие описания: строго не формализуемы; страдают многословностью записей; допускают неоднозначность толкования отдельных предписаний.

Псевдокод занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи. В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. Ответ при этом получает человек, который выполняет команды согласно псевдокоду.

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

Название структурыПсевдокод
Присваиваниепеременная = число
Вводввод(переменная)
Выводвывод(переменная)
вывод("фраза")
Ветвлениеесли условие
то действие1
иначе действие2
Повторениепока условие
начало пока
действие
конец пока

Пример псевдокода:

алг Нахождение частного двух чисел
начало
вывод ("задайте делимое и делитель")
ввод (делимое, делитель)
если делитель ≠ 0
то частное = делимое / делитель
вывод(частное)
иначе вывод("нет решения")
кон алг Нахождение частного двух чисел

В данном примере используется три переменные: делимое, делитель и частное. Делимое и делитель задаются исполнителем произвольными числами. Частное считается лишь в том случае, если делитель не равен нулю.

Различают три основных вида алгоритмов:

  1. линейный алгоритм,
  2. разветвляющийся алгоритм,
  3. циклический алгоритм.


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

Самый простой пример реализации линейного алгоритма – путь из университета домой.

Словесный способ записи данного алгоритма:

  1. выйти из университета на остановку;
  2. подождать нужный автобус;
  3. сесть на нужный автобус;
  4. оплатить проезд;
  5. выйти на требуемой остановке;
  6. дойти до дома.

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

Разветвляющийся алгоритм – это алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий.

Самый простой пример реализации разветвляющегося алгоритма – если на улице идет дождь, то необходимо взять зонт, иначе не брать зонт с собой.

Приведенный выше пример псевдокода по нахождению частного двух чисел также относится к разветвляющемуся алгоритму.

Циклический алгоритм – это алгоритм, команды которого повторяются некое количество раз подряд.

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