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

Завдання (інструкційна картка) для лабораторної роботи

Тема дисципліни.Робота з масивами в Turbo Pascal

Інструкційна картка

Лабораторного заняття № 5

Тема. Одномірні масиви

Мета заняття. Сформувати практичні вміння та навички створювати програми з одномірними масивами, здійснювати пошук максимального та мінімального елементів, визначати індекс даного елемента, кількість елементів, що відповідають заданій умові. Формувати якості особистості студентів та пізнавальний інтерес; показати значення теми для програмування та розв’язування задач; спонукати до пізнавальної, наукової, творчої діяльності; розвивати самостійність, увагу, відповідальність та творче мислення.

 

Методичне забезпечення

1. Глинський Я. М. Паскаль: навчальний посібник / Глинський Я. М., Анохін В. Є., Ряжська В. А. – Львів: СПД Глинський, 2010. – 192 с.

2. Нога Л. В. Конспект лекцій з дисципліни “Основи програмування та алгоритмічні мови” Частина 1 і 2 / Нога Л. В. – Херсон: Веселка, 2006. – 134 с.

3. Інструкційні картки.

Матеріально-технічне забезпечення

1. Комп’ютери, конспекти лекцій, конспекти практичного заняття, роздруковані завдання по варіантах.

Питання для актуалізації опорних знань

1. Що таке регулярні структури?

2. Яка структура має назву масив?

3. Що таке розмірність масиву?

4. Що таке розмір масиву?

5. Як описується одновимірний масив у мові Pascal?

Правила техніки безпеки

Перед початком роботи потрібно перевірити стан обладнання, робочого місця.

Під час роботи потрібно дотримуватися правил експлуатації комп’ютерного обладнання.

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

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

 

Загальні відомості з теми

Масив (array)– це скінчений набір елементів одного (базового) типу, які зберігаються в послідовно розташованих комірках оперативної пам'яті і мають спільну назву.

Число елементів в масиві називається розмірністю масиву; кожен елемент масиву задається своїм порядковим номером в масиві – індексом.

Прикладом масиву може бути список прізвищ студентів однієї групи, де кожен студент однозначно визначається своїм порядковим номером у списку (індексом у масиві).

Для створення типу масивів у мові Pascal використаються службові слова TYPE і ARRAY, що дозволяють створити тип даних користувача "Масив". Кожному типу масивів привласнюється ім'я; елементи, що відносяться до даного масиву, описуються в операторі VAR як змінні його типу.

Введення і виведення елементів масиву здійснюється в циклах. Індекси елементів масивів записуються у квадратних дужках.

Загальний вигляд конструкції опису типу масиву такий:

Var

ім’я: array [<нижній індекс та верхній індек>] of<тип>;

де ім’я – ім’я змінної масиву;

array –зарезервоване слово мови Pascal, яке означає, що змінна є масивом;

нижній індекс та верхній індекс – цілі константи, які визначають діапазон зміни індексу елементів масиву та кількості елементів (розмір) масиву;

тип – тип елементів масиву.

Описати масив можна у розділі опису типів type,у розділі констант const, або у розділі оголошення змінних var.Назви типів масивів і змішаних масивів придумує користувач.

Доступ до елемента масиву здійснюється через назву масиву і номер елемента. Цей номер (його часто називають індексом) записується в квадратних дужках, наприклад, а[1] – перший елемент масиву а, b[2] – другий елемент масиву b.

Масиви, елементи яких однозначно визначаються одним індексом, називаються одномірними. Мова Pascal допускає опис у програмах одномірних масивів у наступному виді:

type <ім'я_типу_масиву>= array [<діапазон_індексів>] of<тип>,

де type – службове слово, використовуване для створення типу даних користувача;

arraу... of– службові слова для опису масивів ("Масив...з");

<ім'я_типу_масиву> –ім'я типу, що задає користувач масиву (вимоги до імен типів збігаються з вимогами до імен змінних);

<діапазон_індексів> – діапазон зміни індексів масиву. Як даний діапазон може виступити будь-який порядковий тип, крім longinteger. Найчастіше використовують тип-діапазон, у якому задають границі зміни індексів;

<тип> - тип елементів масиву, наприклад, real, integer, char та ін.

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

type M= array [1..10] of integer;

type AR= array [0..15] of real;

type VT= array [-5..5] of single;

type GRUP= array [1..27] of string [10];

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

Наприклад:

var REZ:M;

var P:AR;

var A:VT;

var STUD:GRUP;

Можна також описати змінну, яка безпосередньо має тип масиву, наприклад: varREZ: array [1..10] of integer;

При звертанні до елементів масиву в тексті програми обов'язково потрібно вказувати їхній порядковий номер у масиві, наприклад, REZ[1], POLE[0], A[5], STUD[i].

Одномірні масиви, діапазон індексів яких починається з 1 називаються векторами.

Наприклад, якщо задано вектор V з 5 чисел (3, 0, 5, -7, 8), то другий елемент вектора дорівнює 0 (тобто V[2]=0), п'ятий елемент вектора дорівнює 8 (тобто V[5]=8) і т.д.

