Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_informatika.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
132.12 Кб
Скачать

20Типы ошибок в программе

1. Синтаксическая (транслятор выявляет и показывает)

Такие ошибки серьёзной опасности не представляют, но теряется время на их исправление.

2. Ошибки выполнениявозникают тогда , когда программа ведёт себя не так как предполагал составитель. Поэтому для проверки программы на такие ошибки нужно составлять тесты.

3. Неправильный алгоритм программызадача не понятна, поэтому запрограммирована фактически для другой задачи , хотя она и работает , но выдаёт ненужный результат.

Для проверки задачи нужно составить тесты, для которых известен уже результат.

24Алгоритм поиска элемента в упорядоченном массиве

Для поиска элемента в упорядоченном массиве элементов, нужно этот элемент с начало сравнить с серединным элементом массива и если он не совпал, то выбрать подходящую половину и повторить действие для этой половины.

25Суть метода сортировки обменом

Наиболее известным методом сортировки является сортировка пузырьковым методом. Его популярность объясняется запоминающимся названием и простым алгоритмом.

Метод основан на том, что в процессе исполнения алгоритма более "легкие" элементы массива постепенно "всплывают".

Особенностью данного метода является сравнение не каждого элемента со всеми, а сравнение в парах соседних элементов. Выполняется несколько последовательных просмотров  массива от начала к концу. Если соседние элементы расположены "неправильно", то они меняются местами.

26. Суть метода сортировки выбором

При сортировке массива методом выбора применяется базовый алгоритм поиска максимального (минимальногоэлемента и его номера.

Алгоритм сортировки массива методом выбора:

  1. Для исходного массива выбрать максимальный элемент.

  2. Поменять его местами с последним элементом (после этого самый большой элемент будет стоять на своем месте).

  3. Повторить п.п. 1-2 с оставшимися n-1 элементами, то есть рассмотреть часть массива, начиная с первого элемента до предпоследнего, найти в нем максимальный элемент и поменять его местамис предпоследним (n-1)- м элементом массива, затем с оставшиеся (n-2)-мя элементами и так далее, пока не останется один элемент, уже стоящий на своем месте.

Для упорядочения массива потребуется (n-1) просмотров массива. В процессе сортировки будет увеличиваться отсортированная часть массива, а неотсортированная, соответственно, уменьшаться.

При сортировке данных выполняется обмен содержимого переменных. Для обмена необходимо создавать временную переменную, в которой будет храниться содержимое одной из переменных. В противном случае ее содержимое окажется утерянным.

27. Понятие стека. Основные операции над стеком

1. Стек - частный случай линейного односвязного списка (ЛОС), для которого определены две фундаментальные операции:

добавление элемента в вершину стека;

удаление элемента из вершины стека.

также, еще существует обязательная вспомогательная операция - печать элементов стека на экран (а если быть более точным, то происходит визуализация значений информационных полей элементов стека), так как в любом случае потребуется печать стека на экран пользователя, чтобы просмотреть, насколько корректно реализованы операции добавления и удаления.

2. Абсолютно во всех операциях, производимых над стеком, требуется вспомогательный указатель (помимо указателя top, ссылающего на вершину стека). Во всех программах и фрагментах программного кода, представленных ниже, будем обозначать вспомогательный указатель идентификатором p (почему "p"? потому что с английского слово pointer переводится на русский как указатель).

Операция: добавление элемента в вершину стека. Данная операция имеет две разновидности:

добавление элемента в стек, когда стек не содержит ни одного элемента;

добавление элемента в стек, когда стек к моменту добавления содержит определенное число элементов (добавленных ранее).

Рассмотрим ситуацию, когда в стеке не содержится ни одного элемента. В этом случае указатель на вершину стека top ссылается (или указывает) в NIL. NIL - специальный зарезервированный участок памяти, служащий "бухтой" для динамических переменных - указателей. Чтобы указатели "не болтались" в памяти, их обычно "привязывают" к NIL.

То есть, по сути, top является нулевым указетелем. Поскольку осуществляется добавление нового элемента, то необходимо динамически выделить память под добавляемый элемент. В языке программирования Turbo Pascal для распределения динамической памяти употребляют процедуру new.

В самом широком смысле выделение памяти и инициализация полей производится так:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]