Обробка масивів даних у середовищі Turbo Pascal

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати


Міністерство освіти Російської Федерації

УФИМСЬКИЙ ДЕРЖАВНИЙ АВІАЦІЙНИЙ

ТЕХНІЧНИЙ УНІВЕРСИТЕТ

Кафедра автоматизованих систем управління

ОБРОБКА МАСИВІВ ДАНИХ В СЕРЕДОВИЩІ TURBO PASCAL

МЕТОДИЧНІ ВКАЗІВКИ

до лабораторного практикуму з курсу

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

Укладачі: Ю.Б. Головкін, Р.А. Ярцев

УФА 2007

УДК 681.3

Обробка масивів даних у середовищі Turbo Pascal: Методичні вказівки до лабораторного практикуму з курсу "Інформатика та програмування" / Уфимський. держ. авіац. техн. ун-т; Сост.: Ю. Б. Головкін, Р. А. Ярцев. -Уфа, 2007. - 14 с.

Представлений лабораторний практикум присвячений питанням розробки програм на мові Turbo Pascal на основі використання масивів даних. Розглядаються особливості зберігання даних у масивах, способи оголошення змінних, дії над елементами масивів, введення і виведення масивів. Практичне застосування одновимірних і багатовимірних масивів ілюструється на прикладі написання двох програм на мові Turbo Pascal. У додатку наводяться варіанти завдань на лабораторну роботу.

Бібліогр.: 5.

Рецензенти: канд. техн. наук, доц. А. М. Сулейманова;

канд. техн. наук, доц. Р. В. Насиров

© Уфимський державний

авіаційний технічний

університет, 2007

ЗМІСТ

1. Мета роботи

2. Теоретична частина

2.1 Поняття масиву даних

2.2 Одновимірні масиви

2.3 Багатовимірні масиви

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

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

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

3. Рішення завдань - прикладів

4. Порядок виконання роботи

5. Вимоги до звіту

6. Контрольні питання

Бібліографічний список

Додаток. Варіанти завдань на лабораторну роботу

1. МЕТА РОБОТИ

Метою цієї роботи є набуття студентами вмінь і навичок роботи з масивами даних у середовищі Turbo Pascal.

2. ТЕОРЕТИЧНА ЧАСТИНА

2.1 Поняття масиву даних

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

У мові Pascal під масивом розуміється упорядкований набір фіксованої кількості однотипних даних.

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

2.2 Одновимірні масиви

Змінні масивів можна задавати двома способами:

а) через оголошення типу у форматі

TYPE

<Ім'я типу> = ARRAY [тип індексу] OF <тип елементів>;

VAR

<Ідентифікатор>: <ім'я типу>;

б) через оголошення змінних у форматі

VAR

<Ідентифікатор>: ARRAY [тип індексу] OF <тип елементів>;

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

Приклади оголошення масивів:

CONST

N = 25; {розмірність масиву}

TYPE

X = ARRAY [1 .. 100] OF INTEGER;

Y = ARRAY [1 .. N] OF REAL;

Z = RECORD

R, I: REAL

END;

VAR

M: X; {цілочисельний масив}

V 1, V 2: Y; {речові масиви}

L 1, L 2: ARRAY [1 .. 20] OF Z; {масиви записів}

K: ARRAY [BYTE] OF CHAR; {масив символів}

R: ARRAY [1 .. 5] OF STRING [25]; {масив рядків}

T: ARRAY [-10 .. 9] OF BYTE; {масив цілих чисел}

S: ARRAY [BOOLEAN] OF REAL; {речовинний масив}

F: ARRAY [GREEN, RED, BLUE] OF INTEGER; {цілий масив з перераховуваною типом - індексом}

G: ARRAY [1 .. N] OF (MO, TU, WE, TH, FR, SA, SU);

{Масив перечислимого типу}

Типизированная константа-масив оголошується у програмі наступним чином:

CONST

A: ARRAY [1 .. 5] OF INTEGER = (1, 2, 3, 4, 5);

B: ARRAY [1 .. 4] OF REAL = (1.1, 2.2, 3.3, 4.4);

2.3 Багатовимірні масиви

Елементами масивів можуть бути також масиви. У цьому випадку ми маємо двомірний масив (матрицю).

