АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Линейные массивы

Читайте также:
  1. A) линейные
  2. Абстрактные линейные системы
  3. Б) линейные.
  4. Виды связей в организации: вертикальные и горизонтальные, линейные и функциональные, прямые и косвенные, формальные и неформальные.
  5. Воздействия на горные породы и их массивы
  6. Двойные и криволинейные интегралы
  7. ДВУМЕРНЫЕ МАССИВЫ
  8. Двумерные массивы
  9. Динамические массивы
  10. Дисковые массивы RAID
  11. Задания на «Одномерные массивы»
  12. Криминалистические информационные массивы международных организаций

 

 

Линейным массивом можно обозначить, например, оценки учеников класса. Каждая оценка является значением элемента массива оценок "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;

 

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)