РАБОТА С
ДВУМЕРНЫМИ
МАССИВАМИ В C++Урок самостоятельного обучения
Подготовил:
Студент гр. КТ-401
Ильиных Евгений
ОПИСАНИЕ СТРУКТУРЫ
Введение в тему
Описание и инициализация
Пример полноценной работы с массивами
Практические задание
Тест
НЕОБХОДИМЫЕ ЗНАНИЯ И
УМЕНИЯ
Начальные знания C++
Умение создавать простейшие
программы на C++
ЦЕЛИ ОБУЧЕНИЯ
В данном уроке учащийся изучит следующие темы и их
аспекты:
 Тема 1. Многомерные массивы в C++;
 Общие сведения о многомерности массивов;
• Тема 2. Двумерные массивы:
 Ввод элементов в двумерный массив;
 Вывод элементов двумерного массива;
• Тема 3. Передача двумерного массива в качестве параметра:
 Способы передачи двумерного массива в качестве параметра;
• Тема 4. Динамические двумерные массив:
 Общие сведения о динамических двумерных массивах
ТЕМА 1. МНОГОМЕРНЫЕ
МАССИВЫ
Общие сведения о многомерности массивов
• По определению, многомерные массивы как таковые в С++ не
существуют, массив всегда считается одномерным. Однако в
С++ разрешено объявлять одномерные массивы массивов(т.е.
многомерные массивы).Они задаются указанием размера
каждой размерности в квадратных скобках.
• Например, описание двумерного массива из 6 строк по 8
столбцов: intmatr[6][8]; интерпретируется как одномерный
массив с именем matr из 6 элементов типа int[8].
ТЕМА 1. МНОГОМЕРНЫЕ
МАССИВЫ
Общие сведения о многомерности массивов
• Трехмерный массив double prim [6][4][2]; интерпретируется
как одномерный массив с именем prim, включающий 6
элементов, каждый из которых имеет тип double [4][2]. В
свою очередь, каждый из этих элементов есть одномерный
массив из четырех элементов типа double [2]. И, наконец,
каждый из этих элементов является массивом из двух
элементов типа double. Для доступа к элементу
многомерного массива указываются все его индексы,
например: matr [i][j], prim [i][j][k];
ТЕМА 1. МНОГОМЕРНЫЕ
МАССИВЫ
Формы инициализации массива
• При структурной инициализации многомерный массив
представляется как массив массивов, при этом
каждый массив заключается в свои фигурные
скобки. При бесструктурной инициализации задается
общий список элементов в том порядке, в котором
элементы располагаются в памяти.
• Многомерные массивы могут инициализироваться и
без указания размера самой левой размерности.
Компилятор в этом случае определяет число элементов
по числу членов в списке инициализации..
ТЕМА 1. ТЕМА 1. МНОГОМЕРНЫЕ
МАССИВЫ
Формы инициализации массива
• В памяти многомерный массив располагается в
последовательных ячейках по слоям (строкам).Элементы с
меньшими значениями индекса хранятся в более низких
адресах памяти. Многомерные массивы располагаются
таким образом, что самый правый индекс возрастает самым
первым. Например, если имеется массив intarray[10][3], то
в памяти по возрастанию адресов будут размещены
элементы:
• array[0][0], array[0][1], array[0][2], array[1][0], array[1][1],
array[1][2], ....., array[9][0], array[9][1], array[9][2]
ТЕМА 2. ДВУМЕРНЫЕ
МАССИВЫ
• Характерным объектом программирования являются
двумерные массивы (матрицы). Часто
рассматриваются матрицы специального вида –
единичные, диагональные, треугольные,
разреженные и др.
• Представление матрицы каждого из видов в
программе может быть различным; например,
диагональные матрицы могут представляться
одномерным массивом.
ТЕМА 2. ДВУМЕРНЫЕ
МАССИВЫ
Ввод элементов в двумерный массив;
• Ввод значений двумерного массива осуществляется с
помощью «двойного» цикла. Например:
ТЕМА 2. ДВУМЕРНЫЕ
МАССИВЫ
Присваивание значений элементам
символьного массива chararray[n][m]:
ТЕМА 2. ДВУМЕРНЫЕ
МАССИВЫ
Вывод элементов двумерного массива
Вывод элементов двумерного массива осуществляется по строкам.
Для целочисленных значений:
ТЕМА 2. ДВУМЕРНЫЕ
МАССИВЫ
Вывод элементов двумерного массива
• Для вещественных значений(в предположении, что количество знаков в
целой части числа не превосходит 3, а количество знаков после запятой
равно 4):
ТЕМА 3. ПЕРЕДАЧА ДВУМЕРНОГО
МАССИВА В КАЧЕСТВЕ
ПАРАМЕТРА
• Здесь возникают затруднения, связанные с отсутствием в С++
многомерных массивов как таковых. При необходимости передать с
помощью параметра в функцию многомерный массив начинаются
неудобства и неприятности.
• Особенность и, в некотором смысле, недостаток языка С++(и С) –
несамоопределенность массива, под которой понимается
невозможность по имени массива определять его размерность и
размеры по каждой из размерностей.
• Несамоопределенность массивов затрудняет их использование в качестве
параметров функций. Действительно, простейшая функция, например,
транспонирование квадратной матрицы, требует, чтобы ей были
известны не только имя массива, содержащего элементы матрицы, но и
размеры этой матрицы. Поэтому если такая функция использует аппарат
параметров для связи по данным, то в число параметров должны войти
указатель массива с элементами матрицы и целочисленные параметры,
определяющие размеры матрицы по каждой из размерностей.
ТЕМА 3. ПЕРЕДАЧА ДВУМЕРНОГО
МАССИВА В КАЧЕСТВЕ
ПАРАМЕТРА
Передача в функцию статического двумерного массива с помощью
указания его имени и двух размеров:
ТЕМА 3. ПЕРЕДАЧА ДВУМЕРНОГО
МАССИВА В КАЧЕСТВЕ
ПАРАМЕТРА
Передача в функцию статического двумерного массива с
помощью указания его имени и только второго размера:
ТЕМА 4. ДИНАМИЧЕСКИЕ
ДВУМЕРНЫЕ МАССИВЫ
• Передача в функцию статического двумерного массива с помощью
указания его имени и только второго размера:
• В сегменте данных (статической памяти) определен указатель на
double, который инициализируется адресом динамического
одномерного массива (которым представлен двумерный массив
размерности n х m). В данном случае обязательно должно быть
известно значение второй размерности массива (m).
ТЕМА 4. ДИНАМИЧЕСКИЕ
ДВУМЕРНЫЕ МАССИВЫ
• Передача в функцию статического двумерного массива с помощью
указания его имени и только второго размера:
КОНТРОЛЬНОЕ ЗАДАНИЕ
Вам необходимо создать написать на C++ программу,
которая будет включать в себя:
 Описание и инициализацию двух двумерных массивов.
 Ввод данных с клавиатуры в один из массивов.
 Копирование данных заполненного массива во второй.
 Вывод элементов второго массива.
