Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы компьютерных наук. Ч.1. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
3.3.1. Использование отклонения частного показателя от
.
max ii
AAA
i
,
max
max
i
i
A
AA
A
i
i
.
max
i
A
A
A
i
i
i
A
i
A
),...,,...,(
1 nq
bbb
),...,,(
21 n
),...,2,1( nI
1
A
2
A
2
A
3
A
q
b
q
A
1q
A
q
A
q
q
A
1q
A
1qb
1nb
максимального
(14)
В данном случае переходят к отклонениям показателей, однако способ не устраняет различия масштабов отклонений.
3.3.2. Использование безразмерной величины
(15)
(16)
Формула (15) применяется тогда, когда уменьшение
приводит к увеличению (улучшению) значения аддитивной
формулы критерия. Выражение (16) используется, когда к увеличению
значения аддитивной формулы критерия приводит увеличение
.
3.4. Учет приоритета частных показателей
Необходимость в учете приоритетов возникает в случае, когда частные показатели имеют различную степень важности.
Приоритет частных показателей задается с помощью ряда приоритета I, вектора приоритета
и вектора весовых
коэффициентов
.
Ряд приоритета представляет собой упорядоченное множество индексов частных показателей
. Он отражает чисто
качественные отношения доминирования показателей, а именно
отношения следующего типа: показатель
показатель
Элемент
показатель
которому отведен номер
одинаковый ранг, то
важнее показателя
и т.д.
вектора приоритета показывает, во сколько раз
важнее показателя
в ряду приоритета). Если
. Для удобства принимают
важнее показателя
(здесь
– показатель, и
имеют
.
Компоненты векторов приоритета и весовых коэффициентов
31
, а
связаны между собой следующим отношением:
.
1q
q
q
b
i
b
q
n
q
n
qi
i
n
qi
iq
bb1/
Зависимость, позволяющая по известным значениям
определить величину
, имеет вид:
. (17)
Знание весовых коэффициентов позволяет учесть приоритет частных показателей.
4. Алгоритмы и основы программирования
4.1. Понятие алгоритма
Одним из наиболее важных разделов компьютерных наук являются теория, анализ, разработка, оценка эффективности, реализация и практическое применение алгоритмов.
Разработка компьютерной программы обычно включает следующие этапы:
– разработка алгоритмов;
– написание кода;
– тестирование и отладка.
Алгоритм – система правил, описывающая последовательность действий, которые необходимо выполнить для решения задачи.
Алгоритм решения вычислительной задачи – это совокупность правил преобразования исходных данных в результатные.
Международная организация стандартов (ISO) формулирует
понятие «алгоритм» как «конечный упорядоченный набор четко определенных правил для решения проблемы».
4.2. Свойства алгоритмов
Основные свойства алгоритма:
– дискретность;
– определенность;
– массовость;
– результативность.
Дискретность выражается в том, что алгоритм описывает действия над дискретной информацией, при этом сами действия также дискретны.
Определенность означает, что в алгоритме однозначно указано
32
все, что должно быть выполнено.
Массовость алгоритма подразумевает его применимость к множеству значений исходных данных.
Результативность алгоритма состоит в возможности получения результата за конечное число шагов.
Рассмотренные свойства алгоритмов предопределяют возможность их реализации на вычислительной машине, при этом процесс, порождаемый алгоритмом, называют вычислительным процессом.
Исполнитель алгоритма выполняет действия по механическим правилам – командам. Обстановка, в которой действует исполнитель, называется средой исполнителя.
Правильное построение алгоритма характеризуется полным набором данных – необходимым и достаточным для решения поставленной задачи (получения искомого результата).
С точки зрения исполнителя алгоритм должен иметь следующие свойства:
1. Понятность (точность) – каждая команда алгоритма
управления определяет однозначное действие исполнителя.
2. Конечность (результативность) – свойство алгоритма, которое характеризует, что при точном исполнении всех команд алгоритма процесс решения задачи приводит к результату за конечное число шагов.
3. Детерминированность(определенность) – свойство алгоритма, благодаря которому каждая команда воспринимается однозначно.
4. Массовость - свойство алгоритма, которое характеризует пригодность алгоритма для решения задач некоторого класса.
5. Дискретность - свойство алгоритма, которое характеризует разбиение процесса решения задачи на последовательность отдельных шагов.
4.3. Блок-схемы
Наибольшее представление из-за своей наглядности получил
графический (блок-схемный) способ записи алгоритма (табл. 1).
Блок-схема – это графическое изображение логической
структуры алгоритма, в которой каждый этап процесса обработки информации представляется в виде геометрических символов (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых операций.
Условия построения блок-схем:
33
– из каждого прямоугольника и параллелограмма (кроме конца
Название
символа
Графическое
изображение
Комментарии
Пуск/Останов
(блоки начала и конца алгоритма)
Указание на начало или конец алгоритма
Ввод/Вывод
(блоки ввода, вывода)
Организация ввода/вывода в общем виде
Процесс
(операторные блоки)
Выполнение вычислительного действия или последовательности действий, которые изменяют значение, форму представления или размещения данных
алгоритма) должна выходить только одна стрелка;
– в каждый прямоугольник и параллелограмм (кроме начала
алгоритма) должна входить хотя бы одна стрелка;
– в каждый ромб должна входить хотя бы одна стрелка, а
выходить из него – две стрелки, помеченные словами «да» и «нет».
4.4. Виды алгоритмов
Виды алгоритмов: – терминистический (выполняется за конечное число шагов); – детерминистический (при строгом указании очередного шага
алгоритма);
– детерминированный(определение результата независимо от
последовательности выполняемых шагов).
Исходными данными для построения алгоритмов являются: – постановка задачи; – метод решения задачи.
Таблица 1. Блочные символы блок-схемы
34
Таблица 1. Окончание
Условие
(условный блок)
Выбор направления выполнения алгоритма. Если условие, записанное внутри ромба, выполняется, то управление передаётся по стрелке «да», в противном случае – по стрелке «нет». Таким образом, реализуется процесс изменения последовательности вычислений в зависимости от выполнения условия
Начало цикла с параметром
Используется для организации циклических конструкций с известным количеством итераций (повторений) и известным шагом изменения параметра цикла. Внутри блока указываются его начальное и конечное значение, шаг изменения
Предопреде­лённый процесс
Используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращения к библиотечным подпрограммам
Печать сообщений
Вывод результатов на печать
подпрограмма
35
а б
Рис. 8. Блок-схема линейного (а) и ветвящегося алгоритма (б)
Алгоритм может быть описан (формализован) по некоторым
правилам посредством следующих способов:
– словесного; – графического; – формульно-словесного; – алгоритмического языка.
Результатами выполнения алгоритмов могут быть информация
и управляющие сигналы, по которым осуществляются определенные преобразования.
При всем многообразии алгоритмов решения задач выделяют
три основных вида вычислительных процессов и соответствующих типов алгоритмов:
– линейный алгоритм, в котором команды выполняются в
порядке их естественного следования друг за другом, независимо от каких-либо условий (рис. 8,а);
– ветвящийся алгоритм, выполняющийся по одному из
нескольких заранее предусмотренных направлений в зависимости от исходных данных или промежуточных результатов (рис. 8,б);
36
– циклический алгоритм, в котором последовательность команд
повторяется более одного раза.
Рис. 9. Блок-схема цикла с параметром
а б
Рис. 10. Блок-схемы циклов с предусловием (а) и с постусловием (б)
Цикл – это многократно повторяемый участок вычислений.
Имеются циклы с определенным (заранее заданным) числом повторений (рис. 9) и с неопределенным числом повторений (рис. 10).
Количество повторений зависит от соблюдения условия. Если
проверка условия идет в начале цикла, то такой цикл называется с предусловием, в конце - с постусловием. И ветвящийся, и циклический алгоритмы изображаются с помощью единого блока проверки по условию.
Разнообразие алгоритмов определяется тем, что любой алгоритм распадается на части (фрагменты) и каждый фрагмент представляет собой алгоритм одного из трех указанных видов.
4.5. Основные принципы алгоритмизации
Общие правила построения схемы алгоритма.
1. Выявить исходные данные, результаты, назначить им имя;
2. Выбрать метод решения задачи;
37
3. Разбить метод решения задачи на этапы;
4. Изобразить каждый этап в виде соответствующего блока
схемы алгоритма и указать линиями связи и порядок их выполнения. В полученной схеме необходимо предусмотреть выдачу результатов или сообщений об их отсутствии.
5.Алгоритмы обработки массивов данных
Часто для работы с множеством однотипных данных (целочисленными значениями, строками, датами и т.п.) оказывается удобным использовать массивы.
Массив – это множество однотипных элементов, объединённых общим именем и занимающих в компьютере определённую область памяти. Количество элементов в массиве всегда конечно. В качестве элементов массива можно использовать любой тип данных, поэтому вполне правомерно существование массивов записей, массивов указателей, массивов строк и т.д. Элементы, образующие массив, упорядочены таким образом, что каждому элементу соответствует совокупность номеров (индексов), определяющих его местоположение в общей последовательности. Доступ к каждому отдельному элементу осуществляется путем индексирования элементов массива.
5.1. Виды массивов
Массив, представляющий собой просто список данных одного и того же типа, называют простым или одномерным массивом (рис. 11). Для доступа к данным, хранящимся в определенном элементе массива, необходимо указать имя массива и порядковый номер этого элемента, называемый индексом.
Рис. 11. Одномерный массив
Если возникает необходимость хранения данных в виде таблиц, в формате строк и столбцов, то необходимо использовать многомерные массивы (рис. 12). Для доступа к данным, хранящимся, например, в двумерном массиве, необходимо указать имя массива и два индекса: первый должен соответствовать номеру строки, а второй номеру столбца, в которых хранится необходимый элемент.
38
Типовые задачи при работе с массивами:
– ввод-вывод элементов одномерного массива;
– вычисление суммы элементов массива;
– вычисление произведения элементов массива;
– поиск максимального элемента в массиве и его номера;
– удаление элемента из массива;
– сортировка элементов в массиве.
Рис. 12. Двумерный массив
5.2. Сортировка элементов в массиве
Сортировка представляет собой процесс упорядочения элементов в массиве в порядке возрастания или убывания их значений. Существует большое количество алгоритмов сортировки, но все они базируются на трех основных:
– сортировка обменом (метод «пузырька»);
– сортировка выбором;
– сортировка вставкой.
5.2.1. Сортировка обменом (метод «пузырька»)
Сортировка методом «пузырька» использует метод обменной сортировки и основана на выполнении в цикле операций сравнения и при необходимости обмена соседних элементов. Рассмотрим алгоритм пузырьковой сортировки более подробно.
При первом проходе по массиву элементы попарно сравниваются между собой: первый со вторым, затем второй с третьим, следом третий с четвертым и т.д. Если предшествующий элемент оказывается больше последующего, то их меняют местами. Постепенно самое большое число оказывается последним. Остальная
39
часть массива остается не отсортированной, хотя некоторое перемещение элементов с меньшим значением в начало массива наблюдается.
При втором проходе незачем сравнивать последний элемент с предпоследним. Последний элемент уже стоит на своем месте. Значит, число сравнений будет на одно меньше.
На третьем проходе уже не надо сравнивать предпоследний и третий элемент с конца. Поэтому число сравнений будет на два меньше, чем при первом проходе.
В конце концов, при проходе по массиву, когда остаются только два элемента, которые надо сравнить, выполняется только одно сравнение.
После этого первый элемент не с чем сравнивать и, следовательно, последний проход по массиву не нужен. Другими словами, количество проходов по массиву равно m-1, где m – это количество элементов массива.
Количество сравнений в каждом проходе равно m-i, где i – это номер прохода по массиву (первый, второй, третий и т.д.).
При обмене элементов массива обычно используется "буферная" переменная, куда временно помещается значение одного из элементов.
5.2.2.Сортировка выбором
Этот метод основывается на алгоритме поиска минимального элемента. В массиве находится минимальный элемент, который ставится на первое место. Для того чтобы не потерять элемент, стоящий на первом месте, этот элемент устанавливается на место минимального. Затем в усеченной последовательности, исключая первый элемент, отыскивается минимальный элемент и ставится на второе место и так далее n-1 раз, пока не встанет на свое место предпоследний n-1 элемент массива, сдвинув максимальный элемент в самый конец.
5.2.3.Сортировка вставкой
Сортировка вставкой заключается в том, что сначала упорядочиваются два элемента массива. Затем делается вставка третьего элемента в соответствующее место по отношению к первым двум элементам. Четвертый элемент помещают в список из уже упорядоченных трех элементов. Этот процесс повторяется до тех пор, пока все элементы не будут упорядочены.
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]