Многомерные массивы
Для того чтобы использовать элемент массива, нужно указать имя массива и индексы элемента. Первый индекс обычно соответствует номеру строки таблицы, второй – номеру колонки. Так, элемент itog [2.3] содержит число проданных в марте (третий месяц) автомобилей марки ВАЗ 2107 (данные о продаже ВАЗ 2107 находятся во второй строке таблицы).
При работе с таблицами (массивами) удобно использовать инструкцию for. Например, фрагмент программы, вычисляющий количество проданных за год автомобилей одного наименования, выглядит так:
s: = 0; for j: = 1 to 12 do s: = s + itog[2,j];
Следующий фрагмент программы вычисляет сумму элементов массива (общее количество автомобилей, проданных за год).
s: = 0; for i: = 1 to 6 do // шесть моделей автомобилей for j: = 1 to 12 do //12 месяцев s: = s + itog[i,j];
В приведенном фрагменте программы каждый раз, когда внутренний цикл (цикл по j) завершается, во внешнем цикле значение i увеличивается на единицу и внутренний цикл выполняется вновь. Таким образом, к текущему значению переменной s последовательно прибавляются значения элементов массива itog:
itog[l,l], itog[l,2],…, itog[l,12], itog[2,l], itog[2.2],…, itog[2.12] и т. д.
В качестве примера рассмотрим программу, которая обрабатывает результаты спортивных соревнований летней олимпиады в Сиднее, 2000 г. Исходные данные представлены в табл. 5.8.
Таблица 5.8. Результаты олимпиады 2000 г. в Сиднее.
Страна | Золотых | Серебряных | Бронзовых |
---|---|---|---|
Австралия | 16 | 25 | 17 |
Беларусь | 3 | 3 | 11 |
Великобритания | 11 | 10 | 7 |
Германия | 14 | 17 | 26 |
Италия | 13 | 8 | 13 |
Китай | 28 | 16 | 15 |
Корея | 8 | 9 | 11 |
Куба | 11 | 11 | 7 |
Нидерланды | 12 | 9 | 4 |
Россия | 32 | 28 | 28 |
Румыния | 11 | 6 | 9 |
США | 39 | 25 | 33 |
Франция | 13 | 14 | 11 |
Япония | 5 | 8 | 5 |
Программа должна вычислить общее количество медалей, завоеванных представителями каждой страны, и соответствующее количество очков (баллов), которое вычисляется по следующему правилу: за каждую золотую медаль команда получает семь очков, за серебряную – шесть очков, за бронзовую – пять очков.
Вид диалогового окна программы приведен на рис. 5.20.
Рис. 5.20. Диалоговое окно программы Итоги олимпиады