КОНТРОЛЬНЫЙ ТЕСТ
Вопрос 1.
Массив это -
Память ПК
Ячейка памяти ПК
Область памяти ПК
Структура
Следующий вопрос
КОНТРОЛЬНЫЙ ТЕСТ
Вопрос 2.
Что называют индексом массива?
Следующий вопрос
КОНТРОЛЬНЫЙ ТЕСТ
Вопрос 3.
Доступ к элементу массива осуществляется по
его…
Следующий вопрос
КОНТРОЛЬНЫЙ ТЕСТ
Вопрос 4.
Обращение к определенному элементу массива
осуществляется путем указания имени
переменной массива и в квадратных скобках
индекса элемента.
Следующий вопрос
КОНТРОЛЬНЫЙ ТЕСТ
Вопрос 5.
Многомерный массив в C++ – это не массив
массивов.
Следующий вопрос
КОНТРОЛЬНЫЙ ТЕСТ
Результат
• Вопрос 1.
• Вопрос 2.
• Вопрос 3.
• Вопрос 4.
• Вопрос 5.
Оценка

sda

  • 1.
    РАБОТА С ДВУМЕРНЫМИ МАССИВАМИ ВC++Урок самостоятельного обучения Подготовил: Студент гр. КТ-401 Ильиных Евгений
  • 2.
    ОПИСАНИЕ СТРУКТУРЫ Введение втему Описание и инициализация Пример полноценной работы с массивами Практические задание Тест
  • 3.
    НЕОБХОДИМЫЕ ЗНАНИЯ И УМЕНИЯ Начальныезнания C++ Умение создавать простейшие программы на C++
  • 4.
    ЦЕЛИ ОБУЧЕНИЯ В данномуроке учащийся изучит следующие темы и их аспекты:  Тема 1. Многомерные массивы в C++;  Общие сведения о многомерности массивов; • Тема 2. Двумерные массивы:  Ввод элементов в двумерный массив;  Вывод элементов двумерного массива; • Тема 3. Передача двумерного массива в качестве параметра:  Способы передачи двумерного массива в качестве параметра; • Тема 4. Динамические двумерные массив:  Общие сведения о динамических двумерных массивах
  • 5.
    ТЕМА 1. МНОГОМЕРНЫЕ МАССИВЫ Общиесведения о многомерности массивов • По определению, многомерные массивы как таковые в С++ не существуют, массив всегда считается одномерным. Однако в С++ разрешено объявлять одномерные массивы массивов(т.е. многомерные массивы).Они задаются указанием размера каждой размерности в квадратных скобках. • Например, описание двумерного массива из 6 строк по 8 столбцов: intmatr[6][8]; интерпретируется как одномерный массив с именем matr из 6 элементов типа int[8].
  • 6.
    ТЕМА 1. МНОГОМЕРНЫЕ МАССИВЫ Общиесведения о многомерности массивов • Трехмерный массив double prim [6][4][2]; интерпретируется как одномерный массив с именем prim, включающий 6 элементов, каждый из которых имеет тип double [4][2]. В свою очередь, каждый из этих элементов есть одномерный массив из четырех элементов типа double [2]. И, наконец, каждый из этих элементов является массивом из двух элементов типа double. Для доступа к элементу многомерного массива указываются все его индексы, например: matr [i][j], prim [i][j][k];
  • 7.
    ТЕМА 1. МНОГОМЕРНЫЕ МАССИВЫ Формыинициализации массива • При структурной инициализации многомерный массив представляется как массив массивов, при этом каждый массив заключается в свои фигурные скобки. При бесструктурной инициализации задается общий список элементов в том порядке, в котором элементы располагаются в памяти. • Многомерные массивы могут инициализироваться и без указания размера самой левой размерности. Компилятор в этом случае определяет число элементов по числу членов в списке инициализации..
  • 8.
    ТЕМА 1. ТЕМА1. МНОГОМЕРНЫЕ МАССИВЫ Формы инициализации массива • В памяти многомерный массив располагается в последовательных ячейках по слоям (строкам).Элементы с меньшими значениями индекса хранятся в более низких адресах памяти. Многомерные массивы располагаются таким образом, что самый правый индекс возрастает самым первым. Например, если имеется массив intarray[10][3], то в памяти по возрастанию адресов будут размещены элементы: • array[0][0], array[0][1], array[0][2], array[1][0], array[1][1], array[1][2], ....., array[9][0], array[9][1], array[9][2]
  • 9.
    ТЕМА 2. ДВУМЕРНЫЕ МАССИВЫ •Характерным объектом программирования являются двумерные массивы (матрицы). Часто рассматриваются матрицы специального вида – единичные, диагональные, треугольные, разреженные и др. • Представление матрицы каждого из видов в программе может быть различным; например, диагональные матрицы могут представляться одномерным массивом.
  • 10.
    ТЕМА 2. ДВУМЕРНЫЕ МАССИВЫ Вводэлементов в двумерный массив; • Ввод значений двумерного массива осуществляется с помощью «двойного» цикла. Например:
  • 11.
    ТЕМА 2. ДВУМЕРНЫЕ МАССИВЫ Присваиваниезначений элементам символьного массива chararray[n][m]:
  • 12.
    ТЕМА 2. ДВУМЕРНЫЕ МАССИВЫ Выводэлементов двумерного массива Вывод элементов двумерного массива осуществляется по строкам. Для целочисленных значений:
  • 13.
    ТЕМА 2. ДВУМЕРНЫЕ МАССИВЫ Выводэлементов двумерного массива • Для вещественных значений(в предположении, что количество знаков в целой части числа не превосходит 3, а количество знаков после запятой равно 4):
  • 14.
    ТЕМА 3. ПЕРЕДАЧАДВУМЕРНОГО МАССИВА В КАЧЕСТВЕ ПАРАМЕТРА • Здесь возникают затруднения, связанные с отсутствием в С++ многомерных массивов как таковых. При необходимости передать с помощью параметра в функцию многомерный массив начинаются неудобства и неприятности. • Особенность и, в некотором смысле, недостаток языка С++(и С) – несамоопределенность массива, под которой понимается невозможность по имени массива определять его размерность и размеры по каждой из размерностей. • Несамоопределенность массивов затрудняет их использование в качестве параметров функций. Действительно, простейшая функция, например, транспонирование квадратной матрицы, требует, чтобы ей были известны не только имя массива, содержащего элементы матрицы, но и размеры этой матрицы. Поэтому если такая функция использует аппарат параметров для связи по данным, то в число параметров должны войти указатель массива с элементами матрицы и целочисленные параметры, определяющие размеры матрицы по каждой из размерностей.
  • 15.
    ТЕМА 3. ПЕРЕДАЧАДВУМЕРНОГО МАССИВА В КАЧЕСТВЕ ПАРАМЕТРА Передача в функцию статического двумерного массива с помощью указания его имени и двух размеров:
  • 16.
    ТЕМА 3. ПЕРЕДАЧАДВУМЕРНОГО МАССИВА В КАЧЕСТВЕ ПАРАМЕТРА Передача в функцию статического двумерного массива с помощью указания его имени и только второго размера:
  • 17.
    ТЕМА 4. ДИНАМИЧЕСКИЕ ДВУМЕРНЫЕМАССИВЫ • Передача в функцию статического двумерного массива с помощью указания его имени и только второго размера: • В сегменте данных (статической памяти) определен указатель на double, который инициализируется адресом динамического одномерного массива (которым представлен двумерный массив размерности n х m). В данном случае обязательно должно быть известно значение второй размерности массива (m).
  • 18.
    ТЕМА 4. ДИНАМИЧЕСКИЕ ДВУМЕРНЫЕМАССИВЫ • Передача в функцию статического двумерного массива с помощью указания его имени и только второго размера:
  • 19.
    КОНТРОЛЬНОЕ ЗАДАНИЕ Вам необходимосоздать написать на C++ программу, которая будет включать в себя:  Описание и инициализацию двух двумерных массивов.  Ввод данных с клавиатуры в один из массивов.  Копирование данных заполненного массива во второй.  Вывод элементов второго массива.
  • 20.
    КОНТРОЛЬНЫЙ ТЕСТ Вопрос 1. Массивэто - Память ПК Ячейка памяти ПК Область памяти ПК Структура Следующий вопрос
  • 21.
    КОНТРОЛЬНЫЙ ТЕСТ Вопрос 2. Чтоназывают индексом массива? Следующий вопрос
  • 22.
    КОНТРОЛЬНЫЙ ТЕСТ Вопрос 3. Доступк элементу массива осуществляется по его… Следующий вопрос
  • 23.
    КОНТРОЛЬНЫЙ ТЕСТ Вопрос 4. Обращениек определенному элементу массива осуществляется путем указания имени переменной массива и в квадратных скобках индекса элемента. Следующий вопрос
  • 24.
    КОНТРОЛЬНЫЙ ТЕСТ Вопрос 5. Многомерныймассив в C++ – это не массив массивов. Следующий вопрос
  • 25.
    КОНТРОЛЬНЫЙ ТЕСТ Результат • Вопрос1. • Вопрос 2. • Вопрос 3. • Вопрос 4. • Вопрос 5. Оценка