Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Многомерные массивы






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

    Для доступа к элементу многомерного массива указываются все его индексы.

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

    Например:

     

    //одномерный массив (вектор) размерностью 10

    int vector [ 10 ];

     

    //двумерный массив (матрица) размерностью 3x3

    int matrix [ 3 ][ 3 ];

     

    //двумерный массив размерностью 6 строк на 8 столбцов

    int x [ 6 ][ 8 ];

     

    //трехмерный массив размерностью 6x3x2

    int y [ 6 ][ 3 ][ 2 ];

     

    //шестимерный массив размерностью 6x3x2x5x8x4

    int z [ 6 ][ 3 ][ 2 ][ 5 ][ 8 ][ 4 ];

     

    //объявление массива с инициализацией

    //крайняя левая размерность отсутствует

    int mass0 [][ 2 ] = { { 1, 1 }, { 0, 2 }, { 3, 0 } };

     

    //объявление массива с инициализацией

    int mass1 [ 3 ][ 2 ] = { { 1, 1 }, { 0, 2 }, { 3, 0 } };

     

    //объявление массива с инициализацией

    //для удобства чтения каждая строка массива находится в отдельной строчке

    int mass2 [ 3 ][ 2 ] = {

    { 1, 1 },

    { 0, 2 },

    { 3, 0 }

    };

     

    //объявление массива с инициализацией

    //внутренние фигурные скобки могут отсутствовать

    int mass3 [ 3 ][ 2 ] = ( 1, 1, 0, 2, 3, 0 ):

     

    //объявление массива с инициализацией

    //для удобства чтения каждая строка массива находится на отдельной строчке

    int mass4 [ 3 ][ 2 ] = (

    1, 1,

    0, 2,

    3, 0

    ):

     

    Пример: в целочисленной матрице 3x4 определить номера строки и столбца элемента, который равен нулю. Массив задать случайными числами.

     

    #include " stdafx.h"

    #include < iostream>

     

    using namespace std;

     

    void main ()

    {

    setlocale ( LC_ALL, " Russian" );

     

    const int N = 3, M = 4;

    int r [ N ][ M ];

     

    //заполним массив случайными числами от 0 до 9

    //внешний цикл для перемещения по строкам

    for (int i = 0; i < N; i ++)

    //внутренний цикл для перемещения по столбцам

    for (int j = 0; j < M; j ++)

    //остаток от деления на 10 позволяет

    //получить требуемый диапазон значений

    r [ i ][ j ] = rand () % 10;

     

    //выведем массив на экран

    for (int i = 0; i < N; i ++)

    {

    for (int j = 0; j < M; j ++)

    {

    cout < < r [ i ][ j ] < < " ";

    }

    //перейдем на новую строчку

    cout < < endl;

    }

     

    cout < < " Нулевые элементы: " < < endl;

    //найдем элементы равные 0 и выведем их индексы на экран

    for (int i = 0; i < N; i ++)

    for (int j = 0; j < M; j ++)

    if ( r [ i ][ j ] == 0 )

    {

    cout < < " a[" < < i < < " ][" < < j < < " ] == 0" < < endl;

    }

    }

     

    Контрольные вопросы

    1. Как определить массив?

    2. Как проинициализировать массив?

    3. Какие варианты объявления с инициализацией вы знаете?

    4. Как обратиться к элементу массива?

    5. Как объявить многомерный массив?

    6. Как проинициализировать многомерный массив?

    7. Как определить размер одномерного массива, зная его имя?






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.