🗊Презентация Массивы, структуры, указатели: начало. Лекция 3

Нажмите для полного просмотра!
Массивы, структуры, указатели: начало. Лекция 3, слайд №1Массивы, структуры, указатели: начало. Лекция 3, слайд №2Массивы, структуры, указатели: начало. Лекция 3, слайд №3Массивы, структуры, указатели: начало. Лекция 3, слайд №4Массивы, структуры, указатели: начало. Лекция 3, слайд №5Массивы, структуры, указатели: начало. Лекция 3, слайд №6Массивы, структуры, указатели: начало. Лекция 3, слайд №7Массивы, структуры, указатели: начало. Лекция 3, слайд №8Массивы, структуры, указатели: начало. Лекция 3, слайд №9Массивы, структуры, указатели: начало. Лекция 3, слайд №10Массивы, структуры, указатели: начало. Лекция 3, слайд №11Массивы, структуры, указатели: начало. Лекция 3, слайд №12Массивы, структуры, указатели: начало. Лекция 3, слайд №13Массивы, структуры, указатели: начало. Лекция 3, слайд №14Массивы, структуры, указатели: начало. Лекция 3, слайд №15Массивы, структуры, указатели: начало. Лекция 3, слайд №16Массивы, структуры, указатели: начало. Лекция 3, слайд №17Массивы, структуры, указатели: начало. Лекция 3, слайд №18Массивы, структуры, указатели: начало. Лекция 3, слайд №19Массивы, структуры, указатели: начало. Лекция 3, слайд №20Массивы, структуры, указатели: начало. Лекция 3, слайд №21Массивы, структуры, указатели: начало. Лекция 3, слайд №22Массивы, структуры, указатели: начало. Лекция 3, слайд №23Массивы, структуры, указатели: начало. Лекция 3, слайд №24Массивы, структуры, указатели: начало. Лекция 3, слайд №25Массивы, структуры, указатели: начало. Лекция 3, слайд №26Массивы, структуры, указатели: начало. Лекция 3, слайд №27Массивы, структуры, указатели: начало. Лекция 3, слайд №28Массивы, структуры, указатели: начало. Лекция 3, слайд №29Массивы, структуры, указатели: начало. Лекция 3, слайд №30

Содержание

Вы можете ознакомиться и скачать презентацию на тему Массивы, структуры, указатели: начало. Лекция 3. Доклад-сообщение содержит 30 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1





Основы программирования 
на C++
Массивы, структуры, указатели: начало
Описание слайда:
Основы программирования на C++ Массивы, структуры, указатели: начало

Слайд 2





Как обычно
Описание слайда:
Как обычно

Слайд 3





Кое-что упустили: перегрузка функции.
Под перегрузкой понимается создание существование функции со сходным именем другой функции, но другими аргументами и/или возвращаемым значением.
int max(int a, int b);
int max(int a, int b, int c);
double max(double a, double b);
Описание слайда:
Кое-что упустили: перегрузка функции. Под перегрузкой понимается создание существование функции со сходным именем другой функции, но другими аргументами и/или возвращаемым значением. int max(int a, int b); int max(int a, int b, int c); double max(double a, double b);

Слайд 4





Забегая вперед: передача аргумента по ссылке
При передаче аргумента по значению, переданная переменная не изменяется. Для функции создается копия переменной, таким образом функция никак не влияет на аргумент. 
При передаче по ссылке аргумент функцией может изменяться. Таким образом, аргумент может стать выходным параметром. Ссылочный аргумент передает адрес переменной в памяти.
Для создания ссылочной переменной, нужно перед именем поставить амперсанд &
Описание слайда:
Забегая вперед: передача аргумента по ссылке При передаче аргумента по значению, переданная переменная не изменяется. Для функции создается копия переменной, таким образом функция никак не влияет на аргумент. При передаче по ссылке аргумент функцией может изменяться. Таким образом, аргумент может стать выходным параметром. Ссылочный аргумент передает адрес переменной в памяти. Для создания ссылочной переменной, нужно перед именем поставить амперсанд &

