69894

Програмування задач обробки структур даних, розташованих на зовнішніх носіях

Лабораторная работа

Информатика, кибернетика и программирование

Мета: ознайомитися з поняттям файлу навчитися створювати і читати файли. Теоретичні питання план Поняття файлу. Основні типи файлових структур. Особливості роботи з текстовими файлами.

Украинкский

2014-10-12

94 KB

1 чел.

Лабораторна робота №4

Тема. Програмування задач обробки структур даних, розташованих на зовнішніх носіях

Мета: ознайомитися з поняттям файлу, навчитися створювати і читати файли.

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

Теоретичні питання (план)

  1.  Поняття файлу.
  2.  Основні типи файлових структур.
  3.  Особливості роботи з текстовими файлами.

Хід виконання роботи

  1.  Ознайомтеся з основними теоретичними відомостями.
  2.  Згідно номеру свого варіанту оберіть умову задачі.
  3.  Опишіть алгоритм виконання завдання.

Теоретичні відомості

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

                   ...

      ВІКНО

Файловий тип визначається в програмі за допомогою відповідного опису:

TYPE <ім’я типу> = FILE OF <тип елемента>

Наприклад, визначення типів

       CONST

               MAX = 80;

  TYPE

               M=1. . MAX;

        F = ARRAY [M] OF CHAR;

         FF = FILE OF F;

задає файл FF, елементами  якого є масиви символів довгої M. Файловий тип можна визначити і в розділі змінних:

VAR  <ім’я файлу>: FILE OF <тип елементів>;

Змінна, що має сенс файлу, описується в розділі змінних. Над файлами можна виконувати деякі дії: запис (створення і поповнення файлу) і читання.

Операція запису додає до файлу нову компоненту. Нові елементи можуть додаватися тільки до кінця файлу.

Розглянемо деякі процедури, які можна виконувати над файлами:

1) зв'язок програмного імені файлу з дисковим ім'ям файлу

    ASSIGN (F, ‘A: FILE. EXE’);

    F – програмне ім'я файлу;

    A – ім'я диска;

    FILE.EXE- дискове ім'я і розширення (з цим розширенням зберігається на диску створений файл).

2) відкриття існуючого файлу на диску для читання (файлове вікно встановиться на початок файлу)

    RESET (F);

3) відкриття нового файлу на диску для запису (файлове вікно встановлюється на початок файлу)

    REWRITE (F);

4) читання з файлу

    READ (F, V);

    V ім'я змінною.

     Через поточне вікно прочитується компоненти файлу в змінну V. V має тип компоненти файлу.

5) запис у файл

    WRITE (F, V);

     Записується значення V в компоненту файлу.

6) відкриття файлу і установка вікна для додавання символів в кінець існуючого файлу

     APPEND (F);      

7) закриття файлу.

     CLOSE (F);

Приклад. Створити, а потім прочитати файл, в якому  містяться квадрати чисел від 1 до 100.

      PROGRAM KO;

VAR F: FILE REAL;          {визначення файлу}

V: REAL; I: INTEGER;                                             

      BEGIN

        ASSIGN (F,’A: REL.DAT’); {зв'язок програмного імені

                                                       файлу  F з дисковим REL.DAT}

       REWRITE (F);                       {відкриття файлу для запису}

       FOR I: =1 TO 100 DO          {початок циклу}

   BEGIN

       V: =SQR (I);                          {обчислення чергового

                                                        значення квадрата числа}

       WRITE (F, V);                        {запис отриманого значення  

                                                        V у файл}

   END;                                          {кінець файлу}

      CLOSE (F);                             {закриття файлу}

      RESET (F);                             {відкриття файлу для читання}

      FOR I: =1 TO100 DO

  BEGIN

      READ (F, V);                           {читання з файлу}

      WRITE (V);                              {виведення прочитаного

                                                         значення}

   END;

      CLOSE (F);                              {закриття файлу}      

  END.

В наведеному прикладі було наперед відомо, що повинно бути прочитано 100 значень. Якщо це наперед не відомо, то неперервною повинна бути перевірка на ознаку кінця файлу. Для цього використовують функцію EOF(F). Ця функція дає значення TRUE, якщо вікно на кінці файлу і FALSE –в протилежному випадку.

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

VAR F: TEXT;

Особливістю текстових файлів є розподіл їх на рядки за допомогою спеціального маркера кінця рядка. З маркером кінця рядка пов'язана  стандартна функція EOLN. Вона дає значення TRUE, якщо прочитані всі літери в рядку і FALSE  в протилежному випадку. Є ще дві спеціальні процедури для текстового файлу:

1) READLN(F)  пропустити всі символи поточного рядка включаючи маркер кінця рядка, і встановити покажчик на початок наступного рядка;

2) WRITELN(F)  поставити маркер кінця рядка в поточному вікні.

Варіанти завдань

Завдання 1

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

Номер варіанту

Завдання

1.

