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

3.3 Процедура сортировки записей

Листинг процедуры сортировки записей. См приложение 3

Описание переменных:

st,a,b:baz – переменные записи, i,j:byte – переменные счетчика записей, fbaz:fileofbaz – типизированный файл.

Описание процедуры:

Процедура сортировки идет по принципу «пузырька». Сортировка в моей программе производилась по информационному полю, соответствующему названию фирмы. Еще одной особенностью хочу отметить тот факт, что процедура сортировки переписывает исходный файл уже отсортированными записями с целью удобства в использовании справочной системы. Так же как и в предыдущих процедурах идет связывание переменной с файлом и открытие его на чтение записей из файла. После этого включаем два счетчика циклами for. Первый счетчик считаем переменную i от0 до размера файла без одной записей, второй счетчик для j от i +1 до размера файла без одной записи. Затем в переменные a и b кладем значения информационных полей. И начинаем их сравнивать. Сравнение получается следующим образом: количество сравнений будет равно 29, так как число записей равно 30, а саму запись с самой собой нам сравнивать не надо. Первая запись из первой переменной сравнивается со второй и последующими записями из второй переменной. Если значение первой переменной оказывается больше, чем значение второй, тогда значение большего и меньшего элемента соответственно записываются в наш файл. Это повторяется до тех пор, пока сравнение не пройдут все записи. В конце идет закрытие файла и завершение процедуры.

3.4 Процедура поиска записей

Листинг процедуры поиска записей. См приложение 4

Описание переменных:

a:baz – переменные записи, i:integer – переменные счетчика записей, fbaz:fileoftbaz – типизированный файл, fir:string – переменная содержащая информацию о введенном названии фирмы пользователем.

Описание процедуры:

Процедура поиска ведется только по одному полю – полю содержащему название команды (Nazvanie). Так же отмечу, что поиск регистр независимый. Осуществить это помогла процедура upcase, о которой я расскажу немного позже. Вначале очищаем экран командой clrscr. Затем выводим приглашение на ввод нужной фирмы, полученную информацию присваиваем переменной fir с помощью команды read. Дальше процедура связывает переменную файла fbaz с физическим файлом UEFA.txt, находящимся в той же директории, что и сама программа. Затем процедура открывает файл на чтение командой reset(fbaz). Командой for включаем счетчик от первой до последней записи и считываем записи из файла. После этого следующий алгоритм опишу в нескольких действиях:

1) возводим заданное слово и взятое из записи в верхний регистр, для последующего сравнения

2) поэлементно сравниваем заданное слово и информационное поле Nazvanie

В действительности алгоритм 2) включает в себя алгоритм 1). Если сравнение заданного пользователем искомого слова и поля записи названия фирмы отлично от нуля, то есть нашлось совпадение, тогда выводим на экран соответствующую запись. В противном случае, ничего на экран не выводится. Процедура закрывает файл, затем заканчивается сама процедура.