Здавалка
Главная | Обратная связь

Методичні рекомендації



Якщо робота програм пов’язана із збереженням та обробкою великого об’єму однотипних змінних, для їх представлення в програмі можна використовувати масиви. Масив – це сукупність даних одного типу із загальним для всіх елементів іменем. Елементи масиву пронумеровані, і звернутися до кожного з них можна за номером (або декількома номерами – наприклад, для елемента таблиці задається номер рядка та стовпця). Номери елементів масиву інакше називаються індексами, а самі елементи масиву – змінними з індексами (індексованими змінними).

Характеристики масиву:

· Тип – спільний тип всіх елементів масиву;

· Розмірність (ранг) – кількість індексів масиву;

· Діапазон зміни індексу (індексів) – визначає кількість елементів в масиві.

Вектор (одномірний масив) – це приклад масиву, в якому елементи нумеруються одним індексом. Якщо в масиві зберігається таблиця значень (матриця), то такий масив називається двомірним, його елементи нумеруються двома індексами – номером рядка та стовпця відповідно. В якості номеру (індекса) елемента масиву, в загальному випадку, використовується вираз порядкового типу. Найчастіше індекс – це ціла константа або змінна типу integer, зрідка - типу char або boolean. При звертанні до елементу масиву індекс вказується в квадратних дужках після імені масиву. Нариклад, a[3], b[1,2].

Опис масиву в розділі VAR.

Для одномірного масиву:

var Ім’яМасиву: array [НижняМежа .. ВерхняМежа]

of ТипЕлементів;

Приклад .

 

var

a: array [1..100] of integer; { 100 елементів – цілі числа }

b: array [0..50] of char; { 51 елемент – символи }

c: array [-3..4] of boolean; { 8 елементів – логічні значення }

 

Для двомірного масиву:

var Ім’яМасиву: array [НижняМежаІндекс1 .. ВерхняМежаІндекс1, НижняМежаІндекс2 .. ВерхняМежаІндекс2]

of ТипЕлементів;

Приклад .

 

var

a: array [1..3, 1..4] of integer; { матриця з трьох рядків і 4-х ствопців, елементи - цілі числа}

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

· Заповнення вектору з n елементів:

for i:=1 to n do readln(a[i]);

· Заповнення матриці розміром m x n елементів (всього потрібно ввести m*n чисел):

for i:=1 to m do

for j:=1 to n do

readln(a[i,j]);

· Заповнення вектора з n елементів випадковими числами в діапазоні від 0 до 99 включно:

randomize {ініціалізація датчика випадкових чисел}

for i:=1 to n do a[i]:=random(100);

Вивід масиву

· В стовпець:

for i:=1 to n do writeln(a[i]);

· Матриці розміром m x n елементів в стандартній формі запису – по рядкам і стовпцям:

for i:=1 to m do

begin

for j:=1 to n do

write(a[i,j:4]);

writeln;

end;

Обробка масиву

Дії з одномірними масивами (вектор, що містить n елементів)

· Обчислення суми елементів:

S:=0;

for i:=1 to n do s:=s+a[i]; {звичайне накопичення суми в s}

· Обчислення добутку елементів:

p:=1;

for i:=1 to n do p:=p*a[i]; {звичайне накопичення добутку в p}

· Підрахунок кількості елементів, що задовольняють певній умові (наприклад, кількість парних чисел в цілочисельному масиві):

k:=0;

for i:=1 to n do

if a[i] mod 2=0 then k:=k+1; {збільшуємо на 1 лічильник парних чисел, якщо число ділиться на 2}

· Пошук елемента із заданим значенням та вивід його номера в масиві:

i:=0; {номер елементів масиву}

repeat

i:=i+1;

until (a[i]=0){знайшли} or (i=n){масив закінчився};

if a[i]=0 then writeln (‘Номер першого нульового елемента = ’, i)

else writeln(‘Таких елементів немає’);

· Пошук максимального елемента та його номера в масиві:

max:=a[1]; k:=1; {змінна max зберігає значення максимуму, k- його номер в масиві}

for i:=1 to n do {перебираємо елементи, починаючи з другого}

if a[i]>max then

begin

max:=a[i]; k:=i; {запам’ятовуємо значення і номер елемента, який більше всіх попередніх}

end;

Дії з двомірними масивами ( n рядків та m стовпців)

· Обчислення суми елементів кожного рядка:

for i:=1 to n do

begin

S:=0;

for j:=1 to m do s:=s+a[i,j];

d[i]:=s; {результатом є вектор d, що складається з n сум елементів рядків}

