
- •Основы алгоритмизации
- •Специфика решения задачи с использованием компьютера
- •Роль моделирования при решении сложных задач
- •Устройство компьютера как инструмента решения задач
- •Пример решения задачи с использованием компьютера
- •Вопросы для самоконтроля
- •Понятие алгоритма
- •Свойства алгоритмов и способы их задания
- •Понятие структурной алгоритмизации
- •Базовый набор алгоритмических структур
- •Примеры классических алгоритмов
- •Переменные-счетчики и аккумуляторы
- •Алгоритм перестановки значений двух переменных
- •Простейший алгоритм сортировки
- •Последовательный и двоичный поиск в массиве данных
- •Вопросы для самоконтроля
- •Основы программирования
- •Изучить три темы:
- •Ответить на вопросы для самоконтроля по каждой теме.
- •Эволюция программирования как деятельности
- •Развитие вычислительной техники
- •Парадигмы современного программирования
- •Уровни языков программирования
- •Современные языки программирования высокого уровня
- •Программирование как вид деятельности
- •Вопросы для самоконтроля
- •Инструменты программирования
- •Основные понятия программирования
- •Этапы разработки программы
- •Функции транслятора в процессе создания программы
- •Средства создания программ
- •Современные системы программирования
- •Вопросы для самоконтроля
- •Проектирование и внедрение программ
- •Этапы разработки программного обеспечения
- •Методы маркетинга программного обеспечения
- •Вопросы для самоконтроля
- •Технология алгоритмического программирования
- •Ответить на вопросы для самоконтроля по каждой теме.
- •Понятия алгоритмического программирования
- •Классификация данных
- •Базовые типы данных
- •Структурированные данные
- •Программа как совокупность операторов. Виды операторов
- •Вопросы для самоконтроля
- •Принципы структурного программирования
- •Понятие подпрограммы
- •Процедуры и функции как разновидность подпрограмм
- •Ответить на вопросы для самоконтроля по каждой теме.
- •Программный код экранной формы
- •Вопросы для самоконтроля
- •Объектно-ориентированное программирование
- •Понятие объекта и класса
- •Концепции объектно-ориентированного программирования
- •Вопросы для самоконтроля
- •Заключение
- •3.3. Глоссарий (краткий словарь терминов)
- •3.4 Технические и программные средства обеспечения дисциплины
-
Последовательный и двоичный поиск в массиве данных
Технология последовательного поиска применяется к неупорядоченным массивам данных и является самой простой. При ее использовании выполняется последовательный просмотр каждого значения с начала массива, пока не будет найдено искомое значение.
Двоичный поиск применяется к упорядоченным массивам данных. Одним из основных преимуществ двоичного поиска является то, что при выполнении каждого сравнения при несовпадении исключается из поиска половина оставшихся элементов.
При первой попытке берется середина отсортированного списка элементов. Если совпадения нет, то следует узнать, больше или меньше искомое значение по отношению к серединному. Если серединное значение больше искомого, то в следующей попытке следует искать в половине списка, содержащей меньшие значения и наоборот. При каждой попытке указывается среднее значение оставшейся части.
Пример. Поиск задуманного числа в пределах 1000. Пусть задуманное число - 390. Первой попыткой называется число 500 (половина от 1000). Если ответ «много», то задуманное число находится в диапазоне от 1 до 499. Разбивая этот диапазон пополам, получаем серединное значение 250. Если ответ «мало», то задуманное число лежит в диапазоне от 250 до 499. Деление пополам дает результат 375. Ответ «мало» означает, что число находится в пределах 375-499. Следующая попытка будет 430, затем 400, а затем 390! Из 1000 значений найдено одно загаданное всего за шесть попыток.
На рис. 1.27 представлен алгоритм двоичного поиска числа 32 из упорядоченного множества 100 чисел.
Рис. 1.27 Алгоритм двоичного поиска числа 32 из 100.
Выводы
-
Решение любой сложной задачи осуществляется с помощью моделирования с применением компьютерной техники
-
В процессе моделирования следует учитывать основные составляющие компьютера:
-
процессор
-
оперативная память
-
устройства ввода-вывода
В процессе моделирования происходит преобразование исходных данных к искомому виду.
Данные вводятся в компьютер с помощью устройств ввода-вывода, хранятся в оперативной памяти и преобразуются процессором, выполняющим команды
Последовательность действий (команд), приводящих к искомому результату, записывается в виде алгоритма
Формы записи алгоритма: псевдокоды и блок-схемы
Сложный алгоритм должен быть разбит на простые составляющие (структурная алгоритмизация)
В основе любого алгоритма лежат три базовые алгоритмические структуры:
-
линейная
-
ветвящаяся,
-
циклическая.
Вопросы для самоконтроля
-
Поясните происхождение слова «алгоритм»
-
Дайте определение понятию «алгоритм»
-
Поясните основные свойства алгоритма
-
Какими способами можно записать алгоритм?
-
Перечислите основные графические элементы записи алгоритма и их назначение
-
Что собой представляет базовый набор алгоритмических структур?
-
Какие виды ветвлений Вы знаете?
-
Какие разновидности циклов можно использовать в алгоритмах? Чем они отличаются?
-
Каково назначение и принцип действия переменной-счетчика?
-
Каково назначение и принцип действия переменной-аккумулятора?
-
Как работает простейший алгоритм «пузырьковой» сортировки?
-
Каково назначение вложенных циклов?