Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
PAGE \* MERGEFORMAT6
Лабораторна робота №5
ТЕМА: Робота з МАСИВАМИ
МЕТА: Ознайомитись з поняттям одновимірного та багатовимірного масивів у мові Паскаль. Вивчити основні операції для роботи з масивами. Навчитись складати та налагоджувати програми на опрацювання даних з використанням масивів.
ОБЛАДНАННЯ: технічне забезпечення: ПЕОМ; програмне забезпечення: система програмування Turbo Pascal.
ЗАВДАННЯ ДО РОБОТИ:
Зміст звіту:
Теоретичні відомості
Особливістю мови Паскаль є вимога чіткого опису всіх використовуваних в програмі обєктів. Так, блок описів програми відокремлений від виконуваного блоку, у блоці описів відокремлені розділи опису констант, типів, змінних тощо. Кожний елемент даних (константа чи змінна) повинен бути описаний перед використанням. Кожна підпрограма (процедура чи функція) має бути визначена перед її викликом.
Такий чіткий опис обєктів полегшує програмісту написання програми, а транслятору її перевірку і виконання.
Для зрозумілості програми не лише автору, а й іншим особам, Паскаль вимагає чіткої структуризації програми - щоб та чи інша інформація знаходилася у визначеному для неї місці.
Особливу роль відіграє структуризація даних. Програма задає правила обробки даних. Отже, поки не визначені самі дані, неможливо вдало розробити правила їх обробки.
Для спрощення написання і виконання програми окремі дані часто буває зручно обєднувати в певні структури. Від того, наскільки вдало будуть вибрані ці структури, суттєво залежить ефективність програми.
В Паскалі та чи інша структура даних задається за допомогою певного типу даних.
Прості типи даних задають тривіальні структури даних окреме значення.
Більш складні структури даних задаються за допомогою складених (структурованих) типів.
Значення складеного типу в загальному випадку є нетривіальною структурою, тобто містить більш ніж одну компоненту. При цьому кожна компонента структури може бути значенням як простого, так і складеного типу.
Найбільш уживаним складеним типом даних є регулярний тип, або масив.
Масив це скінченний упорядкований набір однотипних значень (компонентів або елементів масиву).
Тип елементів масиву називається базовим типом масиву.
Кожен елемент масиву має принаймні один індекс адресу, за якою можна звернутися до цього елемента.
Формат опису масиву у розділі опису типів:
Type імя_масиву = Array[ список типів індексів ] of базовий_тип;
Array (масив), of( з) службові слова, імя_масиву ідентифікатор, тип індексів діапазон (підмножина значень простого дискретного типу).
Приклад.
Type Dim3 = Array[1..3] of Real;
Var W,V: Dim3;
Змінна V є структурою з трьох дійсних чисел: V[1], V[2], V[3]. Числа 1,2,3 індекси.
Якщо базовим типом масиву є інший масив, утворюється структура, яка називається багатовимірним масивом.
Приклад.
Type Vector = Array [1..4] of Integer;
Matrix = Array [1..4] of Vector;
Var Matr: Matrix;
Таку ж структуру можна отримати, використовуючи іншу форму запису:
Type Matrix = Array [1..4,1..4] of Integer;
Var Matr: Matrix;
або
Var Matr: Array [1..4,1..4] of Integer;
Останній запис показує, що тип можна задавати безпосередньо при описі змінних.
Елементи масиву Matr: Matr[1,1], Matr[2,3], Matr[4,4] (всього 16 елементів)
Для звернення до окремого елемента масиву треба вказати імя масиву і в квадратних дужках індекси елемента. Елемент одновимірного масиву має один індекс, багатовимірного стільки індексів, яка вимірність масиву.
Двовимірні масиви широко використовуються для подання матриць.
В загальному випадку матриця записується так:
У ТР така матриця є масивом типу Array[1..m,1..n] of Real;
Над змінними типу масив в цілому можна виконувати операції присвоювання (якщо змінні однотипні) і перевірки на рівність: W:= V; V=W. Решта операцій над масивами виконується поелементно.
Приклад. Надання значень елементам масиву:
а) V[1]:=10; V[2]:=20; V[3]:=45.7;
б) for i:=1 to 3 do V[i]:=0;
в) for i:=1 to 3 do Readln(V[i]);
Приклад. Описи масивів.
Type
Month = (January, February, March, April, May);
DaysInMonth = Array[Month] of Byte; {кількість днів у місяці}
SpringType = Array[March..May] of Byte;
Var
Days: DaysInMonth;
Spring: SpringType;
Alpha: Array[A..Z] of Char;
Vector: Array[1..10] of Real;
Matrix: Array[1..5,1..5] of Real;
Vector1: Array[-10..10] of Byte;
Begin
Days[January]:=31;
Spring[April]:=30;
Alpha[A]:=1;
Vector[10]:=0.5;
Matrix[1,1]:=4;
Vector1[-5]:=0
End.
Загальна схема розвязування задач на опрацювання масивів:
Оскільки масиви містять фіксовану кількість елементів з індексами дискретних типів, то для їх опрацювання зручно використовувати цикл з параметром.
Приклад. Дано масиви A, B (кожний з 10 цілих чисел). Побудувати масив C за правилом:
ci= ai2 + bi2, i=1,..,10.
Type mas = Array[1..10] of Integer;
Var A,B,C: mas;
i: Byte;
{введення масивів A і B}
Begin
for i:=1 to 10 do
Begin
Write(A[,i,]=);
Readln(A[i])
End;
for i:=1 to 10 do
Begin
Write(B[,i,]=);
Readln(B[i])
End;
{формування масиву C}
for i:=1 to 10 do
C[i]:=sqr(A[i])+sqr(B[i]);
{виведення масиву C}
Writeln(Масив C:);
for i:=1 to 10 do
Write(C[i]:3);
еnd.
Приклад. Складіть програму для занесення елементів послідовності 3i3+5, i=1,…,10 до масиву й обчислення суми всіх елементів.
Type
mas = Array[1..10] of integer;
Var A: mas;
i: Byte;
s: integer;
Begin
s:=0;
for i:=1 to 10 do
Begin
A[i]:=3*i*і*і+5;
s:=s+A[i]
End;
for i:=1 to 10 do
Writeln('A[',i,']=',A[i]:3);
writeln('Suma s= ',s)
end.
Приклад. Заданий масив строк, що містить назви функцій функціональних клавіш Total Commander. Вивести на екран назву місяця за введеним числовим значенням. Використати обмеження діапазону вводу.
const
a:Array[1..8] of string = ('dopomoga','onovutu','pereglyad','pravka','copy','peremist','katalog','vudalutu');
var
i: Byte;
Begin
writeln('Vv nomer klavishi vid 1 do 8');
readln(i);
if (i>1) and (i<8) then
writeln(a[i]) else
writeln('Treba vvodutu vid 1 do 8')
end.
Варіанти завдань для самостійного виконання
Варіант 1.
Варіант 2.
Варіант 3.
Варіант 4.
Варіант 5.
Варіант 6.
Варіант 7.
Варіант 8.
Варіант 9.
Варіант 10.
Варіант 11.
Контрольні запитання
Література: