Складання програм для вирішення задач на мові програмування Turbo Pascal

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Федеральне агентство з освіти Російської Федерації

Уфимський державний авіаційний технічний університет

Кумертаускій філія

Кафедра ПА

Курсова робота

з інформатики на тему: "Складання програм для вирішення завдань

на мові програмування Turbo Pascal "

Виконав: ст. гр. АП-109

Перевірив: ст. викладач

Голов О.М.

Оцінка: _______________

Підпис: ______________

Дата: _________________

р. Кумертау 2009

Зміст

Введення

1. Умова і постановка задачі

1.1 Вхідна інформація

1.2 Вихідна інформація

1.3 Проміжна інформація

2. Формалізація завдання

3. Алгоритм розв'язання задачі

3.1 Словесний алгоритм

3.2 Блок-схема

3.3 Опис блок-схеми

4. Складання програми

5. Контрольний приклад

Висновок

Список літератури

Введення

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 <тип компонент>];

Змінні файлового типу називають програмними файлами. Файли мають початкову позначку і кінцеву позначку.

З кожним програмним файлом пов'язаний покажчик файлу або поточний покажчик.

Покажчик файлу це спеціальна змінна, яка зберігає адресу доступною в даний момент компоненти файлу. Після виконання операції відкриття файлу покажчик завжди вказує на початок першої компоненти файлу. Значення індексу файлу змінюється в результаті виконання операцій читання файлу або запису інформації у файл. Якщо виконана одна операція читання або запису, то покажчик файлу переміщується до початку наступного компоненти.

Рис. Файл і поточний покажчик файлу

Операції для роботи з файлами

Кожен програмний файл повинен бути пов'язаний з відповідним дисковим файлом. Такий зв'язок організовується спеціальною операцією зв'язування:

ASSIGN (<програм. Файл>, 'повне ім'я файлу на диску');

2. Операції відкриття програмного файлу необхідна для початку роботи з файлом і визначення початкового значення покажчика файлу. створюваний і існуючий файл відкриваються різними операціями:

для створюваного файлу:

REWRITE (<програмний файл>);

для існуючого файлу:

RESET (<програмний файл>);

3. Операції обміну інформацією між операційною пам'яттю і програмними файлами:

введення інформації з файлу у ВП:

READ (<програмний файл>, <змінна>);

висновок інформації:

WRITE (<програмний файл>, <змінна>);

Операції обміну інформацією з файлом організовують так званий послідовний доступ до компонентів файлу. Цей принцип аналогічний пошуку інформації на магнітній стрічці магнітофона.

4. Прямий доступ до компоненті файлу, дозволяє встановити покажчик файлу безпосередньо на початок потрібної частини. У Паскалі прямий доступ можливий тільки за номером компоненти. У цьому випадку потрібно пам'ятати про те що номер компоненти не завжди відомий програмісту і користувачу.

SEEK (<програмний файл>, № компоненти);

5. Закриття файлу:

CLOSE (<програмний файл>);

Якщо файл не закритий і з якоїсь причини програма завершилася аварійно, то всі зміни внесені у файл будуть втрачені. Тому рекомендується закривати файл по завершенні роботи з ним.

6. Деякі додаткові операції над файлами можуть дуже корисні:

визначає закінчився чи файл:

EOF (<програмний файл>)

визначає розмір файлу в компонентах:

FILESIZE (<програмний файл>)

визначає номер поточної компоненти:

FILE POS (<програмний файл>)

Послідовність роботи з файлами записів:

При використанні файлів записів - файлів компонентами, яких є записи (дані комбінованого типу) потрібно дотримуватися наступної послідовності написання програми:

Оголосити тип запис.

Оголосити програмний файл, компоненти якого мають тип запис.

Оголосити змінну, того ж типу що і компонента файлу, для обміну інформацією між ВП і програмними файлами.

Відкрити файл існуючий або створюваний.

Для обміну інформації використовувати оператори введення або виведення.

Виконати закриття файлу.

Особливості роботи з текстовими файлами

Текстові файли - це файли компонентами яких є символьні рядки. Серед текстових файлів слід виділити стандартні текстові файли. Існують особливості обробки текстових файлів:

Стандартні текстові файли:

INPUT - стандартний файл введення;

OUTPUT - стандартний файл виводу.

2. Стандартні файли можна пов'язати з дисковим файлом:

ASSIGN (OUTPUT, 'дисковий файл');

3. Відкриття текстового файлу:

для читання: RESET (<програмний файл>);

для створення: REWRITE (<програмний файл>);

для доповнення: APPEND (<програмний файл>);

4. Обмін інформацією з текстовим файлом:

читання: READLN (<програмний файл>, змінна);

запис: WRITEL] (<програмний файл>, змінна);

