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

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

Содержание

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

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


Слайд 1





Динамическая память
Лекция 1
Описание слайда:
Динамическая память Лекция 1

Слайд 2





Размерности
1 байт = 8 бит
1 параграф = 24 байт
1 Кб = 210 байт
1 Мб = 220 байт
1 сегмент = 64 Кб = 216 байт
Описание слайда:
Размерности 1 байт = 8 бит 1 параграф = 24 байт 1 Кб = 210 байт 1 Мб = 220 байт 1 сегмент = 64 Кб = 216 байт

Слайд 3





Модель оперативной памяти ПК
Описание слайда:
Модель оперативной памяти ПК

Слайд 4





Модель карты памяти
Описание слайда:
Модель карты памяти

Слайд 5





Сравнение статической и динамической памяти
Описание слайда:
Сравнение статической и динамической памяти

Слайд 6





Указатель
Указатель – это переменная, значением которой является адрес области памяти
Описание слайда:
Указатель Указатель – это переменная, значением которой является адрес области памяти

Слайд 7





Описание указателей
На Паскале
Описание слайда:
Описание указателей На Паскале

Слайд 8





Указатели и массивы
int b[5] = {1, 1}; 
int *p, i;
for (i = 2; i < 5; i++)
	b[i] = b[i-1]+b[i-2];
//-----------------
for (p = b+2; p != b+5; p++)
	*p = *(p-1) + *(p-2);
Описание слайда:
Указатели и массивы int b[5] = {1, 1}; int *p, i; for (i = 2; i < 5; i++) b[i] = b[i-1]+b[i-2]; //----------------- for (p = b+2; p != b+5; p++) *p = *(p-1) + *(p-2);

Слайд 9





Строки в Си
#include <string.h>
…
char S[100];
int l;
strcpy (S, ”test”);
l = strlen(S);
Описание слайда:
Строки в Си #include <string.h> … char S[100]; int l; strcpy (S, ”test”); l = strlen(S);

Слайд 10





Функции работы с динамической памятью
Описание слайда:
Функции работы с динамической памятью

Слайд 11





Пример работы с динамической памятью
#include <stdio.h>
#include <stdlib.h>
int main() {
	float *t;
	int i,n;
	printf(”\nn=”);
	scanf(”%d”,&n);
	t= (float *)malloc(n*sizeof(float));
	for(i=0;i<n;i++) {
		printf (”x[%d]=”, i);
		scanf(”%f”,&(t[i]));
	}
	for(i=0;i<n;i++) {
		if (i % 2 == 0) printf (”\n”);
		printf(”\tx[%d]=%f”, i, t[i]);
	}
	free (t);
	return 0;
}
Описание слайда:
Пример работы с динамической памятью #include <stdio.h> #include <stdlib.h> int main() { float *t; int i,n; printf(”\nn=”); scanf(”%d”,&n); t= (float *)malloc(n*sizeof(float)); for(i=0;i<n;i++) { printf (”x[%d]=”, i); scanf(”%f”,&(t[i])); } for(i=0;i<n;i++) { if (i % 2 == 0) printf (”\n”); printf(”\tx[%d]=%f”, i, t[i]); } free (t); return 0; }

Слайд 12





Пример 2
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
	char *s, *s1;
	int n;
	s = (char *)malloc(100);
	scanf(”%s”, s);
	for(n=0;s[n]; n++); 
	s1 = (char *)malloc(n*2 + 1);
	strcpy (s1, s);
	strcpy (s1 + n, s);
	printf(”%s”, s1);
	free (s);
	free (s1);
	return 0;
}
Описание слайда:
Пример 2 #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char *s, *s1; int n; s = (char *)malloc(100); scanf(”%s”, s); for(n=0;s[n]; n++); s1 = (char *)malloc(n*2 + 1); strcpy (s1, s); strcpy (s1 + n, s); printf(”%s”, s1); free (s); free (s1); return 0; }

Слайд 13





Структуры в Си
struct <имя типа> { поля}
struct student {
	char * name;
	int age;
};
struct student x, y, *z;
…
x.age = 19;
x.name = (char *) malloc (20);
scanf (“%s”, x.name);
z = &x;
printf  (“age = %d\n”,  (*z).age);
printf  (“age = %d\n”,  z->age);
Описание слайда:
Структуры в Си struct <имя типа> { поля} struct student { char * name; int age; }; struct student x, y, *z; … x.age = 19; x.name = (char *) malloc (20); scanf (“%s”, x.name); z = &x; printf (“age = %d\n”, (*z).age); printf (“age = %d\n”, z->age);

