Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
26 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
125.54 kB
Просмотров:
38
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Динамическая память Лекция](/documents_6/8b67a042c37cd14698400ec5cd24c938/img0.jpg)
Содержание слайда: Динамическая память
Лекция 1
№2 слайд![Размерности байт бит параграф](/documents_6/8b67a042c37cd14698400ec5cd24c938/img1.jpg)
Содержание слайда: Размерности
1 байт = 8 бит
1 параграф = 24 байт
1 Кб = 210 байт
1 Мб = 220 байт
1 сегмент = 64 Кб = 216 байт
№3 слайд![Модель оперативной памяти ПК](/documents_6/8b67a042c37cd14698400ec5cd24c938/img2.jpg)
Содержание слайда: Модель оперативной памяти ПК
№4 слайд![Модель карты памяти](/documents_6/8b67a042c37cd14698400ec5cd24c938/img3.jpg)
Содержание слайда: Модель карты памяти
№5 слайд![Сравнение статической и](/documents_6/8b67a042c37cd14698400ec5cd24c938/img4.jpg)
Содержание слайда: Сравнение статической и динамической памяти
№6 слайд![Указатель Указатель это](/documents_6/8b67a042c37cd14698400ec5cd24c938/img5.jpg)
Содержание слайда: Указатель
Указатель – это переменная, значением которой является адрес области памяти
№7 слайд![Описание указателей На Паскале](/documents_6/8b67a042c37cd14698400ec5cd24c938/img6.jpg)
Содержание слайда: Описание указателей
На Паскале
№8 слайд![Указатели и массивы int b ,](/documents_6/8b67a042c37cd14698400ec5cd24c938/img7.jpg)
Содержание слайда: Указатели и массивы
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 lt](/documents_6/8b67a042c37cd14698400ec5cd24c938/img8.jpg)
Содержание слайда: Строки в Си
#include <string.h>
…
char S[100];
int l;
strcpy (S, ”test”);
l = strlen(S);
№10 слайд![Функции работы с динамической](/documents_6/8b67a042c37cd14698400ec5cd24c938/img9.jpg)
Содержание слайда: Функции работы с динамической памятью
№11 слайд![Пример работы с динамической](/documents_6/8b67a042c37cd14698400ec5cd24c938/img10.jpg)
Содержание слайда: Пример работы с динамической памятью
#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 слайд![Пример include lt stdio.h gt](/documents_6/8b67a042c37cd14698400ec5cd24c938/img11.jpg)
Содержание слайда: Пример 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 lt имя](/documents_6/8b67a042c37cd14698400ec5cd24c938/img12.jpg)
Содержание слайда: Структуры в Си
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 слайд![Списки. Определения. Список](/documents_6/8b67a042c37cd14698400ec5cd24c938/img13.jpg)
Содержание слайда: Списки. Определения.
Список – структура данных, представляющая собой конечную последовательность элементов.
Элемент списка:
№15 слайд![Односвязные списки](/documents_6/8b67a042c37cd14698400ec5cd24c938/img14.jpg)
Содержание слайда: Односвязные списки
Односвязный список – это список, у элементов которого существует связь, указывающая на следующий элемент списка ( односторонняя связь).
№16 слайд![Описание списка на Си struct](/documents_6/8b67a042c37cd14698400ec5cd24c938/img15.jpg)
Содержание слайда: Описание списка на Си
struct list {
int data; //информационное поле, данные
struct list *next; // указатель на следующий элемент списка
};
/* Описание переменных: */
struct list *head=NULL; // - указатель на голову списка
struct list *p, *t;
№17 слайд![Создание первого элемента](/documents_6/8b67a042c37cd14698400ec5cd24c938/img16.jpg)
Содержание слайда: Создание первого элемента списка
p = (struct list*) malloc( sizeof( struct list ) );
p->data = 5;
p->next = NULL;
head = p;
№18 слайд![Вставка нового элемента в](/documents_6/8b67a042c37cd14698400ec5cd24c938/img17.jpg)
Содержание слайда: Вставка нового элемента в начало списка
p = (struct list*) malloc( sizeof( struct list ) );
p->data = 3;
p->next = head;
head = p;
№19 слайд![Вставка нового элемента в](/documents_6/8b67a042c37cd14698400ec5cd24c938/img18.jpg)
Содержание слайда: Вставка нового элемента в конец списка
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 слайд![Вставка нового элемента в](/documents_6/8b67a042c37cd14698400ec5cd24c938/img19.jpg)
Содержание слайда: Вставка нового элемента в середину списка
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](/documents_6/8b67a042c37cd14698400ec5cd24c938/img20.jpg)
Содержание слайда: Удаление элемента из списка
t = head;
while (t->next ->data != 5)
t = t->next;
p = t->next;
t->next = p->next;
free(p);
№22 слайд![Лабораторная работа Написать](/documents_6/8b67a042c37cd14698400ec5cd24c938/img21.jpg)
Содержание слайда: Лабораторная работа
Написать программу, реализующую работу с односвязным динамическим списком.
На вход: целые числа.
На выход: выдать на экран эти числа, упорядоченные по возрастанию.
Метод: построить односвязный список, элементы которого содержат целые числа. При поступлении нового значения строится новый элемент списка и вставляется на свое место (по возрастанию значений). Повторяющиеся значения в список не включать.
№23 слайд![Циклические списки](/documents_6/8b67a042c37cd14698400ec5cd24c938/img22.jpg)
Содержание слайда: Циклические списки
Циклический список – это список, в котором связь последнего элемента указывает на первый или один из других элементов этого списка.
№24 слайд![Двусвязные списки Двусвязные](/documents_6/8b67a042c37cd14698400ec5cd24c938/img23.jpg)
Содержание слайда: Двусвязные списки
Двусвязные списки – это списки, элементы которых имеют по две связи, указывающие на предыдущий и следующий элементы.
№25 слайд![Удаление элемента из](/documents_6/8b67a042c37cd14698400ec5cd24c938/img24.jpg)
Содержание слайда: Удаление элемента из двусвязного списка
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 слайд![Иерархические списки Это](/documents_6/8b67a042c37cd14698400ec5cd24c938/img25.jpg)
Содержание слайда: Иерархические списки
Это списки, значениями элементов которых являются указатели на другие списки (подсписки).