Составление программ для решения задач на языке программирования Turbo Pascal
Достоинства и недостатки Turbo Pascal. Использование файлов, способы объявления переменной файлового типа. Основы работы с текстовыми документами. Работа с файлами без типа. Формализация задачи и алгоритм ее решения. Блок-схема программы и ее листинг.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 29.06.2011 |
Размер файла | 451,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Уфимский государственный авиационный технический университет
Кумертауский филиал
Кафедра Промышленной автоматики
Курсовая работа
по Программированию
на тему: Составление программ для решения задач на языке программирования Turbo Pascal
Введение
Turbo Pascal -- это среда разработки для языка программирования Паскаль. Используемый в Turbo Pascal диалект базировался на более раннем UCSD Pascal, получившем распространение, в первую очередь, на компьютерах серии Apple II. Компилирующая компонента Turbo Pascal была основана на компиляторе Blue Label Pascal, первоначально созданном в 1981 году Андерсом Хейлсбергом для операционной системы NasSys микрокомпьютера Nascom. Позднее он был переписан как Compass Pascal для операционной системы CP/M, затем как Turbo Pascal для DOS и CP/M. Одна из версий Turbo Pascal была доступна под Apple Macintosh примерно с 1986 года, но её разработка прекратилась примерно в 1992.
В 1982 году Филипп Кан приобрёл компилятор у Андерса Хейлсберга и перебрался из Парижа в Калифорнию, где основал компанию Borland.
Когда в 1983 году появилась первая версия Turbo Pascal, такой тип среды разработки был относительно новым. Во время дебюта на американском рынке, Turbo Pascal продавался по цене в 49,99 долл. Помимо привлекательной цены, встроенный компилятор Паскаля также был очень высокого качества. Приставка «Turbo» намекала как на скорость компиляции, так и на скорость производимого им исполняемого кода. Turbo Pascal создавал машинный код за один проход, без шага компоновки.
После рекламной кампании за первый месяц поступило заказов на 150 тыс. долларов -- так много, что местные банки отказывались оплачивать чеки и кредитные карточки, подозревая мошенничество.
За первые два года было продано не менее 300 тысяч копий компилятора, что превзошло объём продаж всех прочих языков для микрокомпьютеров.
Для того времени это была потрясающая среда разработки. Она была проста и интуитивно понятна, с хорошо организованным меню. Ранние версии использовали раскладку горячих клавиш WordStar. В более поздних версиях появилась возможность быстро получить определение ключевого слова языка, просто поставив курсор на ключевое слово и нажав клавишу справки. Справочные статьи часто включали примеры кода, использующего данное ключевое слово. Это позволяло неопытным программистам изучать Паскаль даже без помощи книг, используя лишь среду разработки. В поставку входило большое количество исходных текстов демонстрационных и прикладных программ. В их числе были даже шахматы.
Среда позволяла легко встраивать в код на Паскале вставки на языке ассемблера. Пользователь имел возможность проходить программу шаг за шагом; при переходе на ассемблерный блок это также работало. В любой момент пользователь мог добавить переменную или регистр в удобно расположенное окно для наблюдения за ними. При построчной отладке программ, использующих графические режимы IBM PC, происходило корректное переключение между графическим режимом программы и текстовым режимом среды разработки.
Помимо всего этого, имелось средство профилирования. Книги, включённые в поставку Borland Pascal, давали детальное описание языка ассемблера Intel вплоть до указания количества тактовых циклов, необходимых для выполнения каждой инструкции. В общем и целом, система давала превосходные возможности для оптимизации кода; пользователю не требовалось пользоваться чем-либо кроме среды разработки. Всё было сделано так идеально, что даже школьник мог этим пользоваться. Эти качества позволили версии Паскаля от Borland стать стандартом языка Паскаль de facto.
С начала 1990-х TP/BP используется в университетах для изучения фундаментальных концепций программирования.
Вероятно, разработка Microsoft Pascal была прекращена из-за конкуренции с высоким качеством и небольшой ценой Turbo Pascal. Другая версия гласит, что Borland заключил соглашение с Microsoft на прекращение разработки Turbo BASIC (среды разработки для BASIC, ответвившейся от Turbo Pascal), если Microsoft прекратит разработку Microsoft Pascal. Некоторое время Microsoft выпускал QuickPascal, который был почти 100%-совместим с Turbo Pascal.
В течение нескольких лет Borland улучшал не только среду разработки, но и язык. В версии 5.5 в него были введены передовые возможности объектно-ориентированного программирования. Последней выпущенной версией была версия 7. Borland Pascal 7 включал в себя среду разработки и компиляторы для создания программ под DOS, под DOS с расширителем DOS и Windows 3.x, в то время как Turbo Pascal 7 мог создавать только обычные DOS-программы.
С 1995 года в Borland прекратили разработку Turbo Pascal и предложили в качестве замены среду разработки Delphi, ещё более ориентированную на язык программирования Object Pascal.
Этапы
· Turbo Pascal 1.0, 1983 год. Компилирует непосредственно в машинный код. Требует 32 килобайта оперативной памяти. Стоит меньше 50 долларов. Имеет интегрированный компилятор/редактор, высокую скорость компиляции. Позволяет размещать динамические данные в куче (heap) -- динамической области памяти.
· Turbo Pascal 2.0, 1984 год. Увеличен размер создаваемой программы -- позволяет использовать до 64 килобайт для кода, стека и данных. Версия для DOS поддерживает арифметический сопроцессор и двоично-десятичную арифметику (Binary Coded Decimal, BCD).
· Turbo Pascal 3.0, 1985 год. Поддержка оверлейной структуры. Поддержка графических режимов. Специальные подпрограммы формирования изображений для IBM PC совместимых компьютеров, включая «черепаховую» графику. Инструментальные пакеты.
· Turbo Pascal 4.0, 1987 год. Раздельная компиляция модулей. Размер программы ограничен только объёмом оперативной памяти. Управляемая с помощью меню интегрированная среда разработки (англ. Integrated Development Environment, IDE).Интеллектуальная компоновка модулей. Автономный компилятор командной строки. Убрана поддержка оверлеев. Контекстно-чувствительная система помощи.
· Turbo Pascal 5.0, 1988 год. Восстановлена поддержка оверлейных структур. Встроенный отладчик. Отдельный отладчик (Turbo Debugger). Эмуляция арифметического сопроцессора. Поддержка графических драйверов BGI (Borland Graphics Interface).
· Turbo Pascal 5.5, 1989 год. Объектно-ориентированное программирование. Возможность копирования в программу примеров из справочной системы. Электронный учебник на диске. Turbo Profiler -- профилировщик, позволяющий оптимизировать код программы.
· Turbo Pascal 6.0, 1990 год. Библиотека Turbo Vision. Новая IDE, переписанная с использованием Turbo Vision, поддерживающая мышь и редактирование нескольких файлов одновременно в разных окнах. Возможность задания во встроенном отладчике условных и по количеству проходов точек останова. Встроенный ассемблер BASM позволяющий в исходном тексте программы делать ассемблерные вставки. Protected поля и методы для объектов. Работающий в защищённом режиме компилятор командной строки.
· Turbo Pascal for Windows. Создание 16-разрядных программ под Windows. Библиотека объектов Objects Windows Library (OWL), сходная по идеологии с Turbo Vision. Графическая IDE, работающая под Windows.
· Borland Pascal 7.0, 1992 год. Выпущен Borland Pascal 7.0, включающий в себя более дешёвый и менее мощный Turbo Pascal 7.0 который поставлялся также отдельно. BP 7.0 позволял создавать программы под реальный и защищённый 16-битный режим DOS и Windows. Была введена поддержка открытых массивов, добавлено новое ключевое слово «public» для доступных полей и методов объекта. Открыты исходные тексты системных библиотек и функций времени выполнения (RTL).
Достоинства и недостатки Турбо Паскаля Достоинства
· Удобная среда разработки, включающая функциональный отладчик, доступный в любой момент.
· Контекстная справочная система, по которой можно изучать язык без обращения к сторонним источникам.
· Высокая скорость компиляции, высокая скорость выполнения откомпилированных программ.
· Встроенная возможность использовать вставки на языке ассемблера.
Недостатки
· Компилятор рассчитан на реальный режим DOS, применение которого сходит на нет. Однако в последних версиях компилятора и среды введена поддержка защищённого режима вместе с соответствующим отладчиком (TD).
· Неполная реализация объектного-ориентированного программирования.
· В модуле CRT имеется ошибка (некорректный подсчёт количества циклов для функции delay, не рассчитанный на быстрые процессоры, процессоры с переменной частотой и многозадачные среды), из-за которой при запуске программы на компьютерах с тактовой частотой более 200 MHz сразу происходило аварийное завершение с сообщением «Runtime error 200 at …»
Использование файлов в Паскале
Прежде чем перейти к обработке текстовых файлов на языке Pascal следует разобраться с понятием файл. На языке Pascal файл представляет собой упорядоченную последовательность элементов. И в отличие от общепринятого понятия файлом на языке Pascal может быть не только информация хранящиеся на дисках но и внешние устройства (такие как: дисплей, клавиатура, принтер , любой порт ЭВМ и т.д.).
Файловый тип ( тип файл или файл) - это структурированный тип данных, который состоит из бесконечного (заранее неизвестного) количества элементов одного и того же типа. Элементы файла называются компонентами. Файловые типы Паскаля необходимы для того, чтобы получить возможность программного доступа к дисковым файлам. Дисковые файлы - это наборы данных на внешнем носителе.
Способы объявления файловых типов.
Общий вид объявления файлового типа TYPE <тип файл> = FILE [ OF <тип компонент>];
для текстовых файлов: TYPE <тип файл> = TEXT;
для файлов записей: TYPE <тип файл> = FILE OF <тип запись>;
для нетипизированных файлов: TYPE <тип файл> = FILE;
Для того, чтобы использовать в программе файловые типы данных, необходимо объявить переменные файлового типа одним из следующих способов:
Способы объявления переменной файлового типа
1 способ:
TYPE <тип файл> = FILE [ OF <тип компонент>];
VAR <программный файл> : <тип файл>;
2 способ:
VAR <програм. файл> : FILE [ OF <тип компонент>];
Переменные файлового типа называют программными файлами. Файлы имеют начальную метку и конечную метку.
С каждым программным файлом связан указатель файла или текущий указатель.
Указатель файла это специальная переменная, которая хранит адрес доступной в настоящий момент компоненты файла. После выполнения операции открытия файла указатель всегда указывает на начало первой компоненты файла. Значение указателя файла изменяется в результате выполнения операций чтения файла или записи информации в файл. Если выполнена одна операция чтения или записи, то указатель файла перемещается к началу следующей компоненты.
Операции для работы с файлами
1. Каждый программный файл должен быть связан с соответствующим дисковым файлом. Такая связь организуется специальной операцией связывания: ASSIGN(<програм. файл>, `полное имя файла на диске');
2. Операции открытия программного файла необходима для начала работы с файлом и определения начального значения указателя файла. создаваемый и существующий файл открываются разными операциями: для создаваемого файла: REWRITE (<программный файл>);
для существующего файла: RESET (<программный файл>);
3. Операции обмена информацией между операционной памятью и программными файлами:
ввод информации из файла в ОП: READ(<программный файл>, <переменная>);
вывод информации: WRITE(<программный файл>,<переменная>);
Операции обмена информацией с файлом организуют так называемый последовательный доступ к компонентам файла. Этот принцип аналогичен поиску информации на магнитной ленте магнитофона.
4. Прямой доступ к компоненте файла, позволяет установить указатель файла непосредственно на начало нужной компоненты. В Паскале прямой доступ возможен только по номеру компоненты. В этом случае нужно помнить о том что номер компоненты не всегда известен программисту и пользователю.
SEEK(<программный файл>, № компоненты);
5. Закрытие файла : CLOSE(<программный файл>); Если файл не закрыт и по какой-то причине программа завершилась аварийно, то все изменения внесенные в файл будут утеряны. Поэтому рекомендуется закрывать файл по завершении работы с ним.
6. Некоторые дополнительные операции над файлами могут очень полезны:
- определяет закончился ли файл: EOF(<программный файл>)
- определяет размер файла в компонентах: FILESIZE(<программный файл>) определяет номер текущей компоненты: FILE POS(<программный файл>)
Последовательность работы с файлами записей:
При использовании файлов записей - файлов компонентами, которых являются записи (данные комбинированного типа) нужно придерживаться следующей последовательности написания программы:
1. Объявить тип запись.
2. Объявить программный файл, компоненты которого имеют тип запись.
3. Объявить переменную, того же типа что и компонента файла, для обмена информацией между ОП и программными файлами.
4. Открыть файл существующий или создаваемый.
5. Для обмена информации использовать операторы ввода или вывода.
6. Выполнить закрытие файла.
Особенности работы с текстовыми файлами
Текстовые файлы - это файлы компонентами которых являются символьные строки. Среди текстовых файлов следует выделить стандартные текстовые файлы. Существуют особенности обработки текстовых файлов:
Стандартные текстовые файлы: INPUT - стандартный файл ввода; OUTPUT - стандартный файл вывода.
2. Стандартные файлы можно связать с дисковым файлом: ASSIGN(OUTPUT, `дисковый файл`);
3. Открытие текстового файла:
- для чтения : RESET(<программный файл>);
- для создания : REWRITE(<программный файл>);
- для дополнения : APPEND(<программный файл>);
4. Обмен информацией с текстовым файлом:
- чтение : READLN (<программный файл>, переменная);
- запись : WRITEL] (<программный файл>, переменная);
где <переменная> должна быть объявлена как строка символов.
Работа с файлами без типа
- чтение блока данных:
BLOCKREAD(<программный файл>, переменная, n[, m]);
- запись блока данных:
BLOCKWRITE(<программный файл>, переменная n[, m]);
где переменная - переменная любого типа
n - размер блока,
m - необязательный параметр, определяющий размер блока в записях. При чтении блока данных формируется значение m .
1. Условие и постановка задачи
Составить алгоритм и программу создания файла записей. Составить алгоритм и программу дополнения файла записями. Составить алгоритм и программу поиска информации по критерию в файле записей.
Структура записи файла
§ № участника
§ Фамилия И.О.
§ Вид соревнования
§ Результат, баллов
§ Дата
Для выборки по виду и дате соревнования лучшую пятерку экранная форма
Пятерка лучших по виду соревнований
№ результата |
№ участника |
Фамилия и. О. |
|
1. |
|||
2. |
|||
… |
Входная информация
Входная информация - информация, известная до решения задачи, её необходимо запросить у пользователя и ввести в оперативную память с клавиатуры из файла.
§ № участника
§ Фамилия И.О.
§ Вид соревнования
§ Результат, баллов
§ Дата
Теперь покажем, как описывается входная программа, так как в последствии мы увидим её в тексте программы.
Для упрощения пользования ввели отдельный тип переменной - запись, она включает в себя сведения о физическом лице.
Ниже находится таблица индификаторов, в ней описана запись и соответствующие поля, которые представлены в программе.
Название переменной |
Тип переменной |
Назначение |
|
Sport |
Запись(record) |
для упрощения решения задачи |
|
Поля записи |
|||
Nom |
integer |
хранение номера участника |
|
fam |
string[15] |
хранение ФИО |
|
Vid |
string[10] |
хранение вида соревнований |
|
Ball |
integer |
хранение результата (балл соревнований) |
|
Data |
string[8] |
хранение даты |
Выходная информация
Выходная информация - искомый в задаче результат. Его нужно определить из входной информации и вывести пользователю на экран, печать или файл.
Выходной информацией в курсовой работе являются файлы, хранящие записи с полями ФИО, дата рождения, город, улица, дом, квартира, № паспорта. Выходная информация будет заключаться в выходной информации по названию улицы. Ниже находится таблица, в которой описана выходная информация.
Промежуточная информация
Промежуточная информация - промежуточные итоги решения задачи, без которых невозможно определить конечный результат.
В курсовой работе промежуточная информация служит для организации работы: для работы циклов, для считывания данных из файла и с клавиатуры.
Название переменной |
Тип переменной |
Назначение |
|
Work |
Mas_sport |
для доступа к полям записи |
|
men |
byte |
для выбора вызова различных процедур |
|
End_Menu |
boolean |
для выхода из меню |
|
Name |
string[12] |
хранение имени файла |
|
NumRec |
longint |
локальная переменная принимает значение номера изменяемой записи |
|
Count |
integer |
количество записей |
Формализация задачи
Формализация задачи - это описание задачи формальными средствами (математическими, логическими). В данной работе математические средства не использовались.
Задача может выполнять следующие действия:
· создания файла записей
· просмотр списка справочника
· изменение записи справочника
· дополнение записи в справочник
· сортировка по баллу, дате и виду соревнований и вывод 5 и ли меньше призеров набравших наибольшее количество баллов по виду спорта в определенную дату соревнований
Алгоритм решения задачи
Словесный алгоритм
Алгоритм - последовательность действий, необходимых для решения задачи.
Разработка алгоритмов и программ начинается с постановки задач. На этом этапе из условия задачи определяют входную, выходную и промежуточную информацию. На первой стадии разработки программы были описаны все переменные и их типы.
Следующим шагом стала разработка блока (процедуры) ввода исходных данных. Ввод исходных данных включает в себя создание файла для хранения данных и его заполнения. Пользователю предлагается ввести № участника Фамилия И.О. Вид соревнования Результат, баллов Дата.
Программа может выполнять следующие действия:
1. Создание нового файла: пользователю предлагается ввести имя файла, при повторном введении старого имени - предыдущий файл заменяется новым или просто создается новый файл. Появляется приглашение к созданию нового файла, предлагается ввести число записей по всем полям записи. По завершению программа сообщает об успешном выполнении необходимого числа записей и возвращается в главное меню.
2. Просмотр списка ведомости: при выборе данного режима программа просит ввести имя файла, после чего на экран выводятся все записи данного файла.
3. Изменение записи ведомости: этот режим предназначен для редактирования некоторой записи. Сначала пользователь должен ввести имя файла и указать номер изменяемой записи. В результате на экран выводится значение полей старой записи и предлагается заполнить поля новой.
4. Дополнение ведомости: пользователь выбирает имя файла, в который необходимо внести новую запись, а затем добавляет новую запись.
5. Вывод призеров по виду спорта и дате: пользователь вводит название вида спорта, дату затем на экран список 5 призеров(если их 5 или меньше) .
Таким образом, пользователь каждый раз имеет возможность ввести необходимое имя файла. Эта особенность позволяет использовать программу при работе с множествами файлов.
Для того, чтобы создать файл, нужно ввести имя файла. С этой целью используется процедура (Name_File). Для добавления записей в файл используется процедура AddRec. Для обращения к полям записи используется переменная work. Пользователю предлагается ввести данные из условия задачи. Значения переменной work записываются в файл. Для создания нового файла данных применяется процедура ( Create_Book) для работы этой процедуры переменные Ind, Count. Переменная Count содержит число записей в ведомости, а переменная Ind изменяется от 1 до значения Count. Для создания нового файла данных сначала нужно ввести имя создаваемого файла. Затем открываем новый файл для записи, используя операцию Assign, которая связывает BookFile (переменную для файла с записями) и Name (имя создаваемого файла). После этого пользователю нужно ввести количество записей в справочник. Как только создание файла данных завершится на экране появится сообщение об окончании создания файла данных. Созданный файл можно закрыть, используя операцию Close. В программе можно вывести текущую запись на экран. Для этого применяется процедура OutputRec. При использовании этой процедуры на экране появляется таблица заполненных значений текущей записи.
Все записи можно вывести для просмотра на экран с помощью процедуры OutputAllRec. Для этого нужно открыть файл, используя операцию Reset, так как открываемый файл уже существует. Чтобы файловые операции выполнялись без ошибок применим функцию IOresult. Эта функция не имеет параметров и возвращает результат целого типа. Она работает при отключении стандартной обработки ошибок. Чтобы установить указатель на начало нужной компоненты, применим операцию Seek. Эта операция служит для того, чтобы обеспечить прямой доступ к компонентам файла. Вывод данных будет продолжаться до тех пор, пока указатель не дойдет до конца файла и не выведет все данные. Если указанного имени файла нет на диске, на экране появится надпись: «Файла с именем … на диске нет». В созданный файл данных можно не только вносить новые записи, но и изменять их и дополнять. Данные в файле можно изменить с помощью процедуры UpdateRec. Номер изменяемой строки обозначим через переменную NumRec. Введем значение этой переменной и установим указатель на позицию по указанному номеру записи. Введем старое значение записи (NumRec). Затем выведем запись и перейдем на следующую позицию, потом вернемся на прежнюю позицию. Зададим новое значение записи. Используя процедуру AddRec изменим запись и закроем файл. Добавление записи осуществляется с помощью процедуры AddRecToEnd. Для этого установим текущую позицию в конец файла (Seek), введем данные в файл. На экране появится надпись: «Изменяемый файл данных имеет … записей» (FileSize). Закрываем измененный файл. С помощью разработанной программы можно произвести сортировку по баллу и вывод на экран 5 лучших призеров. В этой процедуре открывается файл (name_file) и записывается в переменную записей v. Далее производится сортировка всех записей по убыванию по баллу. Выводятся на экран 5Закрываем файл.
Блок-схема
Блок-схема основной программы:
Блок-схема задания имени создаваемому файлу (Name_File):
Блок-схема добавления записей в файл (Addrec):
Блок-схема процедуры создания файла (Create_Book):
Блок-схема просмотра списка справочника (OutputAllRec):
Блок-схема изменения записи (UpdateRec):
Блок-схема дополнения справочника (AddRecToEnd):
Блок-схема поиска физического лица по названию улицы (s_sort):
Составление программы
pascal файл задача алгоритм
program p13_4;
uses crt;
const n = 10; {количество участников соревнований}
type sport = record
nom:integer;
fam: string[15];
vid:string[10];
ball:integer;
data:string[8]; end;
{тип данных для отдельного спортсмена}
mas_sport = array[1..n] of sport;
{тип данных всех участников}
var v: mas_sport; {участники соревнований}
l,
k: 1..n;
{чтение данных об участниках, формирование массива} BookFile: file of mas_sport ; {переменная для файла с записями RecBook} Work: mas_sport; {переменная для доступа к полям записи} men: byte; {переменная для выбора вызова различных процедур} End_Menu: boolean; {переменная для выхода из меню} Name: string [12];
Procedure Name_File; {процедура для задания имени файла}
begin Write ('Vvedite imya faila dannyh: '); Readln (Name);
end;
Procedure OutputRec; {процедура вывода текущей записи на экран}
var
i:integer;
begin
for i:=1 to n do
with v[i] do
begin
Writeln;
Writeln (' | ', nom,' | ', fam,' | ', vid,' | ', ball,' | ', data,' | ');
Writeln;
end;
end;
Procedure OutputAllRec; {процедура вывода всех записей файла на эк-ран}
begin Name_File; Assign (BookFile, Name); {$I-} {отключение стандартной обработки ошибок} Reset (BookFile); {поиск открытого файла} {$I+} { включение стандартной обработки ошибок} Seek (BookFile, 0); {установка на первую запись} Writeln ('***Vyvod dannih fizicheskogo lica iz faila ', Name,' ***'); Writeln; Writeln ('| N | FIO | VID | Ball | Data |');
Writeln;
Read (BookFile, v);
OutputRec;
end;
procedure addrec;
var
i: 1..n;
v: mas_sport;
begin
for i := 1 to n do
begin
writeln ('Номер ',i);
readln (v[i].nom);
writeln ('ФИО:');
readln (v[i].fam);
writeln ('Вид спорта:');
readln(v[i].vid);
writeln ('Балл:');
readln(v[i].ball);
writeln ('Дата:');
readln(v[i].data);
end;
Write (BookFile,v); {записать в файл значение переменной }
end;
Procedure Create_Book; {процедура для создания нового файла данных}
Var Ind, Count: integer;
begin Name_File; Assign (BookFile, Name); {открыть файл для записи} Rewrite (BookFile); Writeln ('Sozdanie zapisei faila: ',Name); Write ('Vvedite chislo zapisei v spravochnike: '); Readln (Count); AddRec; Writeln ('Sozdanie faila dannyh'); Writeln ('Fail dannyh imeet ', FileSize (BookFile),' zapisei'); Close (BookFile);
end;
Procedure UpdateRec; {изменение записи файла}
Var NumRec: longint; { локальная переменная принимает значение номера изменяемой записи}
begin Name_File; Assign (BookFile, Name); {$I-} Reset (BookFile); {$I+} Write ('Ukazat nomer izmenayemoi zapisi: '); Readln (NumRec); Read (BookFile, v); Writeln ('staroe znachenie zapisi: ', NumRec);
with v[NumRec] do
begin
Writeln;
Writeln (' | ', nom,' | ', fam,' | ', vid,' | ', ball,' | ', data,' | ');
Writeln;
end;
Writeln ('Zadaem novoe znachenie ', NumRec,' zapisi');
writeln ('Номер ',NumRec);
readln (v[NumRec].nom);
writeln ('ФИО:');
readln (v[NumRec].fam);
writeln ('Вид спорта:');
readln(v[NumRec].vid);
writeln ('Балл:');
readln(v[NumRec].ball);
writeln ('Дата:');
readln(v[NumRec].data);
Seek (BookFile, 0);
Write (BookFile,v);
Close (BookFile);
end;
Procedure AddRecToEnd; { процедура дополнения записи в конец файла}
var
NumRec: longint;
begin Name_File; Assign (BookFile, Name); {$I-} Reset(BookFile); {$I+}
Seek (BookFile, FileSize (BookFile)); {установка текущей позиции в ко-нец файла}
writeln ('Номер ',FileSize (BookFile));
readln (v[FileSize (BookFile)].nom);
writeln ('ФИО:');
readln (v[FileSize (BookFile)].fam);
writeln ('Вид спорта:');
readln(v[FileSize (BookFile)].vid);
writeln ('Балл:');
readln(v[FileSize (BookFile)].ball);
writeln ('Дата:');
readln(v[FileSize (BookFile)].data);
Writeln ('Izmenennyi fail dannyh imeet ', FileSize (BookFile),' zapisei');
Seek (BookFile, 0);
Write (BookFile,v);
Close (BookFile);
end;
{определение k лучших спортсменов}
procedure s_sort (var v: mas_sport);
var i,j,k : integer;
r: sport;
t,d:string;
begin
Name_File; Assign (BookFile, Name); {$I-} {отключение стандартной обработки ошибок} Reset (BookFile); {поиск открытого файла} {$I+} { включение стандартной обработки ошибок}
Read (BookFile, v);
writeln('Vvedite vid sporta:');
readln(t);
writeln('Vvedite datu :');
readln(d);
{if (v[i].vid=t) and (v[j].vid=t) and (v[j].data=d) and (v[i].data=d) }
for i := 1 to n-1 do
for j := i+1 to n do
if (v[i].ball < v[j].ball) then
begin
r := v[i];
v[i] := v[j];
v[j] := r;
end;
{for i := 1 to n-1 do
for j := i+1 to n do
if (v[i].vid<>t) and (v[j].vid=t) then
begin
r := v[i];
v[i] := v[j];
v[j] := r
end;}
Writeln ('Призеры соревнований по ', t,'у от ',d);
Writeln ;
Writeln ('Место | N | FIO | VID | Ball | Data |');
Writeln;
k:=1;
i:=1;
repeat
if (v[i].data=d) and (v[i].vid=t) then begin
with v[i] do begin
Writeln;
Writeln (k,' | ', nom,' | ', fam,' | ', vid,' | ', ball,' | ', data,' | ');
Writeln;
end;
k:=k+1;
end;
i:=i+1;
until (k>=5) or (i>=n);
Close (BookFile);
end;
{раздел операторов программы}
begin clrscr; End_Menu:=False; Repeat Writeln('***Spravochnic dannih fizicheskih lic***'); Writeln('Vyberite vid raboty'); Writeln('1 - sozdanie novogo faila'); Writeln('2 - prosmotr spiska sportsmenov'); Writeln('3 - izmenenie zapisi'); Writeln('4 - dopolnenie spravochnika'); Writeln('5 - 5 Prizerov'); Writeln('0 - zavershenie raboty'); Write('Vash bybor: '); Readln(men); case men of {вызов разных процедур в зависимости от видов работы} 1:Create_Book; 2:OutputAllRec; 3:UpdateRec; 4:AddRecToEnd; 5:s_sort(v); 0:End_menu:=True; end; Writeln('Dlya prodolzheniya nazhmite Enter'); Readln; clrscr; Until End_Menu; end.
Заключение
Задача, которая поставлена в курсовой работе была выполнена. Мы показали, что задача может выполнять несколько действий:
· Создание файла
· Заполнение файла данными, содержащие поля:
№ участника
Фамилия И.О.
Вид соревнования
Результат, баллов
Дата
· Просмотр всех записей файла или текущей записи
· Изменение записи, созданной в файле
· Дополнение записи в файл
· Вывод призеров по виду спорта и дате.
Все эти действия были выполнены с помощью процедур.
Процедура - это часть программы, в которой выполняется специфическое действие. Процедуры в Турбо Паскале могут быть внутренними и внешними.
Внутренние процедуры описываются в разделе описания процедур основной программы. Внешние процедуры оформляются в виде автономно компилируемых модулей.
Формат описания процедур:
PROCEDURE <имя проц> (список форм. Парам);
Разделы описания
BEGIN
Раздел операторов
END.
Имя проц.- имя процедуры ,любое имя задаваемой программистом, обычно соответствующим назначению процедуры, состоящее из латинских букв и цифр 0-9.
Так же в программе были использованы массивы записей. Запись - это структурированный тип данных, состоящий из фиксированного числа компонентов разного типа. Определение записи начинается идентификатором Record и заканчивается ключевым словом end . Между ними заключён список компонентов, называемых полями, с указанием идентификаторов (имён) полей и типа каждого поля.
Формат описания типа запись:
Type
<имя типа> = Record <идентификатор поля>:<тип компонента>; ....... <идентификатор поля>:<тип компонента>; end;
Var
<идентификатор, ...> : <имя типа>;
Массив, состоящий из элементов имеющих тип запись, называют массивом записей. К отдельной записи обращение производится по номеру (индексу).
Список литературы
1. Грачева Л.Н. - Программирование в среде Turbo-Pascal 7.0: Лабораторный практикум по дисциплине: «Программирование и основы алгоритмизации». - Уфа: РИО РУНМЦ МО РБ, 2008. Молодцов В.А. - Репетитор по информатике для подготовки к экзаменам. - Ростов н/Д: Феникс, 2007.
2. Острейковский В.А. - Информатика: Учеб. для вузов. - М.: Высш. шк.,1999.
Попов В.Б. - Паскаль и Дельфи. Учебный курс. - СПб.: Питер, 2005.
Размещено на Allbest.ru
Подобные документы
История появления и распространения Turbo Pascal - среды разработки для языка программирования Паскаль. Общий вид объявления файлового типа. Входная, выходная и промежуточная информация. Алгоритм решения задачи: словесный алгоритм, блок-схема, программа.
курсовая работа [359,4 K], добавлен 05.01.2010Разработана программа решения двух задач на языке программирования Turbo Pascal. Спецификация задания. Описание входных и выходных данных. Математическая постановка задачи. Алгоритм ее решения. Описание и блок-схема программы. Результаты тестирования.
курсовая работа [275,8 K], добавлен 28.06.2008Структура и основные элементы языка Turbo Pascal. Алгоритм составления простейших программ на Turbo Pascal. Применение условного оператора и сильноветвящихся алгоритмов. Циклы с предусловием и постусловием, сочетание циклических и условных операторов.
реферат [64,0 K], добавлен 20.03.2016Разработка программы на языке Turbo Pascal, обеспечивающей работу пользователя в диалоговом режиме с возможностью выбора функций с помощью одноуровневого меню вертикального типа. Блок-схема и листинг программы, описание руководства пользователя.
курсовая работа [1,5 M], добавлен 17.03.2014Основы работы на языке высокого уровня Turbo Pascal. Основное оборудование и программное обеспечение. Операторы, необходимы для работы в графической среде Turbo Pascal. Запуск графического режима. Текст программы в графической среде Turbo Pascal.
лабораторная работа [12,7 K], добавлен 14.05.2011Описание алгоритма решения задачи по вычислению суммы элементов строк матрицы с использованием графического способа. Детализация укрупненной схемы алгоритма и разработка программы для решения задачи в среде Turbo Pascal. Листинг и тестирование программы.
курсовая работа [446,0 K], добавлен 19.06.2014Сущность и описание симплекс-метода и улучшенного симплекс-метода (метода обратной матрицы), преимущества и недостатки их применения в линейном прогаммировании. Листинг и блок-схема программы на языке Turbo Pascal для решения математической задачи.
курсовая работа [45,0 K], добавлен 30.03.2009Разработка программ на языке Turbo Pascal на основе использования массивов данных. Особенности хранения данных, способы объявления переменных, действия над элементами массивов, их ввод и вывод. Практическое применение одномерных и многомерных массивов.
методичка [17,8 K], добавлен 25.11.2010История создания и развитие Pascal. Особенности пакета программирования Turbo. его возможности редактора текстов, компилятора и отладчика. Построения программы на языке Turbo Pascal, ее структура, типы алгоритмов, одномерные и многомерные массивы.
курсовая работа [519,3 K], добавлен 25.06.2011История создания и развитие языка программирования Pascal, его версии. Особенности и порядок построения графика функции на языке Turbo Pascal с использованием декартовой системы координат. Блок схема алгоритма процедур, листинг и тестирование программы.
курсовая работа [102,7 K], добавлен 23.12.2011