🗊Презентация Динамические данные

Нажмите для полного просмотра!
Динамические данные, слайд №1Динамические данные, слайд №2Динамические данные, слайд №3Динамические данные, слайд №4Динамические данные, слайд №5Динамические данные, слайд №6Динамические данные, слайд №7Динамические данные, слайд №8Динамические данные, слайд №9Динамические данные, слайд №10Динамические данные, слайд №11Динамические данные, слайд №12Динамические данные, слайд №13Динамические данные, слайд №14Динамические данные, слайд №15Динамические данные, слайд №16Динамические данные, слайд №17Динамические данные, слайд №18

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

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


Слайд 1





Динамические данные
Описание слайда:
Динамические данные

Слайд 2





Виды памяти 
Существует три вида памяти: статическая, стековая и динамическая.
Статическая память выделяется еще до начала работы программы, на стадии компиляции и сборки.
Описание слайда:
Виды памяти Существует три вида памяти: статическая, стековая и динамическая. Статическая память выделяется еще до начала работы программы, на стадии компиляции и сборки.

Слайд 3





Статическая память
Существуют два типа статических переменных:
Глобальные переменные (определенные вне функций):
 …
 int max_num = 100;
 …
 void main() {
 … 
 }
Статические переменные (определенные со словом static):
 void main() {
  …
 static int max = 100;
 …
 }
Описание слайда:
Статическая память Существуют два типа статических переменных: Глобальные переменные (определенные вне функций): … int max_num = 100; … void main() { … } Статические переменные (определенные со словом static): void main() { … static int max = 100; … }

Слайд 4





Локальные переменные
Локальные (или стековые) переменные – это переменные определенные внутри функции (или блока):
 void my_func() {
    …
    int n = 0;
    …
    if (n != 0) {
       int a[] = {0, 2, 4, 5};
       …
    }
    …
 }
Память выделяется в момент входа в функцию или блок и освобождается в момент выхода из функции или блока.
Описание слайда:
Локальные переменные Локальные (или стековые) переменные – это переменные определенные внутри функции (или блока): void my_func() { … int n = 0; … if (n != 0) { int a[] = {0, 2, 4, 5}; … } … } Память выделяется в момент входа в функцию или блок и освобождается в момент выхода из функции или блока.

Слайд 5





Динамическая память
Недостаток статической или локальной памяти: количество выделяемой памяти вычисляется на этапе компиляции и сборки.
Использование динамической памяти позволяет избавиться от данного ограничения.
Описание слайда:
Динамическая память Недостаток статической или локальной памяти: количество выделяемой памяти вычисляется на этапе компиляции и сборки. Использование динамической памяти позволяет избавиться от данного ограничения.

Слайд 6





Выделение и освобождение памяти
Необходимая библиотека:
  #include <stdlib.h>
Выделение памяти:
 void* malloc(size_t n);
 void* calloc(size_t num, size_t size);
  void* realloc(void *ptr, size_t size);
C++:
 <тип> <имя> = new <тип>;

Освобождение памяти:
 void free(void *p);
C++:
 delete <имя>;
Описание слайда:
Выделение и освобождение памяти Необходимая библиотека: #include <stdlib.h> Выделение памяти: void* malloc(size_t n); void* calloc(size_t num, size_t size); void* realloc(void *ptr, size_t size); C++: <тип> <имя> = new <тип>; Освобождение памяти: void free(void *p); C++: delete <имя>;

Слайд 7





Динамические массивы
Пример. Ввести с клавиатуры n чисел (n задается пользователем) и вывести их в обратном порядке.
Неправильный способ решения задачи (с использованием локальной переменной массива) :
void main() {
  int n,i;
  scanf(“%d”, &n); /* вводим кол-во чисел */
  int a[n]; 
	/* ошибка. Нельзя создавать массив используя переменную-размер */
  for (i = 0; i < n; i++)
    scanf(“%d”, &a[i]);
  for (i = n-1; i >=0; i--)
    printf(“%5d”, a[i]);
}
Описание слайда:
Динамические массивы Пример. Ввести с клавиатуры n чисел (n задается пользователем) и вывести их в обратном порядке. Неправильный способ решения задачи (с использованием локальной переменной массива) : void main() { int n,i; scanf(“%d”, &n); /* вводим кол-во чисел */ int a[n]; /* ошибка. Нельзя создавать массив используя переменную-размер */ for (i = 0; i < n; i++) scanf(“%d”, &a[i]); for (i = n-1; i >=0; i--) printf(“%5d”, a[i]); }

Слайд 8





Динамические массивы
Правильный способ решения задачи (с использованием динамической переменной массива):
void main() {
  int n,i;
  scanf(“%d”, &n); /* вводим кол-во чисел */
     
	/* выделяем память под массив */
  int *a = (int*)malloc(n * sizeof(int)); 
  for (i = 0; i < n; i++)
    scanf(“%d”, &a[i]);
  for (i = n-1; n >=0; i--)
    printf(“%5d”, a[i]);
  free(a); /* освобождаем память */
}
Описание слайда:
Динамические массивы Правильный способ решения задачи (с использованием динамической переменной массива): void main() { int n,i; scanf(“%d”, &n); /* вводим кол-во чисел */ /* выделяем память под массив */ int *a = (int*)malloc(n * sizeof(int)); for (i = 0; i < n; i++) scanf(“%d”, &a[i]); for (i = n-1; n >=0; i--) printf(“%5d”, a[i]); free(a); /* освобождаем память */ }