Двомірні масиви задаються в програмі наступним чином:

а) через оголошення типу у форматі

TYPE

<Ім'я типу> = ARRAY [тип індексу 1] OF ARRAY [тип індексу 2] OF <тип елементів>;

або

<Ім'я типу> = ARRAY [тип індексу 1, тип індексу 2] OF <тип елементів>;

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

VAR

<Ідентифікатор>: <ім'я типу>;

б) через оголошення змінних у форматі

VAR

<Ідентифікатор>: ARRAY [тип індексу 1, тип індексу 2] OF <тип елементів>;

Необхідно відзначити, що індекси не обов'язково повинні мати один і той же тип. У загальному випадку індекси по кожному вимірюванню можуть бути різних типів як, наприклад, в наступному фрагменті розділу описів.

Приклади оголошення двомірних масивів:

CONST

N = 5;

M = 10;

TYPE

A = ARRAY [1 .. N, 1 .. M] OF WORD;

B = ARRAY [1 .. 10, 1 .. 20] OF REAL;

VAR

C: ARRAY [1 .. N, BOOLEAN] OF -20 .. 20;

D1, D2: A;

F 1, F 2: B;

Типизированная константа-матриця оголошується у програмі наступним чином:

CONST

M: ARRAY [1 .. 3, 1 .. 2] OF INTEGER = ((1, 2), (3, 4), (5, 6));

Масиви можуть бути не тільки одновимірними або двомірними, але і 3-х, 4-х і n-мірними. У цьому випадку вони описуються в програмі наступним чином:

VAR

M: ARRAY [1 .. 10, -10 .. 9, CHAR] OF BYTE;

N: ARRAY [1 .. 5, 1 .. 10, 1 .. 15, 1 .. 20] OF SHORTINT;

У пам'яті комп'ютера елементи розміщуються один за одним так, що при переході від молодших адрес до старших найбільш швидко змінюється самий правий індекс масиву. Наприклад, для матриці 2х2: A [1,1], A [1,2], A [2,1], A [2,2].

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

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

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

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 +} кілька уповільнює виконання програми і збільшує її розмір. Тому рекомендується використовувати цю директиву при налагодженні, а потім її видалити з тексту програми.

3. РІШЕННЯ ЗАДАЧ - ПРИКЛАДІВ

В якості прикладу розглянемо вирішення двох завдань з одномірним і двомірним масивами.

Приклад 1. Створити одновимірний речовинний масив з 25 елементів. Визначити максимальний та мінімальний елементи масиву і поміняти їх місцями. Отриманий результат вивести на екран.

Текст програми на мові Turbo Pascal:

PROGRAM MAS;

VAR

M: ARRAY [1 .. 25] OF REAL; {Речовий масив}

MAX, MIN, MN: REAL;

I, K, N: INTEGER; {Допоміжні змінні}

BEGIN

{Введення речового масиву з 25 елементів}

FOR I: = 1 TO 25 DO READ (M [I]);

{Змінним MAX і MIN присвоюємо значення першого елемента масиву}

MAX: = M [1]; K: = 1;

MIN: = M [1]; N: = 1;

{Визначаємо максимальний та мінімальний елементи масиву і їх індекси}

FOR I: = 2 TO 25 DO

BEGIN

IF M [I]> MAX THEN

BEGIN

MAX: = M [I];

K: = I;

END;

IF M [I] <MIN THEN

BEGIN

MIN: = M [I];

N: = I;

END;

END;

{Міняємо місцями максимальний та мінімальний елементи}

MN: = M [K];

M [K]: = M [N];

M [N]: = MN;

{Висновок отриманого масиву на екран}

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

END.

Приклад 2. Створити цілочисельну матрицю А 10х8. Сформувати одновимірний масив В, який містить суми позитивних елементів кожного рядка матриці А і вивести його на екран.

Текст програми на мові Turbo Pascal:

PROGRAM PRIM;

VAR

A: ARRAY [1 .. 10, 1 .. 8] OF INTEGER;

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

I, J, S: INTEGER;

BEGIN

{Введення целочисленной матриці А 10х8}

FOR I: = 1 TO 10 DO

FOR J: = 1 TO 8 DO

