- •Введение
- •1.2.2. Виды информации
- •1.2.3. Свойства информации
- •1.3.Информационные процессы
- •1.3.1. Сбор информации
- •1.3.2. Передача информации
- •1.3.3. Хранение информации
- •1.3.4. Обработка информации
- •1.4.Непрерывная и дискретная информация
- •1.5. Измерение информации
- •1.5.1. Объемный подход
- •1.5.2. Вероятностный подход
- •1.6. Системы счисления, используемые в информатике
- •1.6.1. Правила перевода чисел из одной системы счисления в другую
- •1.6.2. Двоичная арифметика
- •1.7. Кодирование информации
- •1.7.1. Кодирование текстовой информации
- •1.7.2. Кодирование числовой информации
- •2. Технические средства реализации информационных процессов
- •2.1. Классическая архитектура ЭВМ и принципы фон Неймана
- •2.2. Совершенствование и развитие внутренней структуры ЭВМ
- •2.3. Базовая аппаратная конфигурация персонального компьютера
- •2.4. Внутренние устройства системного блока
- •2.3. Периферийные устройства
- •3. Программные средства реализации информационных процессов
- •3.1. Классификация программного обеспечения ЭВМ
- •3.2. Системное программное обеспечение
- •3.3. Организация файловой системы
- •3.4. Специальное программное обеспечение
- •3.5. Прикладное программное обеспечение
- •3.5.1. Системы обработки текстов
- •3.5.2. Системы компьютерной графики
- •3.5.3. Средства обработки числовой информации
- •3.5.4. Системы управления базами данных (СУБД)
- •3.5.5. Средства подготовки презентаций
- •4.2. Моделирование как метод решения прикладных задач
- •4.3. База данных как пример информационной модели
- •5.2. Способы представления алгоритмов
- •5.3. Базовые алгоритмические структуры
- •5.3.1. Структура «следование»
- •5.3.2. Структура «развилка»
- •5.3.3. Структура «выбор»
- •5.3.4. Структура «цикл с предусловием»
- •5.3.5. Структура «цикл с постусловием»
- •5.3.6. Структура «цикл с параметром»
- •5.4. Важнейшие невычислительные алгоритмы (поиск и сортировка)
- •5.5. Понятие о языках программирования
- •5.6. Технологии программирования
- •5.7. Этапы решения задач на компьютере
- •6. Основы программирования на языке Паскаль
- •6.1. Основные элементы языка
- •6.2. Элементарный ввод и вывод
- •6.3. Основные операторы
- •6.4. Структура программы на языке Паскаль
- •6.5. Процедуры и функции
- •7. Локальные и глобальные компьютерные сети
- •7.1. Классификация вычислительных сетей
- •7.2. Локальные сети
- •7.3. Глобальные сети
- •7.4. Основные понятия WWW
- •7.5. Электронная почта
- •8. Основы и методы защиты информации
- •8.1. Общие понятия информационной безопасности
- •8.2. Компьютерные вирусы
- •Список рекомендуемой литературы
- •Приложение. Учебная программа по дисциплине «Информатика»
Сравнив операторы, которые реализуют данные алгоритмические структуры, можно сделать вывод о том, что на известных языках программирования написание этих операторов почти одинаково.
5.4. Важнейшие невычислительные алгоритмы (поиск и сортировка)
Сортировка и поиск являются важнейшими понятиями информатики. Сортировка — это процесс упорядочивания набора данных одного типа
по возрастанию или убыванию значений какого-либо признака.
В общем случае задача сортировки ставится так. Пусть имеется набор элементов а1, а2, …, аn, где аi могут быть числами, символами, строками и т.д.
Сортировка есть перестановка этих элементов в массив ai1 ,ai2 ,...,ain , где при некоторой упорядочивающей функции f выполняется отношение f(ai1 ) ≤ f(ai2 )
≤ … ≤ f(ain ). Обычно упорядочивающая функция не хранится по какому-либо
правилу, а хранится как явная компонента (т.е. поле) каждого элемента. Ее значение называют ключом элемента.
Имеется много различных алгоритмов сортировки массивов. Самым простым и самым популярным является метод «пузырьков».
Данный алгоритм основан на последовательных просмотрах от конца к началу и в сравнении и смене мест пары соседних элементов. Этот процесс продолжается до тех пор, пока не будут упорядочены все элементы. При
каждом просмотре массива наименьший элемент оставшейся последовательности сдвигается к левому концу
массива. Алгоритм сортировки методом
пузырьков имеет следующий вид (рис. 9).
В алгоритме массив просматривается от конца к началу, и если в n-
мерном массиве an–1 > an элементы меняются местами, далее an–2 сравнивается с an–1 и т.д., пока самый малень-
кий элемент не займет первое место. Сортировка методом пузырьков
— это прямой метод сортировки. Он достаточно длительный, требует порядка n2 сравнений. Тогда как
хорошие методы сортировки требуют порядка n ln n сравнений.
48
Этот алгоритм можно улучшить: а именно, если в ходе очередного просмотра не было перестановок, то сортировку завершить. Улучшенный алгоритм называется модифицированным методом «пузырьков».
Пусть р — признак наличия или отсутствия перестановки: p=false — нет перестановки, p=true — есть. Заменим внешний цикл с параметром на цикл с постусловием, т.е. первый просмотр обязателен. Условием окончания работы алгоритма является отсутствие перестановок во внутреннем цикле или i=n–1 — выполнены все просмотры.
Задача поиска — одна из наиболее встречающихся в информатике. Поиск
Начало сортировки |
|
|
|
i:=0 |
]- - - - - i – номер просмотра |
||
|
|||
i:=i+1 |
|
|
|
p:=false |
]- - - - - перестановки нет |
||
j:=n,i+1,-1 |
|
|
|
_ |
+ |
|
|
Kaj-1 > Kaj |
|
|
|
|
|
|
|
|
x := aj-1 |
|
|
|
aj-1 := aj |
]- - - - - перестановка |
|
|
a := x |
|
|
|
p:= true |
]- - - - - перестановка есть |
|
_ |
|
]- - - - - условие окончания цикла |
|
p = false или i = n - 1 |
|||
+ |
|
|
|
Конец сортировки |
|
|
Рис. 10. Алгоритм сортировки модифицированным методом «пузырьков»
производится в последовательности однотипных данных и заключается в выявлении одного или нескольких данных, обладающих некоторым свойством К. В общем виде задача поиска ставится так. Пусть имеется набор элементов а1, а2, …, аn с ключами Kа1, Kа2, …, Kаn и пусть имеется некоторое значение К. Простейшие задачи поиска можно сформулировать так:
49
1.Требуется определить по крайней мере один элемент, имеющий К своим свойством.
2.Требуется определить все элементы, имеющие К своим свойством.
Кназывают аргументом поиска или запросом. Поиск по запросу К может быть безрезультативным.
Иногда поиск организуется не по совпадению со значением К, а по выполнению некоторых условий, например, поиск по интервалу значений.
Линейный поиск — это простой последовательный просмотр элементов массива с проверкой условия К. Условиями окончания поиска являются:
1.Элемент ai, обладающий свойством К, найден.
2.Весь массив просмотрен, но элемент, обладающий свойством К, не найден.
Ниже приведен алгоритм поиска первого элемента массива, обладающего свойством К (рис. 11). Здесь р — признак того, обладает или нет элемент массива свойством К: р = true — есть элемент со свойством К, р= false — нет элемента со свойством К.
|
|
|
|
|
|
|
Начало поиска |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p:=false |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i := 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i := i + 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
+ |
|
_ |
|
|||||||
|
|
|
|
|
|
|
|
Kai=K |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
p := true |
|
|
|
|
|
||||
|
_ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
р или i=n |
|||||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
+ |
|
|
|
|
+ |
|
_ |
|
||||||||
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
|
|
|
|
|
|||
Есть элемент со |
|
Нет элемента со |
|||||||||
свойством К |
|
свойством К |
Конец поиска
Рис. 11. Линейный поиск первого элемента массива, обладающего свойством К
50
На рисунке 12 приведен алгоритм поиска всех элементов, обладающих |
|
свойством К. |
|
Начало поиска |
|
p:=false |
|
i := 1, n, 1 |
|
+ |
_ |
Kai |
= K |
Вывод i, ai |
|
p:=true |
|
+ |
_ |
not(p) |
|
Нет элементов |
|
со свойством К |
|
Конец поиска
Рис. 12. Линейный поиск всех элементов со свойством К
5.5. Понятие о языках программирования
Язык программирования — это искусственный язык. Он служит для представления алгоритмов в такой форме, чтобы они могли быть выполнены на ЭВМ. Языки программирования имеют сходство с естественными языками и с математическими формулами. С помощью языка программирования устанавливается способ записи программ.
Любой язык, в том числе и язык программирования, имеет три составляющие: алфавит, синтаксис и семантику.
Алфавит — это упорядоченное конечное множество взаимно различных символов (букв, цифр, специальных и служебных символов), допускаемых для составления текста программы на этом языке.
51