Слайд 9





Динамические структуры
Выделение памяти под структуру:
 struct <имя> *<имя переменной> = 
    (struct <имя>*) malloc(sizeof(<имя>));
Освобождение памяти:
 free(<имя переменной>);
Опишем структуру:
struct student {
    char name[50];
    int grade;
    int group;
};
Описание слайда:
Динамические структуры Выделение памяти под структуру: struct <имя> *<имя переменной> = (struct <имя>*) malloc(sizeof(<имя>)); Освобождение памяти: free(<имя переменной>); Опишем структуру: struct student { char name[50]; int grade; int group; };

Слайд 10





Массивы динамически создаваемых структур
Пример. Формирование массива из динамически создаваемых структур.
 void main() {
     /* Объявляем массив студентов */
   struct student* students[100] = {NULL}; 
   int i,n; 
   scanf(“%d”, &n); /* n - количество студентов */
  
   for (i = 0; i < n; i++) {
       /* резервируем память */
       students[i] = (struct student*)malloc(
                sizeof(students));
       scanf(“%50s %d %d”, &students[i]->name, 
           &students[i]->age, &students[i]->grade);
   }
   …
}
Описание слайда:
Массивы динамически создаваемых структур Пример. Формирование массива из динамически создаваемых структур. void main() { /* Объявляем массив студентов */ struct student* students[100] = {NULL}; int i,n; scanf(“%d”, &n); /* n - количество студентов */ for (i = 0; i < n; i++) { /* резервируем память */ students[i] = (struct student*)malloc( sizeof(students)); scanf(“%50s %d %d”, &students[i]->name, &students[i]->age, &students[i]->grade); } … }

Слайд 11





Динамические массивы структур
Пример. Формирование динамического массива из структур.
 void main() {
     /* Объявляем массив студентов */
   struct student* a; 
   int i,n; 
   scanf(“%d”, &n); /* n - количество студентов */
     /* резервируем память */
   a = (struct student* a) malloc( n * sizeof(struct student));
  
   for (i = 0; i < n; i++) {
     scanf(“%50s %d %d”, &a[i].name, 
           &a[i].age, &a [i].grade);
   }
   …
}
Описание слайда:
Динамические массивы структур Пример. Формирование динамического массива из структур. void main() { /* Объявляем массив студентов */ struct student* a; int i,n; scanf(“%d”, &n); /* n - количество студентов */ /* резервируем память */ a = (struct student* a) malloc( n * sizeof(struct student)); for (i = 0; i < n; i++) { scanf(“%50s %d %d”, &a[i].name, &a[i].age, &a [i].grade); } … }

Слайд 12





Динамическая память, функции и двумерные массивы
#include <stdio.h>
#include <stdlib.h>
#define N 4
#define L 5
int **AllocateM(int Width, int Height)
{
    int **m=(int**)malloc(Height*sizeof(int*));//ðàçìåðíîñòü óêàçàòåëÿ
    int i;
    for(i=0;i<Height;i++)
    {
        m[i]=(int*)malloc(Width*sizeof(int));
    }
    return m;
}
Описание слайда:
Динамическая память, функции и двумерные массивы #include <stdio.h> #include <stdlib.h> #define N 4 #define L 5 int **AllocateM(int Width, int Height) { int **m=(int**)malloc(Height*sizeof(int*));//ðàçìåðíîñòü óêàçàòåëÿ int i; for(i=0;i<Height;i++) { m[i]=(int*)malloc(Width*sizeof(int)); } return m; }

Слайд 13


Динамические данные, слайд №13
Описание слайда:

Слайд 14


Динамические данные, слайд №14
Описание слайда:

Слайд 15


Динамические данные, слайд №15
Описание слайда:

Слайд 16





Для динамических массивов используют
Вариант2:
#include <iostream>
using std::cout;
using std::cin;
 
void funArray(int **mass, const int nstr, const int nstb);

int main()
{	//ввод размера динамического двумерного массива:
	int N, M;
	cin >>N>>M;
	//выделение места в памяти под динамический двумерный массив:
	int **Arr=new int* [N];
	for(int i=0; i<N; i++)
		Arr[i]=new int [M];
Описание слайда:
Для динамических массивов используют Вариант2: #include <iostream> using std::cout; using std::cin;   void funArray(int **mass, const int nstr, const int nstb); int main() { //ввод размера динамического двумерного массива: int N, M; cin >>N>>M; //выделение места в памяти под динамический двумерный массив: int **Arr=new int* [N]; for(int i=0; i<N; i++) Arr[i]=new int [M];

Слайд 17


Динамические данные, слайд №17
Описание слайда:

Слайд 18


Динамические данные, слайд №18
Описание слайда:



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