Слайд 14





Списки.  Определения.
Список – структура данных, представляющая собой конечную последовательность элементов.
Элемент списка:
Описание слайда:
Списки. Определения. Список – структура данных, представляющая собой конечную последовательность элементов. Элемент списка:

Слайд 15





Односвязные списки
Односвязный список – это список, у элементов которого существует связь, указывающая на следующий элемент списка ( односторонняя связь).
Описание слайда:
Односвязные списки Односвязный список – это список, у элементов которого существует связь, указывающая на следующий элемент списка ( односторонняя связь).

Слайд 16





Описание списка на Си
struct list {
	int data;	         //информационное поле, данные
	struct list *next; // указатель на следующий элемент списка
};
/* Описание переменных: */
struct list *head=NULL; // - указатель на голову списка
struct list  *p, *t;
Описание слайда:
Описание списка на Си struct list { int data; //информационное поле, данные struct list *next; // указатель на следующий элемент списка }; /* Описание переменных: */ struct list *head=NULL; // - указатель на голову списка struct list *p, *t;

Слайд 17





Создание первого элемента списка
p = (struct list*) malloc( sizeof( struct list ) );
p->data = 5;
p->next = NULL;
head = p;
Описание слайда:
Создание первого элемента списка p = (struct list*) malloc( sizeof( struct list ) ); p->data = 5; p->next = NULL; head = p;

Слайд 18





Вставка нового элемента в начало списка
p = (struct list*) malloc( sizeof( struct list ) );
p->data = 3;
p->next = head;
head = p;
Описание слайда:
Вставка нового элемента в начало списка p = (struct list*) malloc( sizeof( struct list ) ); p->data = 3; p->next = head; head = p;

Слайд 19





Вставка нового элемента в конец списка
p = (struct list*) malloc( sizeof( struct list ) );
p->data = 10;
p->next = NULL;
t = head;
while (t->next != NULL)
	t = t->next;
t->next = p;
Описание слайда:
Вставка нового элемента в конец списка p = (struct list*) malloc( sizeof( struct list ) ); p->data = 10; p->next = NULL; t = head; while (t->next != NULL) t = t->next; t->next = p;

Слайд 20





Вставка нового элемента в середину списка
p = (struct list*) malloc( sizeof( struct list ) );
p->data = 4;
t = head;
while (t->next ->data != 5)   //вставка перед элементом с заданным свойством
	t = t->next;
p->next = t->next;
t->next = p;
Описание слайда:
Вставка нового элемента в середину списка p = (struct list*) malloc( sizeof( struct list ) ); p->data = 4; t = head; while (t->next ->data != 5) //вставка перед элементом с заданным свойством t = t->next; p->next = t->next; t->next = p;

Слайд 21





Удаление элемента из списка
t = head;
while (t->next ->data != 5)
	t = t->next;
p = t->next;
t->next = p->next;
free(p);
Описание слайда:
Удаление элемента из списка t = head; while (t->next ->data != 5) t = t->next; p = t->next; t->next = p->next; free(p);

Слайд 22





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

Слайд 23





Циклические списки
Циклический список – это список, в котором связь последнего элемента указывает на первый или один из других элементов этого списка.
Описание слайда:
Циклические списки Циклический список – это список, в котором связь последнего элемента указывает на первый или один из других элементов этого списка.

Слайд 24





Двусвязные списки
Двусвязные списки – это списки, элементы которых имеют по две связи, указывающие на предыдущий и следующий элементы.
Описание слайда:
Двусвязные списки Двусвязные списки – это списки, элементы которых имеют по две связи, указывающие на предыдущий и следующий элементы.

Слайд 25





Удаление элемента из двусвязного списка
List *del (List *p) { 	//возвращает указатель на следующий элемент списка
	List *pp,*pn;
	if (p == NULL) return NULL;
	pp = p->prev;
	pn = p->next;
	if (pp) pp->next = pn;
	if (pn) pn->prev = pp;
	free(p);
	return pn;
}
Описание слайда:
Удаление элемента из двусвязного списка List *del (List *p) { //возвращает указатель на следующий элемент списка List *pp,*pn; if (p == NULL) return NULL; pp = p->prev; pn = p->next; if (pp) pp->next = pn; if (pn) pn->prev = pp; free(p); return pn; }

Слайд 26





Иерархические списки
Это списки, значениями элементов которых являются указатели на другие списки (подсписки).
Описание слайда:
Иерархические списки Это списки, значениями элементов которых являются указатели на другие списки (подсписки).



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