русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Одномірні масиви. Опис, уведення, вивід і обробка масивів на Паскалі


Дата додавання: 2014-11-28; переглядів: 1375.


Масивом називають упорядкований набір однотипних змінних (елементів). Кожний елемент має Цілочисельний порядковий номер, називаний індексом. Число елементів у масиві називають його розмірністю. Масиви використовуються там, де потрібно обробити відразу трохи змінних одного типу – наприклад, оцінки всіх 20 студентів групи або координати 10 крапок на площині. Рядок тексту можна розглядати як масив символів, а текст на сторінці – як масив рядків.

 

Масив описується в розділі var оператором наступного виду:

Var Имямассива: array [Нижнийиндекс .. Верхнийиндекс] of Тип;

Тут

НижнийИндекс – Цілочисельний номер 1-го елемента масиву,

.. – оператор діапазону Паскаля (саме дві крапки!);

ВерхнийИндекс – Цілочисельний номер останнього елемента,

Тип– кожний з відомих типів Паскаля; кожний елемент масиву буде розглядатися як змінна відповідного типу.

Приклади масивів:

Var a: array [1..20] of integer;

Тут ми описали масив з іменем A, що полягає з 20 цілочисельних елементів;

Var x,y : array [1..10] of real;

Описано 2 масиву з іменами x і y, що містять по 10 дійсних елементів;

Var t : array [0..9] of String;

Масив t складається з 10 рядків, які занумеровані з нуля.

Таким чином, розмірність (число елементів) масиву обчислюється як

Верхнийиндекс – Нижнийиндекс + 1

 

Для звертання до окремого елемента масиву використовується оператор виду

Имямассива [Індекс]

Тут Індекс – Цілочисельний номер елемента (може бути целочисленным виразим або константою). Індекс не повинен бути менше значення нижнього або більше верхнього індексу масиву, інакше виникне помилка "Constant out of range". Окремий елемент масиву можна використовувати так само, як змінну відповідного типу.

Приклади:

A[1]:=1;

x[1]:=1.5; y[1]:=x[1]+1;

t[0]:='Hello';

Поки ми вивчаємо одномірні масиви, у яких кожний елемент має один номер (індекс), що характеризує його положення в масиві. У математику поняттю одномірного масиву з n елементів відповідає поняття вектораз n компонент:

A = {Ai}, i=1,2,…,n

 

Як правило, уведення, обробка й вивід масиву здійснюються поэлементно, з використанням циклу for

Уведення масиву із клавіатури:

Const n = 10;

Var a: array [1..n] of real;

i:integer;

Begin

Writeln ('Уведіть елементи масиву');

For i:=1 to n do read (A[i]);

Розмірність масиву визначена константою n, елементи вводяться по одному в циклу for – при запуску цієї програми користувачеві прийде ввести 10 числових значень. При розв'язку навчальних завдань уводити масиви "вручну", особливо якщо їх розмірність велика, не завжди зручно. Існують, як мінімум, два альтернативні розв'язки:

Опис масиву констант зручно, якщо елементи масиву не повинні змінюватися в процесі виконання програми. Як і інші константи, масиви констант описуються в розділі const, приведемо приклад такого опису:

const a:array [1..5] of real=(

3.5, 2, -5, 4, 11.7

);

Як видне із прикладу, елементи масиву перелічуються в круглих дужках через кому, їх кількість повинна відповідати його розмірності.

Формування масиву з випадкових значень доречно, якщо при розв'язку завдання масив служить лише для ілюстрації того або іншого алгоритму, а конкретні значення елементів несуттєві. Для того, щоб одержати чергове випадкове значення, використовується стандартна функція Random(N), де параметром N передається ціле або дійсне число. Вона поверне випадкове число того ж типу, що тип аргументу й лежаче в діапазоні від 0 до N-1 включно. Наприклад, оператор виду a[1]:=Random(100); запише в a[1] випадкове число з діапазону [0,99].

Для того, щоб при кожному запуску програми ланцюжок випадкових чисел був нової, перед першим викликом Random слід викликати стандартну процедуру Randomize;, що запускає генератор випадкових чисел. Приведемо приклад заповнення масиву з 20 елементів випадковими числами, що лежать у діапазоні від -10 до 10:

var a:array [1..20] of integer;

i:integer;

begin

Randomize;

for i:=1 to 20 do begin

a[i]:=Random(21)-10;

write (a[i]:4);

end;

end.

Ще більш зручний шлях – читання елементів масиву з текстового або двійкового файлу. Про це розповідається в главах 21 і 22.

 

Обробка масиву ( у цьому випадку, обчислюється сума s його позитивних елементів)

Var b:array [1..5] of real;

s:real; i:integer;

Begin

Writeln ('Уведіть 5 елементів масиву');

for i:=1 to 5 do read (b[i]);

s:=0;

for i:=1 to 5 do if b[i]>0 then s:=s+b[i];

Як видне із цього прикладу, до масивів застосовні всі типові алгоритми, вивчені в темі "Цикли".

 

Вивід масиву на екран:

For i:=1 to 5 do write (b[i]:6:2);

Тут 5 елементів масиву b надруковані в один рядок. Для виведення одного елемента на одному рядку можна було б використовувати оператор writeln замість write

 


<== попередня лекція | наступна лекція ==>
Типові алгоритми пошуку максимуму й мінімуму | Подвійний цикл і типові завдання на подвійний цикл


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн