Презентация Понятие о динамических данных. Работа с динамическими массивами онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Понятие о динамических данных. Работа с динамическими массивами абсолютно бесплатно. Урок-презентация на эту тему содержит всего 18 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Понятие о динамических данных. Работа с динамическими массивами



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    18 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    103.00 kB
  • Просмотров:
    68
  • Скачиваний:
    0
  • Автор:
    неизвестен



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

№1 слайд
Понятие о динамических
Содержание слайда: Понятие о динамических данных. Работа с динамическими массивами. Лекция №4

№2 слайд
Данные классификация по
Содержание слайда: Данные (классификация по времени жизни)

№3 слайд
Динамическое распределение
Содержание слайда: Динамическое распределение памяти используется: когда статической памяти и стека подпрограмм не хватает для решения задачи; когда объем требуемой памяти (например, число элементов массива) неизвестен до выполнения программы (вводится или вычисляется); когда характер задачи требует динамического распределения (данные поступают порциями в процессе выполнения программы, например, в режиме реального времени).

№4 слайд
Указатели в Си
Содержание слайда: Указатели в Си

№5 слайд
Содержание слайда:

№6 слайд
Содержание слайда:

№7 слайд
Содержание слайда:

№8 слайд
Содержание слайда:

№9 слайд
Содержание слайда:

№10 слайд
Связь массивов с указателями
Содержание слайда: Связь массивов с указателями в Си

№11 слайд
Содержание слайда:

№12 слайд
Содержание слайда:

№13 слайд
Функции Си для распределения
Содержание слайда: Функции Си для распределения и освобождения памяти (<stdlib.h>) malloc (англ. memory allocation, выделение памяти): void *malloc(size_t size); Функция malloc() возвращает указатель на первый байт области памяти размером size (в байтах), которая была выделена из кучи. Если нет достаточного объема памяти, возвращается NULL. calloc (англ. clear allocation, чистое выделение памяти): void *calloc(size_t num, size_t size); Функция calloc выделяет память для хранения num значений, каждое длиной size байт. Каждое значение инициализируется нулем. Если нет достаточного объема памяти, возвращается NULL. realloc (англ. reallocation, перераспределение памяти). void *realloc(void *ptr, size_t newsize) Функция realloc() изменяет величину выделенной памяти, на которую указывает ptr, на новую величину, задаваемую параметром newsize. Величина newsize задается в байтах и может быть больше или меньше оригинала. Возвращается указатель на блок памяти, поскольку может возникнуть необходимость переместить блок при возрастании его размера. В таком случае содержимое старого блока копируется в новый блок и информация не теряется. Если свободной памяти недостаточно для выделения в куче блока размером newsize, то возвращается NULL. free (англ. free, освободить) void free( void * ptr ); Функция free возвращает в кучу блок памяти, на который указывает ptr. Этот блорк ранее должен быть выделен с помощью вызова malloc, calloc или realloc.

№14 слайд
Операции Си для распределения
Содержание слайда: Операции Си++ для распределения и освобождения памяти Операция new: указатель=new тип; Указатель должен быть объявлен с помощью тип*. Операция выделяет ячейку памяти заданного типа и и присваивает значение адреса ячейки указателю. После типа в круглых скобках можно указать инициализирующее значение, а в квадратных – количество выделяемых ячеек. В большинстве реализаций одновременно круглые и квадратные скобки не допускаются. Примеры: int *ip = new int; /* создание объекта типа int и получение указателя на него */ int *ip2 = new int(2); // то же с установкой начального значения 2 inr *intArray = new int [ 10 ]; // массив из 10 элементов типа int double int **matr = new double [ m ] [ n ]; // матрица из m строк и n столбцов Операция delete: delete указатель; delete [] указатель;//для массивов Освобождение памяти, выделенной с помощью delete.

№15 слайд
Почему неудобны статические
Содержание слайда: Почему неудобны статические (или локальные) массивы? Основной трудностью работы со статическими массивами является обязательность указания количества их элементов при объявлении. В любом алгоритмическом языке, требующим компиляции (в частности, в Си, Паскале, Фортране), границами индексов массива при описании могут быть только константы. Выход – использование динамических массивов.

№16 слайд
Пример . Ввод и вывод
Содержание слайда: Пример 1. Ввод и вывод динамического одномерного массива, размер которого n задается вводом #include <iostream.h> #include <conio.h> #include <stdlib.h> void main() { int *a, n, i; cout<<"Input the number of elements\n"; cin>>n; a=(int*)malloc(n*sizeof(int)); //распред-ие памяти под динамический массив cout<<"Input elements\n"; for (i=0;i<n;i=i+1) cin>>a[i];//*(a+i) for (i=0;i<n;i=i+1) a[i]=a[i]*a[i]; cout<<"Squares of elements:\n"; for (i=0;i<n;i=i+1) cout<<a[i]<<" "; cout<<endl; _getch(); free(a); }

№17 слайд
Пример . Динамические матрицы
Содержание слайда: Пример 2. Динамические матрицы #include <iostream.h> #include <conio.h> #include <stdlib.h> void main() { int **a, n,m, i,j; //n-число строк, m-число столбцов; cout<<"Input n,m\n"; cin>>n>>m; a=(int**)malloc(n*sizeof(int*)); cout<<"Input matrix\n"; for (i=0;i<n;i=i+1) { a[i]=(int*)malloc(m*sizeof(int)); for (j=0;j<m;j=j+1) cin>>a[i][j];//*(*(a+i)+j) } for (i=0;i<n;i=i+1) for (j=0;j<m;j=j+1) a[i][j]=2*a[i][j]; cout<<"The changed matrix:\n"; for (i=0;i<n;i=i+1) {for(j=0;j<m;j=j+1) cout<<a[i][j]<<" "; cout<<endl; free (a[i]); } _getch(); free(a); }

№18 слайд
Пример . Параметры функций
Содержание слайда: Пример 3. Параметры функций типа тип** #include <iostream.h> #include <conio.h> float sum(float **a, int n, int m); void main() { float **a; int n,m, i,j; cout<<"Input n,m"<<endl; cin>>n>>m; a=new float*[n]; for (i=0;i<n;i++) { a[i]=new float[m]; for (j=0;j<m;j++) cin>>a[i][j]; } cout<<"sum="<<sum(a,n,m)<<endl; _getch(); for (i=0;i<n;i++) delete [] a[i]; delete [] a; }

Скачать все slide презентации Понятие о динамических данных. Работа с динамическими массивами одним архивом: