1 of 21

9 клас

Алгоритми опрацювання масивів

2 of 21

Поняття масиву

Дані одного типу можна об'єднати і надати їм одне ім'я.

Таке об'єднання віднесемо до складених даних однорідної структури – МАСИВ.

При розв'язуванні задач треба використовувати різну кількість змінних, кожна з яких повинна мати власну назву. Якщо змінних багато, то робити це не дуже зручно.

Якщо це дані одного типу можна спробувати розташувати їх в одному місці, впорядковуючи їх, тобто поставити їх один за одним.

3 of 21

Приклади:

Клас – група учнів певного віку:

    • Іванов Петро
    • Петров Іван

Багатоповерховий будинок – множина пронумерованих квартир, в кожній з яких живе певна кількість мешканців

    • квартира №1 – 3
    • квартира №2 – 5
    • квартира №3 – 2
    • квартира №100 – 4

4 of 21

Поняття масиву

    • Масив визначається ідентифікатором і кількістю індексів, які необхідні для визначення місцерозташування потрібного елемента масиву.
    • Назва масиву є єдиною для всіх його елементів.
    • Елементами масивів можуть бути величини як простих, так і складених типів.
    • До окремого елемента можна звернутися за допомогою індексів. Як індекси можуть використовуватися константи і змінні порядкових типів.

Масив – це сукупність однотипних елементів, що мають спільне ім’я.

Розмірність масиву – кількість індексів.

Розмір масиву – кількість елементів у масиві.

5 of 21

- 5

0

5

10

15

1

2

3

4

5

A

Масив з іменем А

3

5

НОМЕР �елемента масива

(ІНДЕКС)

A[1]

A[2]

A[3]

A[4]

A[5]

ЗНАЧЕННЯ елемента масива

A[3]=5

НОМЕР (ІНДЕКС) �елемента масива: 3

ЗНАЧЕННЯ �елемента массива: 5

Поняття масиву

6 of 21

Види масивів

Var A:array of тип;

Його розмірність задається підчас виконання програми процедурою

SetLength(ім’я масиву, к-ть ел.)

Var A:array [1..n] of тип;

Його розмірність є фіксованою, тобто не змінюється в ході виконання програми

Масиви

Статичні

Динамічні

Задається тип елементів і розмірність масиву

Задається тільки тип, а розмірність не вказується

7 of 21

Види та конфігурація масивів

  • Одновимірний – лінійна таблиця (вектор)

Розмір масиву – 4

А[2]=13, А[3]=-4

(кожному елементу відповідає 1 індекс)

  • Двовимірний – матриця

Розмір масиву – 4×3=12

В[1,2]=12, В[2,3]=25

(кожному елементу відповідає 2 індекси)

А

8

13

-4

0

1-й

2-й

3-й

4-й

В

1-й

2-й

3-й

4-й

1-й

6

12

0

-1

2-й

-2

34

25

1

3-й

7

15

-17

0

8 of 21

Алгоритм роботи з масивом

    • Оголосити про використання масиву в розділі описів.
    • Очистити підготовлене місце в пам'яті (якщо необхідно).
    • Задати необхідні значення елементів масиву.
    • Якщо потрібно вивести масив на екран для наочного сприйняття.
    • Виконати дії над елементами масиву.
    • Вивести результати на екран.

Звернення до елементів масиву здійснюється за допомогою циклу з параметром (або іншого)

9 of 21

Оголошення масиву

    • Масиву надається ім’я
    • Вказується тип масиву
    • Визначається число елементів
    • Виділяється місце в пам’яті

Ім’я

Початковий індекс

Кінцевий

індекс

Тип елементів

var A: array[1.. ] of integer;

const N=5;

N

var A : array[ 1 .. 5 ] of integer ;

При оголошені масиву:

Масив цілих чисел

Розмір через константу

10 of 21

Оголошення масиву

Розмір масиву визначається під час опису, але кількість елементів може бути менше, ніж зарезервовано місця в пам'яті.

type <ім'я типу> = Array [<індекси>] of <базовий тип>;

Регулярного типу має вигляд:

const <ім'я масиву>: Array [< тип індексу>] of <тип> = (список елементів масиву);

Сталих величин має вигляд:

var <ім'я масиву> : Array [<індекси>] of < базовий тип>;

Змінних величин має вигляд:

11 of 21

Приклади опису масивів

2) масив сталих величин:

const A: array [1..7] of real = (0.1, 3.25, 21.32, -5.5, 11.99, 78.1, -4.5);

Stroka: array [1..6] of char = (‘P’, ‘A’, ‘S’, ‘C’, ‘A’, ‘L’);

1) з використанням типів:

const n = 20;

type Vector = array [1..n] of real;

Matrix = array [1..10] of integer;

var A: Vector; B: Matrix;

3) масив змінних величин:

const n = 50;

var A: array [1..n] of real;

B: array [1..10] of integer;

12 of 21

Заповнення масиву

randomize; {підключити генератор випадкових чисел}

for i:=1 to n do А[i]:=random(b-a+1) + a;

Тип Х

Діапазон значень x

Використання функції

Цілий

[0;В]

X:=Random(В+1);

[A;B]

X:=Random(B-A+1)+A;

Дійсний

(0;1)