де <змінна> повинна бути оголошена як рядок символів.

Робота з файлами без типу

читання блоку даних:

BLOCKREAD (<програмний файл>, мінлива, n [, m]);

запис блоку даних:

BLOCKWRITE (<програмний файл>, мінлива n [, m]);

де змінна - змінна будь-якого типу

n - розмір блоку,

m - необов'язковий параметр, що визначає розмір блоку в записах.

При читанні блоку даних формується значення m.

1. Умова і постановка задачі

Скласти алгоритм та програму створення файлу записів. Скласти алгоритм і програму доповнення файлу записами. Скласти алгоритм і програму пошуку інформації за критерієм у файлі записів.

Структура запису:

Прізвище, ім'я, по батькові

Дата народження

Місто

Вулиця

Будинок

Квартира

№ паспорта

2) Внести 5-10 записів

3) Зміна записів у довіднику

4) Доповнення записів у довіднику

5) Пошук за прізвищем у довіднику

1.1 Вхідна інформація

Вхідна інформація - інформація, відома до рішення задачі, її необхідно запросити у користувача і ввести в оперативну пам'ять з клавіатури з файлу.

Прізвище, ім'я, по батькові

Дата народження

Місто

Вулиця

Будинок

Квартира

№ паспорта

Тепер покажемо, як описується вхідна програма, оскільки надалі ми побачимо її в тексті програми.

Для спрощення користування ввели окремий тип змінної - запис, вона включає в себе відомості про фізичну особу.

Нижче знаходиться таблиця індіфікатор, в ній описана запис і відповідні поля, які представлені в програмі.

Назва змінної

Тип змінної

Призначення

RecBook

Запис (record)

для спрощення рішення задачі

Поля запису

StFIO

string [20]

зберігання ПІБ фізичної особи

StData

string [8]

зберігання дати народження

StGorod

string [1 5]

зберігання міста, де проживає фізична особа

StUlica

string [16]

зберігання вулиці

StDom

string [8]

зберігання № будинку

StKvartira

string [10]

зберігання № квартири

StNomer_Pasporta

string [15]

зберігання № паспорта

1.2 Вихідна інформація

Вихідна інформація - шуканий в задачі результат. Його потрібно визначити з вхідної інформації і вивести користувачеві на екран, друк або файл. Вихідною інформацією в курсовій роботі є файли, що зберігають записи з полями ПІБ, дата народження, місто, вулиця, будинок, квартира, № паспорта. Вихідна інформація буде полягати у вихідний інформації за назвою вулиці. Нижче знаходиться таблиця, в якій описана вихідна інформація.

Назва змінної

Тип змінної

Призначення

BookFile

файл типу RecBook

зберігання даних

1.3 Проміжна інформація

Проміжна інформація - проміжні підсумки виконання завдання, без яких неможливо визначити кінцевий результат.

У курсовій роботі проміжна інформація служить для організації роботи: для роботи циклів, для зчитування даних з файлу і з клавіатури.

Назва змінної

Тип змінної

Призначення

Work

RecBook

для доступу до полів запису

VID

byte

для вибору виклику різних процедур

End_Menu

boolean

для виходу з меню

Name

string [12]

зберігання імені файлу

Rez_Find

boolean

результат пошуку

NumRec

longint

локальна змінна приймає значення номера змінною запису

Count

integer

кількість записів

2. Формалізація завдання

Формалізація завдання - це опис завдання формальними засобами (математичними, логічними). У даній роботі математичні засоби не використовувалися.

Завдання може виконувати наступні дії:

створення файлу записів

перегляд списку довідника

зміна запису довідника

додаток запису в довідник

пошук фізичної особи за назвою вулиці

3. Алгоритм розв'язання задачі

3.1 Словесний алгоритм

Алгоритм - послідовність дій, необхідних для вирішення задачі.

Розробка алгоритмів і програм починається з постановки завдань. На цьому етапі з умови завдання визначають вхідну, вихідну і проміжну інформацію.

На першій стадії розробки програми були описані всі змінні та їх типи.

Наступним кроком стала розробка блоку (процедури) введення вихідних даних. Введення вихідних даних включає в себе створення файлу для зберігання даних і його заповнення. Користувачеві пропонується ввести ПІБ, дату народження, місто, вулицю, будинок, квартиру, номер паспорта. Програма може виконувати наступні дії:

