Тема 3.1 Массивы.
В программах, с которыми мы работали раньше, было всего несколько переменных. Каждой из них мы давали своё имя, и никаких сложностей при этом не возникало. Объёмы данных, которые обрабатывают современные компьютеры, огромны: количество значений измеряется миллионами и миллиардами. Если каждую из этих переменных называть своим именем, очень легко запутаться, и работать с ними очень неудобно. В программе есть переменные a1, а2, аЗ, а4 и а5. Запишите оператор, который вычисляет их сумму в переменной s.
Допустим, мы хотим сложить значения 1000 ячеек с именами a1, a2, a1000. Для этого нужно будет написать очень длинный оператор присваивания: sum: =а1+а2+... +а1000;
Учтите, что компьютер не понимает многоточий, поэтому нам придётся перечислить все 1000 имён переменных. Какая проблема возникнет при решении этой задачи, если количество данных заранее неизвестно (например, передаётся по компьютерной сети)?
Для того чтобы было удобно работать с большим количеством данных, обычно дают общее имя группе переменных, которая называется массивом. Массив — это группа переменных одного типа, расположенных в памяти друг за другом и имеющих общее имя. Чтобы использовать массив, надо его объявить — присвоить ему имя, определить тип входящих в массив переменных (элементов массива) и их количество. По этим сведениям компьютер вычислит, сколько места требуется для хранения массива, и выделит в памяти нужное число ячеек. Имена (идентификаторы) массивов строятся по тем же правилам, что и имена переменных. В алгоритмическом языке массивы называются таблицами. При их объявлении к названию типа данных добавляются символы таб:
целтаб А[1: 5] вещтаб V[0: 5]
В квадратных скобках через двоеточие записывают границы индексов — номеров элементов массива. Индекс — это значение, которое указывает на конкретный элемент массива. Массив А в нашем примере — это массив целых значений, элементы имеют индексы (номера) от 1 до 5. Массив вещественных значений V содержит 6 элементов с индексами от нуля 1) до 5. В алгоритмическом языке объявлять массивы (как и переменные) можно в любом месте программы. 1) Нумерация с нуля часто используется в языках программирования (например, в языках С, Java, Javascript, Python и др. ).
В языке Паскаль массивы объявляются в блоке объявления переменных (выше служебного слова begin). При объявлении массива после имени записывают служебное слово array, затем в квадратных скобках — минимальный и максимальный индексы, разделяя их двумя точками: var A: array[1.. 5] of integer; V: array[0.. 5] of real; Переведите на русский язык английское слово array.
Для того чтобы обратиться к элементу массива (прочитать или изменить его значение), нужно записать имя массива и в квадратных скобках — индекс нужного элемента, например А [ 3 ] (рис. 3. 7). Рис. 3. 7 Как вы думаете, что делают эти операторы? а) вывод А[3] write(А[3]); б) А[3]: =5 А[3]: =5; в) А[1]: =А[2]+2*А[3] А[1]: =А[2]+2*А[3]; Индексом может быть, кроме целого числа, также значение целой переменной или арифметического выражения, результат которого — целое число. Определите, что выведет этот фрагмент программы для массива на рис. 3. 7: i: =2; i: =2; А[3]: =А[i]+2*А[i-1]+А[2*i] А[3]: =А[i]+2*А[i-1]+А[2*i]; вывод А[3]+А[5] write(А[3]+А[5]); Найдите ошибки в этом фрагменте программы: целтаб А[1: 5] var А: array[1.. 5] цел х of integer; ... х: integer; х: =2... вывод А[х-3] х: =2; А[х+4]: =А[х-1]+А[2*х] write(А[х-3]); А [х+4]: =А[х-1]+А[2*х]; В чём заключаются ошибки? Выход за границы массива — это обращение к элементу с индексом, который не существует в массиве.
При выходе за границы массива программа обычно завершается аварийно. Индексом может быть даже значение элемента массива. Например, запись A[A[1]] означает, что нужно взять значение А[1] и использовать его как индекс нужного элемента. Далее мы будем во всех программах использовать привычную для человека нумерацию с единицы, считая, что массив А объявлен так: цел N=10 const N=10; целтаб А[1: N] var A: array[l.. N] of integer;
Здесь размер массива (количество элементов) обозначен как N. В программе, как правило, размер массива встречается во многих командах, и при его изменении нужно исправить число только в одном месте программы. В нашем примере на алгоритмическом языке N — это переменная, значение которой задано до того, как объявлен массив. В программе на Паскале размер массива объявлен как константа (неизменяемая величина, имеющая имя) с помощью служебного слова const. Иногда нужно вводить размер массива с клавиатуры. В этом случае в программе на Паскале нужно заранее выделить в памяти массив наибольшего размера, соответствующего условию задачи. В алгоритмическом языке можно объявить массив тогда, когда его размер уже стал известен.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|