READ (A [I, J]);

{Обчислення суми позитивних елементів кожного рядка матриці А і формування масиву У}

FOR I: = 1 TO 10 DO

BEGIN

S: = 0;

FOR J: = 1 TO 8 DO

IF A [I, J]> 0 THEN S: = S + A [I, J];

B [I]: = S;

END;

{Висновок сформованого масиву В на екран}

FOR I: = 1 TO 10 DO WRITELN (B [I]);

END.

4. ПОРЯДОК ВИКОНАННЯ РОБОТИ

Для виконання роботи необхідно:

а) повторити правила техніки безпеки при роботі з ви-числівник технікою;

б) звернутися до розділу "Масиви" лекційного курсу, а також тео-ретіческую частина цих методичних вказівок;

в) отримати у викладача варіант завдання (зразки заду-ний наведені у додатку);

г) згідно із завданням написати програму на мові Turbo Pascal;

д) запровадити програму в комп'ютер, налагодити і результати ви-конання показати викладачеві;

е) відповідно до вимог, наведених у розділі 5, оформити звіт з лабораторної роботи;

ж) захистити лабораторну роботу, продемонструвавши препо-давателю:

1) звіт з лабораторної роботи;

2) вміння вирішувати аналогічні завдання;

3) теоретичні знання з розділу "Масиви".

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

5. ВИМОГИ ДО ЗВІТ

Звіт з лабораторної роботи повинен містити:

а) титульний лист;

б) умову завдання;

в) текст програми на мові Turbo Pascal.

6. КОНТРОЛЬНІ ПИТАННЯ

1. Що таке масив даних?

2. Якими способами можна описати масиви?

3. Який максимальний розмір може мати масив?

4. Як відбувається доступ до окремих елементів масиву?

5. Чи можуть бути багатовимірні масиви?

6. Які можуть бути типи елементів масивів?

7. Які можуть бути типи індексів масивів?

8. Чи можна всіх елементів одного масиву присвоїти значення елементів іншого масиву?

9. Як відбувається введення-виведення одновимірних і багатовимірних масивів?

10. Які дії можна виконувати з окремими елементами масивів?

11. Чим відрізняються масиви даних від записів?

12. Чим відрізняються масиви від інших структурованих типів даних?

13. Як задається типизированная константа-масив?

14. Як зберігаються масиви в пам'яті комп'ютера?

15. Чи можна порівнювати масиви?

СПИСОК

1. Фаронов В. В. Turbo Pascal 7.0. - М.: Нолидж, 2007. - 616 с.

2. Мануйлов В.Г. Розробка програмного забезпечення на Паскалі. - М.: ПРІОР, 1996. - 238 с.

3. Марченко А.І., Марченко Л.А. Програмування в середовищі Turbo Pascal 7.0. - К.: ЮНІОР, 1997. - 496 с.

4. Зуєв Є.А. Практичне програмування. - М.: ПРІОР, 2005. - 336 с.

5. Епанешников А.М., Епанешников В.А. Програмування в середовищі Turbo Pascal 7.0. - М.: ДІАЛОГ-МІФІ, 2006. - 288 с.

ДОДАТОК

ВАРІАНТИ ЗАВДАНЬ На лабораторній роботі

Варіант 1

1. Створити одновимірний цілочисельний масив. Упорядкувати

масив за зростанням елементів.

2. Сформувати речову матрицю 4х6. Обчислити суму та кількість позитивних елементів кожного стовпця матриці.

3. Знайти добуток двох цілочисельних матриць 3х3.

4. Обчислити У = (М1 + М2) / 2, де

М1 - максимальний елемент одновимірного цілочисельного масиву з 10 елементів;

М2 - мінімальний елемент одновимірного цілочисельного масиву з 15 елементів.

Варіант 2

1. Створити одновимірний речовинний масив. Визначити кількість негативних елементів масиву.

2. Сформувати цілочисельну матрицю 3х4. Знайти максимальний елемент у кожному рядку матриці і вибрати найбільший з них.

3. Знайти суму двох речових матриць 5х5.

4. Обчислити А = В + С, де

В - твір негативних елементів головної діагоналі целочисленной матриці 3х5;

C - сума позитивних елементів головної діагоналі целочисленной матриці 4х4.

