Console::WriteLine(); // каждого пятого элемента.




Массивы

(https://msdn.microsoft.com/ru-ru/library/7wkxxx2e.aspx)

 

Arr[0] Arr[1] Arr[2] Arr[3] Arr[4] Arr[5] Arr[6] а)
               
ArrM[0, 0] ArrM[0, 1] ArrM[0, 2] ArrM[0, 3] ArrM[0, 4] ArrM[0, 5] ArrM[0, 6]  
ArrM[1, 0] ArrM[1, 1] ArrM[1, 2] ArrM[1, 3] ArrM[1, 4] ArrM[1, 5] ArrM[1, 6]  
ArrM[2, 0] ArrM[2, 1] ArrM[2, 2] ArrM[2, 3] ArrM[2, 4] ArrM[2, 5] ArrM[2, 6] б)
ArrM[3, 0] ArrM[3, 1] ArrM[3, 2] ArrM[3, 3] ArrM[3, 4] ArrM[3, 5] ArrM[3, 6]  
ArrM[4, 0] ArrM[4, 1] ArrM[4, 2] ArrM[4, 3] ArrM[4, 4] ArrM[4, 5] ArrM[4, 6]  

Рис.7.1. Концептуальная раскладка массива: одномерного (а) и многомерного (б)

 

Объявление массивов

 

Формат объявления массива имеет следующий вид:

 

тип имяМассива[количество_элементов];

тип имяМассива[];

тип имяМассива[количество_элементов][количество_элементов]...;

тип имяМассива[][количество_элементов]...;

 

Примерами объявлений массивов могут служить следующие:

 

long data[100]; // Объявление массива из 100 элементов типа long.

char name[15]; // Объявление массива из 15 элементов типа char.

int i2[5][7]; // Объявление двумерного (5×7) массива типа int.

 

Вместе с объявлением массива возможна и его инициализация, при этом значения в списке инициализации указываются через запятую, а сам список заключается в фигурные скобки.

 

тип имяМассива[количество_элементов] = { список_значений };

тип имяМассива[] = { список_значений };

 

Примерами объявлений и инициализации массивов могут служить следующие:

 

int num[5] = {20, 25, 30, 35, 40 }; // Инициализация массива.

int num[] = {20, 25, 30, 35, 40 }; // То же, размер массива

// определяет компилятор.

long data[100] = {0}; // Инициализация всех элементов массива нулями

char name[15] = "Алексей Петров"; // Инициализация массива.

char name[] = "Алексей Петров"; // То же, размер массива

// определяет компилятор.

 

При инициализации многомерных массивов следует указывать столько вложенных фигурных скобок для групп инициализирующих значений, сколько измерений в массиве.

 

// Объявление и инициализация двумерного (2×5) массива типа int.

int number[3][5] = { // или int number[][5] = {

{ 1, 2, 3, 4, 5 },

{ 11, 12, 13, 14, 15 },

{ 21, 22, 23, 24, 25 }

};

 

Можно пропустить инициализацию значений в любой строке, в этом случае остальные элементы массива инициализируются нулевыми значениями (для числовых типов данных), например.

 

int number[3][5] = { // или int number[][5] = {

{ 1, 2, 3, 4 }, // Неуказанные элементы

{ 11, 12, 13 }, // инициализируются нулями.

{ 21, 22 }

};

int data[3][5] = {0}; // Инициализация всего массива нулями.

 

Пример 7.1. Создание и вывод на экран массива из 10-ти случайных целых чисел.

 

#include "stdafx.h"

using namespace System;

int main(array<System::String^>^ args) {

int arr[10]; // Объявление массива.

Random^ rnd = gcnew Random; // Создание объекта типа Random.

for (int i = 0; i < 10; i++) { // Цикл заполнения массива.

// Генерация случайных значений в диапазоне от 0 до 99.

arr[i] = rnd->Next(100);

// Вывод значения элемента массива в поле шириной 4 позиции

Console::Write("{0,4}", arr[i]);

// или с указателем: Console::Write("{0,4}", *(arr + i));

}

Console::WriteLine();

Console::ReadLine();

return 0;

}

// Вывод: 15 38 2 82 28 95 52 46 84 93

 

 

Массивы среды CLR

 

Синтаксис объявления переменной массива имеет следующий вид:

 

array<тип_элемента>^ переменная_массива;

 

Пример объявления переменной массива и создания массива CLR с использованием оператора gcnew:

 

array<int>^ data;

data = gcnew array<int>(100);

 

Объявить переменную массива и создать массив CLR можно и одновременно.

 

array<int>^ data = gcnew array<int>(100); // Создание массива

// на 100 целых чисел

 

Также создать массив data можно, используя функциональную форму записи.

 

array<int>^ data(gcnew array<int>(100)); // Создание массива

// на 100 целых чисел

 

Обращение к элементам массива CLR осуществляется также, как и к элементам массивов "родного" С++. Индексация элементов также начинается с нуля. Например:

 

for (int i = 0; i < 100; i++) // Элементам массива присваиваются

data[i] = 2 * (i + l); // значения: 2, 4, 6,... 200.

 

Инициализировать массив можно и при его создании, например:

 

array<int>^ values = { 3, 5, 6, 8, 6 }; // Массив из 5-ти элементов

array<String^>^ names = { "Виктор", "Антон", "Максим", "Евгений" };

// Строковый массив из 4-х элементов

 

Объявление переменной массива и создание массива с его инициализацией можно выполнить и иначе:

 

array<String^>^ names; // Объявление переменной массива

names = gcnew array<String^> { "Виктор", "Антон", "Максим", "Иван" };

// Создание и инициализация массива

 

Пример 7.2. Создание массива, содержащего случайные вещественные значения, и поиск среди них максимального значения.

 

#include "stdafx.h"

using namespace System;

// Использование массива CLR.

int main(array<System::String^>^ args) {

array<double>^ samples = gcnew array<double>(50);

// Заполнение массива случайными значениями.

Random^ generator = gcnew Random; // Создание объекта типа Random

for (int i = 0; i < samples->Length; i++)

// Генерация случайных значений в диапазоне от 0,0 до 100,0.

samples[i] = 100.0 * generator->NextDouble();

// Вывод содержимого массива samples.

Console::WriteLine("Массив содержит следующие значения:");

for (int i = 0; i < samples->Length; i++) {

// Вывод значения в поле шириной 10 символов с двумя

// десятичными разрядами и выравниванием по правому краю.

Console::Write("{0,10:F2}", samples[i]);

if ((i + 1) % 5 == 0) // Перевод строки после вывода

Console::WriteLine(); // каждого пятого элемента.

}

// Поиск максимального значения элементов массива.

double max = 0.0;



Поделиться:




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

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-10-12 Нарушение авторских прав и Нарушение персональных данных


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