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.  Куди поміщається при записі черговий компонент типізованого файлу?


 

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

73707. Постоянный электрический ток, Электрический ток, плотность тока, сила тока 323.5 KB
  Электрический ток плотность тока сила тока. Основными характеристиками электрического тока являются плотность тока векторная характеристика и сила тока скалярная величина. Плотность электрического тока – заряд проходящий через единичную площадку перпендикулярную потоку за единицу времени. Сила электрического тока через поверхность с заранее выбранным направлением нормали – это заряд протекающий через единицу времени.
73708. Поле проводника с постоянным током 70.5 KB
  Из условия стационарности делаем вывод что цепь постоянного тока замкнута. Рассмотрим проводник тока малый настолько что его можно считать трубкой тока. Выберем положительное направление обхода в направлении потока тока. произведение алгебраической величины тока на сопротивление равна разности потенциалов и ЭДС сторонних сил.
73709. Закон Джоуля-Ленца для участка цепи 387 KB
  Проводимость шариков много больше проводимости земного шара. Будем считать что в среде выполняется закон Ома в дифференциальной форме где проводимость среды в данной точке. Проводимость анизотропных сред. линейная проводимость квадратичная проводимость.
73710. Постоянное магнитное поле. Сила Лоренца 227.5 KB
  Постоянное магнитное поле. Можно полагать что в процессе движения заряд создает некоторое поле которое называется магнитное поле. Если один заряд или система зарядов создали поле с вектором то на другой заряд движущийся в этом поле действует сила. Поместим проводник в магнитное поле.
73713. Теорема о циркуляции вектора индукции магнитного поля 223 KB
  Рассмотрим провод с током выделим в нем прямолинейный участок и выделим в нем замкнутый контур. Выполним такое разбиение для каждого участка контура и просуммируем учтя что индукция магнитного поля созданного длинным проводом равна. Пусть теперь имеется много проводов и они пересекают поверхность натянутую на контур.
73715. Граничные условия для векторов и на границах раздела двух сред 384.5 KB
  Гаусса для вектора. Запишем поток вектора через поверхность. Устремим к нулю тогда где нормальная компонента вектора. получаем граничные условия вектора Выбреем замкнутый контур в виде прямоугольника со сторонами и и запишем теорему о циркуляции для вектора по данному замкнутому контуру.