ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Модулі, записи й файли
         

     

    Інформатика, програмування

    Сибірський Державний Унівеверсітет Телекамунікацій та Інформатики
    | |
    | | | Кафедра ВТ та ТЗ |
    | Курсова робота |
    | | Дисципліни: Інформатика |
    | | ВИКЛАДАЧ: Моренкова Ольга Ілінічна |
    | | ТЕМА: Модулі, записи й файли. |
    | | ВИКОНАВЕЦЬ: Грязіним Дмитра Володимировича |
    | | |
    | Новосибірськ |
    | 2000р. |

    С О Д Е Р Ж А Н И Е

    Вступ 3
    Глава 1. Модулі в Турбо Паскалі. 6
    1.1. Призначення і структура модуля 6
    1.2. Компіляція модулів. 9
    Глава 2. Алгоритми 11
    2.1. Зухвала програма 12
    2.2.Процедура формування масиву А 13
    2.3. Процедура виведення масиву А 14
    2.4. Процедура твір елементів масиву А 15

    2.5. Функція пошуку максимального елемента векторного масиву С ... .... ... ... .16

    Глава 3. Модуль основної програми 17
    Глава 4. Основна програма 19
    Глава 5. Результати першої частини курсової роботи 21
    Глава 6. Записи. 22

    Глава 7. Файли. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 24


    7.1. Операція з файлами як єдине ціле. 24
    7.2. Структура файлів 26
    Глава 8. Завдання другій частині курсової роботи 30
    Глава 9. Алгоритм основної програми 31
    Глава 10. Основна програма 32

    Глава 11. Результати другої частини курсової роботи ... ... ... ... ... ... ... ... ... ... ... ... .34

    Висновок 35

    Список використаних джерел: 36

    Введення

    Метою курсового проектування є придбання і закріпленнянавичок в організації обчислювальних процесів і програмування наалгоритмічній мовою ПАСКАЛЬ. Основний акцент в роботі приділяєтьсярозгляду модульного програмування, використання процедур і функцій.
    Крім того, велика увага приділяється роботі з файлами, детальнорозглядаються функції відкриття та закриття файлу. Отримані знаннядопоможуть у майбутньому більш ефективно підходити до процесу розробкипрограмного забезпечення.

    Мова програмування Pascal був розроблений в 1968-1971 рр.. Ніклаус
    Віртом в Цюріхському Інституті інформатики (Швейцарія). Початкова метарозробки мови диктувалася необхідністю інструменту "для навчанняпрограмуванню як систематичній дисципліні ". Проте дуже скоровиявилася надзвичайна ефективність мови Pascal в найрізноманітнішихдодатках, від вирішення невеликих задач чисельного характеру до розробкискладних програмних систем - компіляторів, баз даних, операційних системі т.п. До теперішнього часу Pascal належить до групи найбільшпоширених і популярних у світі мов програмування. Існуютьчисленні реалізації мови практично для всіх машинних архітектур;розроблено десятки діалектів і проблемно-орієнтованих розширень
    Pascal;навчання програмуванню та науково-технічні публікації в значніймірою базуються на цій мові.

    Характеристика та особливості мови. Існує ряд об'єктивних причин,обумовили видатний успіх мови Pascal. Серед них у першу чергунеобхідно вказати наступні:
    1. Мова в природній і елегантною формі відбив найважливіші сучасніконцепції технології розробки програм: розвинена система типів,орієнтація на принципи структурного програмування, підтримка процесупокрокової розробки.
    2. Завдяки своїй компактності, концептуальній цілісності таортогональності понять, а також вдалому початкового опису,запропонованому автором мови, Pascal виявився дуже легким для вивчення таосвоєння. На противагу громіздким багатотомні описи такихмов, як PL/I, Cobol, FORTRAN, достатньо повний опис мови Pascalзаймає близько 30 сторінок тексту, а його синтаксичні правила можнарозмістити на одній сторінці.
    3. Незважаючи на відносну простоту мови, він виявився придатний длядуже широкого спектру додатків, у тому числі для розробки дужевеликих і складних програм, наприклад операційних систем.
    4. Pascal дуже технологічний для реалізації практично для всіх, у томучислі і нетрадиційних, машинних архітектур. Стверджується, що розробка
    Pascal-транслятора "майже не перевищує за трудомісткістю гарну дипломнуроботу випускника вузу ". Завдяки цьому для багатьох ЕОМ існуєкілька різних реалізації мови, що відображають ті чи інші практичніпотреби програмістів.
    Мова Pascal стандартизована в багатьох країнах. У 1983 році був прийнятийміжнародний стандарт (ISO 7185:1983). Готується (відомості на 1989 рік)стандарт РЕВ на Pascal.
    Розглянемо основні особливості мови Pascal.
    1. Pascal є традиційним алгоритмічним мовою програмування,продовжують лінію Algol-60. Це означає, що програма на мові Pascalявляє собою спеціально організовану послідовність кроків зперетворення даних, що приводить до вирішення деякої задачі. Це відрізняє
    Pascal від так званих непроцедурного мов типу Prolog, по сутіщо представляють собою формалізму для запису початкових умов деякоїзавдання і синтезують рішення за допомогою вбудованих механізмівлогічного висновку.
    2. Мова Pascal містить зручні засоби для представлення даних.
    Розвинена система типів дозволяє адекватно описувати дані, що підлягаютьобробці, і конструювати структури даних довільної складності. Pascalє універсальна мова, що означає фіксацію типів змінних приїх описі, а також строгий контроль перетворень типів і контрольдоступу до даних відповідно до їх типом (як на етапі компіляції, так іпри виконанні програм).
    3. Набір операторів мови Pascal відображає принципи структурногопрограмування і дозволяє записувати досить складні алгоритми вкомпактною і елегантною формі.
    Pascal є процедурним мовою з традиційною блокової структурою істатично певними частинами дії імен. Процедурне механізмпоєднує в собі простоту реалізації та використання і гнучкі засобипараметризації.
    4. Синтаксис мови досить нескладний. Програми записуються у вільномуформаті, що дозволяє зробити їх наочними і зручними для вивчення.

    Глава 1. Модулі в Турбо Паскалі.

    1.1. Призначення і структура модуля


    Модуль - це автономно компільовані програмна одиниця, що включає всебе різні компоненти розділу описів (типи, константи,змінні, процедури і функції) і, можливо, деякі виконуютьсяоператори ініціації частини. У модулях Turbo PASCAL явнимчином виділяється деяка "видима" інтерфейсна частину, в якійсконцентровані описи глобальних типів, констант і змінних, атакож приводяться заголовки глобальних процедур і функцій.
    Поява об'єктів в інтерфейсній частини робить їх доступними для іншихмодулів і основної програми. Тіла процедур і функцій розташовуються у виконуваній частині модуля, яка може бути прихована від користувача.
    Модулі являють собою прекрасний інструмент для розробкибібліотек прикладних програм і потужний засіб модельногопрограмування. Важлива особливість модуля полягає в тому,що компілятор Turbo PASCAL розміщує їх програмний код в окремомусегменті. Модуль має наступну структуру:

    UNIT;

    INTERFACE

    IMPLEMENTATION

    BEGIN

    END.

    Тут UNIT - зарезервоване слово, починає заголовокмодуля;
    - ім'я модуля (повинне збігатися з ім'ям файлу, вякий поміщений модуль);
    IMPLEMENTATION - зарезервоване слово (виконання), починаєвиконувану частину; BEGIN - зарезервоване слово, починаєініціюючу частина (частина модуля BEGIN необов'язкова); END - зарезервоване слово, ознака кінця модуля.

    Заголовок модуля складається з зарезервованого слова UNIT інаступного за ним ім'я модуля. Для правильної роботи Turbo PASCAL іможливості підключення засобів, що полегшують розробку великих програм,це ім'я повинне збігатися з ім'ям файлу, у який поміщається вихіднийтекст модуля. Ім'я модуля служить для його зв'язку з іншими модулями й основною програмою. Цей зв'язок установлюється спеціальним додатком
    USES. Тут USES - зарезервоване слово; - список модулів, з якими встановлюється зв'язок,елементами списку є імена модулів, відокремлюються один від одногокомами. Якщо оголошення USES використовується, то воно повинне відкриватирозділ описів основної програми. Модулі можуть використовувати іншімодулі. Пропозиція USES в модулях може випливати або відразу зазарезервованим словом INTERFACE, або відразу за словом
    IMPLEMENTATION. Інтерфейсна частина відкривається зарезервованим словом
    INTERFACE. У цій частині містяться оголошення всіх глобальнихоб'єктів модуля (типів, констант, змінних та підпрограм), якіповинні стати доступними основній програмі і (або) іншим модулів.
    При оголошенні глобальних підпрограм в інтерфейсній частині вказується тільки їхній заголовок. Оголошення підпрограм в інтерфейсній частиниавтоматично супроводжується їхньою компіляцією з використаннямдалекої моделі пам'яті. Таким чином, забезпечується доступ допідпрограм з основної програми й інших модулів. Порядокпояви різних розділів оголошень і їх кількість може бутидовільним. Частина, що виконується починається зарезервованимсловом IMPLEMEN-TATION і містить опису підпрограм, оголошених вінтерфейсній частини. У ній можуть оголошуватися локальні для модуля об'єкти --допоміжні типи, константи, змінні і блоки, а також мітки, якщовони використовуються в ініціації частини. Опису підпрограми, оголошеноїв інтерфейсній частині модуля, що виконується в частині маєпередувати заголовок, у якому можна опускати список формальнихзмінних (і тип результату для функції), так як вони вже описані вінтерфейсній частини. Але якщо заголовок програми приводиться в повномувигляді, тобто, зі списком формальних параметрів, то він повинен збігатися із заголовком, оголошеним в інтерфейсній частини. Ініціюєчастину завершує модуль. Вона може бути відсутнім разом зпочатківцем її словом BEGIN або бути порожній - тоді за BEGIN відразу слідознака кінця модуля (слово END і наступна за ним точка). Уініціації частини розміщуються виконуються оператори, які містятьлише певну частину програми. Ці оператори виконуються до передачіуправління основній програмі і звичайно використовуються для підготовки їїроботи. Наприклад, у них можуть ініціюватися змінні, відкриватисяпотрібні файли, можуть встановлюватися зв'язки з іншими ПК покомунікаційних каналах і т.п. Не рекомендується робити ініціюючучастину порожньою, краще її опустити: порожня частина містить порожній оператор, якому буде передане керування при запуску програми.

    1.2. Компіляція модулів.

    У середовищі Turbo PASCAL є засоби, керуючі способомкомпіляції модулів і полегшують розробку великих програмнихпроектів. Зокрема, визначені три режими компіляції: COMPILE, MAKEі BUILD. Режими відрізняються тільки способами зв'язку компільованімодуля й основної програми з іншими модулями, оголошеними в додатку
    USES. При компіляції модуля або основної програми в режимі
    COMPILE компілюється тільки файл, що знаходиться в активному вікні.
    За умовчанням передбачається, що використовувані модулі вжевідкомпілювати і результати поміщені в однойменні файли зрозширенням. TPU; файл з розширенням. TPU (від англійського Turbo Pаscal
    Unit) створюється в результаті компіляції модуля. У режимі МАКЕЄВкомпілятор перевіряє наявність TPU-файлів для кожного оголошеногомодуля. Якщо який-небудь із файлів не виявлений, то система намагаєтьсявідшукати однойменний файл з розширенням. PAS, тобто файл із вихіднимтекстом модуля. Якщо PAS-файл знайдений, то відбувається його компіляція.
    Крім того, в цьому режимі система стежить за можливими змінамивихідного тексту будь-якого використовуваного модуля. Якщо в PAS-файл
    (вихідний текст модуля) внесені які-небудь зміни, то незалежно відтого, чи є вже в каталозі відповідний TPU-файл чи ні, системаздійснює його компіляцію перед компіляцією основної програми. Якщозміни внесені в інтерфейсну частину модуля, то будутьперекомпіліровать також і всі інші модулі, які звертаються до нього.
    Режим МАКЕЄВ істотно полегшує процес розробки великих програм з безліччю модулів. У режимі BUILD існуючі TPU-файлиігноруються, і система намагається відшукати й компілювативідповідний PAS-файл для кожного оголошеного в пропозиції USESмодуля. Після компіляції в режимі BUILD програміст може бути впевнений уте, що враховано всі зроблені ним зміни в будь-якому з модулів.

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

    Глава 2. Завдання першої частини курсової роботи

    Розробити модуль (схеми алгоритмів і програми), що містять процедури іфункції, які вирішують поставлене завдання:

    Варіант № 21

    Обчислити добуток елементів кожного стовпця матриці:


    Визначити максимальне значення твори:

    Розробити викликає програму (алгоритм і текст програми), передбачившипроцедуру очищення екрана і виведення інформації на екран з текстовимикоментарями. Наприклад:

    Курсову роботу виконав студент групи А - 61 Іванов Роман Борисович

    Варіант № 21

    Розроблений модуль містить наступні програми:

    Процедуру формування елементів матриці в інтервалі -1.0 до 1.0.

    Функцію визначення суми елементів тієї строки, де знаходиться максимальний елемент.

    Процедуру виведення елементів матриці.

    Результати :

    Сформована матриця:

    ------------------------------

    ------------------------------


    Сума елементів рядка, де знаходиться максимальний елемент = ... ....

    2.1. Зухвала програма

    2.2.Процедура формування масиву А

    PROCEDURE FORM

    2.3.Процедура ввивода масиву А


    PROCEDURE VIVOD

    2.4.Процедура твори елементів масиву А

    PROCEDURE PR

    2.5.Функція пошуку максимального елемента в векторному масиві С

    FUNCTION MAX

    Глава 3. Модуль основної програми

    unit kurp1;interfaceconst n = 5;type matr = array [1 .. n, 1 .. n] of real; vect = array [1 .. n] of real;procedure form (var a: matr);procedure vivod (var a: matr);function max (c: vect): real;procedure pr (a: matr; var c: vect);implementationprocedure vivod (var a: matr); var i, j: integer; begin for i: = 1 to n dobegin for j: = 1 to n dowrite (a [i, j]: 6:2); writeln; end; writeln; end;procedure form (var a: matr);var i, j: integer; begin randomize; for i: = 1 to n do for j: = 1 to n doa [i, j]: = random * 2-1; end;function max (c: vect): real;var i: integer; m: real;beginm: =- 2;for i: = 1 to n do if c [i]> m then m: = c [i];max: = mend;procedure pr (a: matr; var c: vect);var i, j: integer;beginc [i]: = 1;for i: = 1 to n do begin for j: = 1 to n do c [i]: = a [j, i] * c [i]; writeln ( 'Твір', i, '-го стовпця =', c [i]: 6:4); end; writeln;end;end.

    Глава 4. Основна програма

    program kursovik; uses crt, kurp1; var a: matr; c: vect; begin clrscr; window (45,2,75,7); writeln ( 'Курсова робота з інформатики'); writeln ( 'Факультет АЕС група А-92'); writeln ( 'студента: Грязіним Дмитра'); window (1,1,80,25); writeln ( 'варіант 21'); window (10,8,80,20 ); writeln ( 'Розроблений модуль містить наступні програми:'); writeln ('1. Процедуру формування елементів матриці в інтервалі від 1.0 до 1.0. '); writeln ('2. Процедуру виводу матриці на екран.'); writeln ( ' 3.Процедуру визначення твори кожного стовпця матриці. '); writeln ('4. Функцію визначення максимального проізвелденія.'); window (1,1,80,25); gotoxy (10,24); writeln ( 'Для продовження натисніть пробіл '); clrscr; form (a); writeln (' Сформована матриця '); vivod (a); pr (a, c); writeln (' Максимальна твір = ', max (c): 6:4); readln; end.

    Глава 5. Результати першої частини курсової роботи

    Сформована матриця
    -0.68 0.22 0.58 -0.62 -0.14
    0.25 -0.11 -0.90 0.41 -0.57
    0.24 -0.69 -0.84 0.28 0.71
    -- 0.46 -0.26 0.16 0.49 -0.73
    0.60 0.17 0.28 -0.77 -0.61

    Твір 1-го стовпця = 0.0112
    Твір 2-го стовпця =- 0.0007
    Твір 3-го стовпця = 0.0187
    Твір 4-го стовпця = 0.0264
    Твір 5-го стовпця = 0.0243

    Максимальне твір = 0.0264

    Глава 6. Записи.


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

    Структура оголошення типу запису така:

    = RECORD END

    Тут - правельний індіфікатор;

    RECORD, END - зарезервовані слова (запис, кінець);

    - список полів; являють собою послідовність

    розділів записи, між якими ставиться крапка з запитом.

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

    type birthday = record day, month: byte; year: word: end; var a, b: Birthday;

    . . . . . . . .

    У повму прикладі тип Birthday є запис з полями DAY, MONTH, і YEAR;змінні А і В містять записи типу Birthday.
    Як у масиві, значення змінних типу запису можна привласнювати іншимзмінним того ж типу, наприклад: a: = b;
    До кожного з компонентів записи можна отримати доступ, якщо використовуватискладене ім'я, тобто вказати ім'я змінної, потім крапку і ім'я поля: a.day: = 27; b.year: = 1991;
    Щоб спростити доступ до полів запису, використовується оператор приєднання
    WITH:

    WITH DO

    Тут WITH, DO - ключові слова (с, робити);

    - ім'я змінної типу запис, за яким, можливо, слід список вкладених полів;

    - будь-який оператор Турбо Паскаля.
    Наприклад: with c.bd do month: = 9;
    Імена полів повинні бути унікальними в межах тієї записи, де вониоголошено, однак, якщо записи містять поля - записи, тобто вкладена в одиніншу, імена можуть повторюватися на різних рівнях вкладеності.

    .

    Глава 7. Файли.


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

    7.1. Операція з файлами як єдине ціле.

    Програмування доступу до файлу у мові Turbo Pascal починається зопису файлової змінної (змінної файлового типу). Цей описбудується за допомогою службового слова file, після якого (після службовогослова of) може бути вказаний тип окремих елементів файла, наприклад:var
    F: file of integer;

    При необхідності можна окремо визначити деякий файловий тип,яким надалі користуватися при описі файлових змінних:type
    RecordFile = file of record

    А, В: real; end;var
    Fl, F2: RecordFile;

    Дуже важливо розрізняти власне файл (область пам'яті на магнітномуносії з деякою інформацією) і змінну файлового типу в деякій
    Turbo Pascal-програмі. Вважається, що файлова змінна єпредставником деякого дискового файлу в програмі. Для того, щобреалізувати доступ до файлу па магнітному диску, програма повинна зв'язати йогоз файлової змінної. Для цього необхідно зіставити змінну з ім'ямфайлу. Це ім'я представляється у вигляді рядка, що містить повне ім'я файлу і,може, ланцюжок осяжний каталогів та позначення дисководу. Такарядок носить назву маршруту (або колії) до файлу і формується за загальнимиправилами MS-DOS.
    Зв'язування маршруту та файлової змінної проводиться стандартноїпроцедурою Assign, якій передаються два параметри: ім'я змінноїфайлового типу та рядок з ім'ям (маршрутом) дискового файлу, наприклад:
    Assign (F, 'з: booksbook4test3. Разів');
    Крім маршруту, у другому параметрі може бути вказано умовне
    (символічне) позначення деякого «псевдофайла» MS-DOS, тобто файлу,пов'язаного з конкретним фізичним пристроєм. Допускаються імена, восновному збігаються з прийнятими в MS-DOS позначеннями ( 'con' - консоль,тобто екран дисплея і/або клавіатура, 'lpti' або 'prn' - друкуючийпристрій і т. д.).
    До тих пір, поки файлова змінна не пов'язана з яким-небудь дисковимфайлом, ніякі операції з нею в програмі неможливі, Зауважимо, що можназв'язати файлову змінну з ще не існуючим дисковим файлом. Цеможе бути виправдане для випадку подальшого створення Turbo Pascal -програмою файлу з даними ім'ям за допомогою деякої системної процедури.
    Після того, як файлова змінна з допомогою процедури Assign пов'язана зконкретним дисковим файлом, можна виконати будь-яку допустиму операцію зним. Тут розглянемо дві операції загального характеру, що дозволяютьперейменовувати і знищувати існуючі дискові файли. Такі операціївиконуються системними підпрограмами Rename і Erase з наступнимиспецифікаціями:
    Rename (var f; nevname: string);
    Erase (var f);

    Основним параметром цих процедур є файлова змінна (вонаможе ідентифікувати файл будь-якого типу, і до неї повинна була бути ранішезастосована процедура Assign), а процедурою Rename додатково передаєтьсянове ім'я файлу. Дія зазначених процедур грунтується навідповідних DOS-функціях і функціонально еквівалентно командам ren іdel командного процесора.

    7.2. Структура файлів

    7.2.1Откритіе і закриття файлів
    У цьому і наступному розділах розглядаються файли традиційної для мови
    Pascal структури, які описуються в програмі в термінах складовихкомпонент. Крім таких файлових змінних (вони також називаються
    "типізований" файлами), у мові Turbo Pascal є також файлиспеціального типу - текстові файли, які введені для підтримки одногопрактично важливого окремого випадку файлових структур, і нетипізованіфайли, які використовуються для більш ефективної організації обмінів нанизькому рівні.
    Найважливішим моментом при використанні змінних файлових типів єінтерпретація файлу як потенційно нескінченного списку значень одного ітого ж (базового) типу. Наприклад, опис змінної F виду var
    F: file of integer;розуміється як визначення в програмі під ім'ям F списку невизначеногокількості цілих чисел, розташованого на деякому зовнішньому запам'ятовуючомупристрої (наприклад, на магнітному диску).

    З кожної змінної файлового типу також пов'язано поняття поточногопокажчика файлу. Поточний покажчик можна розуміти як приховану змінну
    (тобто змінну, неявно описану разом з файловоюзмінної), яка позначає ( "вказує" на) деякий конкретнийелемент файлу. Таким чином, можна графічно так представитиінтерпретацію файлу, пов'язаного зі змінною F: 0 1 2

    N

    | Ціле | Ціле | Ціле |. . . | Ціле |. . . |
    | | | |. . | | |


    Поточний покажчик -----< br> Як правило, всі дії з файлом (читання з файлу, запис у файл)виробляються поелементно, причому в цих діях бере участь той елементфайлу, який позначається поточним покажчиком. У результаті вчиненняоперацій поточний покажчик може переміщатися, налаштовуючись на той чи іншийелемент файлу. Всі елементи файлу вважаються пронумерованими; початковийелемент має нульовий номер. Є можливість явної установки поточноговказівника на певний елемент файлу.
    Зауважимо, що один і той же зовнішній файл у різних Turbo Pascal -програмах (або навіть в різних частинах однієї і тієї ж програми) можеінтерпретуватися по-різному, наприклад, як послідовність цілихчисел, або як послідовність символів, або як послідовністьдеяких записів, і т. д. Ця можливість дуже важлива і часто використовуєтьсяв роботі з файлами складної структури. Наприклад, в процесі роботи звнутрішнім поданням файлів баз даних (зокрема, з DBF-файлами)може знадобитися інтерпретувати файл по-різному в залежності від того,яку його компоненту (заголовок або змістовну частину) ми обробляємо.
    Потрібно також відзначити, що всі операції з файлами у мові Turbo Pascalреалізовані з використанням базових засобів операційної системи; вЗокрема, поняття поточного покажчика файлу підтримано у MS-DOS. Проте всіпереміщення по файлу (як явне управління покажчиком, так і зрушення приобмінах) виконуються в термінах байтів. Таким чином, всі аспекти,пов'язані з типізацією вмісту файлів, являють собою системнунадбудову мови Turbo Pascal.
    Для виконання деякої операції по вводу-висновку необхідно перш за всевідкрити дисковий файл (нагадаємо, що попередньо потрібно зв'язати файловузмінну з дисковим файлом за допомогою процедури Assign). Під відкриттям уданому випадку розуміється підготовка до обміну з файлом з боку програми,що полягає перш за все в пошуку файлу на зовнішньому носії, установційого поточного вказівника на певний (як правило, нульовий елемент) іформуванні буфера в оперативній пам'яті, за допомогою якого будутьвироблятися обміни.
    Звичайні типізовані файли відкриваються за допомогою однієї з двох системнихпроцедур - Reset або Rewrite, єдиним параметромяких в даному випадку є файлова змінна. Обидві ці процедуривідкривають файл для обміну. Різниця між ними полягає в початковихдії з файлом.
    Процедура Reset припускає, що відкривається дисковий файл вжеіснує, в іншому випадку виникає помилка. Процедура Rewriteприпускає, що відкривається файл може ще не існувати, в цьому випадкувона створить заданий файл. Якщо ж файл існує, то Rewrite очищає його.
    Повторимо, що в обох випадках поточний покажчик файлу встановлюється найого нульовий елемент. Слід мати на увазі, що обидві операції допускають уНадалі як читання з файлу, так і запис у нього (це буде обговорюватисяв наступному розділі).
    Зрозуміло, дві введені процедури носять в основному підготовчийхарактер, однак можна вказати практично важливі випадки їх цілкомсамостійного використання. Так, процедура Rewrite може застосовуватисядля стирання вмісту файла без його видалення з диска або для створеннянового файлу.

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

    Крім закриває процедури close, в системі Turbo Pascal також єдодаткова процедура Flush (її параметр - файлова змінна). Flushвикористовується для завершення обмінів з файлом без його закриття. Обміни зфайлами завжди реалізуються через деякий буфер в оперативній пам'яті,тому в процесі запису на файл останні записувані елементи можуть щезнаходитися ( "застрягти") в буфері. Процедура Flush викликає примусовийскидання цих елементів у файл. Ця процедура має сенс у тому випадку, якщо зфайлом проводилися операції запису і використовується рідко, тому що процедураclose виробляє такі ж дії.

    Глава 8. Завдання по другій частині курсової роботи

    У файлі міститися довідкові відомості про підприємства-задолжніках посплату податків


    | № | ІНН | Найменування | Засіб на | Нараховано | Сплачено |
    | | | Підприємства | початок року | податків в | податків в |
    | | | | | Звіт. період | отч. Період |
    | ... ... ... | ... ... ... ... .. | ... ... ... ... ... ... | ... ... ... ... .... | ... ... ... ... ... ... | ... ... ... ... .. |
    | ... ... ... | ... ... ... ... .. | ... ... ... ... ... ... | ... ... ... ... .... | ... ... ... ... ... ... | ... ... ... ... .. |
    | Відомості на кінець звітного періоду |
    | ... ... ... ... ... ... ... .. | ... ... ... ... ... .... | ... ... ... ... ... | ... ... ... ... ... ... | ... ... ... .... |
    | ... ... ... ... ... ... ... .. | ... ... ... ... ... .... | ... ... ... ... .... | ... ... ... ... ... .. | ... ... ... .... |

    Тип полів:

    № - тип INTEGER [3]
    ІПН - тип STRING [12]
    Найменування
    Підприємства - тип STRING [20]
    Інші поля - INTEGER

    Розробити алгоритм і програму для обробки файлу згідно варіантузавдання

    Варіант № 26
    Видати інформацію про підприємства, які не нараховують податки у звітномуперіоді.

    Відомості видати у вигляді таблиці з відповідним заголовком.

    НАПРИКЛАД:

    ГРУПОВІ ЗАДОЛЖНІКАХ> 20 тис.

    Глава 9 . Алгоритм другій частині курсової роботи

    Глава 10. Основна програма

    program part2;

    uses crt;

    type table = recordn: integer;inn: string [12];
    Name: string [20];
    Sng: integer;
    Nop: integer;
    Uop: integer;
    Skop: integer;
    End;
    Varf: file of table;x: table;beginclrscr;window (45,2,75,7);textcolor (5);writeln ( 'Курсова робота з інформатики');writeln ( 'Факультет АЕС група А-92');writeln ( 'студента: Грязіним Д.');window (1, 1, 80, 25);gotoxy (30, 5);writeln ( 'Частина 2');window (10, 8, 80, 20);writeln ( 'У файлі table.txt містяться довідкові відомості');writeln ( 'про підприємства-задолжніках зі сплати податків');writeln;writeln ( 'Завдання');writeln ( 'Видавати повні відомості про підприємства, які не');writeln ( 'нараховували податки у звітний період.');window (1, 1, 80, 25);gotoxy (10, 24);textcolor (4 + blink);writeln ( 'Для продовження натисніть Enter');readln;textcolor (10);clrscr;assign (f, table.txt);reset (f);writeln ( 'Відомості про підприємства, які не нараховували');writeln ( 'податки у звітний період');writeln ('+----------------------------------+');writeln ( '| № | ІНН | Найменування | 1 | 2 | 3 | 4 |');writeln ( '| ---+----------+----------------+----+----+---- +-----| ');while not Eof (f) dobeginread (f, x);with x doif Nop = 0 thenbeginwriteln ( '|' №: 3 '|', Inn: 12, '|', Name: 20, '|', Sng: 4, '|', Nop:
    4, '|', Uop: 4, '|');writeln (Skop: 4, '|');end;end;writeln ('+---------------------------------------------- -------------------< br>------+');writeln;writeln ('1 - Відомості на початок року ');writeln ('2 - Нараховано податків в звітний період ');writeln ('3 - Сплачено податків у звітний преріод ');writeln ('4 - Відомості на кінець звітного преіода ');writeln;readln;end.
    Глава 11. Результати другої частини курсової роботи


    Відомості про підприємства які не нараховувалиподатки в звітний період.
    +------------------------------------------------- ----------------------+< br>| № | ІНН | Найменування | 1 | 2 | 3 | 4 |
    |-----+-----------------+------------------------+ ----+----+----+-----|< br>| 3 | 54090903618 | Дитячий садок № 275 | -8 | 0 | 8 | 0 |
    | 10 | 54091032618 | Школа № 25 | -7 | 0 | 7 | 0 |
    +------------------------------------------------- -----------------------+

    1 - Відомості на початок року
    2 - Нараховано податків в звітний період
    3 - Сплачено податків у звітний період
    4 - Відомості на кінець звітного періоду

    Висновок

    Отриманий мною практичний досвід стосовно до програмування на
    ПАСКАЛЬ дозволяє використовувати ефективне модульне програмування.
    Крім того, вивчивши представлений в курсовому проектуванні матеріал, япридбав практичні навички використання процедур, функцій. Поряд з цимя навчився правильно використовувати файлові функції операційної системи MS-
    DOS, що є одним з основних питань програмування.

    Список використаних джерел:


    Фаронов В. В., Турбо Паскаль 7.0., Навчальний посібник. - М.: «Нолидж», 1999.

    Бляшкін И. И. Буров А. А. Нові можливості Турбо Паскаля 6.0. - СПб.:
    Видавництво «Макет», 1992.

    Фаронов М.М. Програмування на персональних ЕОМ в середовищі Турбопаскаль. -
    М.: Издательство МГТУ, 1990.


    ----------------------- Початок

    i: = 0 max: = 0


    Висновок упорядкованих відомостей

    Дані про студента і про програму

    кінець

    f, 'table.txt'
    '

    Відкрити f

    Заголовок

    not eof (f)

    f, x

    Not Eof ( f)

    Max: = sng

    N1: = i

    Read (f, x)

    WITH x1 [i]

    Sng> 0

    I: = i +1

    B [i]: = x

    Sng> max

    Вхід

    randomize

    I = 1, n

    J = 1, n

    a [i, j]: = random * 2-1;

    Кінець

    Вхід

    a [i, j]: 6:2

    Вхід

    I = 1, n

    J = 1, n

    Кінець

    C [i] = 1

    I = 1, n

    J = 1, n

    C [i] = a [i, j] * c [i]

    Кінець

    Вхід

    M = -2

    I = 1, n

    C [i]> m

    M = C [1]

    MAX = M

    Кінець

    На початок

    Дані про студента і про програму

    FORM (A)

    VIVOD (A)

    PR (A)

    MAX (C)

    Висновок сформувалиний матриці та результатів

    Кінець

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status