русс | укр

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

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


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


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Урок 5 - Обробка масиву мовою pascal(одновимірний, двовимірний)

Масиви - структурований тип даних з елементами одного типу. Кількість елементів визначає розмір масиву. Наприклад, масив становлять заробітні плати співробітників підрозділу підприємства, тут число елементів дорівнює кількості співробітників; масив утворюють набір чисел, їх кількість дорівнює кількості елементів масиву. Номер елемента масиву називається індексом. Масив може мати не один, а більшу кількість індексів. Число індексів називається розмірністю масиву, наприклад, масив з двома індексами називається двовимірним масивом. Таким двовимірним масивом є, зокрема, матриця системи n лінійних алгебраїчних рівнянь з n невідомими. В той же час стовпчик вільних членів цієї системи є одновимірним масивом.

Масив має бути описаний або в розділі змінних VAR, або в розділі типів TYPE наступним чином:

TYPE <имя_типа> = ARRAY [ti,t2....,tn] OF <тип_элементов_массива>;
VAR <имя_массива> : <имя_типа> ;
або
VAR<имя_массива>: ARRAY [ti,t2,...,tn]OF<тип_элементов_массива>;
де tl,...,tn - тип індексу (перелічувальний або інтервальний);
Наприклад:
1) VAR a: ARRAY [1..5] OF real;
Описаний масив а дійсних чисел, який складається з 5 елементів.
2) TYPE t = ARRAY[1..3,1..4] OF integer;
VAR b : t;
Описана матриця b з 3 рядків і стовпчиків, елементи якої є цілими числами.
3) TYPE
tl = ARRAY [1..4] OF integer;
t = ARRAY [1..5] OF t1;
VAR d : t;
до : t1;

На початку описаний тип одного рядка t1, потім тип всієї матриці t через тип рядка t1. У розділі змінних зазначено ,що d-двовимірний масив розміром (5,4), a k - одновимірний масив k(4).

Приклад обробки одновимірного масиву

Дан одновимірний масив MAS(12) з дійсних чисел. Знайти найбільший елемент масиву і його індекс.

program pr4_1 ;
n = const 12; (*константа n визначає розмір масиву в описі*)
type
m = array [1..n] of real ; (* m - тип масиву mas *)
var mas : m ;
i , num : integer;
max : real;
begin
for i:=1 to n do (*введення елементів масиву mas по 1 у рядку*)
begin
writeln(‘введіть елемент масиву’, i) ;
read (mas[i]);
end;
num :=1; max := mas [1];
for i: =2 to n do
if mas [ i ] > max then begin
max := mas [i ]; num := i ;
end;
writeln; (* висновок масиву в рядок*)
for i:=1 to n do write (mas [ i ]:5:1 ); writeln;
writeln (‘максимальний елемент = ‘, max:4:1,‘ індекс=’ ,num );
readln;
end.

Мінлива max порівнюється з елементами масиву, і якщо елемент масиву більше max, то змінної max присвоюється значення елемента масиву, а змінної num - індекс цього елемента. По закінченні циклу мінлива max буде мати значення, рівне максимальному елементу масиву, а змінна num - значення індексу цього елемента.

Приклад обробки багатовимірного масиву

Як правило, при обробці багатовимірних масивів використовуються вкладені цикли, тобто цикл по стовпцях розташовується всередині циклу по рядках.
Дана матриця A(3,4), і вектор B (4), що складаються з цілих чисел . Помножити матрицю А на вектор .

program pr4-2 ;
const m=3; n=4;
var
a : array [ 1 .. m, 1 .. n ] of integer; (* опис матриці *)
b : array [ 1 .. n ] of integer; (* опис вектора *)
c : array [ 1 .. m ] of integer; ( * опис *)
i, j: integer;
begin
for i:=1 to m do (* введення матриці *)
begin
writeln (‘введіть елементи ‘, i , ‘-тієї рядка’);
for j:=1 to n do read (a [i, j] ); writeln;
end;
writeln (‘введіть елементи вектора’);
for j:=1 to n do (* введення вектора *)
read (b[ j]); writeln;
for i:=1 to m do
begin
c [ i ]:=0; for j:=1 to n do c[i] = c : [i ]+ a[i , j]* b[j];
end;
for i:=1 to m do (*форматний висновок матриці *)
begin
for j:=1 to n do write (a [i, j]: 4 ); writeln;
end;
for j:=1 to n do write (b [ j ] :4); (* висновок масиву B *)
writeln ;
for i:=1 to m do write (c [ i ] :4); (* виведення З масиву *)
readln;
end.

У програмі елементи матриці вводяться за рядками по одному з підтвердженням клавішею Enter. А виводяться в загальноприйнятому вигляді: кожен рядок матриці з нового рядка екрану (цикл i по рядках зовнішній, а цикл j - внутрішній).

Переглядів: 4558

Повернутися взміст


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