Читайте также: |
|
Линейным массивом можно обозначить, например, оценки учеников класса. Каждая оценка является значением элемента массива оценок "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]}
if a[i] > a[k] then begin j:= j+1; M[j]:= i end;
Дата добавления: 2015-10-29; просмотров: 129 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Составление диалоговых программ | | | Практическое задание N 1. 20 |