Разделы презентаций


Лекция 5

Содержание

СодержаниеМассивОдномерный массивДинамический массивСпособы инициализацииПринципы нахождения величинПример работыМногомерные массивыДинамический многомерный массивВидео-урок «Массивы в С++»Список литературы

Слайды и текст этой презентации

Слайд 1Массивы, одномерные массивы, многомерные массивы, динамические массивы
Лекция 5

Массивы, одномерные массивы, многомерные массивы, динамические массивыЛекция 5

Слайд 2Содержание
Массив
Одномерный массив
Динамический массив
Способы инициализации
Принципы нахождения величин
Пример работы
Многомерные массивы
Динамический многомерный массив
Видео-урок

«Массивы в С++»
Список литературы



СодержаниеМассивОдномерный массивДинамический массивСпособы инициализацииПринципы нахождения величинПример работыМногомерные массивыДинамический многомерный массивВидео-урок «Массивы в С++»Список литературы

Слайд 3Массив
Массив – это пронумерованный набор однотипных элементов. Массивы бывают статическими и

динамическими. У статического массива количество элементов известно заранее и не

может быть изменено. У динамического массива количество элементов заранее неизвестно и определяется в процессе выполнения программы.
Также массивы различаются по размерности: одномерные, двумерные, трехмерные и т.д. Примером одномерного массива может послужить вектор а{1,4,3,5}. Примером двухмерного массива может послужить матрица. Примером трехмерного массива может послужить набор высот местности.

МассивМассив – это пронумерованный набор однотипных элементов. Массивы бывают статическими и динамическими. У статического массива количество элементов известно

Слайд 4Массивы различают по типу элементов. Бывают целочисленные, вещественные (состоящие из

дробных чисел), символьные массивы.
Примеры массивов:
вектор а{1,-4,3,5} – одномерный вещественный массив из трех

элементов;
матрица   – двумерный целочисленный массив из шести элементов;
{“x”3”%”} – одномерный символьный массив;
{“x-3.31,”%”} – не является массивом, т.к. часть элементов символы, часть элементов числа.

Массивы различают по типу элементов. Бывают целочисленные, вещественные (состоящие из дробных чисел), символьные массивы.Примеры массивов:вектор а{1,-4,3,5} – одномерный вещественный

Слайд 5Индекс – это номер элемента в массиве.
У одномерного массива один индекс, обычно

он обозначается  .

Чтобы использовать одномерный массив в программе, необходимо:
объявить массив в функции main():
тип_данных

имя_массива[количество элементов];
double a[3]; //статический массив а из трех дробных чисел
int b[7]; //статический массив b из семи целых чисел проинициализировать массив, т.е. задать каждому элементу конкретное числовое значение;
провести вычисления, исследования.
Примечание. Индексация в массиве начинается с 0, т.е. индекс у самого первого элемента в массиве i = 0. Индексация в массиве a(7)={-10;0.2;3;-4.7;0.5;-8;11} указана  таблице
Индекс – это номер элемента в массиве.У одномерного массива один индекс, обычно он обозначается  .Чтобы использовать одномерный массив в программе, необходимо:объявить

Слайд 6Одномерные массивы
При использовании простых переменных каждой области памяти для хранения

данных соответствует свое имя. Если с группой величин одинакового типа

требуется выполнять однообразные действия, им дают одно имя, а различают по порядковому номеру. Это позволяет компактно записывать множество операций с помощью циклов. Конечная именованная последовательность однотипных величин называется массивом. Описание массива в программе отличается от описания простой переменной наличием после имени квадратных скобок, в которых задается количество элементов массива (размерность):
float а [10]; // описание массива из 10 вещественных чисел


Одномерные массивыПри использовании простых переменных каждой области памяти для хранения данных соответствует свое имя. Если с группой

Слайд 7При описании массивов квадратные скобки являются элементом синтаксиса, а не

указанием на необязательность конструкции.
Элементы массива нумеруются с нуля. При описании

