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

     

     

     

     

     

         
     
    Обробка послідовних файлів у програмі
         

     

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

    Обробка послідовних файлів у програмі

    Кузнецова В. С., викладач інформатики,  МОУ міжшкільний навчальний комбінат № 2, м. Хабаровськ

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

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

    Що таке файл?

    Якими способами можна створити файл?

    Яким способом вводили дані в програму?

    Яким способом виводили дані з програми?

    Які оператори при цьому використовували?

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

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

    Нехай дані записані на диску у файлі File1.dat. Як до них звернутися з програми? Для цього необхідно в програмі передбачити:

    Зв'язок імені файлу з каналом введення - виведення та оголосити його відкритим.

    Оголосити спосіб доступу до файлу (послідовний або прямий).

    Переслати дані.

    Закрити канал введення - виведення, пов'язаний з файлом.

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

    На мовою програмування Бейсік.

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

    Формат:

    Open "назва файлу" [for режим] as # номер каналу [len = строка]

    Режими для послідовних файлів:

    INPUT - для читання

    OUTPUT - для запису

    APPEND - для додавання даних у файл.

    Приклад:

    Open "File1.dat" for input as # 1

    Оператор PRINT # призначений для виведення даних у файл.

    Формат: PRINT # номер каналу, ім'я змінної

    Приклад:

    Print # 1, fam $ (i), sum (i)

    Оператор INPUT # призначений для введення змінних з файлу (так само як це робить оператор INPUT при їх введення з клавіатури).

    Формат: INPUT # номер каналу, список змінних

    Приклад:

    Input # 1, fam $ (i), kol (i)

    Функція EOF дозволяє визначити кінець файлу.

    Формат: EOF (номер каналу)

    Оператор CLOSE # "закриває" файл, тобто від'єднує його від програми і звільняє в ній канал введення - виведення.

    Формат: CLOSE # номер каналу

    Завдання: Розрахувати зарплату на кожного члена бригади і записати у файл File2.dat дані прізвище члена бригади і його зарплату з урахуванням прибуткового податку. Дані щодо кожному члену бригади (прізвище та кількість зроблених виробів) містяться в фото File1.dat. Примітка: кількість членів бригади, вартість виробу і відсоток на зарплату від прибутку ввести з клавіатури.

    Input "Кількість членів бригади"; n

    Input "Вартість вироби"; r

    Input "Відсоток на зарплату від прибутку"; p

    p = P/100

    Dim fam (n), kol (n), sum (n)

    Open "File1.dat" for input as # 1

    for i = 1 to n

    Input # 1, fam $ (i), kol (i)

    sum (i) = Kol (i) * r * p * 0.13

    next i

    Close # 1

    Open "File2.dat" for output as # 1

    for i = 1 to n

    Print # 1, fam $ (i), sum (i)

    next i: Close # 1

    На мовою програмування Паскаль.

    В Турбо Паскалі розрізняють текстові файли, типізовані файли і нетипізовані файли. При роботі з файлами ключовим поняттям є поняття змінної файлового типу або файлової змінної і описується вона в розділі змінних в залежності від класу файлу. Для текстових файлів файлова мінлива належить стандартного типу Text. Файлова змінна (Ф.П.) зв'язується з ім'ям файлу за допомогою оператора ASSIGN.

    Формат:

    Assign (<Ф.П.>, '<шлях до файлу> <ім'я файлу >');

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

    Формати:

    Reset (<Ф.П. >);

    Rewrite (<Ф.П. >);

    Для читання даних з файлу використовуються процедури READLN, READ, BLOCKREAD.

    Формат:

    Readln (<Ф.П. "," мінлива >);

    Для запису даних у файл використовуються процедури WRITELN, WRITE, BLOCKWRITE.

    Формат:

    Writeln (<Ф.П. "," мінлива >);

    Після завершення роботи з файлом, його необхідно "закрити" оператором Close.

    Формат: Close (<Ф.П. >);

    Знищити непотрібний файл оператором Erase (<Ф.П.>), а перейменувати файл -- оператором Rename (<Ф.П.>, <рядок>), де рядок представляє нове назва файлу.

    Текстовий файл трактується в Турбо Паскалі як сукупність рядків змінної довжини. Доступ до кожного рядка послідовний, починаючи з першого. У кінці кожного рядка ставиться маркер EOLN (End Of Line - кінець рядка), а в кінці всього файлу маркер EOF (End Of File - кінець файлу).

    Розглянемо роботу з файлами на прикладах.

    Приклад 1.

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

    program texst;

    var f: text; (* файлова мінлива *)

    s: integer; (* кількість літер *)

    sim: char; (* символ *)

    begin

    Assign (f, 'a: posl.txt');

    reset (f); (* відкриття файлу *)

    while not eof (f) do (* перевірка кінця файлу *)

    begin

    s: = 0;

    while not eoln (f) do (* перевірка кінця рядка *)

    begin

    read (f, sim);

    if (sim <> '') or (sim <>',') then s: = s +1;

    end;

    writeln ( 'число букв у прислів'ї ', s);

    readln (f); (* перехід на новий рядок *)

    end;

    Close (f) {**}

    end.

    Приклад 2.

    В існуючому файлі dan1.dat записана матриця з цілих чисел. У новий файл dan2.dat переписати цю матрицю і додати в кожну рядок слово "сума =" і результат обчислення суми чисел у цьому рядку.

    Program matrica;

    var f1, f2: text;

    x, s: integer;

    begin

    Assign (f1, 'dan1.dat');

    Reset (f1); (* відкриття файлу для читання *)

    Assign (f2, 'dan2.dat');

    Rewrite (f2); (* відкриття файлу для запису *)

    While not eof (f1) do

    begin

    s: = 0;

    While not eoln (f1) do

    begin

    Read (f1, x);

    Write (f2, x);

    s: = s + x;

    end;

    Writeln (f2, '', 'сума =', s);

    Readln (f1);

    end;

    close (f1); close (f2);

    Writeln ( 'Робота завершена, файл створений на диску');

    end.

    При виконання операцій вводу-виводу даних за замовчуванням автоматично виробляється перевірка на виникнення помилки. При виявленні помилки виконання програми припиняється. Але в програмі можна передбачити власну реакцію на помилкові ситуації. Для цього на початку "небезпечного" фрагмента відключається автоматична перевірка ($ I-). При виникненні помилки формується код, який обробляється функцією IOResult. Функція IOResult повертає в програму код помилки, обнуляє цей код, тому подальші звернення до цієї функції не будуть давати нульовий результат, поки яка-небудь операція не закінчиться аварійно.

    Приклад:

    Assign (f, 'file1.dat');

    ($ I-) (* відключаємо автоматичну перевірку *)

    Reset (f);

    code: = IOResult; (* отримали код результату *)

    if code <> 0 then

    begin (* виникла помилка *)

    write ( 'Помилка при відкритті файлу');

    case code of

    1: write ( 'файл не знайдено');

    3: write ( 'маршрут не знайдений');

    4: write ( 'занадто багато відкритих файлів');

    5: write ( 'заборону доступу до файлу');

    12: write ( 'некоректний код доступу до файлів');

    else

    ... ... ..

    end

    end;

    ($ I-) (* включаємо автоматичну перевірку *)

    ... ... ... ... ... ... ... ....

    Після розглянутих прикладів можна запропонувати завдання для самостійної роботи.

    Завдання 1. Дані про абітурієнтах (прізвище, ім'я, по батькові, середній бал атестата) містяться у файлі F1.txt. Напишіть програму, яка запрошувала б позначки всіх зданих іспит кожного абітурієнта та формувала новий файл F2,. txt в якого увійшли б такі відомості про абітурієнтах: прізвище, ім'я, по батькові, середній бал атестата, отметка1, отметка2, отметка3.

    Завдання 2. Дані про платників податків (прізвище, ім'я, по батькові, адреса) знаходяться в фото F1.txt. Написати програму, яка виводила ці відомості до таблиці:        

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

    адреса         

    дохід         

    податок                                             

    Дохід ввести з клавіатури. Податок розрахувати 15% від доходу. Дохід і податок вивести в таблицю.

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

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

    Для підготовки даної роботи були використані матеріали з сайту http://www.khspu.ru

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

     

     

     

     

     

     

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