- •1. Информатика как дисциплина
- •2. Сигналы, данные, информация.
- •3. Информация. Свойства информации: объективность, полнота, достоверность.
- •4. Информация. Свойства информации: адекватность, доступность, актуальность.
- •5. Данные. Операции с данными.
- •6. Операционные системы: ms-dos, Windows, unix, Linux. Macintosh.
- •7. Системы счисления. Позиционные и не позиционные системы счисления.
- •8. Системы счисления. Десятичная, двоичная, восьмеричная. Шестнадцатеричная системы счисления. Правила записи чисел.
- •9. Системы счисления. Правила перевода из десятичной системы счисления в двоичную и обратно.
- •10. Системы счисления. Правила перевода из восьмеричной системы в двоичную и обратно.
- •11. Системы счисления. Правила перевода из шестнадцатеричной системы в двоичную и обратно.
- •12. Числа в двоичном коде. Прямой, обратный и дополнительный коды.
- •13. Операции над числами в двоичном коде. Логическое и арифметическое сложение.
- •14. Операции над числами в двоичном коде. Умножение.
- •15. Операции над числами в двоичном коде. Вычитание (сложение с обратным знаком).
- •16. Единицы измерения информации.
- •Единицы измерения количества информации - Применяются для измерения количества информации в объёме данных.
- •17. Алгоритмы. Виды алгоритмов.
- •18. Алгоритмы. Построение блок-схем алгоритмов.
- •20. Структура программы в языке FreePascal.
- •22. Типы данных, используемые в языке Free Pascal. Целочисленный и вещественный типы и возможные операции с ними.
- •24. Тины данных, используемый в языке Free Pascal. Логический и литерный типы и возможные операции с ними.
- •25. Типы данных, используемые в языке Free Pascal. Строковый типы и возможные операции для работы с литерной строкой.
- •Операции
- •26. Операторы ввода/вывода в языке FreePascal.
- •Оператор ввода read
- •Оператор вывода write
- •27. Оператор условия (ветвления). Его параметры, синтаксис.
- •[Править]Реализация [править]Algol, Pascal
- •28. Оператор выбора (case of). Его параметры, синтаксис.
- •Примеры использования
- •29. Циклы. Цикл с параметром (for). Параметры, синтаксис.
- •30. Циклы. Бесконечный цикл с предусловием (while). Параметры, синтаксис.
- •31. Циклы. Бесконечный цикл с послесловием (repeat until). Параметры, синтаксис
- •32. Массивы. Способы задания одномерных массивов.
- •33. Массивы Способы задания многомерных массивов.
- •Двумерные массивы. Матрицы.
- •Объявление и инициализация матрицы.
- •34. Понятие сортировки. Алгоритмы сортировки.
- •Пузырьковая сортировка
- •Сортировка выбором
- •Сортировка Шелла
- •Сортировка Хоора
- •Сортировка с помощью двоичного дерева
- •Сортировка с помощью массива индексов
- •Алгоритмы устойчивой сортировки
- •Алгоритмы неустойчивой сортировки
- •35. Понятое сортировки. Сортировка методом пузырька.
- •Сортировка простым обменом. Метод пузырька.
- •36. Понятие сортировки. Сортировка методом прямого выбора.
- •37. Генерация псевдослучайных чисел в языке Free Pascal. Функции inc. Dec. Odd.
- •Процедура Inc.
- •Процедура Dec.
- •Функция Odd.
- •38. Директивы компилятора.
- •39. Сортировка массивов методом пузырька.
- •40. Сортировка массивов методом прямого выбора.
- •41. Процедуры и функции. Сходства, отличия.
- •Описание и вызов процедур и функций
- •42. Процедуры и функции. Локальные и глобальные переменные.
- •43. Функции. Описание функций в программе.
- •Формат описания функции
- •Правила исполнения функции
- •Формат оператора return
- •Правило исполнения оператора return
- •44. Системные функции div. Mod.
- •45. Процедуры. Описание процедур в программе.
- •46. Модули. Описание модулей. Работа с модулями.
- •Interface – зарезервированное слово (интерфейс); начинает интерфейсную часть модуля;
- •Implementation – зарезервированное слово (выполнение); начинает исполняемую часть модуля;
35. Понятое сортировки. Сортировка методом пузырька.
Сортировка — перестановка местами объектов в определенном порядке. Известно несколько сотен алгоритмов сортировки и их модификаций.
Пусть дана последовательность элементов – A1, А2, …, Аn. Сортировка означает перестановку этих элементов в новом порядке Аk1 , Аk2, …, Akn. Этот порядок соответствует значениям некоторой функции F, такой, что справедливо отношение F(Ak1) < F(Ak2)< ... <F(Akn). Как у любого вычислительного процесса у сортировки есть свои критерии для сравнительной оценки качества программы и соответствующего ей алгоритма. Такими критериями являются: объем используемой памяти и время работы программы. Хорошей по критерию памяти считается такая сортировка, при которой данные сортируются в том же самом массиве, где находились исходные данные. При оценке времени сортировки используют два показателя: число сравнений ключей (С), число пересылок данных (М). Хорошими по времени считаются сортировки, в которых число сравнений С=N*Ln(N). К простым, то есть не очень хорошим, относятся такие сортировки, в которых число сравнений пропорционально квадрату размерности N исходного массива С≈N2. Следует отметить, что показатели С и М существенно зависят от первоначальной упорядоченности сортируемого массива. Наиболее тяжелым (Мах) считается случай, когда массив упорядочен в обратном порядке. Ниже мы рассмотрим три наиболее известных способа сортировки одномерного массива. Сравнительные временные характеристи ки этих способов приведены в следующей таблице:
Сортировка простым обменом. Метод пузырька.
Пример 32. Методом пузырька упорядочить (отсортировать) в порядке возрастания массив из 8 целых чисел (44, 55, 12, 42, 94, 18, 06, 67).
Концептуальную модель сортировки рассмотрим на примере восьми целых чисел, которые расположим в первом вертикальном столбце. Вертикальное расположение сортируемого массива наглядно иллюстрирует «всплывание легких элементов (чисел) вверх к поверхности» по мере сортировки массива. Элементы массива рассматриваются попарно снизу-вверх. Если нижний элемент меньше, то они меняются местами. При первом просмотре (проходе) самый «легкий» элемент оказывается самым верхним. Поэтому при втором просмотре его можно уже не рассматривать. В таблице стрелками показаны перемещения элементов массива после каждого прохода.
Элементы всплывают вверх к поверхности в соответствии с их весами, пока не встретят элемент с более малым весом. С каждым проходом наиболее легкий элемент из оставшихся поднимается на свое место, показанное жирными цифрами. Таким образом, нет необходимости на каждом проходе проверять элементы, стоящие выше выделенных, поскольку они уже отсортированы ранее. Начиная с 6 прохода, состояние массива не изменяется, что объясняется начальной упорядоченностью элементов в исходном массиве. Эта программа предназначена для изучения сортировки методом пузырька, поэтому взят массив из восьми целых чисел. Массив заранее известен, следовательно, инициализировать Х[1...8] проще всего в разделе констант. Ввод данных с клавиатуры в этой программе не требуется. Алгоритм программы представляет собой двойной вложенный цикл. Индекс I внешнего арифметического цикла соответствует номеру прохода сортировки. Индекс J это номер элемента в массиве. Для перестановки двух соседних элементов X[J-1] и X[J] местами используется промежуточная рабочая ячейка с идентификатором L.
PROGRAM PR32; CONST X: ARRAY [1.. 8] OF INTEGER = (44, 55,12,42,94,18,06, 67); VAR L, I, J: INTEGER; BEGIN { Вывод на экран исходного массива X } FOR I := 1 ТО 8 DO WRITE(X[I]:5); WRITELN; FOR I := 2 TO 8 DO FOR J:=8 DOWNTO I DO IF X[J-1] > X[J] THEN BEGIN {Переставить X[J-1] с Х[J] местами} L:=X[J-1]; X[J-1]:=X[j]; X[J]:=L END; {IF} { Вывод на экран отсортированного массива X } FOR I := 1 ТО 8 DO WRITE(X[I]:5); WRITELN END.
