· Ввод элементов массива с экрана (см. выше) или с заранее подготовленного файла (2-й семестр).
· Значения элементов массива можно задать (проинициализировать) во время объявления следующим образом:
тип имя [N]={список значений};
где в фигурных скобках записываются константы соответствующего типа, разделённые запятыми. Например:
const N=5; float A[N]={-1.1, 22, 3, -4.4, 50};
При этом если в списке меньше N значений, то недостающие элементы массива примут нулевое значение. Наоборот, если указать больше N значений, “компилятору это не понравится”.
Массив символов (строку) без явного использования указателей можно объявить и инициализировать по-разному. Можно указать размерность, достаточную для размещения текста и символа конца строки (‘\0’). Этот символ надо явно записать в конце списка, например:
char T[11]={‘м’,’а’,’т’,’е’,’м’,’а’,’т’,’и’,’к’,’а’,’\0’};
Второй способ проще и удобнее: char T[11]=“математика”; В этом случае нулевой символ добавляется к концу строки автоматически.
Кроме того, как для числовых, так и для символьных массивов необязательно указывать размерность. Она будет определена в зависимости от количества записанных элементов или длины строки. Например, int V[]={11, 2, -3, 44, -5}; объявляет и инициализирует целочисленный массив из пяти элементов, а
сhar S[]=”ММФ”; — строку из четырёх символов, так как добавлен символ конца строки.
Указанный способ определения массива удобен для отладки программы, так как не надо тратить время на многократный ввод его элементов. При тестировании достаточно изменить несколько элементов массива.
· Для некоторых, но не для всех, задач массив можно определить с помощью датчика случайных чисел:
const n=5; int Y[n]; randomize();
for (int j=0; j<n; j++)
{ Y[j]=random(100);
cout<<Y[j]<<" ";
}
Функцию randomize() рекомендуют использовать, чтобы массив был “более случайным”. В противном случае массив может быть таким же, каким был при предыдущем выполнении программы. Параметр функции random (в нашем примере 100) означает, что числа массива будут целыми на промежутке от 0 до 99 включительно. Если надо, чтобы числа были не только положительными, можно записать, например, так: Y[j]=random(100)-20; Тогда числа будут на промежутке от –20 до 79, то есть положительных чисел будет по теории вероятностей больше.
Если надо получить вещественные числа, можно в цикле записать, например, так: A[i]=random(5)/10.-0.25; При этом массив A объявляется как float, а константу 10 надо записать обязательно с символом “.”, то есть как вещественное число. Иначе получатся все одинаковые числа (-0.25), так как при делении любого целого числа, меньшего 5, на целое число 10 получится целая часть результата, то есть нуль.
· Массив можно построить по некоторому правилу, например:
for ( int j=0; j<n; j++)
if (j%2) A[j]= j*10;
else A[j]=j/100.;
Упражнение. Как работает этот фрагмент программы?