Створити файл X, компонентами якого є елементи масиву M.

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

M=(0,1; 5,6; 0.8; 2,4; 7,3; 6,8; 0,5; 2,3).

2.

Створити файл X, кожна компонентa якого обчислюється за формулою:

I=1,2,.10.

Переписати у файл Y з файлу X перші 5 компонент файлу X. Прочитати файл X.

3.

Створити файл А, компонентами якого є числа від 1 до 20. Переписати у файл B з файлу А ті компоненти файлу А, які діляться без залишку на 2. Прочитати файл B.  

4.

Створити файл C, компонентами якого є числа від 1 до 1000. Переписати у файл D з файлу С ті компоненти, які є повними квадратами. Прочитати файл D.

5.

Створити файл P, компонентами якого є елементи масиву M. Переписати з файлу P у файл G всі компоненти в зворотному порядку. Прочитати файл G.

M=(0,4; 6,1; 2,3; 0,7; 6,2; 3,1; 0,9; 10,1).

6.

Створити файл F, компонентами якого є елементи масиву M. Переписати у файл G всі компоненти, які менше 5. Прочитати файл G.

M=(2,7; 6,8; 0,4; 3,7; 8,4; 7,2; 0,2; 0,1).

7.

Створити файл А, компоненти якого обчислюються за формулою:

   I=1,2,.10.

Отримати файл B, кожна компонента якого рівна компоненті файлу А в квадраті (). Прочитати файл B.

8.

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

C=(4; 2; 3; 8; 6; 7).

9.

Створити файл F, компоненти якого обчислюються за формулою:

I=1,2,.8.

Отримати файл R, компоненти якого дорівнюють компонентам файлу F, що стоять на непарних місцях. Прочитати файл R.

10.

Створити файл G, компонентами якого є елементи масиву D. Переписати у файл F всі компоненти масиву D, які більше 0,5. Прочитати файл F.

D=(0,1; 0,2; 6,7; 0,6; 0,3; 2,8; 0,4).

11.

Створити файл К, компонентами якого є всі парні числа в діапазоні від 2 до20. Переписати у файл E всі компоненти файлу К, заздалегідь зменшивши їх вдесятеро. Прочитати файл E.

12.

Створити файл F, кожна компонента якого обчислюється за формулою:

  I=1,2,.8.

Записати у файл L суму і добуток всіх компонент файлу F. Прочитати файл L.

13.

Створити файл Q, компонентами якого є всі непарні числа від 1 до 19. Записати у файл P суму п'яти перших і суму всіх інших компонент файлу Q. Прочитати файл P.

14.

Створити файл А, компонентами якого є елементи масиву L. Записати у файл B квадрати компонент файлу А, що стоять на парних місцях. Прочитати файл B.

L=(0,6; 1,8; 0,7; 6,7; 5,1; 2,5; 4,7; 2,9).  

15.

Створити файл D, компоненти якого обчислюються за формулою:

I=1,2,.6.

Записати у файл D суми компонент файлу С, що стоять на парних і непарних місцях. Прочитати файл D.

16.

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

E=(0,3; 3,1; 5,2; 0,7; 0,1; 6,8; 4,1; 3,7).

17.

Створити файл К, компонентами якого є елементи масиву M, зменшені в два рази. Записати у файл F суму компонент файлу К, які більше 5. Прочитати файл F.

M=(10,7; 6,1; 0,6; 1,7; 6,8; 4,9; 1,9; 7,2).

18.

Створити файл Q, компоненти якого обчислюються за формулою:

  I=1,2,.10

Записати у файл R перші п'ять компонент файлу Q в зворотному порядку.

19.

Створити файл S, компонентами якого є елементи масиву T. Записати у файл X перші п'ять компонент файлу S і суму всіх інших. Прочитати файл X.

T=(0,2; 0,4; 6,1; 5,8; 4,9; 9,8; 7,1; 2,4;).

20.

Створити файл Y, компоненти якого обчислюються за формулою:

    I=1,2,.10

Записати у файл Z всі компоненти і суму останніх чотирьох компонент файлу Y. Прочитати файл Z.

Завдання 2

Створити в редакторі Тоtal Commander текстовий файл, наступного змісту:

Житомирський державний університет імені Івана Франка.

Кафедра прикладної математики та інформатики.

Спеціальність «Інформатика*».

Група 14.