массива используются те же модификаторы (класс памяти, const и инициализатор), что и для простых переменных. Инициализирующие значения для массивов записываются в фигурных
скобках. Значения элементам присваиваются по порядку. Если элементов в массиве больше, чем инициализаторов, элементы, для которых значения не указаны, обнуляются:
int b[5] = {3. 2. 1}; / / b[0]=3. b[l]=2. b[2]=l. b[3]=0. b[4]=0

При описании массивов квадратные скобки являются элементом синтаксиса, а не указанием на необязательность конструкции.Элементы массива нумеруются с

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

элемента
(индекс) в квадратных скобках. В следующем примере подсчитывается сумма элементов

массива.
#include "pch.h"
#include
using namespace std;
int main(){
const int n = 10;
int i, sum;
int marks[n] = {3, 4, 5, 4, 4};
for (i = 0; sum = 0; 1cout << "Сумма элементов: " << sum;
return 0;
}

Для доступа к элементу массива после его имени указывается номер элемента(индекс) в квадратных скобках. В следующем примере

Слайд 9Размерность массивов предпочтительнее задавать с помощью именованных констант, как это

сделано в примере, поскольку при таком подходе для ее изменения
достаточно

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

Размерность массивов предпочтительнее задавать с помощью именованных констант, как это сделано в примере, поскольку при таком подходе

Слайд 10Пример
Сортировка целочисленного массива методом выбора. Алгоритм состоит в том, что

выбирается наименьший элемент массива и меняется местами с первым элементом,

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

ПримерСортировка целочисленного массива методом выбора. Алгоритм состоит в том, что выбирается наименьший элемент массива и меняется местами

Слайд 11Пример кода
#include "pch.h"
#include
using namespace std;
int main() {
const int n

= 20:

// количество элементов массива
int b[n]; // описание массива
int i;
for (i = 0; i> b[i]; // ввод массива
for (i = 0; i// принимаем за наименьший первый из рассматриваемых элементов:
int imin = 1:
// поиск номера минимального элемента из неупорядоченных:

for (int j = i + 1; j// если нашли меньший элемент, запоминаем его номер:
if (b[j] < b[imin]) imin = j;
int a = b[i]; // обмен элементов
b[i] = b[imin]; // с номерами
b[imin] = a; // i и imin
}
// вывод упорядоченного массива:
for (i = 0; ireturn 0:
}


Слайд 12Процесс обмена элементов массива с номерами 1 и 1m1n через

буферную переменную а на 1-м проходе цикла проиллюстрирован на рисунке

Процесс обмена элементов массива с номерами 1 и 1m1n через буферную переменную а на 1-м проходе цикла

Слайд 13Динамический массив
Динамические массивы создают с помощью операции new, при этом

необходимо указать тип и размерность, например:
int n = 100:
float *р

= new float [n];
В этой строке создается переменная-указатель на float, в динамической памяти
отводится непрерывная область, достаточная для размещения 100 элементов вещественного типа, и адрес ее начала записывается в указатель р. Динамические массивы нельзя при создании инициализировать, и они не обнуляются. Преимущество динамических массивов состоит в том, что размерность может быть переменной, то есть объем памяти, выделяемой под массив, определяется на этапе выполнения программы.
Динамический массивДинамические массивы создают с помощью операции new, при этом необходимо указать тип и размерность, например:int n

Слайд 14Способы инициализации одномерного массива

Способы инициализации одномерного массива

Слайд 15Способы инициализации одномерного массива

Способы инициализации одномерного массива

Слайд 16Вывод одномерного массива

Вывод одномерного массива

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

Принципы нахождения таких величин, как сумма, произведение, минимальное, максимальное значение

Слайд 24Пример
Далее представлен пример, в котором даны четыре одномерных массива:  a(8)

= {1,2,3,4,5,6,7,8}, b(8) вводится с клавиатуры, c(8) вычисляется по формуле ci=2i, d(8)

вычисляется по формуле di=ai+bi+ci. Построить таблицу значений массивов.
Для решения сначала необходимо проинициализировать массивы согласно условию задачи. Массив a задан числами (первый способ инициализации), поэтому он будет проинициализирован при объявлении.

ПримерДалее представлен пример, в котором даны четыре одномерных массива:  a(8) = {1,2,3,4,5,6,7,8}, b(8) вводится с клавиатуры, c(8) вычисляется

Слайд 25Код программы (Visual Studio) с оператором for:
// proga.cpp: определяет точку входа для

консольного приложения
#include "pch.h«
#include
#include
using namespace std;
int main(){
double a[8]={1,2,3,4,5,6,7,8}; double b[8],

c[8], d[8]; int i;
for(i=0; i<8; i=i+1){
cout<<"b["< cin>>b[i];
c[i]=2.0*i;
d[i]=a[i]+b[i]+c[i];
} cout< for(i=0; i<8; i=i+1){ cout< }
return 0;}
Код программы (Visual Studio) с оператором for:// proga.cpp: определяет точку входа для консольного приложения#include

Слайд 26Результат выполнения

Результат выполнения

Слайд 27Многомерные массивы
Многомерные массивы в С++ задаются указанием каждого измерения в

квадратных скобках, например, оператор
int matr [6][8]:
задает описание двумерного массива из

6 строк и 8 столбцов. В памяти такой массив располагается в последовательных ячейках построчно. Многомерные массивы размещаются так, что при переходе к следующему элементу быстрее всего изменяется последний индекс. Для доступа к элементу многомерного массива указываются все его индексы, например, matr[i][j], или более экзотическим способом: *(matr[i]+j) или *(*(matr+i)+j). Это возможно, поскольку matr[i] является адресом начала i-й строки массива.

Многомерные массивыМногомерные массивы в С++ задаются указанием каждого измерения в квадратных скобках, например, операторint matr [6][8]:задает описание

Слайд 28При инициализации многомерного массива он представляется либо как массив из

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

(в этом
случае левую размерность при описании можно не указывать), либо задается общий
список элементов в том порядке, в котором элементы располагаются в памяти:
int mass2 [][]={ {1, 1}, {0, 2}, {1, 0} };
int mass2 [3][2]={1, 1, 0, 2, 1, 0};
Далее рассмотрен пример программы, которая определяет в целочисленной матрице номер строки, которая содержит наибольшее количество элементов, равных нулю.

При инициализации многомерного массива он представляется либо как массив из массивов, при этом каждый массив заключается в

Слайд 29Код программы
#include "pch.h"
#include
using namespace std;
int main(){
const int nstr =

4. nstb = 5; // размерности

массива
int b[nstr][nstb]; // описание массива
int i, j;
for (i = 0; ifor (j = 0; jint istr = -1, MaxKol = 0;
for (i = 0; iint Kol = 0;

for (j = 0; jif (Kol > MaxKol){istr = i; MaxKol = Kol;}
}
printf(" Исходный массив:\n");
for (i = 0; ifor (j = 0; jprintf("\n");}
if (istr == -1)printf("Нулевых элементов нет");
else printf("Номер строки: %d", istr);
return 0;}

Код программы#include

Слайд 30Номер искомой строки хранится в переменной istr, количество нулевых элементов

в текущей (i-й) строке - в переменной Kol, максимальное количество

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

Номер искомой строки хранится в переменной istr, количество нулевых элементов в текущей (i-й) строке - в переменной

Слайд 31Динамический многомерный массив
Для создания динамического многомерного массива необходимо указать в

операции new все его размерности (самая левая размерность может быть

переменной), например:
int nstr = 5;
int ** m = (int **) new int [nstr][10];
Более универсальный и безопасный способ выделения памяти под двумерный массив, когда обе его размерности задаются на этапе выполнения программы, приведен ниже:
int nstr, nstb;
cout << " Введите количество строк и столбцов :";
cin >> nstr >> nstb;
int **a = new int *[nstr];
for(int i = 0; ia[i] = new int [nstb];


Динамический многомерный массивДля создания динамического многомерного массива необходимо указать в операции new все его размерности (самая левая

Слайд 32Видеоурок «Массивы в С++»

Видеоурок «Массивы в С++»

Слайд 33Контрольные вопросы
Что такое массив?
Перечислите виды массивов.
Что такое индекс?
Как добиться отображения

массива на экране в виде ровной таблицы?
Назовите способы инициализации массивов

Контрольные вопросыЧто такое массив?Перечислите виды массивов.Что такое индекс?Как добиться отображения массива на экране в виде ровной таблицы?Назовите

Слайд 34Список литературы
Павловская Т.А. С/С++. Программирование на языке высокого уровня /

Т. А. Павловская. - СПб.: Питер, 2004. - 461 с.:

ил.
Павловская Т.А. С/С ++. Структурное программирование: Практикум / Т.А. Павловская, Ю.А. Щупак. СПб.: Питер, 2007. - 239 с.: ил.
Павловская Т. А., Щупак Ю. А. C++. Объектно-ориентированное программирование: Практикум. - СПб.: Питер, 2006. - 265 с: ил.
Кольцов Д.М. 100 примеров на Си. - СПб.: “Наука и техника”, 2017 - 256 с.
5 Доусон М. Изучаем С++ через программирование игр. - СПб.: “Питер”, 2016. - 352.
Седжвик Р. Фундаментальные алгоритмы на С++. Анализ/Структуры данных/Сортировка/Поиск: Пер. с англ. Роберт Седжвик. - К.: Издательство “Диасофт”, 2001. - 688с.
Сиддкхартха Р. Освой самостоятельно С++ за 21 день. - М.: SAMS, 2013. - 651 с.
Стивен, П. Язык программирования С++. Лекции и упражнения, 6-е изд. Пер. с англ. - М.: ООО "И.Д. Вильямс", 2012. - 1248 с.
Черносвитов, А. Visual C++: руководство по практическому изучению / А. Черносвитов . - CПб. : Питер, 2002. - 528 с. : ил.
Список литературыПавловская Т.А. С/С++. Программирование на языке высокого уровня / Т. А. Павловская. - СПб.: Питер, 2004.

Слайд 35Список литературы
Страуструп Б. Дизайн и эволюция языка С++. - М.:

ДМК, 2000. - 448 с.
Мейерс С. Эффективное использование С++. -

М.: ДМК, 2000. - 240 с.
Бадд Т. Объектно-ориентированное программирование в действии. - СПб: Питер, 1997. - 464 с.
Лаптев В.В. С ++. Объектно-ориентированное программирование: Учебное пособие.- СПб.: Питер, 2008. - 464 с.: ил.
Страуструп Б. Язык программирования С++. Режим доступа: http://8361.ru/6sem/books/Straustrup-Yazyk_programmirovaniya_c.pdf.
Керниган Б., Ритчи Д. Язык программирования Си. Режим доступа: http://cpp.com.ru/kr_cbook/index.html.
Герберт Шилдт: С++ базовый курс. Режим доступа: https://www.bsuir.by/m/12_100229_1_98220.pdf,
Богуславский А.А., Соколов С.М. Основы программирования на языке Си++. Режим доступа: http://www.ict.edu.ru/ft/004246/cpp_p1.pdf.
Линский, Е. Основы C++. Режим доступа: https://www.lektorium.tv/lecture/13373.
Конова Е. А., Поллак Г. А. Алгоритмы и программы. Язык С++: Учебное пособие. Режим доступа: https://vk.com/ doc7608079_489807856?hash=e279524206b2efd567&dl=f85cf2703018eeaa2
Список литературыСтрауструп Б. Дизайн и эволюция языка С++. - М.: ДМК, 2000. - 448 с.Мейерс С. Эффективное

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика