🗊Презентация Лекция 4. Массивы и вектора (C++)

Нажмите для полного просмотра!
Лекция 4. Массивы и вектора (C++), слайд №1Лекция 4. Массивы и вектора (C++), слайд №2Лекция 4. Массивы и вектора (C++), слайд №3Лекция 4. Массивы и вектора (C++), слайд №4Лекция 4. Массивы и вектора (C++), слайд №5Лекция 4. Массивы и вектора (C++), слайд №6Лекция 4. Массивы и вектора (C++), слайд №7Лекция 4. Массивы и вектора (C++), слайд №8Лекция 4. Массивы и вектора (C++), слайд №9Лекция 4. Массивы и вектора (C++), слайд №10Лекция 4. Массивы и вектора (C++), слайд №11Лекция 4. Массивы и вектора (C++), слайд №12Лекция 4. Массивы и вектора (C++), слайд №13Лекция 4. Массивы и вектора (C++), слайд №14Лекция 4. Массивы и вектора (C++), слайд №15Лекция 4. Массивы и вектора (C++), слайд №16Лекция 4. Массивы и вектора (C++), слайд №17Лекция 4. Массивы и вектора (C++), слайд №18Лекция 4. Массивы и вектора (C++), слайд №19Лекция 4. Массивы и вектора (C++), слайд №20Лекция 4. Массивы и вектора (C++), слайд №21Лекция 4. Массивы и вектора (C++), слайд №22Лекция 4. Массивы и вектора (C++), слайд №23

Содержание

Вы можете ознакомиться и скачать презентацию на тему Лекция 4. Массивы и вектора (C++). Доклад-сообщение содержит 23 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1





Лекция 4
Описание слайда:
Лекция 4

Слайд 2





Определение одномерного массива
Массив – это фиксированный набор объектов одного типа, который обозначается одним групповым именем.
Синтаксис:
                            тип_элементов  имя_массива [размерность];
                            int m[10];    // m – массив из 10 целочисленных элементов
Замечания:
1. Тип элементов массива и их количество фиксируется в определении массива. Количество элементов называют размерностью массива. Размерность массива должна быть константой целого типа.
int n=10;
int  m[n];             // ошибка:  размерность массива не может быть представлена 
                              //переменной величиной
2. Размерность массива можно задавать с помощью переменной целого типа, определённого ключевым словом const.
                                                          const int n=10;
                                                           int m[n];
3. В памяти элементы массива располагаются вплотную друг к другу в порядке возрастания индекса.
Описание слайда:
Определение одномерного массива Массив – это фиксированный набор объектов одного типа, который обозначается одним групповым именем. Синтаксис: тип_элементов имя_массива [размерность]; int m[10]; // m – массив из 10 целочисленных элементов Замечания: 1. Тип элементов массива и их количество фиксируется в определении массива. Количество элементов называют размерностью массива. Размерность массива должна быть константой целого типа. int n=10; int m[n]; // ошибка: размерность массива не может быть представлена //переменной величиной 2. Размерность массива можно задавать с помощью переменной целого типа, определённого ключевым словом const. const int n=10; int m[n]; 3. В памяти элементы массива располагаются вплотную друг к другу в порядке возрастания индекса.

Слайд 3





Определение одномерного массива
int m[10];    // m – массив из 10 целочисленных элементов
Замечания:
4. Элементы массива пронумерованы. Доступ к отдельным элементам осуществляется посредством группового имени и порядкового номера, который называется индексом.
                                                                m[3]=1;
                                                                m[4]=6;
5. К элементам массива применимы все операции, совместимые с типом, фиксированным в его определении.
                                                      int i=1;
                                                      m[i]=m[2*2]+m[2*i+1];       // m[1]=m[4]+m[3]=7
6. Нумерация элементов массива начинается с нуля.
                                                             M[0]=6;     //  Первый элемент
                                                             M[9]=7;     //  Последний элемент
                                                             M[10]=5;   // Ошибка: элемента с таким номером не существует
