Лабораторна робота №7
(модуль 1)
Тема: Масиви. Одномірні масиви. (2 години)
Мета: Ознайомити з поняттям масиву. Формувати вміння і навички обробки одномірних масивів засобами мови програмування Pascal.
Література:
Архангельский А.Я. Язык Pascal и основы программирования в Delphi
Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов.– М.: Мир, 1979.– 536 с.
Культин Н.Б. Turbo Pascal в задачах и примерах
М.С.Львов, О.В. Співаковський. Основи алгоритмізації та програмування.
Марченко А.И., Марченко Л.А. Программирование в среде Turbo Pascal 7.0
Меженный О.А. Turbo Pascal
Н.Вирт. Алгоритмы + структуры данных = программы. Москва, Мир, 1985 г. 406 с.
Н.Вирт. Алгоритмы и структуры данных. Москва, Мир, 1989 г. 420 с.
Немцова Т.И., Голова С.Ю., Абрамова И.В. Программирование на языке высокого уровня. программирование на языке Object Pascal
Окулов С.М. Основы программирования.– М.: ЮНИМЕДИАСТАЙЛ, 2002.– 424 с.
Павловская Т.А. Паскаль. Программирование на языке высокого уровня
Пильщиков В.Н. Сборник упражнений по языку Паскаль. Москва, Наука, 1989 г., 160 с.
Фаронов В.В. Turbo Pascal 7.0. Начальный курс. – Учебное пособие. – М.: Издательство «ОМД Групп», 2003 г. -616 с.
Фаронов В.В. Turbo Pascal 7.0. Практика программирования
Фаронов В.В. Turbo Pascal 7.0. Учебный курс
Короткі теоретичні відомості.
Масив – це найпоширеніша структура даних. У багатьох мовах програмування, що були одними з перших мов високого рівня, (Fortran, Algol-60, Basic) це єдиний явно визначений складний тип.
Масив – це послідовність однотипних даних, що об’єднана спільним іменем, елементи (компоненти) якої відрізняються індексами.
Індекс елемента вказує місце (номер) елемента в масиві. Кількість елементів масиву фіксована і визначена в його описі. Доступ до елемента масиву здійснюється обчисленням значення його індексу. Тому масиви – це структури даних з прямим (випадковим) доступом. Всі компоненти масиву є однаково доступними. При визначенні регулярного типу задається і тип компонент, і тип індексів. Саме визначення має вид:
<ім’я типу > = Array [< тип індексу >] Of <тип компоненти >;

Приклади:
TypeLinearTable = Array [0..100] Of Integer;
TypeLetter = ‘a’..’z’;Word = Array [1..20] Of Letter;Order = Array [Letter] Of Integer;
У третьому прикладі М і N – константи цілого типу. Зверніть увагу на те, що значення типу Matrix - M*N матриці – визначаються як масиви, компонентами яких, в свою чергу, є масиви з дійсних чисел.
Задача пошуку елемента в послідовності – одна з важливих задач програмування як з теоретичної, так і практичної точок зору. Ось її формулювання:
Нехай A = {a1, a2, ...} – послідовність однотипних елементів і b – деякий елемент, який має властивість P. Знайти місце елемента b в послідовності А. Оскільки представлення послідовності в пам’яті може бути здійснене у вигляді масиву, задачі можуть бути уточнені як задачі пошуку елемента в масиві A:
Знайти максимальний елемент масиву;
Знайти даний елемент масиву;
Знайти k-тий за величиною елемент масиву;
Приклад. Напишіть програму обчислення скалярного добутоку векторів V і V`, отриманого з V перестановкою координат у зворотному порядку.
Program ScalarMult;Const n = 10;Var V: Array[1..n] Of integer; d, nf :integer; Function Sum (d: integer): integer;Var i : Integer; Summa : integer;Begin Summa := 0; For i := 1 To n Do Summa := Summa + V[i]*V[n-i+1]; Sum:= Summa;End; Begin nf := Sum(d);End.
Задачі для самостійного розв’язування
Заповнити масив x нулями.
Підрахувати кількість нулів у масиві x.
Дано 100 цілих чисел. Складіть програму, яка роздруковує їх в оберненому порядку по 5 чисел у рядку. Вказівка: Введення масиву виконайте за допомогою випадкових чисел.
Дано 50 чисел. Напишіть програму, яка знаходить їх середнє арифметичне.
Дано 50 чисел. Складіть програму, що підраховує скільки серед них рівних останньому числу.
Дано 50 цілих чисел. Складіть програму, що друкує спочатку всі від’ємні числа, потім всі додатні парні числа, а потім всі інші.
Дано лінійний масив. Скласти програму, яка друкує ті елементи масиву, індекси яких є степенями двійки.
Дано лінійний масив. Скласти програму, яка друкує ті елементи масиву, індекси яких є повними квадратами.
Дано лінійний масив. Скласти програму, яка друкує ті елементи масиву, індекси яких є числами Фіббоначчі.
Не використовуючи оператора присвоювання для масивів, скласти фрагмент програми, еквівалентний оператору x:=y (де х і у – масиви).