Лабораторная работа 4.
ИПОЛЬЗОВАНИЕ ПРОЦЕДУР И ФУНКЦИЙ. РАБОТА С МАССИВАМИ. РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ
Массив
Массив – это упорядоченные данные одного типа. Массив состоит из элементов, имеющих порядковые номера, называемые индексами. Например, объекты одинакового типа можно обозначить одним общим именем "A", тогда элементы объекта будут A[1], A[2] и т. д. В квадратных скобках указывается индекс (порядковый номер элемента). К элементам массива можно обращаться только по индексу. Если элементы имеют один индекс, то массив называется одномерным (вектор). Массивы с двумя независимыми индексами называются двумерными (матрицами, таблицами). Значения элементов двумерного массива обычно выводят на экран в виде таблицы. Массивы, имеющие три независимых индекса трехмерным и т.д.
Описание массивов:
Type
Vector: array[1..3] of real; { задание типа массив с именем Vector }
Var
A: Vector; { объявление массива А типа Vector }
B: array[1. . 30] of Integer; { объявление массива В без имени }
C, D: array[1. . 3] of real;
S: array[1. . 30] of string[12];
Инициализация массива или присвоение значений элементам массива:
1. Через операции присвоения в программе A[1]:=5; A[2]:=4; A[3]:=4.5; и т.д.
2. Если известна зависимость, по которой изменяются значения элементов массива, то присвоение значений удобно проводить в операторах цикла с параметром или с условием. Например, присвоим значения элементам массива "y" по зависимости: y=sin(x), где x= Pi * i/180, 0<= i <=180 .
For i:= 0 to 180 Do y[i]:= sin(Pi * i/180);
3. Присвоение случайных значений. Например, в диапазоне от -30 до +40 ста элементам массива "R":
Randomize; For i:= 1 to 100 Do R[i]:= - 30 + Random(71);
4. Присвоение значений с клавиатуры. Например, семи элементам массива "A" оператором Readln:
For i:= 1 to 7 Do begin Write( ' Введите A[ ' , i , ' ] = ' ); Readln( A [i] ) end;
5. Ввод из файла
Assign(F1,'File1.dat'); { назначить F1 файл File1.dat }
Reset(F1); i:= 1; { открыть файл File1.dat для чтения }
While not (EOF(F1)) =True do { выполнять пока не достигнем конца файла File1.dat }
begin read(F1, X[i]); I+1 end;{ считать данные из файла File1.dat }
Close (F1); { закрыть файл File1.dat }
Поэлементная обработка массивов
В цикле удобно определять:
1. сумму элементов массива, и, удовлетворяющие некоторому условию, например:
s:= 0; for i:= 1 to 100 do s:= s + a[i]; { s - сумма элементов массива }
2. наибольший (наименьший) элемент
a_max:= a[1]; for i:= 1 to 100 do { поиск наибольшего элемента a[j] }
if a[i] > a_max then begin a_max:= a[i]; j:= i end;
3. создавать новые массивы
j:= 0; k:= 0;
for i:=1 to 100 do {создание новых массивов с элементами: b[j] >=0, c[k] <0}
if a[i] >= 0 then begin j:= j+1; b[j]:= a[i] end
else begin k:= k+1; c[k]:= a[i] end;
j:= 0; k:= 8;
for i:= 1 to 100 do {создание массива номеров "M" для элементов: a[i] > a[k]}
if a[i] > a[k] then begin j:= j+1; M[j]:= i end;