Щоб опрацювати всі елементи масиву використовують оператори організації циклів.

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

 

Зміст роботи

1. Вивчити теоретичний матеріал.

2. Виконати індивідуальне завдання.

3. Скласти звіт, в якому відповісти на теоретичні питання, описати алгоритм, описати програму, привести контрольний приклад виконання програми.

Індивідуальні завдання:

Створити блок-схему та програму на мові Pascal для приведеної задачі згідно варіанту:


1. У заданому масиві С[1..n] знайти найбільший елемент та його номер, додати до найбільшого елемента число 5. Результати вивести на екран.

2. Дано масив А[1..n]. Скласти програму, яка друкує ті елементи масиву, індекси яких є степенями двійки.

3. У заданому масиві В[1..n] знайти найбільший елемент та його номер.

4. У заданому масиві С[1..n] знайти елементи, які дорівнюють числу 4 і порахувати їх кількість.

5. Дано масив А[1..n]. Знайти кількість однакових чисел серед елементів цього масиву.

6. Дано масив S[1..n]. Скласти програму, яка друкує ті елементи масиву, індекси яких є непарними.

7. Дано масив дійсних чисел А[1..n]. Всі елементи масиву з парними номерами, що передують першому елементу зі значенням максимального елемента масиву, помножити на це значення.

8. Дано масив А[1..n]. Знайти кількість різних чисел серед елементів цього масиву.

9. Дано натуральне число n і масив дійсних чисел a[1. .n]. Обчислити обернену величину добутку тих елементів масиву, для яких виконується умова i+1<ai<i!.

10. Дано натуральне число n, ціле x і масив цілих чисел a[1. .n]. Якщо в масиві є хоча б один елемент, що дорівнює x, то одержати суму всіх елементів, що слідують за першим таким елементом; у противному випадку відповіддю повинно бути число -10.

11. Дано натуральне число n і масив дійсних чисел c[1. .n]. Крім того задано дійсне a і b. Чи правильно, що при 1≤ k ≤n-1 усякий раз, коли ck<a, виконано ck+1>b?

12. Дано натуральне число n і масив дійсних чисел x[1. .3n]. Обчислити суму елементів із xn+1,... , x3n, що перевершують по величині всі елементи x1, ... , xn.

13. Дано натуральне число n і масив дійсних чисел a[1. .n]. Визначити кількість повних квадратів.

14. Дано натуральне число n і масив дійсних чисел a[1..n]. Визначити добуток непарних елементів, розташованих після останнього від'ємного елемента.

15. Дано натуральне число n і масив дійсних чисел a[1..n]. З'ясувати, чи є він упорядкованим по зростанню.

 


Методичні РЕКОМЕНДАЦІЇ

1. Для виконання лабораторної роботи потрібно перш за все опрацювати теоретичний матеріал.

2. Виконати індивідуальне завдання.

3. Показати результат роботи викладачеві.

4. Скласти звіт, в якому відповісти на теоретичні питання, описати алгоритм, тобто створити блок-схему, описати програму (лістинг програми з коментарями), привести контрольний приклад виконання програми (результат роботи програми).

5. Здати робоче місце, а оформлений звіт – викладачеві на підпис.

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

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

Для сукупності 15 чисел Х=(0.01; -27.3; 0; 1.25; -371; 0.5; -0.1; 1.2; -5; -172.3; 19.1; -2.7; 43.51; 0; -0.02) знайти найменший елемент та його номер.

Скласти таблицю ідентифікаторів, блок-схему алгоритму та програму для обробки одномірного масиву.

 

Лістинг програми:

program Мasuv;

uses crt;

Type

MAS=array[1..15] of real;

Var

x:MAS; i,n:integer;

min:real;

Begin

clrscr;

writeln(‘Введення елементів масиву’);

for i:=1 to 15 do

begin

write('x[',i,']=');

readln(x[i]);

end;

min:=x[1];

n:=1;

for i:=1 to 15 do

begin

if x[i]<min then

begin min:=x[i]; n:=i; end;

end;

writeln('Виведення мінімального елементу', min:5:2,' ', ' Його номер:',n);

End.


Блок-схема програми:

 


Результат роботи програми

Введення елементів масиву  
x[1]=0.01  
x[2]=-27.3  
x[3]=0  
x[4]=1.25  
x[5]=-371  
x[6]=0.5  
x[7]=-0.1  
x[8]=1.2  
x[9]=-5  
x[10]=-172.3  
x[11]=19.1  
x[12]=-2.7  
x[13]=43.  
x[14]=0  
x[15]=-0.02  
Виведення мінімального елементу-371.00 Його номер: 5

Контрольні питання

1. Як використовується одновимірний масив в якості параметру підпрограми у мові Pascal?

2. Що таке відкритий масив як параметр підпрограми?

3. Чому масив називають регулярною структурою?

4. Чи можна змінити розмір масиву при виконанні програми?

5. Які типи даних можна використовувати в якості базового типу масиву?

 

 

Викладач ____________ М. О. Пашко