TURBO PASCAL |
Новости |
1. 10. 1.
Линейные массивы
Линейным массивом можно обозначить,
например, оценки
учеников класса. Каждая
оценка является значением элемента массива
оценок "A" и имеет порядковый номер (индекс).
В Турбо-Паскале
значение индекса указывается в квадратных
скобках после имени массива. Можно создать массив фамилий
"S" учеников
класса. Значением
элемента массива будет фамилия ученика,
а индексом - порядковый номер по списку.
Пусть дан список фамилий учеников и их
оценки:
N Фамилии
оценки Описание
массивов: Var
A: array[ 1. . 30 ] of byte;
1. Иванов 5
S: array[ 1. . 30 ] of string;
2. Петров
4
{или}
SO: array[ 1. . 30 ] of string[12];
3. Сидоров
5
4. Титов
5
Присвоение значений элементам массива:
. . . . . . . . . .
. . .
"A" - A[1]:= 5;
A[2]:= 4;
и
т.
д.
30. Якупов
4
"S " - S[1]:= 'Иванов';
S[2]:= 'Петров'; и
т. д.
Приведем таблицу обозначений и
соответствия элементам массива, их значений и индексов:
Номер
элемента (индекс)
1
2
3
4
i
30 Элементы
массива "S “
S[ 1 ]
S[ 2 ] S[
3 ]
S[ 4 ]
S[ i ]
S[ 30 ]
Значения элементов Иванов
Петров Сидоров
Титов
. . . Якупов
Элементы массива "A “
A[ 1 ]
A[ 2 ] A[ 3 ]
A[ 4 ]
A[ i ] A[
30 ]
Значения элементов
5
4
5
5
. . .
4
Если известна зависимость,
по которой изменяются значения
элементов массива, то
присвоение значений удобно проводить в
операторах цикла c параметром или с
условием. Например,
присвоим значения элементам массива
"y" по зависимости:
y=sin(x), где
x= Pi * i/180,
0<= i <=180 .
For i:=
0 to 180
Do y[i]:= sin(Pi * i/180);
Присвоим случайные значения
в диапазоне от -30 до +40 ста
элементам массива "R":
Randomize; for
i:= 1 to 100
Do R[i]:= - 30 + Random(71);
Присвоим значения семи
элементам массива "A" оператором Readln:
For i:= 1 to 7 Do
begin Write( ' Введите A[ ' , i , ' ] = ' );
Readln( A [ i ] )
end;
При выводе массива на экран
удобно размещать данные в виде таблицы -
в несколько колонок. Для
вывода обозначений переменных ("шапки
таблицы") можно использовать операторы
вывода символов в цикле,
например:
For j:=1
to 66 do
Write('-'); Writeln;
For j:=1 to 3 do Write('|_ _ Фамилия _ _| _ оценка _|'); Writeln; For j:=1 to
66 do
Write('-'); Writeln;
-
шапка для вывода в три пары колонок
значений переменных "S" и
"A". Шапка
занимает 66 позиций (по ширине экрана в
текстовом режиме размещается 79 символов и
пробел). Оператор Writeln; переводит курсор на новую
строчку.
Вывод значений ста элементов массивов
"S" и "A" в три пары колонок,
произведем операторами:
For i:= 1 to 100 do
begin Write('|', s[i]:11,'|', a[i]:8, '|');
if (i mod 3) = 0 Then
Writeln;
if (i mod 60) = 0 then
readln end;
В этом случае данные таблицы
полностью не умещаются на экране и можно
задержать прокрутку экрана при выводе
данных, применяя
оператор Readln после
вывода, например, 20
строк.
В цикле удобно определять сумму
элементов массива, наибольший (наименьший) элемент и
создавать новые массивы, удовлетворяющие
некоторому условию, например: s:= 0; for i:= 1 to 100 do s:=
s + a[i];
{ s - сумма
элементов
массива } 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;
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]}
|
(с) Все права защищены. По всем интересующим вопросам прошу писать электронный адрес |