Поняття масиву. Одномірний масив та його опис в програмі
Потреба в масивах виникає тоді, коли є велика кількість однотипних упорядкованих даних. У цьому випадку можна було б ці дані розглядати як сукупність непов'язаних величин, надавши кожній з них своє ім'я. Однак такий підхід неефективний. Зручніше ці дані вважати масивом, надаючи їм одне ім'я, а окремим компонентам поставити у відповідність конкретні номери, за аналогією з вектором, кожна компонента якого позначена іменем, праворуч від якого в нижній позиції зазначено номер компонента.
Масив - це впорядкований набір даних однакового типу. Приклади масивів: рядок тексту, компонентами якого є окремі символи; вектор, що є масивом дійсних чисел; матриця, як масив векторів.
Кожному простому значенню, що є в масиві, тобто кожному компонентові відповідає сукупність номерів, які визначають місце його в загальній послідовності. Ці номери називають індексами. Головні характеристики сукупності значень, що утворюють масив, такі: ім'я, розмірність (тобто кількість компонентів), тип компонентів і тип індексів, ім'я - це повна змінна типу масив, її значенням є весь масив. Загальна форма опису масиву така:
type
<ім'я>=аrrау [<тип_індексів>] of <тип_елементів>;
Тип індексів може бути довільним простим типом, крім real. Найчастіше це діапазон і перелічуваний тип. (У Турбо Паскалі - крім longint і діапазону від нього). Тип integer теж не використовують, бо тоді компонентів буде забагато. Тип компонентів може бути довільний. Важливо, що час доступу до будь-якого компонента масиву не залежить від значення індексу. Тому масив вважають структурою прямого доступу.
Приклад опису масиву:
type
vector=array[1..10] of real;
Тоді деякі змінні можна описати так:
var
х,у,v:vector;
Можна також об'єднати ці описи й обійтися без опису типу:
var
х,у,v:array[1..10] of real;
Можливий і такий опис:
s:array[1147.. 1999] of integer;
r:array[-754..-1] of integer;
тобто від'ємні числа обмежують діапазон.
Приклад випадку, коли індексом є перелічуваний тип, такий:
type
day=(pn, vt, sr, ct, pt, sb, nd);
b=array[day] of boolean;
var z,c:b;
або
var z,c:array[day] of boolean;
У другому випадку описані вже змінні с і z, що мають такий самий тип, як b, однак без імені (так зване неявне задання типу).
Як тип індексу, крім діапазону integer і перелічуваного типу, можна використовувати типи boolean і char, як упорядковані.
Окремий компонент масиву вибирають, зазначаючи ідентифікатор масиву, після якого в квадратних дужках записують індексний вираз. Індексний вираз повинен набувати значення, що є в діапазоні, визначеному типом індексу.
і:=5; j:=2;
c[sr]:=false;
z[pred(nd)]:=c[sb];
Ім'я з індексами в квадратних дужках - це часткова змінна, оскільки її значенням є не весь масив, а його окремий компонент.
Приклади часткових змінних (компонентів) з постійними значеннями індексів такі: k[true]; k[false];
Розглянемо типові приклади програм роботи з масивами.
Ввід та вивід значень елементів одномірного масиву
Програма вводу значень елементів одномірного масиву
Program VvOdnMas;
Uses Crt;
Var
A:array[1..20] of real;
i,n:integer;
Begin
Writeln(‘Введіть довжину N масиву А:’);
Readln(n);
Writeln(‘Введіть елементи масиву А:’);
For i:=1 to n do read(A[i]);
Readln
End.
Програма виводу значень елементів одномірного масиву
Program VuOdnMas;
Uses Crt;
Var
A:array[1..20] of real;
i,n:integer;
Begin
{..........................}
Writeln(‘Одномірний масив А:’);
For i:=1 to n do Writeln(A[i]);
Writeln;
{..........................}
End.
Задачі обчислювального характеру
Табулювання функції, аргумент якої заданий масивом
Обчислити всі значення функції , аргумент якої набуває значень {-2; 3; 12.2; 5.4; 6.7; 1.4; 2.8; 7.5; 3.14; 2.85}. Розв’язати задачу для випадку, коли масив містить не 10, а N значень.
Програма табулювання даної функції матиме такий вигляд.
program TabFunc;
uses
Crt;
var
x,y:array[1..20] of real;
N,i:integer;
begin
ClrScr;
Writeln('Введіть кількість елементів масиву N<=20');
Readln(n);
Writeln('Введіть поелементно масив x:');
For i:=1 to N do Read(x[i]);
Readln;
Writeln('Аргумент функції x Значення функції y');
For i:=1 to N do
Begin
y[i]:=Sqr(sin(3*x[i]));
Writeln(x[i]:9:2,' ',y[i]:9:2);
end;
Readln;
end.
- Інформація та інформаційні процеси Поняття інформації.
- Одиниці вимірювання інформації.
- Подання інформації та типи комп'ютерів.
- Способи пересилання інформації.
- Будова комп'ютера
- Пристрої введення-виведення інформації.
- Процесор
- Принципи функціонування комп'ютера Фізичні принципи
- Програмний принцип
- Поняття про середовища програмування
- Загальна характеристика мови паскаль
- Поняття інтегрованого середовища
- Команда New
- Команда Open
- Основи алгоритмізації Алгоритми та їх властивості
- Блок-схеми
- Загальна характеристика Паскаль-програми
- Структура Паскаль-програми
- Елементи мови Паскаль
- Прості типи даних
- Стандартні типи даних
- Дійсний тип
- Логічний тип
- Символьний тип
- Конструйовані типи
- Перелічуваний тип
- Оператори надання значень змінним Оператор присвоєння
- Уведення-виведення
- Порядок виконання операцій
- Складений оператор
- Стиль запису програми
- Структури керування
- Структура послідовного виконання
- Структура розгалуження
- Умовний оператор
- Оператор варіанта
- Оператор безумовного переходу
- Структура повторення
- Цикл з параметром
- Цикл з передумовою
- Цикл з післяумовою
- Ітераційні цикли
- Обчислення суми знакозмінного ряду із заданою точністю
- Процедури і функції
- Процедури з параметрами. Параметри-значення
- Одномірні масиви
- Поняття масиву. Одномірний масив та його опис в програмі
- Обчислення скалярного добутку двох векторів
- Знаходження найбільшого (найменшого) значень серед елементів масиву
- Обчислення суми та добутку елементів масиву
- Перетворення масиву по заданому закону
- Впорядкування одномірних масивів
- Впорядкування шляхом вибору
- Впорядкування обмінами
- Впорядкування вставками
- Зливання впорядкованих масивів
- Двомірні масиви Поняття двомірного масиву та його опис у програмі
- Ввід та вивід значень елементів двомірного масиву Ввід значень елементів двомірного масиву
- Вивід значень елементів двомірного масиву a[m,n]
- Рядковий тип (string)
- Комбіновані типи Організація комбінованих типів у Паскалі
- Оператор приєднання
- Множинні типи Організація множин
- Файлові типи Організація файлів
- Підготовчі та завершальні операції
- Операції уведення-виведення
- Стандартні файли input і output
- Модулі Модуль і його структура
- Стандартні модулі
- Наближене знаходження коренів рівнянь Дослідження рівняння. Відокремлення коренів
- Метод поділу проміжку пополам
- Метод хорд
- Метод дотичних
- Чисельне інтегрування
- Квадратурні формули прямокутників
- Загальні формули прямокутників
- Квадратурна формула трапецій
- Практичні оцінки точності квадратурних формул. Вибір кроку інтегрування
- Список літератури