Реферати

Учбова допомога: Обробка масивів даних в середовищі Turbo Pascal

Інженерна діяльність. Криза інженерії і нова ідея інженерії. Социокультурний аналіз процесів інформатизації. Підтримка процесів модернізації.

Чи озеленення повернення до природи. ожете чи Ви уявити собі матінку природу без такого затишних і з дитинства усім рідного зеленого кольору? Думаю, що немає. Варто лише оглянути поглядом будь-яка ділянка землі, що не встиг змінити людина, і ви зрозумієте про що я говорю. Буквально кожен квадратний метр ґрунту заповнений різноманітними видами рослин, що впливають на якість життя людей.

Настільні СУБД 2. Зміст Уведення......3 Теоретична частина......4 Висновок......18 Практична частина......19

Реформи Петра 1 10. Порівняєте політику Катерини II і попередніх їй правителів з погляду продовження реформаторської діяльності Петра I. Період другої половини XVIII століття називають єкатерининським періодом.

Відповідальність за розкрадання чужого майна, зроблене шляхом грабежу. ДИПЛОМНА РОБОТА "ВІДПОВІДАЛЬНІСТЬ ЗА РОЗКРАДАННЯ ЧУЖОГО МАЙНА, ЗРОБЛЕНЕ ШЛЯХОМ ГРАБЕЖУ" Зміст Уведення......3 1. Сутність відповідальності за розкрадання чужого майна, зроблене шляхом грабежу......7 1.1. Історичні аспекти відповідальності за розкрадання чужого майна...... ......7 1.2.

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

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

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

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

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

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

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

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

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

УФА 2007

УДК 681.3

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

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

Бібліогр.: 5 назв.

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

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

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

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

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

ЗМІСТ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Метою справжньої роботи є придбання студентами умінь і навиків роботи з масивами даних в середовищі TurboPascal.

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

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

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

У мові 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; { цілочисельний масив }

V1, V2: Y; { речовинні масиви }

L1, L2: ARRAY[1.. 20 ] OFZ; { масиви записів }

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

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

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

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

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

У: ARRAY[1.. 4] OFREAL = (1.1, 2.2, 3.3, 4.4);

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

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

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

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

TYPE

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

або

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

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

VAR

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

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

VAR

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

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

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

CONST

N = 5;

M = 10;

TYPE

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

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

VAR

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

D1, D2: А;

F1, F2: У;

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

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 ] OFSHORTINT;

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

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

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

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

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

M [х] - непрямо через змінну х;

M [у+5] - непрямо через вираження;

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

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

VAR

X, Y: ARRAY [1.. 10] OFINTEGER;

Z: ARRAY[1.. 10] OFINTEGER;

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

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 Контроль помилок при роботі з масивами

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

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

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

Як приклад розглянемо рішення двох задач з одномірним і двомірним масивами.

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

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

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] <IN 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. Сформувати одномірний масив В, який містить суми позитивних елементів кожного рядка матриці А і вивести його на екран.

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

PROGRAM PRIM;

VAR

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

У: 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 (А[ I, J]);

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

FOR I: = 1 TO 10 DO

BEGIN

S: = 0;

FOR J: = 1 TO 8 DO

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

У [ I ]: = S;

END;

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

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

END.

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

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

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

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

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

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

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

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

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

1) звіт по лабораторній роботі;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

БІБЛІОГРАФІЧНИЙ СПИСОК

1. Фаронов В. В. TurboPascal7.0. - М.: Нолидж, 2007. - 616 з.

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

3. Марченко А. И., Марченко Л. А. Программірованіє в середовищі TurboPascal 7.0. - ДО.: ЮНІОР, 1997. - 496 з.

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

5. Епанешников А. М., Епанешников В. А. Программірованіє в середовищі TurboPascal 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;

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

Варіант 3

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

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

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

4. Обчислити У = (S1 + S2) / (K1 + K2), де

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

S2, K2 - сума і кількість негативних елементів речовинної матриці 4х6.

Варіант 4

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

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

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

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

Варіант 5

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

2. Обчислити у = x1 - x2 + x3 -...- х(n-1) + х(n).

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

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

Варіант 6

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

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

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

4. Переписати підряд в масив В позитивні і в масив З негативні елементи масиву Створити одномірний цілочисельний масив. Знайти суму негативних елементів масиву і твір позитивних.

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.