- •1.Структура эвм. Основные этапы решения задач на эвм.
- •2. Понятие алгоритма. Свойства алгоритмов. Схемы алгоритмов.
- •3. Блочная структура Паскаль – программ. Основные разделы.
- •4. Стандартные простые типы данных.
- •5. Перечислимый и ограниченный тип данных.
- •6.Процедура ввода данных.
- •8. Основные операторы языка Паскаль. Оператор присваивания, составной оператор.
- •9. Условный оператор.
- •10)Оператор вывода case.
- •16, 17. Структурный тип данных. Массивы и их описание. Одномерные и двумерные массивы.
- •18. Подпрограммы. Процедуры и функции. Сходство и отличия.
- •22.Локальные и глобальные переменные.
- •25. Способы передачи параметров. Правило согласования формальных и фактических параметров.
- •27,28,29.Сортировка в языке Паскаль.
- •27. Сортировка Обменом (пузырёк).
- •28. Сортировка методом вставок(включения).
- •29. Сортировка методом выбора.
- •30. Индексная сортировка
- •31. Символьные переменные и строки. Обработка строк. Операции со строками.
- •32. Специальные процедуры и функции для работы со строками.
- •33. Прокраммирование с использованием множеств. Тип данных – множества.
- •34.Программирование с использованием записей. Тип данных – запись.
- •35.Оператор присоединения with при работе с записями.
- •39.Файловый тип данных. Работа с текстовыми файлами в паскале.
28. Сортировка методом вставок(включения).
Элементы просматриваются по одному и каждый новый элемент вставляется в подходящее место среди ранее упорядоченных. Аналогичным образом игроки упорядочивают свои карты после раздачи.
Принцип метода.
Массив разделяется на 2 части – отсортированную и не отсортированную.
Элементы из не отсортированной части поочерёдно выбираются и вставляются в отсортированную часть. Так чтобы не нарушать в ней упорядоченности.
В начале работы алгоритм в качестве не отсортированной части принимает только один 1-й элемент, а в качестве не отсортированного все остальные, таким образом алгоритм будет состоять из (н-1) проходов, где н - размер массива, и каждый из которых будет включать 4 действия.
Взятие очередного и-го элемента и сохранение его копии в дополнительной переменной.
Поиск позиции «ж» в отсортированной части массива в которой присуттвие взятого элемента не нарушит упорядоченности элементов.
Сдвиг элементов массива от «и-1» до «ж» вправо, чтобы освободить найденную «ж-ю» позицию вставки.
Вставка взятого элемента в «ж-ю» позицию из дополнительной переменной.
Program sort_ins;
Const n=10;
Type vector=array[1..10] of real;
Var
Vec:vector;
Temp:real;
I, j ,k:integer;
Begin
{vvod vec}
For i:=2 to n do
Begin
Temp:=vec[i];
J:=1;
While (temp>vec[j]) and (j<=i-1) do
J:=j+1;
For k:=i-1 downto j do
Vec[k+1]:=vec[k];
Vec[j]:=temp;
End;
{pechat vec}
End.
29. Сортировка методом выбора.
Суть метода сортировки по возрастанию такова:
Массив имеет 2 части: упорядоченную и неупорядоченную.
В отдельной переменной заполняется минимум, равный первому элементу и его индекс, 1-й элемент массива составляет упорядоченную часть, неупорядоченная часть массива начинается со второго элемента.
В неупорядоченной части массива ищется минимальный элемент и его индекс.
Обмен значений найденного минимального элемента с последним элементом в упорядоченной части.
Граница упорядоченной части сдвигается вправо на 1 элемент и добавочный элемент в упорядоченной части подлежит сортировке и т.д. до тех пор пока упорядоченная часть массива не будет составлять (н-1) элемент массива.
Program srot_choose;
Const n=10;
Type vector=array[1..10] of real;
Var
Vec:vector;
Min:real;
I,j,imin:integer;
Begin
{vvod vec}
For i:=1 to n-1 do
Begin
Min:=vec[i];
Imin:=I;
For j:=i+1 to n do
Begin
If vec[j]<min
Then
Begin
Min:=vec[j];
Imin:=j;
End;
End;
If min<vec[i]
Then
Begin
Vec[imin]:=vec[i];
vec[i]:=min;
end;
end;
{pechat}
End.
30. Индексная сортировка
Сортировка по индексному полю предполагает сортировку по исходным данным с использованием вспомогательного массива.
Элементом массива является запись содержащая ключевое поле (информация которого подлежит сортировке) и номер соответствующей строки массива (индекс), откуда взята эта информация.
Изначально индексный массив получается упорядочиванием по номерам строк, а по ключевому полю неизвестно, затем сортируется вспомогательный массив по ключевому полю и переставляется в записи целиком вместе с номерами строк. В результате индексный массив становится упорядоченным по ключевому полю, а по номерам строк как получится, исходный массив записей при этом останется без изменения. Для просмотра данных исходного массива в отсортированном порядке используется упорядоченный индексный массив. Индексный массив определяет порядок исходного массива. Идёт цикл по индексному массиву, берётся значение очередного индекса и печатается элемент основного массива с индексом, взятым из этого индексного массива. Таким образом осуществляется вывод исходного массива в порядке заданном номерами строк в отсортированном индексном массиве. Собственно сортировка индексного массива осуществляется любым способом.
Индексная сортировка находит высокое применение в базах данных, содеражащие таблицы с большим числом столбцов и строк. Сортировать по разным столбцам не эффективно, т.к. после каждой сортировки надо хранить копию массива упорядоченного по одному полю. Получается число копий таблиц равно числу сортировок по разным столбцам (ключевым полям). После изменения таблицы все сортировки приходится проводить заново.
Недостатки очевидны: большие затраты памяти и времени на сортировки.
Индексные массивы занимаю мало места во время работы хранятся в оперативной памяти и после изменения основного массива легко переупорядочиваются.