(Вказати ім'я, по батькові, прізвище студента).

Написати програму для читання текстового файлу в Паскалі.

Рекомендована література

Базова

  1.  Ахо А.В. Структуры данных и алгоритмы / Ахо А.В., Хопкрофт Д.Э., Ульман Д.Д./ М: Вильямс, 2003.— 384 с.
  2.  Вирт Н. Алгоритмы и структуры данных. — М.: Мир, 1989. — 360 с.

Зміст звіту

Тема роботи; умова задачі; алгоритм виконання завдання; висновки за результатами розв’язання.

Контрольні запитання

  1.  Що таке файл?
  2.  Відмінність файлу від масиву.
  3.  Як визначається файловий тип у програмі?
  4.  Процедури над файлами.
  5.  Призначення функцій EOF і EOLN.
  6.  Поняття текстового файлу і його особливості.
  7.  Чим відрізняються файли прямого і послідовного доступу?
  8.  Як описати типізований файл?
  9.  Як розпізнати кінець файлу даних? Як розпізнати файл на диску?
  10.  Якого типу можуть бути компоненти файлу?
  11.  Чи потрібно при визначенні файлу наперед указувати його довжину?
  12.  Куди поміщається при записі черговий компонент типізованого файлу?


 

А также другие работы, которые могут Вас заинтересовать

50215. Визначення радіуса кривизни лінзи допомогою кілець Ньютона 235 KB
  1 вміти описати утворення інтерференційних смуг однакової товщини та кілець Ньютона 2.5 Прилади і матеріали Мікроскоп плоскоопукла лінза великого радіуса кривизни плоскопаралельна пластинка освітлювач з блоком живлення світлофільтри Теоретичні відомості та опис установки Оптична схема для спостереження кілець Ньютона у відбитому світлі в даній лабораторній роботі наведена на рис. Якщо визначити експериментально радіуси темних – го і – го кілець Ньютона то із співвідношень 2.
50216. Проблеми та шляхи розвитку міжнародного ринку інформаційних технологій 557.5 KB
  Дослідження сутності міжнародного ринку інформаційних технологій та його ролі в світовій економіці; класифікація обʼєктів ринку інформаційних технологій; аналіз розвитку міжнародного ринку інформаційних технологій; знаходження механізму регулювання світового ринку інформаційних технологій; відображення напрямків розвитку міжнародного ринку інформаційних технологій.
50217. КЕРУВАННЯ ЕНЕРГЕТИЧНИМИ ПАРАМЕТРАМИ ЛАЗЕРНОЇ ТЕХНОЛОГІЧНОЇ УСТАНОВКИ. ККД ЛАЗЕРА 702 KB
  ККД ЛАЗЕРА Ціль роботи: вивчити склад і пристрій електричної частини лазерної технологічної установки ЛТУ; ознайомитися з етапами перетворення енергії в лазерних установках і з методами виміру енергетичних параметрів лазерного випромінювання; зняти енергетичну характеристику ЛТУ залежно від параметрів схеми накачування; визначити ККД лазера при різних режимах його роботи. Устаткування й прилади Лазерна технологічна установка Квант16 ; вимірювальник енергії ИКГ1М; лазер газовий ЛГ105.1: індуктивноємнісний перетворювач...
50218. Развитие околоносовых пазух ребенка, связь со становлением зубной дуги. Причины воспалительных изменений околоносовых пазух и возможность внутричерепных осложнений 15.54 KB
  Околоносовые пазухи у новорожденных недоразвиты и формируются в процессе развития лицевых костей и роста ребенка. При рождении у ребенка имеются две околоносовые пазухи: достаточно хорошо развитая решетчатая и рудиментарная
50219. ИЗУЧЕНИЕ ЗАТУХАЮЩИХ ЭЛЕКТРОМАГНИТНЫХ КОЛЕБАНИЙ В КОЛЕБАТЕЛЬНОМ КОНТУРЕ С ПОМОЩЬЮ ОСЦИЛЛОГРАФА 242 KB
  Цель работы: Изучение с помощью электронного осциллографа электромагнитных колебаний возникающих в колебательном контуре содержащем индуктивность емкость и активное сопротивление; изучение условий возникновения затухающих колебаний в контуре; расчет основных...
50220. Взаимодействие поля постоянного магнита и проводника с током для измерения силы тока 42.5 KB
  Цель работы: экспериментальное измерение основных характеристик гальванометра магнитоэлектрической системы. Наиболее удачной является конструкция гальванометра с радиальным магнитным полем: такое поле создано в узком зазоре между цилиндрическим полюсным наконечником N и S постоянного магнита и железным сердечником цилиндрической формы. S1=1 C1 – чувствительность гальванометра.
50221. Основные достижения отечественной ветеринарии 78 KB
  Ветеринарная медицина-область научных знаний и практической деятельности, направленных на борьбу с болезнями животных, охрану людей от инфекций общих для животных и человека, выпуск доброкачественной в санитарном отношении продукции и решение ветеринарно-санитарных проблем защиты окружающей среды.
50222. ВЫНУЖДЕННЫЕ КОЛЕБАНИЯ В ПОСЛЕДОВАТЕЛЬНОМ ЭЛЕКТРИЧЕСКОМ КОНТУРЕ 323.5 KB
  Цель работы: Изучение вынужденных колебаний в последовательном контуре определение добротности контура и внутреннего сопротивления генератора синусоидальных колебаний. Основные теоретические положения к данной работе основополагающие утверждения: формулы схематические рисунки:...