7. В C++ для встроенных массивов контроля невыхода за границы массива нет, сам программист должен следить за этим.
Описание слайда:
Определение одномерного массива int m[10]; // m – массив из 10 целочисленных элементов Замечания: 4. Элементы массива пронумерованы. Доступ к отдельным элементам осуществляется посредством группового имени и порядкового номера, который называется индексом. m[3]=1; m[4]=6; 5. К элементам массива применимы все операции, совместимые с типом, фиксированным в его определении. int i=1; m[i]=m[2*2]+m[2*i+1]; // m[1]=m[4]+m[3]=7 6. Нумерация элементов массива начинается с нуля. M[0]=6; // Первый элемент M[9]=7; // Последний элемент M[10]=5; // Ошибка: элемента с таким номером не существует 7. В C++ для встроенных массивов контроля невыхода за границы массива нет, сам программист должен следить за этим.

Слайд 4





Инициализация одномерного массива
Массивы можно инициализировать при определении, указывая в
фигурных скобках список значений элементов. 
Пример (массив с количеством дней в каждом месяце):
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
Замечания:
1. Если размер массива не указан, его длину вычисляет компилятор по списку инициализации. Для приведенного примера это 12.
2. Если количество инициализаторов меньше заданного размера массива, оставшиеся элементы будут нулевыми. 
Пример:
                                      int y[6] = {1, 2, 3};
Элементы массива y будут иметь следующие значения: y[0] = 1,   y[1] = 2, y[2] = 3, y[3] = 0, y[4] = 0, y[5] = 0.
3. Задание слишком большого числа инициализаторов является ошибкой.
int z[3] = {1, 2, 3, 4, 5}; // Ошибка, слишком много инициализаторов
Описание слайда:
Инициализация одномерного массива Массивы можно инициализировать при определении, указывая в фигурных скобках список значений элементов. Пример (массив с количеством дней в каждом месяце): int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; Замечания: 1. Если размер массива не указан, его длину вычисляет компилятор по списку инициализации. Для приведенного примера это 12. 2. Если количество инициализаторов меньше заданного размера массива, оставшиеся элементы будут нулевыми. Пример: int y[6] = {1, 2, 3}; Элементы массива y будут иметь следующие значения: y[0] = 1, y[1] = 2, y[2] = 3, y[3] = 0, y[4] = 0, y[5] = 0. 3. Задание слишком большого числа инициализаторов является ошибкой. int z[3] = {1, 2, 3, 4, 5}; // Ошибка, слишком много инициализаторов

Слайд 5





Определение размера массива
Оператор sizeof, примененный к массиву, дает размер массива в
байтах. Например, для массива days 
                   int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
выражение sizeof(days) / sizeof(int) равно 12, так как массив состоит из 12 элементов типа int. 
Здесь sizeof(days) – размер памяти в байтах, выделенной под массив, sizeof(int) – размер одного элемента массива типа int в байтах.
Замечание:
Над массивами в целом нельзя выполнять какие-либо действия (присваивать, складывать и т.п.), можно работать только с отдельными элементами массива.
Описание слайда:
Определение размера массива Оператор sizeof, примененный к массиву, дает размер массива в байтах. Например, для массива days int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; выражение sizeof(days) / sizeof(int) равно 12, так как массив состоит из 12 элементов типа int. Здесь sizeof(days) – размер памяти в байтах, выделенной под массив, sizeof(int) – размер одного элемента массива типа int в байтах. Замечание: Над массивами в целом нельзя выполнять какие-либо действия (присваивать, складывать и т.п.), можно работать только с отдельными элементами массива.

Слайд 6





Циклы работы с массивами
for(int i = 0; i < n; i++)
{
	cout<<"m["<<i<<"]=";
	cin>>m[i];
}
Описание слайда:
Циклы работы с массивами for(int i = 0; i < n; i++) { cout<<"m["<<i<<"]="; cin>>m[i]; }

Слайд 7





Программа Поиск максимального и минимального элементов массива и вычисления суммы его элементов
Описание слайда:
Программа Поиск максимального и минимального элементов массива и вычисления суммы его элементов

Слайд 8





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

Слайд 9





Программа Удаление отрицательных элементов
Описание слайда:
Программа Удаление отрицательных элементов

Слайд 10





Программа Вставка элемента в заданную позицию
Описание слайда:
Программа Вставка элемента в заданную позицию

Слайд 11





Программа «Сортировка массива по возрастанию»
Описание слайда:
Программа «Сортировка массива по возрастанию»

Слайд 12





Программа Формирование массива без повторений
Описание слайда:
Программа Формирование массива без повторений

Слайд 13





Двумерные массивы
В С++ можно создавать многомерные массивы с несколькими индексами. Многомерный массив рассматриваются как одномерный, элементами которого являются массивы с размерностью на единицу меньше. Двумерные массивы можно представить в виде матриц.
Синтаксис: 
тип имя[размерность1-число строк][размерность2-число столбцов];
Пример:
int m[2][3];                   //двумерный массив из 2 строк и 3 столбцов, 
                                       // элементы  массива целые числа.
Доступ к элементам массива осуществляется по двум индексам.
Пример:
m[i][j]=1;                     //   i – номер строки, j – номер столбца.
Замечания:
В оперативной памяти элементы массива располагаются по строкам. 
2) Нумерация индексов также начинается с нуля.
Описание слайда:
Двумерные массивы В С++ можно создавать многомерные массивы с несколькими индексами. Многомерный массив рассматриваются как одномерный, элементами которого являются массивы с размерностью на единицу меньше. Двумерные массивы можно представить в виде матриц. Синтаксис: тип имя[размерность1-число строк][размерность2-число столбцов]; Пример: int m[2][3]; //двумерный массив из 2 строк и 3 столбцов, // элементы массива целые числа. Доступ к элементам массива осуществляется по двум индексам. Пример: m[i][j]=1; // i – номер строки, j – номер столбца. Замечания: В оперативной памяти элементы массива располагаются по строкам. 2) Нумерация индексов также начинается с нуля.

Слайд 14





Инициализация двумерных массивов
При определении двумерный массив можно инициализировать с помощью списка констант, заключенных в фигурные скобки.
Пример:
int m[2][3]={{1,2,3},{4,5,6}};
Замечания:
1) Заполнение элементов идет по строкам
2) Фигурные скобки, отделяющие строки, могут быть опущены.
3) Список инициализаторов может быть неполным. В этом случае последние элементы инициализируются нулями.
4) При работе с многомерными массивами используются вложенные циклы.
Пример:
int m[2][3]={1,2,3,4};
m[0][0]=1, m[0][1]=2, m[0][2]=3, m[1][0]=4, m[1][1]=0, m[1][2]=0.
Описание слайда:
Инициализация двумерных массивов При определении двумерный массив можно инициализировать с помощью списка констант, заключенных в фигурные скобки. Пример: int m[2][3]={{1,2,3},{4,5,6}}; Замечания: 1) Заполнение элементов идет по строкам 2) Фигурные скобки, отделяющие строки, могут быть опущены. 3) Список инициализаторов может быть неполным. В этом случае последние элементы инициализируются нулями. 4) При работе с многомерными массивами используются вложенные циклы. Пример: int m[2][3]={1,2,3,4}; m[0][0]=1, m[0][1]=2, m[0][2]=3, m[1][0]=4, m[1][1]=0, m[1][2]=0.

Слайд 15





