1 Розвиток основних понять представлення даних

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

Співвідношення складності представлення оброблюваних даних і алгоритму обчислень визначає два класи завдань:

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

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

Розглянемо найпростіший приклад обчислення за формулою:

Y = X2 + 5X,

де X і Y - певні числа, які є тут елементарними одиницями даних (елементами даних).

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

Розглянемо інший приклад:

S = A1 + A2 + ... + An.

Вирішення цієї задачі в загальному випадку неможливо отримати використовуючи тільки прості змінні. Тут обробляється не окреме число, а послідовність чисел. У цьому випадку при програмуванні використовується такий вид даних, як масив - сукупність елементів, з кожним з яких пов'язаний упорядкований набір цілих чисел, званих індексами. Всі елементи повинні мати однаковий тип їх значень, який і буде типом масиву. У цьому випадку числа а1, а2, ..., аn представляються в програмі масивом А (1), А (2), ..., A (N).

Наведені приклади показують, що зміна виду завдань обумовлює необхідність використання інших видів даних.

Більш ранні мови програмування (ФОРТРАН, АЛГОЛ-60) були призначені для вирішення науково-технічних обчислювальних завдань. У цих мовах використовувалися тільки вищевказані види даних (прості змінні і масиви) що було цілком достатньо. Починаючи з кінця 60-х років комп'ютери починають інтенсивно використовуватися для вирішення так званих необчислювальних завдань, пов'язаних з обробкою різного роду документів. Розглянемо поява нових видів даних на прикладі спрощених задач обробки даних.

Завдання 1. Нарахування заробітної плати.

Розглядаємо задачу при двох спрощених припущеннях:

  • співробітнику нараховується заробітна плата на підставі його окладу;
  • ніякі податки і відрахування не враховуються.

Необхідні для вирішення цього завдання відомості про співробітника представлені в наступній картці НАРАХУВАННЯ:

Прізвище, Ім'я, По батькові Оклад, грн.
Кількість відпрацьованих днів у місяці Сума нарахувань, грн.
PIB O Ko S

Для кожного працівника нарахована сума за певний місяць розраховується за наступною формулою:

S = Кo·O / Кr,

де Кr - кількість робочих днів у цьому місяці.

Для кожного співробітника відповідні дані мають конкретне значення, наприклад:

Прізвище, Ім'я, По батькові Оклад, грн.
Кількість відпрацьованих днів у місяці Сума нарахувань, грн.
Карпенко Віктор Миколайович 3200 21 3200

Ці значення мають сенс тільки у взаємозв'язку один з одним. Окремо вибране число 3200 втрачає свій змістовний сенс, тому використовувати такий вид даних, як проста змінна, тут не можна. У той же час набір відповідних значень, що характеризують конкретного співробітника, має різні типи (символьний і числової), тобто використовувати для його представлення такий вид даних, як масив, також не можна.

Таким чином, понять "проста змінна" і "масив" недостатньо, щоб представити відповідну картку. Для опису аналогічних подань даних в предметній області необчислювальних завдань вводиться ряд нових понять.

Елемент даних (поле) - найменша одиниця пойменованих даних.

Для даного прикладу елементами даних є PIB, О, Ко, S.

Для опису картки співробітника використовується поняття "Логічний запис".

Логічний запис - пойменована сукупність елементів даних (полів).

Елемент логічного запису - поточне значення елементів запису.

Для представлення всього набору карток співробітників використовується поняття "Логічний файл".

Логічний файл - пойменована сукупність всіх елементів записів заданого типу.

Приклад логічного файлу НАРАХУВАННЯ:

Прізвище, Ім'я, По батькові Оклад, грн.
Кількість відпрацьованих днів у місяці Сума нарахувань, грн.
Карпенко Віктор Миколайович 3200 20 3200

Прізвище, Ім'я, По батькові Оклад, грн.
Кількість відпрацьованих днів у місяці Сума нарахувань, грн.
Петренко Антон Петрович 3000 18 2700

Прізвище, Ім'я, По батькові Оклад, грн.
Кількість відпрацьованих днів у місяці Сума нарахувань, грн.
Микитенко Петро Іванович 3400 20 3400

 

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