Таблицы и массивы
Изучая базы данных, электронные таблицы, вы познакомились с табличным способом организации данных. Вы уже знаете, что большие наборы данных удобно представлять в табличном виде. В таблицах могут храниться данные разных типов. На практике чаще всего приходится встречаться с таблицами, содержащими числовые и символьные (текстовые) данные. 
Что такое массив
Представление таблицы в языках программирования называется массивом. Вот, например, таблица, содержащая среднемесячные значения температуры в Перми в 2000 году: 
  | Месяц | 
  1 | 
  2 | 
  3 | 
  4 | 
  5 | 
  6 | 
  7 | 
  8 | 
  9 | 
  10 | 
  11 | 
  12 | 
 
  | Температура | 
  -21 | 
  -18 | 
  -7,5 | 
  5,6 | 
  10 | 
  18 | 
  22,2 | 
  24 | 
  17 | 
  5,4 | 
  -7 | 
  -18 | 
 
 
	
Такую таблицу называют линейной. Она представляет собой последовательность упорядоченных чисел. Для обозначения этих чисел используют индексированные имена. Например, через Т[1] обозначается температура в январе (первом месяце года), Т[5] - температура в мае и т. д. 
В программировании линейная таблица называется одномерным массивом. В нашем примере Т - это имя массива. Элементы массива пронумерованы. Порядковый номер элемента называется его индексом. Каждый элемент массива обозначается индексированным именем в следующей форме: 
<имя массива> [<индекс>] 
Индекс записывается в квадратных скобках: Т[2], Т[10], Т[12]. Индексы могут представляться не только в виде констант, но и в виде целых переменных и даже выражений целого типа: T[i], T[k], T[i+k], T[2*k]. Важно следить, чтобы значения индексов не выходили за допустимые границы. В примере с температурами они должны лежать в диапазоне от 1 до 12. 
Все элементы массива должны иметь одинаковый тип. Если массив состоит только из целых чисел, то тип массива - целый. В нашем примере значения температур могут быть дробными, поэтому тип массива - вещественный. 
Массив - это пронумерованная конечная последовательность однотипных величин. 
Решение задач по обработке массива связано, как правило, с перебором элементов массива. Такой перебор происходит в цикле, в котором изменяется значение индекса от начальной до конечной величины. Для того чтобы организовать ввод исходных данных в массив, нужно также использовать цикл. 
Описание и ввод значений в массив на Алгоритмическом языке
Запишем алгоритм ввода значений в массив температур. Сначала посмотрим, как это делается на АЯ. Рассмотрим два варианта алгоритмов на АЯ, использующих разные способы организации цикла. 
алг Ввод массива, вариант 1  
вещ таб Т[1:12]  
цел I  
нач    I:=1 
     пока I<=12, повторять  
     нц 
          вывод ("Т[," I , "]=")  
          ввод (Т[I])  
          I:=I+1  
кц  
кон 
 
алг Ввод массива, вариант 2  
вещ таб Т[1:12]  
цел I  
нач 
для I от 1 до 12 шаг 1 повторять  
нц 
     вывод ("Т[",I,"]= ")  
     ввод (Т[I])  
кц  
кон
 
Обратите внимание на вторую строку алгоритмов. В ней присутствует описание массива температур. В Алгоритмическом языке массив называется таблицей. Запись 
вещ таб Т[1:12] 
описывает таблицу (массив) вещественного типа, имя которого Т и элементы пронумерованы от 1 до 12. 
Цикл с параметром в АЯ
В первом варианте алгоритма используется уже знакомая вам алгоритмическая структура цикла с предусловием. Переменная I играет роль параметра цикла, изменяющегося от 1 до 12 с шагом 1. Внутри цикла она используется в качестве индекса в обозначении элементов цикла: Т[I]. 
Ввод организован в режиме диалога. Вы уже знаете, что это обязательное условие дружественности интерфейса программы. Перед вводом каждого очередного элемента таблицы на экран будет выводиться его имя. Это результат выполнения команды вывод "Т[", I , "]=". После этого программист должен ввести с клавиатуры соответствующее число (команда ввод Т[I]): 
Т[1]= -21 
Т[2]= -18 
Т[3]= -7.5 и т. д. 
Во втором варианте используется алгоритмическая структура, которая называется "цикл с параметром". Ее общая форма такая: 
для  <параметр  цикла>  от  <начальное   значение параметра>  до  <конечное   значение  параметра> шаг <величина  приращения  параметра> повторять  
нц 
   <тело цикла>  