Слайд 5





Пример
void swap(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
 
int main()
{
int i = 10, j = 20;
swap(i, j);
cout << i << " " << j << endl;
system("pause");
return 0;
}
Описание слайда:
Пример void swap(int &a, int &b) { int temp = a; a = b; b = temp; } int main() { int i = 10, j = 20; swap(i, j); cout << i << " " << j << endl; system("pause"); return 0; }

Слайд 6





Массивы
Статические массивы
Описание слайда:
Массивы Статические массивы

Слайд 7





Понятие
Массив - это совокупность переменных одного типа, к которым обращаются с помощью общего имени. Доступ к отдельному элементу массива может осуществляться с помощью индекса.
Конструкция объявления:
тип имя_переменной [размер];
Пример:
int mas[5];
Описание слайда:
Понятие Массив - это совокупность переменных одного типа, к которым обращаются с помощью общего имени. Доступ к отдельному элементу массива может осуществляться с помощью индекса. Конструкция объявления: тип имя_переменной [размер]; Пример: int mas[5];

Слайд 8





Примеры объявлений массива
Инициализация при объявлении
int mas[5] = { 228, 1337, 1488, 322, 2045 };
Инициализация после объявления
int mas[5];
mas[0] = 228;
mas[1] = 1337;
mas[2] = 1488;
mas[3] = 322;
mas[4] = 2045;
Описание слайда:
Примеры объявлений массива Инициализация при объявлении int mas[5] = { 228, 1337, 1488, 322, 2045 }; Инициализация после объявления int mas[5]; mas[0] = 228; mas[1] = 1337; mas[2] = 1488; mas[3] = 322; mas[4] = 2045;

Слайд 9





Многомерные массивы
Также можно создавать массивы массивов – многомерные массивы
Создаются массивы по такому принципу:
int mas[N][M]; - двумерный массив (матрица)
Описание слайда:
Многомерные массивы Также можно создавать массивы массивов – многомерные массивы Создаются массивы по такому принципу: int mas[N][M]; - двумерный массив (матрица)

Слайд 10





Передача массива в функцию
В функцию может передаваться разными способами:
int func(int mas[10]);
int func(int *mas);
int func(int mas[]);
Описание слайда:
Передача массива в функцию В функцию может передаваться разными способами: int func(int mas[10]); int func(int *mas); int func(int mas[]);

Слайд 11





Пример
int func(int count, int mas[])
{
int sum = 0;
for (int i = 0; i < count; i++)
sum += mas[i];
return sum;
}
int main()
{
int N = 5;
int mas[5] = { 228, 1337, 1488, 322, 2045 };
int sum = func(N, mas);
system("pause");
return 0;
}
Описание слайда:
Пример int func(int count, int mas[]) { int sum = 0; for (int i = 0; i < count; i++) sum += mas[i]; return sum; } int main() { int N = 5; int mas[5] = { 228, 1337, 1488, 322, 2045 }; int sum = func(N, mas); system("pause"); return 0; }

Слайд 12





ЧТО ЭТО ТАКОЕ, МАТЬ ТВОЮ ЗА НОГУ?
int func(int *mas);
Описание слайда:
ЧТО ЭТО ТАКОЕ, МАТЬ ТВОЮ ЗА НОГУ? int func(int *mas);

Слайд 13





Указатели
Описание слайда:
Указатели

Слайд 14





Понятие
Указатель –  адресная информация о расположении информационного ресурса, через которую пользователь может обратиться к нему.[1]
В Си определено понятие указатель как переменная особого вида, содержащая адрес размещения в памяти другой переменной.
Как вы догадались, конструкция такая:
тип_данных *имя_указателя = другая переменная;
Описание слайда:
Понятие Указатель – адресная информация о расположении информационного ресурса, через которую пользователь может обратиться к нему.[1] В Си определено понятие указатель как переменная особого вида, содержащая адрес размещения в памяти другой переменной. Как вы догадались, конструкция такая: тип_данных *имя_указателя = другая переменная;

Слайд 15





Мой внутренний Пикассо не смог выразить графически указатели лучше
Описание слайда:
Мой внутренний Пикассо не смог выразить графически указатели лучше

Слайд 16





Пример для разобраться на досуге
#include <iostream>
using namespace std;
int main()
{
int var = 10;
int *pointer;
pointer = &var;
cout << pointer << " " << *pointer << " "<< var <<endl;
*pointer = 12;
cout << pointer << " " << *pointer << " "<< var <<endl;
system("pause");
return 0;
}
Описание слайда:
Пример для разобраться на досуге #include <iostream> using namespace std; int main() { int var = 10; int *pointer; pointer = &var; cout << pointer << " " << *pointer << " "<< var <<endl; *pointer = 12; cout << pointer << " " << *pointer << " "<< var <<endl; system("pause"); return 0; }

Слайд 17





Результат
Описание слайда:
Результат

Слайд 18





Указатели при массивах. АДъ
#include <iostream>
using namespace std;
int main()
{
int mas[10] = { 1,2,3,4,5,6,7,8,9,0 };
int *pointer = mas;
cout << sizeof(mas) << endl;
for (int i = 0; i < sizeof(mas) / sizeof(int) + 1; i++)
		cout << *(pointer++) << " ";
pointer = mas;
cout << endl;
for (int i = 0; i < sizeof(mas) / sizeof(int) + 1; i++)
		cout << pointer++ << " ";
cout << endl;
system("pause");
return 0;
}
Описание слайда:
Указатели при массивах. АДъ #include <iostream> using namespace std; int main() { int mas[10] = { 1,2,3,4,5,6,7,8,9,0 }; int *pointer = mas; cout << sizeof(mas) << endl; for (int i = 0; i < sizeof(mas) / sizeof(int) + 1; i++) cout << *(pointer++) << " "; pointer = mas; cout << endl; for (int i = 0; i < sizeof(mas) / sizeof(int) + 1; i++) cout << pointer++ << " "; cout << endl; system("pause"); return 0; }

Слайд 19





Результат
40
1 2 3 4 5 6 7 8 9 0 -858993460
00F3FE4C 00F3FE50 00F3FE54 00F3FE58 00F3FE5C 00F3FE60 00F3FE64 00F3FE68 00F3FE6C 00F3FE70 00F3FE74
Описание слайда:
Результат 40 1 2 3 4 5 6 7 8 9 0 -858993460 00F3FE4C 00F3FE50 00F3FE54 00F3FE58 00F3FE5C 00F3FE60 00F3FE64 00F3FE68 00F3FE6C 00F3FE70 00F3FE74

Слайд 20





Динамический массив
В указатели также можно заносить нормальные значения типа указателя, если выделить для указателя память
C - стиль:
int *ptr=(int*) malloc(sizeof(int));
*ptr=4;
free(ptr);
C++ - стиль:
int *ptr=new int(4);
delete ptr;
Описание слайда:
Динамический массив В указатели также можно заносить нормальные значения типа указателя, если выделить для указателя память C - стиль: int *ptr=(int*) malloc(sizeof(int)); *ptr=4; free(ptr); C++ - стиль: int *ptr=new int(4); delete ptr;

Слайд 21





Пример
#include <iostream>
using namespace std;
int main(void)
{
setlocale(LC_ALL, "Russian");
int *p;
p = new int(4);
cout << *p << endl;
system("pause");
return 0;
}
Описание слайда:
Пример #include <iostream> using namespace std; int main(void) { setlocale(LC_ALL, "Russian"); int *p; p = new int(4); cout << *p << endl; system("pause"); return 0; }

Слайд 22





При создании динамического массива используется другая конструкция:
При создании динамического массива используется другая конструкция:
p = new int[N]; - где N – размер массива
Таким образом можно создавать массивы нужного вам размера во время исполнения программы
Возможно и создание N-мерных динамических массивов.
int N = 3, M = 3;
int **matrix;
matrix = new int*[N];
Описание слайда:
При создании динамического массива используется другая конструкция: При создании динамического массива используется другая конструкция: p = new int[N]; - где N – размер массива Таким образом можно создавать массивы нужного вам размера во время исполнения программы Возможно и создание N-мерных динамических массивов. int N = 3, M = 3; int **matrix; matrix = new int*[N];

Слайд 23





#include <iostream>
#include <iostream>
#include <ctime>
using namespace std;
int main(void)
{
srand(time(NULL));
int *p; int N; cin >> N; 
p = new int[N];
for(int i=0; i<N; i++)
		p[i] = rand() % 100;
for (int i = 0; i<N; i++)
		cout << p[i] << " ";
cout << endl;
system("pause");
return 0;
}
Описание слайда:
#include <iostream> #include <iostream> #include <ctime> using namespace std; int main(void) { srand(time(NULL)); int *p; int N; cin >> N; p = new int[N]; for(int i=0; i<N; i++) p[i] = rand() % 100; for (int i = 0; i<N; i++) cout << p[i] << " "; cout << endl; system("pause"); return 0; }

Слайд 24





Пример двумерного массива:
Пример двумерного массива:
#include <iostream>
using namespace std;
int main(void)
{
int N = 3, M = 3;
int **matrix;
matrix = new int*[N];
for (int i = 0; i < N; i++)
matrix[i] = new int[M];
for (int i = 0; i < N; i++)
for (int j = 0; j < M; j++)
matrix[i][j] = i*N + M;
cout << endl;
system("pause");
return 0;
}
Описание слайда:
Пример двумерного массива: Пример двумерного массива: #include <iostream> using namespace std; int main(void) { int N = 3, M = 3; int **matrix; matrix = new int*[N]; for (int i = 0; i < N; i++) matrix[i] = new int[M]; for (int i = 0; i < N; i++) for (int j = 0; j < M; j++) matrix[i][j] = i*N + M; cout << endl; system("pause"); return 0; }

Слайд 25





Тут кое-что упущено. Удаление массивов
Указатели занимают память даже выходя за пределы видимости:
int *pout;
while (true)
{
int *p = new int(7);
pout = p;
delete p;
break;
}
cout <<*pout<< endl;
Для этого необходимо удалять занятую указателями память с помощью операции delete
Описание слайда:
Тут кое-что упущено. Удаление массивов Указатели занимают память даже выходя за пределы видимости: int *pout; while (true) { int *p = new int(7); pout = p; delete p; break; } cout <<*pout<< endl; Для этого необходимо удалять занятую указателями память с помощью операции delete

Слайд 26





Правильный пример:
int N = 3, M = 3;
int **matrix;
matrix = new int*[N];
for (int i = 0; i < N; i++)
matrix[i] = new int[M];
for (int i = 0; i < N; i++)
for (int j = 0; j < M; j++)
matrix[i][j] = i*N + M;
for (int i = 0; i < M; i++)
	delete *matrix;
delete matrix;
Описание слайда:
Правильный пример: int N = 3, M = 3; int **matrix; matrix = new int*[N]; for (int i = 0; i < N; i++) matrix[i] = new int[M]; for (int i = 0; i < N; i++) for (int j = 0; j < M; j++) matrix[i][j] = i*N + M; for (int i = 0; i < M; i++) delete *matrix; delete matrix;

Слайд 27





Задача
Дан двумерный массив целых чисел. Создать функцию, возвращающую определитель матрицы.
Описание слайда:
Задача Дан двумерный массив целых чисел. Создать функцию, возвращающую определитель матрицы.

Слайд 28





Задача коллективная
Объявите указатель на массив типа int и выделите память память для 12-ти элементов. Необходимо написать функции:
Заполнения массива
Показа массива
Обмена значений четных и нечетных ячеек массива.
Описание слайда:
Задача коллективная Объявите указатель на массив типа int и выделите память память для 12-ти элементов. Необходимо написать функции: Заполнения массива Показа массива Обмена значений четных и нечетных ячеек массива.

Слайд 29





Частое употребление массивов - строки
Описание слайда:
Частое употребление массивов - строки

Слайд 30





Мемчик в конец
Описание слайда:
Мемчик в конец



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