X:=Random;

(0;A)

X:=Random*A;

(A;B)

X:=A+Random*(B-A);

1. Випадковими числами з проміжку [a, b]:

for i:=1 to n do А[i]:=і * і - 2; { формула містить змінну і }

2. За формулою:

13 of 21

Заповнення масиву

Цілих чисел

for i:=1 to n do

Begin

А[i] := strtoint(InputBox(‘уведіть значення елемента’, ‘номер [ ’ + inttostr(i) + ‘ ]:’, ’ ’));

ListBox1.Items.Add(inttostr(A[i]));

End;

3. З клавіатури за допомогою функції InputBox:

Одним зі способів виведення елементів одновимірного масиву є додавання значень у поле списку LіstBox.

Список ListBox є масивом рядків типу String, доступ до яких надає властивість Items цього компонента.

14 of 21

TListBox - список

TLіstBox (список)

Компонент (TListBox) являє собою список, в якому можна вибрати потрібний елемент.

15 of 21

Властивість

Опис

Name

Ім'я компонента. Використовується в програмі для доступу до

компоненту і його властивостей

Items

Елементи списку - масив рядків

Count

Кількість елементів списку

ItemIndex

Номер вибраного елемента. Елементи списку нумеруються з нуля. Якщо в списку жоден з елементів не обраний, то значення дорівнює мінус 1.

Sorted

Ознака необхідності автоматичного сортування (True) після додавання чергового елемента.

Left

Відстань від лівої межі списку до лівої межі форми

Top

Відстань від верхньої межі списку до верхньої межі форми

Width,

Height

Ширина та висота поля списка

16 of 21

Властивість

Опис

Font

Параметри шрифту, що використовуються для відображення тексту: гарнітура, розмір, колір шрифту

ParentFont

Ознака наслідування компонентом характеристик шрифту форми, на якій знаходитися компонент. Якщо значення властивості дорівнює True, то текст виводитися шрифтом, встановленим для форми

Visible

Дозволяє приховати текст (False) або зробити його видимим (True)

Enabled

Визначає, чи реагує елемент керування на введення миші чи клавіатури.

Hint

Текст підказки, який буде спливати, коли користувач підведе до

компоненту покажчик миші (працює разом із властивістю

ShowHint)

17 of 21

Заповнення масиву

Дійсних чисел

for i:=1 to 10 do

Begin

А[i]:=strtofloat(InputBox(‘уведіть значення елемента’, ’ номер [ ’ + inttostr(i) + ‘ ]:’, ’ ’));

ListBox1.Items.Add(floattostr(A[i]));

{або}

End;

3. З клавіатури за допомогою функції InputBox:

ListBox1.Items.Add(formatfloat('#.####',A[i]));

18 of 21

Працюємо самостійно:

Завдання 1.

Сформувати одним із трьох способів одновимірний масив цілих чисел A[i], де і = 1,2, … , n.

Вивести елементи масиву:

  1. у зворотному порядку;
  2. з парними індексами;
  3. з непарними індексами;
  4. що є додатними числами;
  5. що є від’ємними числами;
  6. що є парними числами;
  7. що є непарними числами.

Завдання 2. Вправа 32 стр. 182

19 of 21

Домашнє завдання:

§ 32 стр 179-183

Створіть програму для заповнення масиву Numbers[1..10] числами 1,4, 9, ..., 100 і виведення значень елементів масиву в поле ListBox.

20 of 21

Контрольні запитання та завдання:

  1. Дайте означення масиву як структурованого типу даних.
  2. Опишіть масиви: а) А з трьох дійсних чисел; б) В з десяти символів.
  3. Як організувати заповнення масиву випадковими числами?
  4. Запишіть оператор присвоєння, який виконує таку дію:

а) першому елементу масиву С присвоїти значення суми третього і п’ятого елементів;

б) шостому елементу масиву С присвоїти значення подвоєного добутку першого і другого елементів.

5. Як увести значення елементів масиву з клавіатури?

21 of 21

  • Інформатика: підручник для 8 кл. загальноосвіт. навч. закл. / О.П. Казанцева, І.В. Стеценко. - Тернопіль : Навчальна книга - Богдан, 2016. - 304 с. : іл.
  • Інформатика: підручник для 8 кл. загальноосвіт. навч. закл. / Н.В. Морзе, О.В. Барна, В.П. Вембер. - К. : УОВЦ “Оріон”, 2016. - 240 с.
  • Інформатика: підручник для 8 кл. загальноосвіт. навч. закл. / Й.Я. Ривкінд [та ін.]. - Київ : Генеза, 2016. - 288 с.: іл
  • Інформатика: підручник для 8 кл. загальноосвіт. навч. закл. / О. О. Бондаренко, В. В. Ластовецький, О. П. Пилипчук, Є. А. Шестопалов. — Х. : Вид-во «Ранок», 2016. — 256 с. : іл.
  • Уроки Lazarus (українською мовою) http://programer.in.ua/index.php/uroky/uroky-lazarus/161- urok-1-seredovyshche-rozrobky-lazarus
  • сайт Программирование для школьников (рос. мовою):
  • урок 1. Система програмирования Lasarus
  • (http://gospodaretsva.com/2269.html)

Використані джерела