Створення нового файлу: користувачеві пропонується ввести ім'я файлу, при повторному введенні старого імені - попередній файл замінюється новим або просто створюється новий файл. З'являється запрошення до створення нового файлу, пропонується ввести кількість записів по всіх полях запису. По завершенню програма повідомляє про успішне виконання необхідного числа записів і повертається в головне меню.

Перегляд списку відомості: при виборі даного режиму програма просить ввести ім'я файлу, після чого на екран виводяться всі записи даного файлу.

Зміна запису відомості: цей режим призначений для редагування деякої запису. Спочатку користувач повинен ввести ім'я файлу і вказати номер змінною запису. У результаті на екран виводиться значення полів старого запису і пропонується заповнити поля нового.

Доповнення відомості: користувач вибирає ім'я файлу, в який необхідно внести новий запис, а потім додає новий запис.

Пошук фізичної особи за назвою вулиці: користувач вибирає ім'я файлу, вводить назву вулиці для пошуку, а потім на екран виводиться список даних для обраної вулиці, в кінці списку вказується кількість фізичних осіб з такою вулицею.

Таки чином, користувач кожного разу має можливість ввести потрібне ім'я файлу. Ця особливість дозволяє використовувати програму при роботі з множинами файлів.

Для того, щоб створити файл, потрібно ввести ім'я файлу. З цією метою використовується процедура (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). Закриваємо змінений файл.

За допомогою розробленої програми можна зробити пошук за назвою вулиці. У цій процедурі (Find FIO) використовуються змінні: Maska - змінна, приймаюча значення задане назва вулиці, Rez _ Find - мінлива результату, приймає значення "False" і "True" у тих випадках, коли заданий назва вулиці не знайдено (False) процедура буде виконуватися до тих пір, поки введене назва не буде знайдено (тобто до кінця записів файлу). Якщо назва вулиці не знайдено, на екрані з'явиться: "немає цього запису". Якщо вулиця буде знайдена, на екран виведеться таблиця з полями записів та їх значеннями, внизу цієї таблиці в рядку буде записано кількість записів для заданого користувачем вулиці. Закриваємо файл.

3.2 Блок-схема

Блок-схема основної програми:


Блок-схема завдання імені створюваному файлу (Name _ File):

Блок-схема додавання записів у файл (Addrec):

Блок-схема процедури створення файлу (Create _ Book):

Блок-схема перегляду списку довідника (OutputAllRec):


Ні Так

Блок-схема зміни запису (UpdateRec):


Ні Так

Блок-схема доповнення довідника (AddRecToEnd):


Ні Так

Блок-схема пошуку фізичної особи за назвою вулиці (Find FIO):


Ні Так

Ні Так

3.3 Опис блок-схеми

Блок - схеми показали нам, що для вирішення завдання необхідні знання циклів з різними умовами (цикл з постусловіем, цикл з передумовою, цикл з лічильником). Для побудови блок-схем використовувалися розгалужувальними алгоритми (тобто алгоритми, при виконанні яких порядок проходження команд визначається в залежності від результатів перевірки деяких умов).

4. Складання програми

Program kursach; uses crt;

Type

StFIO = string [20];

StData = string [8];

StGorod = string [15];

StUlica = string [16];

StDom = string [8];

StKvartira = string [10];

StNomer_Pasporta = string [15];

RecBook = record {запис даних про фізичну особу}

FIO: StFIO; {прізвище, ім'я, по батькові}

Data: StData; {дата народження}

Gorod: StGorod; {місто}

Ulica: StUlica; {вулиця}

Dom: StDom; {будинок}

Kvartira: StKvartira; {квартира}

Nomer_Pasporta: StNomer_Pasporta; {номер паспорта}

end;

Var

BookFile: file of RecBook; {мінлива для файлу з записами RecBook}

Work: RecBook; {змінна для доступу до полів запису}

VID: byte; {змінна для вибору виклику різних процедур}

End _ Menu: boolean; {змінна для виходу з меню}

Name: string [12];

Procedure Name_File; {процедура для завдання імені файлу}

begin

Write ('Vvedite imya faila dannyh fizicheskogo lica:');

Readln (Name);

end;

Procedure Addrec; {процедура для додавання запису у файл}

begin

Writeln ('Nomer fizicheskoi zapisi:', FilePos (BookFile) +1);

with work do {змінна для звернення до полів запису}

begin

Write ('Vvedite familiu, imia, otchestvo:');

Readln (FIO);

Write ('Vvedite Datu rogdenia:');

Readln (Data);

Write ('Vvedite Gorod:');

Readln (Gorod);

Write ('Vvedite Ulicu:');

Readln (Ulica);

Write ('Vvedite Dom:');

Readln (Dom);

Write ('Vvedite Kvartiru:');

Readln (Kvartira);

Write ('Vvedite nomer pasporta:');

Readln (Nomer_Pasporta);

Write (BookFile, work); {записати у файл значення змінної work}

end;

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);

