Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Відповіді до іспиту по СОД.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
191 Кб
Скачать
☆
  1. Масиви статичні та динамічні, переваги та недоліки. Використання масивів для організації роботи з даними. Заповнення масивів з файлу.

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

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

type

Приклад опису та використання статичного масиву

type

Person=record

Name:string[15];

YearOfBirth:integer;

end;

Mas1=array[1..3] of Person;

Const M:Mas1=((Name:’Ivanov’; Age:45),(Name:’Петров’; Age:55).

Приклад опису та використання динамічного масиву

type

Person=record

Name:string[15];

YearOfBirth:integer;

end;

Mas1=array of Person;

var P:Person; M:Mas1;

begin

SetLength(M,3);

  1. Формування типізованого файлу на базі таблиці Excel. Приклад програми.

Таблиця з Excel зберігається з розширенням "Текстовые файлы(с разделителями

табуляции)*.txt";

отриманий файл відкрити у Word'і як текстовий, та за допомогою команди "Пошук та заміна"

замінити знаки табуляції на проміжки;

проміжки у значеннях полів замінити на підкреслення (наприклад, назва кафедри:

"Інтелектуальні інформацйні системи" замінити на "Інтелектуальні_інформацйні_системи"

проміжків у атрибутах записів не повинно бути, це пов'язано з тим, що значення

атрибута читається з рядка до першого проміжка;

кому в дійсних числах замінити на крапку.

Треба мати на увазі, що код програми необхідно пристосовувати до особливостей

типів та імен атрибутів записів

begin

DecimalSeparator:='.';

assignfile(Excel_txt,'Клієнти_tab.txt'); assignfile(Ft,'Client.typ');

reset(Excel_txt); rewrite(Ft);

while not Eof(Excel_txt) do

begin

readln(Excel_txt,St);

Memo1.Lines.Add(St);

end; reset(Excel_txt); readln(Excel_txt,St);

while not Eof(Excel_txt) do

begin readln(Excel_txt,St);

St:=St+' '; I:=1; St1:='';

while St[I] <> ' ' do

begin St1:=St1+St[I];

Inc(I);end;

P.Name_ID:=StrToInt(St1);

while St[I] = ' ' do Inc(I);

  1. Масиви статичні та динамічні. Додавання, видалення та модифікація даних (робота із даними). Приклад програмного коду.

Масив – це упорядкована послідовність однотипних елементів, кожен з яких має один і той же тип. Тип елементів зветься базовим і може бути будь-яким, навіть структурованим, наприклад, запис (record), який має заздалегідь визначений об’єм пам’яті. Масиви зберігаються в оперативній пам’яті комп’ютера. Елементи масиву розміщені впорядковано, кожен має свій номер, який називається індексом. Доступ до елементів масиву відбувається шляхом вказування імені масиву та його порядкового номера у послідовності, тобто використовується прямий метод доступу. Індексом може бути будь-який арифметичний вираз ординального типу.

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

Видалення даних з масиву. Це набагато складніша операція, тому що вона складається із певної низки доволі довгих операцій з масивом, які виконуються за наступним алгоритмом:

Виконати пошук елементу, який потрібно видалити.

Якщо його знайдено, то можна застосувати два шляхи:

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

2)У структурі елементу заздалегідь необхідно передбачити поле, яке буде означати: дійсний це елемент або виключений із послідовності. У знайденому елементі робиться помітка про його виключення із послідовності. Перевага цього підходу полягає в тому, що уникається така довготривала операція, як переміщення елементів. Цей алгоритм можна застосовувати як для несортованих масивів, так і для сортованих. Недоліком є те, що залишаються „дірки” у масиві, якщо їх буде багато, то обробка масиву суттєво уповільнеться.

Додавання даних у масив. Якщо масив невідсортований і динамічний, то додавання нового елементу зводиться до збільшення кількості елементів на одиницю (1) і додаванню його у кінець. Для статичного масиву додавання нового елементу можливо тільки у випадку, якщо є вільні порожні елементи масиву у кінці, або „дірки” при попередньому видаленні елементу шляхом помітки його як недійсного.

Якщо масив відсортований, то можна застосувати два підходи:

1)Знайти місце вставки, зсунути елементи праворуч на 1, записати новий елемент на звільнене місце.

2)Дописати новий елемент в окремий додатковий масив. При необхідності пошуку спочатку виконати пошук в основному масиві бінарним алгоритмом, а потім у додатковому - звичайним послідовним. Якщо об’єм основного масиву достатньо велекий, а додаткового – навпаки, то цей підхід може суттєво зменшити час роботи програми. Через певний відрізок часу звичайно ці два масиви об’єднують в один масив та знову відсортувують його.