Варіант 3

1. Створити символьний масив даних. Підрахувати кількість входжень у масив букви А.

2. Сформувати речову матрицю 5х5. Упорядкувати за зростанням елементів кожного рядка матриці.

3. Ввести одновимірний цілочисельний масив. Знайти, скільки в ньому пар однакових сусідніх елементів.

4. Обчислити У = (S 1 + S 2) / (K 1 + K 2), де

S 1, K 1 - сума і кількість позитивних елементів одновимірного цілочисельного масиву з 15 елементів;

S 2, K 2 - сума і кількість негативних елементів речовій матриці 4х6.

Варіант 4

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

2. Сформувати речову матрицю 5х5. Обчислити про-твір негативних елементів, що знаходяться над і під головною діагоналлю матриці.

3. Створити цілочисельну матрицю 4х5. Сформувати одно-мірний масив, який містить негативні елементи створеної матриці.

4. Ввести одновимірний речовинний масив з 20 елементів. Упорядкувати масив за спаданням елементів.

Варіант 5

1. Створити одновимірний речовинний масив. Визначити максимальний елемент масиву і його порядковий номер.

2. Обчислити у = x 1 - x 2 + x 3 -...- x (n -1) + x (n).

3. Сформувати матрицю 5х5, що складається з латинських букв. Відсортувати кожен її рядок в алфавітному порядку.

4. Ввести матрицю N х M, що складається з дійсних чисел. Упорядкувати матрицю за зростанням елементів другого стовпця.

Варіант 6

1. Створити символьний масив даних. Замінити всі символи А масиву на символи В.

2. Обчислити y = x (1) x (n) + x (2) x (n -1) +...+ x (n) x (1).

3. Оттранспоніровать цілочисельну матрицю 4х4.

4. Переписати поспіль в масив B позитивні і в масив C негативні елементи масиву A.

Варіант 7

1. Створити одновимірний цілочисельний масив. Знайти суму від'ємних елементів масиву і твір позитивних.

2. Сформувати одновимірний речовинний масив. Распеча-тать його у зворотному порядку.

3. Створити матрицю N х N, що складається з літер латинського алфа-віта. Підрахувати кількість голосних літер.

4. Ввести матрицю N х N, що складається з цілих чисел. Дзеркально відобразити її елементи щодо головної діагоналі. Вивести результат на екран.

Варіант 8

1. Створити одновимірний речовинний масив. Знайти різницю між максимальним і мінімальним елементами масиву.

2. Обчислити суму квадратів непарних елементів цілочисельного масиву з 20 елементів.

3. Ввести матрицю N х M, що складається з дійсних чисел. Сформувати одновимірний масив, який містить тільки позитивні елементи матриці і вивести його на екран.

4. Сформувати матрицю N х N, що складається з цілих чисел. Повернути її на 90 градусів за годинниковою стрілкою і вивести результат на екран.

Варіант 9

1. Сформувати одновимірний цілочисельний масив. Визначити, чи є в даному масиві позитивні елементи, кратні k.

2. Створити одновимірний речовинний масив. Визначити число позитивних, негативних та нульових елементів масиву.

3. Ввести цілочисельну квадратну матрицю N х N. Знайти максимум серед сум елементів діагоналей, паралельних побічної діагоналі.

4. Ввести з клавіатури двомірний масив розмірністю 4х6, заповнений цілими числами. Сформувати одновимірний масив, кожен елемент якого дорівнює кількості елементів відповідного рядка, великих заданого числа n.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Методичка
71.9кб. | скачати


Схожі роботи:
Програми в середовищі Turbo Pascal
Розробка програм у середовищі програмування Turbo Pascal 70
Розробка програм у середовищі програмування Turbo Pascal 7 0
Розробка в середовищі Turbo Pascal програми сортування елементів рядків матриці
Типи даних в Turbo Pascal
Типи даних алгоритмічної мови TURBO Pascal Стандартні функції і оператори роботи з рядками
Структуровані типи даних записи та множини Використання процедур та функції мови Turbo Pascal
Основні відомості про алгоритмічну мову Turbo Pascal Графіка Pascal
Turbo Pascal
© Усі права захищені
написати до нас