For Ind: = 1 to count do

AddRec;

Writeln ('Sozdanie faila dannyh fizicheskogo lica zaversheno');

Writeln ('Fail dannyh imeet', FileSize (BookFile), 'zapisei');

Close (BookFile);

end;

Procedure OutputRec; {процедура виведення поточного запису на екран}

begin

Read (BookFile, work);

with work do

begin

Writeln ('----------------------------------------------- -------------------------------');

Write ('|', FilePos (BookFile), '|', FIO, '|', Data, '|', Gorod, '|', Ulica, '|', Dom, '|');

Writeln (Kvartira, '|', Nomer_Pasporta, '|');

Writeln ('----------------------------------------------- -------------------------------');

end;

end;

Procedure OutputAllRec; {процедура виведення всіх записів файла на екран}

begin

Name_File;

Assign (BookFile, Name);

{$ I-} {відключення стандартної обробки помилок}

Reset (BookFile); {пошук відкритого файлу}

{$ I +} {включення стандартної обробки помилок}

If IOresult = 0 then

begin

Seek (BookFile, 0); {установка на перший запис}

Writeln ('*** Vyvod dannih fizicheskogo lica iz faila ', Name,' ***');

Writeln ('----------------------------------------------- -------------------------------');

Writeln ('| N | FIO | Data rogdenia | Gorod | Ulica | Dom | Kvartira | Nomer Pasporta |');

Writeln ('----------------------------------------------- -------------------------------');

While (not Eof (BookFile)) do OutputRec; {умова закінчення циклу}

End

Else Writeln ('Faila s imenem', Name, 'na diske net');

end;

Procedure UpdateRec; {зміна запису файлу}

Var

NumRec: longint; {локальна змінна приймає значення номера змінною запису}

begin

Name_File;

Assign (BookFile, Name);

{$ I-}

Reset (BookFile);

{$ I +}

If IOresult = 0 then

begin

Write ('Ukazat nomer izmenayemoi zapisi:');

Readln (NumRec);

Seek (BookFile, NumRec -1); {установка файлової позиції за вказаним номером запису}

Writeln ('staroe znachenie zapisi:' NumRec);

OutputRec;

Seek (BookFile, NumRec -1); {повернення на колишню позицію}

Writeln ('Zadaem novoe znachenie', NumRec, 'zapisi');

AddRec;

Close (BookFile);

end

Else Writeln ('Faila s imenem', Name, 'na diske net');

end;

Procedure AddRecToEnd; {процедура доповнення запису в кінець файлу}

begin

Name_File;

Assign (BookFile, Name);

{$ I-}

Reset (BookFile);

{$ I +}

If IOresult = 0 then

begin

Seek (BookFile, FileSize (BookFile)); {установка поточної позиції в кінець файлу}

AddRec;

Writeln ('Izmenennyi fail dannyh imeet', FileSize (BookFile), 'zapisei');

Close (BookFile);

end

Else Writeln ('Faila s imenem', Name, 'na diske net');

end;

Procedure FindFIO; {процедура пошуку назви вулиці фізичної особи}

Var

Maska: StUlica; {зберігає назву вулиці шуканого особи}

Rez _ Find: boolean; {результат пошуку}

CountRec: integer; {змінна, значення якої дорівнює числу записів з такою вулицею}

begin

Name_File;

Assign (BookFile, Name);

{$ I-}

Reset (BookFile);

{$ I +}

If IOresult = 0 then

begin

Write ('Vvedite ulicu dla poiska:');

Readln (Maska);

Rez _ Find: = False; {вулиця не знайдена}

CountRec: = 0;

Writeln ('----------------------------------------------- -------------------------------');

Writeln ('| N | FIO | Data rogdenia | Gorod | Ulica | Dom | Kvartira | Nomer pasporta |');

Writeln ('----------------------------------------------- -------------------------------');

While (not Eof (BookFile)) do {переглянути всі записи до кінця файлів}

begin

Read (BookFile, work);