Программа «Сложение матриц»
#include <iostream>
#include <locale>
#include <cstdlib>
using namespace std;
int main()
{    setlocale(LC_ALL, "Russian");
int a[2][3],b[2][3],c[2][3];
int i,j;
// ввод матрицы a
for (i=0;i<2;i++) // проход по строкам
for (j=0;j<3;j++) // проход по столбцам
{    cout<<"a["<<i+1<<"]["<<j+1<<"]=";
cin>>a[i][j];      }
// ввод матрицы b
for (i=0;i<2;i++) // проход по строкам
for (j=0;j<3;j++) // проход по столбцам
{      cout<<"b["<<i+1<<"]["<<j+1<<"]=";
cin>>b[i][j];     }
Описание слайда:
Программа «Сложение матриц» #include <iostream> #include <locale> #include <cstdlib> using namespace std; int main() { setlocale(LC_ALL, "Russian"); int a[2][3],b[2][3],c[2][3]; int i,j; // ввод матрицы a for (i=0;i<2;i++) // проход по строкам for (j=0;j<3;j++) // проход по столбцам { cout<<"a["<<i+1<<"]["<<j+1<<"]="; cin>>a[i][j]; } // ввод матрицы b for (i=0;i<2;i++) // проход по строкам for (j=0;j<3;j++) // проход по столбцам { cout<<"b["<<i+1<<"]["<<j+1<<"]="; cin>>b[i][j]; }

Слайд 16





Задача «О предпринимателе»
Пусть некий предприниматель имеет три магазина, по которым ведет ежедневный учет выручки от продажи четырех видов продуктов (например, чая, сахара, крупы, колбасы). Для учета продаж можно использовать следующий двумерный массив:
double r[3][4];
Например:
double r[3][4] = {{500, 700, 450, 1000},
                               {600, 710, 480, 1100},
                               {800, 750, 550, 1200}};
Пусть предприниматель, о котором речь шла выше, каждый день подводит итоги: вычисляет выручку каждого магазина, выручку от продажи каждого товара и общую выручку за день. Эти расчеты можно выполнить с помощью следующей программы.
Описание слайда:
Задача «О предпринимателе» Пусть некий предприниматель имеет три магазина, по которым ведет ежедневный учет выручки от продажи четырех видов продуктов (например, чая, сахара, крупы, колбасы). Для учета продаж можно использовать следующий двумерный массив: double r[3][4]; Например: double r[3][4] = {{500, 700, 450, 1000}, {600, 710, 480, 1100}, {800, 750, 550, 1200}}; Пусть предприниматель, о котором речь шла выше, каждый день подводит итоги: вычисляет выручку каждого магазина, выручку от продажи каждого товара и общую выручку за день. Эти расчеты можно выполнить с помощью следующей программы.

Слайд 17





Программа «О предпринимателе»
#include <iostream>
#include <locale>
#include <cstdlib>
using namespace std;
int main()
{   setlocale(LC_ALL, "Russian");
const int NSHOP = 3; // Число магазинов
const int NGOODS = 4; // Число товаров
double r[NSHOP][NGOODS]; // Двумерный 
                                     //массив для выручки
double srshop, srg, sum; // Выручка по 
                       //магазинам, товарам, общая
cout << "Введите выручку от чая, сахара, крупы, колбасы \n";
// Ввод данных
for(int i = 0; i < NSHOP; i++){ // Перебор   
                                                  //магазинов
cout << "Магазин " << i + 1 << ": ";
for(int j = 0; j < NGOODS; j++) // Перебор 
                                                     //товаров
Описание слайда:
Программа «О предпринимателе» #include <iostream> #include <locale> #include <cstdlib> using namespace std; int main() { setlocale(LC_ALL, "Russian"); const int NSHOP = 3; // Число магазинов const int NGOODS = 4; // Число товаров double r[NSHOP][NGOODS]; // Двумерный //массив для выручки double srshop, srg, sum; // Выручка по //магазинам, товарам, общая cout << "Введите выручку от чая, сахара, крупы, колбасы \n"; // Ввод данных for(int i = 0; i < NSHOP; i++){ // Перебор //магазинов cout << "Магазин " << i + 1 << ": "; for(int j = 0; j < NGOODS; j++) // Перебор //товаров

Слайд 18





Проблемы встроенных массивов
Программа  Выход за границы массива
#include <iostream>
#include <locale>
#include <cstdlib>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int x[] = {77, 1, 3}; // Массив
int n = sizeof(x) / sizeof(int); // Размер массива
cout << "Задан массив: \n";
for(int i = 0; i < n; i++) // Вывод массива
cout << "x[" << i << "] = " << x[i] << endl;
cout << "За границами массива:\n";
cout << "x[-1] = " << x[-1] << endl; // -1 - ошибочный индекс
cout << "x[3] = " << x[3] << endl; // 3 - ошибочный индекс
system("pause");
return 0;
}
Описание слайда:
Проблемы встроенных массивов Программа Выход за границы массива #include <iostream> #include <locale> #include <cstdlib> using namespace std; int main() { setlocale(LC_ALL, "Russian"); int x[] = {77, 1, 3}; // Массив int n = sizeof(x) / sizeof(int); // Размер массива cout << "Задан массив: \n"; for(int i = 0; i < n; i++) // Вывод массива cout << "x[" << i << "] = " << x[i] << endl; cout << "За границами массива:\n"; cout << "x[-1] = " << x[-1] << endl; // -1 - ошибочный индекс cout << "x[3] = " << x[3] << endl; // 3 - ошибочный индекс system("pause"); return 0; }

Слайд 19





Тип данных vector
Более безопасным типом данных, чем массивы являются вектора.
Для того, чтобы использовать вектора надо включить заголовочный файл vector:
#include <vector>
Пример:
         vector<int> v(3);         // создает вектор из 3-х элементов типа int.
Работа с векторами во многом похоже на работу с массивами:
1) обращаться к элементам вектора можно так же как к элементам массива – с помощью индекса, заключенного в квадратные скобки.
2) Нумерация элементов вектора начинается с нуля.
Особенность:
При выходе индекса за границы возникает ошибка.
Замечание:
Функция size() возвращает текущий размер вектора.
Пример:
 cout << v.size();                     // выведет 3