кц 
Параметром цикла должна быть переменная целого типа. В нашем примере это переменная I. Выполнение тела цикла повторяется для всех последовательных значений параметра от начального до конечного значения включительно с изменением его значения при каждом повторении на величину шага. Следовательно, по второму варианту алгоритма будут выполняться те же самые действия, что и по первому. 
Расчет среднего значения элементов массива
Теперь сформулируем задачу обработки массива температур, которую будем решать дальше. Вычислим среднегодовую температуру. Для этого нужно сложить все 12 значений таблицы и разделить сумму на 12. Полученную величину выведем в качестве результата. 
Эту задачу легко решить с помощью электронных таблиц. На рис. 3.13 показана такая таблица. В ячейки В2:В13 заносятся значения температур. В ячейку В14 помещается формула: =СРЗНАЧ(В2:В13). Результат вы видите в ячейке    В14. 
   |   | 
   A | 
   B | 
 
   | 1 | 
   Месяц | 
   Температура | 
 
   | 2 | 
   1 | 
   -21 | 
 
   | 3 | 
   2 | 
   -18 | 
 
   | 4 | 
   3 | 
   -7,5 | 
 
   | 5 | 
   4 | 
   5,6 | 
 
   | 6 | 
   5 | 
   10 | 
 
   | 7 | 
   6 | 
   18 | 
 
   | 8 | 
   7 | 
   22,2 | 
 
   | 9 | 
   8 | 
   24 | 
 
   | 10 | 
   9 | 
   17 | 
 
   | 11 | 
   10 | 
   5,4 | 
 
   | 12 | 
   11 | 
   -7 | 
 
   | 13 | 
   12 | 
   -18 | 
 
   | 14 | 
   Среднее: | 
   2,56 | 
 
 
  
Рис. 3.13. Таблица температур 
Табличный процессор - это программа, составленная программистами на некотором языке программирования. Вот мы и разберемся, как программируется вычисление среднего значения числового массива, реализованное в функции СРЗНАЧ. 
Запишем алгоритм в полном виде (с вводом, вычислениями и выводом), используя в нем для организации циклов структуру цикла с параметром. 
алг Средняя температура  
вещ таб Т[1:12]  
цел I, вещ Tsred 
нач 
        {Цикл ввода} 
     для I от 1 до 12 шаг 1 повторять 
     нц 
          вывод "Т[I", I,  "]="  
          ввод Т[I] 
     кц 
        {Цикл суммирования} 
     Tsred:=0 
     для I от 1 до 12 шаг 1 повторять 
     нц 
          Tsred:=Tsred+T[I] 
     кц 
        {Вычисление среднего} 
     Tsred:=Tsred/12 
     вывод("Среднегодовая температура=", Tsred 
кон 
 
Обратим внимание на следующие особенности алгоритма. Появилась новая переменная Tsred, в которой вычисляется среднее значение: 
Tsred=(T[1] + T Г[2] + T [3] + .... + Т[12])/12. 
Переменная Tsred имеет вещественный тип. Перед циклом суммирования этой переменной присваивается нулевое значение. Так всегда следует поступать с переменной, в которой накапливается сумма какой-то последовательности слагаемых. При каждом повторении цикла к значению переменной Tsred добавляется очередное слагаемое. После окончания цикла полученная сумма делится на 12. Это искомый результат, который выводится на экран. 
Вопросы и задания 
1.	Что такое массив? 
2.	Самостоятельно придумайте примеры данных, которые можно организовать в виде массива. В каждом примере отметьте: каким именем можно обозначить массив, как пронумеровать его элементы, какой тип будет иметь массив? Опишите массивы по правилам Алгоритмического языка. 
3.	Для тех же исходных данных, что рассматриваются в параграфе, составьте алгоритм, в котором вычисляются четыре величины: средние температуры зимних месяцев, весенних месяцев, летних месяцев, осенних месяцев. 
4.	Вы посетили магазин и купили 10 видов товара. В таблицу Т[1:10] вы записали количество купленного товара каждого вида. В таблицу С[1:10] записали цены единиц каждого вида товара соответственно. Составьте алгоритм вычисления общей стоимости всех покупок. 
  
       |