end;

· Пошук мінімального елемента всієї матриці:

min:=a[1,1]; k:=1; l:=1; {змінна min зберігає значення мінімуму, k і l– номер рядка та стовпця, де він знаходиться}

for i:=1 to n do

for j:=1 to m do

if a[i,j]<min then

begin

min:=a[i,j]; k:=i; l:=j;

end;

· Множення матриці а на вектор х, в результаті отримуємо новий вектор y:

for i:=1 to n do

begin

s:=0;

for j:=1 to m do

s:=s+a[i,j]*x[j];

y[i]:=s;

end;

Завдання 1.

Ввести одномірний масив А з N елементів та виконати наступні дії:

1. 5-му елементу присвоїти значення останнього елемента;

2. 7-му елементу присвоїти значення суми попереднього та наступного елементів;

3. різницю значень останнього та першого елементів присвоїти другому елементу;

4. 5-му елементу присвоїти результат множення першого та останнього елементів;

5. суму значень першого та другого елементів присвоїти останньому елементу;

6. змінити знак першого елемента на протилежний;

7. змінити знак останнього елемента на протилежний;

8. першому елементу масиву присвоїти його подвоєне значення;

9. останньому елементу масиву присвоїти його подвоєне значення;

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

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

12. перший та останній елементи поміняти місцями.

Результуючий масив вивести на екран.

Завдання 2.

Ввести одномірний масив А з N елементів та виконати наступні дії:

1. Знайти мінімальний елемент та присвоїти йому значення 0.

2. Знайти максимальний елемент та присвоїти йому значення 100.

3. Знайти максимальний за модулем елемент та поміняти його місцями з останнім елементом масиву.

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

5. Підрахувати кількість від’ємних елементів масиву та присвоїти їм значення 0.

6. Підрахувати кількість додатніх елементів масиву та присвоїти їм значення 100.

7. Підрахувати кількість елементів кратних 3-м та присвоїти їм значення 33.

8. Підрахувати кількість елементів кратних 5-ти та присвоїти їм значення 55.

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

10. Знайти мінімальний за модулем елемент, його індекс та присвоїти йому значення добутку цих даних.

11. Підрахувати різницю між від’ємними та додатніми елементами масиву.

12. Всім нульовим елементам масиву присвоїти значення 100.

Результат вивести на екран.

Завдання 3.

Ввести двомірний масив А з MxN елементів та виконати наступні дії:

1. Знайти суму модулів всіх від’ємних елементів матриці.

2. Знайти суму всіх додатніх елементів матриці.

3. Знайти мінімальний елемент і присвоїти йому значення 0.

4. Знайти максимальний елемент присвоїти йому значення 1000.

5. Всім парним елементам присвоїти значення 2;

6. Всім непарним елементам присвоїти значення 1;

7. Порахувати кількість від’ємних елементів;

8. Порахувати кількість додатніх елементів;

9. Обчислити різницю між макисмальним та мінімальним елементами матриці;

10. Обчислити кількість парних елементів матриці.

11. Обчислити кількість непарних елементів матриці.

12. Знайти кількість елементів матриці, значення яких більше значення першого елемента.

Результат вивести на екран.

Завдання 4.

Ввести двомірний масив А з MxN елементів та виконати наступні дії:

1. Знайти суму всіх елементів, що лежать в діапазоні (-∞;1) і її значення присвоїти елементам, що знаходяться в першому рядку матриці.

2. Знайти суму всіх елементів, що лежать в діапазоні (4;+∞) і її значення присвоїти елементам, що знаходяться в останньому рядку матриці.

3. Знайти мінімальний елемент і його значення присвоїти елементам, що знаходяться в першому рядку матриці.

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

5. Матриця M=N. Елементам головної діагоналі присвоїти значення 0;

6. Матриця M=N. Елементам, що знаходяться нижче головної діагоналі присвоїти значення 1;

7. Матриця M=N. Елементам, що знаходяться вище головної діагоналі присвоїти значення 100;

8. Матриця M=N. Знайти мінімальний елемент, та його значення присвоїти елементам головної діагоналі;

9. Матриця M=N. Знайти максимальний елемент, та його значення присвоїти елементам головної діагоналі;

10. Знайти мінімальний елемент і рядок, де він знаходиться поміняти з першим рядком матриці.

11. Знайти максимальний елемент і рядок, де він знаходиться поміняти з останнім рядком матриці..

12. Знайти мінімальний та максимальний елемент та поміняти їх місцями.

Результат вивести на екран.

 

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.