Описание слайда:
Тип данных vector Более безопасным типом данных, чем массивы являются вектора. Для того, чтобы использовать вектора надо включить заголовочный файл vector: #include <vector> Пример: vector<int> v(3); // создает вектор из 3-х элементов типа int. Работа с векторами во многом похоже на работу с массивами: 1) обращаться к элементам вектора можно так же как к элементам массива – с помощью индекса, заключенного в квадратные скобки. 2) Нумерация элементов вектора начинается с нуля. Особенность: При выходе индекса за границы возникает ошибка. Замечание: Функция size() возвращает текущий размер вектора. Пример: cout << v.size(); // выведет 3

Слайд 20





Программа «Вектора»
#include <iostream>
#include <locale>
#include <cstdlib>
#include <vector>
using namespace std;
int main()
{   setlocale(LC_ALL, "Russian");
vector<int> v(3); // Вектор из 3-х элементов
cout << "Размер вектора v = " << v.size() << endl;
for(int i = 0; i < v.size(); i++) // Заполнение вектора
v[i] = 2 * i + 1;
cout << "Вектор:\n";
for(int i = 0; i < v.size(); i++) // Вывод вектора
cout << "v[" << i << "] = " << v[i] << endl;
//cout << "v[-1] = " << v[-1] << endl; // -1 - недопустимый индекс
//cout << "v[3] = " << v[3] << endl; // 3 - недопустимый индекс
system("pause");     return 0;}
Описание слайда:
Программа «Вектора» #include <iostream> #include <locale> #include <cstdlib> #include <vector> using namespace std; int main() { setlocale(LC_ALL, "Russian"); vector<int> v(3); // Вектор из 3-х элементов cout << "Размер вектора v = " << v.size() << endl; for(int i = 0; i < v.size(); i++) // Заполнение вектора v[i] = 2 * i + 1; cout << "Вектор:\n"; for(int i = 0; i < v.size(); i++) // Вывод вектора cout << "v[" << i << "] = " << v[i] << endl; //cout << "v[-1] = " << v[-1] << endl; // -1 - недопустимый индекс //cout << "v[3] = " << v[3] << endl; // 3 - недопустимый индекс system("pause"); return 0;}

