Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Дії над елементами масивів






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

Приклади завдання індексу:

M [5] - безпосередньо числом;

M [x] - опосередковано через змінну x;

M [y +5] - опосередковано через вираження;

M [Succ (i)] - опосередковано через значення функції.

Всім елементам одного масиву можна привласнити значення елементів іншого масиву за допомогою одного оператора присвоювання, в тому випадку, коли масиви мають ідентичний тип. Так, якщо задано такі масиви:

VAR

X, Y: ARRAY [1.. 10] OF INTEGER;

Z: ARRAY [1.. 10] OF INTEGER;

то допустимо наступний оператор присвоювання:

X: = Y;

але неприпустимий оператор

Z: = X;

так як масиви X та Z не ідентичних типів.

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

2.5 Введення і виведення елементів масиву

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

 

А) З клавіатури: FOR I: = 1 TO N DO READ (M [I]);

б) уведення за допомогою генератора випадкових чисел

RANDOMIZE; {ініціалізація генератора випадкових чисел}

FOR I: = 1 TO N DO M [I]: = - 25 + RANDOM (D);

Стандартна функція Random формує випадкове ціле число з діапазону від 0 до D -1. При цьому i-му елементу масиву буде привласнена сума обраного випадкового числа і -25. Таким чином, масив буде заповнюватися цілими випадковими числами від -25 до -25 + (D -1). Наприклад, якщо вибрати D рівним 51, то масив буде заповнюватися випадковими числами від -25 до +25.

Висновок одновимірних масивів відбувається аналогічним чином, наприклад:

FOR I: = 1 TO N DO WRITELN (M [I]);

Введення двовимірних масивів (матриць) проводиться за допомогою вкладеного оператора FOR:

FOR I: = 1 TO N DO

FOR J: = 1 TO K DO

READ (M [I, J]);

Висновок значень елементів двомірних масивів проводиться аналогічним чином з використанням операторів виводу WRITE або WRITELN:

FOR I: = 1 TO N DO

FOR J: = 1 TO K DO

WRITELN (M [I, J])

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

2.6 Контроль помилок при роботі з масивами

Найпоширенішою помилкою при роботі з масивами є вихід індексів за допустимі діапазони. Для виключення таких помилок у середовищі Turbo Pascal передбачена директива компілятора {R}. При вказівці в програмі директиви {$ R +} всі масиви перевіряються на предмет знаходження їх всередині зазначених меж. Якщо буде виявлено порушення діапазону, програма завершує свою роботу, виводячи повідомлення про помилку виконання. Якщо директива не використовується (цей режим прийнятий за замовчуванням), вихід індексу за межі допустимого діапазону не призведе до припинення роботи програми. Але при зверненні до''неіснуючому''елементу масиву дасть невизначений результат, що може зробити хід подальшого виконання програми непередбачуваним.

Слід зауважити, що застосування директиви {R +} кілька уповільнює виконання програми і збільшує її розмір. Тому рекомендується використовувати цю директиву при налагодженні, а потім її видалити з тексту програми.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.