with work do

If Pos (Maska, Ulica) <> 0 then {знайдена запис фізичного особи}

Begin

Rez_Find: = True;

Inc (CountRec);

Writeln ('----------------------------------------------- -------------------------------');

Write ('|', FilePos (BookFile), '|', FIO, '|', Data, '|', Gorod, '|', Ulica, '|', Dom, '|');

Writeln (Kvartira, '|', Nomer_Pasporta, '|');

Writeln ('----------------------------------------------- -------------------------------');

end;

end;

If Rez_Find then

Writeln ('Chislo zapisei dlya ulic', Maska, '=', CountRec)

Else Writeln ('V spravochnike net takoi ulici', Maska);

Close (BookFile);

end

Else Writeln ('Faila s imenem', Name, 'na diske net');

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 spravochnika ');

Writeln ("3 - izmenenie zapisi ');

Writeln ('4 - dopolnenie spravochnika ');

Writeln ('5 - poisk po familii ');

Writeln ('0 - zavershenie raboty ');

Write ('Vash bybor:');

Readln (VID);

case VID of {виклик різних процедур в залежності від видів роботи}

1: Create_Book;

2: OutputAllRec;

3: UpdateRec;

4: AddRecToEnd;

5: FindFIO;

0: End_menu: = True;

end;

Writeln ('Dlya prodolzheniya nazhmite Enter');

Readln;

clrscr;

Until End_Menu;

end.

5. Контрольний приклад

Наберемо дану програму на мові Паскаль. Відкомпілюємо її. На екрані з'явиться меню завдань для файлу:

При виборі "1" створимо новий файл під ім'ям "*** Spravochnik dannih fizicheskih lic ***":

При виборі "2" можна переглянути весь створений список:

При виборі "3" змінимо одну із записів файлу:

При виборі "4" доповнимо довідник ще одним записом:

При виборі "5" користувачеві буде запропоновано ввести назву вулиці, введемо назву (Леніна) і отримаємо дані про фізичних осіб з такою вулицею:

У випадку, якщо заданої вулиці ні ні, то на екрані з'явиться:

При виборі "0" програма закінчить свою роботу:

Висновок

Завдання, яке поставлено в курсовій роботі була виконана. Ми показали, що завдання може виконувати декілька дій:

Створення файлу

Заповнення файлу даними, містять поля:

Прізвище, ім'я, по батькові

Дата народження

Місто

Вулиця

Будинок

Квартира

Номер паспорта

Перегляд всіх записів файлу або поточного запису

Зміна запису, створеної у файлі

Доповнення запису в файл

Пошук запису за назвою вулиці.

Всі ці дії були виконані за допомогою процедур.

Процедура - це частина програми, в якій виконується специфічну дію. Процедури в Турбо Паскалі можуть бути внутрішніми і зовнішніми.

Внутрішні процедури описуються в розділі опису процедур основної програми. Зовнішні процедури оформляються у вигляді автономно компільованих модулів.

Формат опису процедур:

PROCEDURE <ім'я відс> (список форм. Парам);

Розділи опису

BEGIN

Розділ операторів

END.

Ім'я відс. - Ім'я процедури, будь-яке ім'я задається програмістом, зазвичай відповідно призначенням процедури, що складається з латинських букв і цифр 0-9.

Список літератури

  1. Грачова Л.М. - Програмування в середовищі Turbo - Pascal 7.0: Лабораторний практикум з дисципліни: "Програмування та основи алгоритмізації". - Уфа: РІО РУНМЦ МО РБ, 2008.

  2. Молодцов В.О. - Репетитор з інформатики для підготовки до іспитів. - Ростов н / Д: Фенікс, 2007.

  3. Острейковскій В.А. - Інформатика: Учеб. для вузів. - М.: Вищ. шк., 1999.

  4. Попов В.Б. - Паскаль і Дельфі. Навчальний курс. - СПб.: Питер, 2005.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
91.5кб. | скачати


Схожі роботи:
Розробка програм у середовищі програмування Turbo Pascal 70
Розробка програм у середовищі програмування Turbo Pascal 7 0
Рішення задач на мові програмування Turbo Basik
Скласти програму на мові Turbo Pascal для паралельної сортування чисел
Файли в мові Turbo Pascal
Записи у мові Turbo Pascal
Модульне програмування Turbo Pascal
Мова програмування Turbo Pascal
Рішення математичних задач за допомогою алгоритмічної мови Turbo Pascal Microsoft Excel
© Усі права захищені
написати до нас