Слайд 21





Возможности векторов
Вектора можно создавать из элементов любых типов. Если при создании вектора не указывать число элементов, создается пустой вектор, не имеющий элементов.
                   vector<double> v;  // Пустой вектор
                   v[0] = 3.5;                // Ошибка, вектор v не имеет элементов
1) Функция push_back() добавляет в конец вектора новый элемент.
                                            v.push_back(3.5);
                                             v.push_back(7.9);
Теперь вектор v содержит элемент v[0] со значение 3.5 и элемент v[1] со значение 7.9.
2) Функция pop_back() удаляет из конца вектора элемент.
                                                               v.pop_back();
Теперь вектор v содержит только элемент v[0] со значение 3.5.
3) Текущий размер вектора можно изменить функцией resize().  Новые элементы заполняются нулями.
                          v.resize(5);        // Теперь размер v равен 5
4) Вектора можно присваивать, подобно одиночным переменным, чего нельзя делать массивами.
Описание слайда:
Возможности векторов Вектора можно создавать из элементов любых типов. Если при создании вектора не указывать число элементов, создается пустой вектор, не имеющий элементов. vector<double> v; // Пустой вектор v[0] = 3.5; // Ошибка, вектор v не имеет элементов 1) Функция push_back() добавляет в конец вектора новый элемент. v.push_back(3.5); v.push_back(7.9); Теперь вектор v содержит элемент v[0] со значение 3.5 и элемент v[1] со значение 7.9. 2) Функция pop_back() удаляет из конца вектора элемент. v.pop_back(); Теперь вектор v содержит только элемент v[0] со значение 3.5. 3) Текущий размер вектора можно изменить функцией resize(). Новые элементы заполняются нулями. v.resize(5); // Теперь размер v равен 5 4) Вектора можно присваивать, подобно одиночным переменным, чего нельзя делать массивами.

Слайд 22





Программа Размеры и копирование векторов
#include <iostream>
#include <locale>
#include <cstdlib>
#include <vector>
using namespace std;
int main()
{  srand(time(0));                // Инициализация 
                        //генератора случайных чисел
setlocale(LC_ALL, "Russian");
const double Max = 1000.0;
vector<double> v;            // Пустой вектор
v.push_back(3.5);       // Добавление в вектор
v.push_back(7.9);         // элементов
cout << "Вектор v размера " << v.size() << endl;
for(int i = 0; i < v.size(); i++) // Вывод
cout << v[i] << " "; // вектора
v.resize(5); // Теперь размер v равен 5
cout << "\nТеперь вектор v имеет размер " ;
cout<< v.size() << endl;
Описание слайда:
Программа Размеры и копирование векторов #include <iostream> #include <locale> #include <cstdlib> #include <vector> using namespace std; int main() { srand(time(0)); // Инициализация //генератора случайных чисел setlocale(LC_ALL, "Russian"); const double Max = 1000.0; vector<double> v; // Пустой вектор v.push_back(3.5); // Добавление в вектор v.push_back(7.9); // элементов cout << "Вектор v размера " << v.size() << endl; for(int i = 0; i < v.size(); i++) // Вывод cout << v[i] << " "; // вектора v.resize(5); // Теперь размер v равен 5 cout << "\nТеперь вектор v имеет размер " ; cout<< v.size() << endl;

Слайд 23





Программа Удаление отрицательных элементов
Описание слайда:
Программа Удаление отрицательных элементов



Похожие презентации
Mypresentation.ru
Загрузить презентацию