Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
20 слайдов
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
89.50 kB
Просмотров:
108
Скачиваний:
0
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Динамическая память Лекция](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img0.jpg)
Содержание слайда: Динамическая память
Лекция 1
№2 слайд![Размерности байт бит параграф](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img1.jpg)
Содержание слайда: Размерности
1 байт = 8 бит
1 параграф = 24 байт
1 Кб = 210 байт
1 Мб = 220 байт
1 сегмент = 64 Кб = 216 байт
№3 слайд![Модель оперативной памяти ПК](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img2.jpg)
Содержание слайда: Модель оперативной памяти ПК
№4 слайд![Модель карты памяти](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img3.jpg)
Содержание слайда: Модель карты памяти
№5 слайд![Сравнение статической и](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img4.jpg)
Содержание слайда: Сравнение статической и динамической памяти
№6 слайд![Указатель Указатель это](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img5.jpg)
Содержание слайда: Указатель
Указатель – это переменная, значением которой является адрес области памяти
№7 слайд![Описание указателей На Паскале](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img6.jpg)
Содержание слайда: Описание указателей
На Паскале
№8 слайд![Указатели и массивы int b ,](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/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/1af28a26a5e1fc44cacbe113f6a0153c/img8.jpg)
Содержание слайда: Строки в Си
#include <string.h>
…
char S[100];
int l;
strcpy (S, ”test”);
l = strlen(S);
№10 слайд![Функции работы с динамической](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img9.jpg)
Содержание слайда: Функции работы с динамической памятью
№11 слайд![Пример работы с динамической](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/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/1af28a26a5e1fc44cacbe113f6a0153c/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 слайд![Пример . void swap int x, int](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img12.jpg)
Содержание слайда: Пример 3.
void swap (int *x, int *y)
{
int a;
a = *x;
*x = *y;
*y = a;
}
…
int main()
{
int a, b;
…
swap(&a, &b); // обмен значений двух переменных
…
return 0;
}
№14 слайд![Структуры в Си это](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img13.jpg)
Содержание слайда: Структуры в Си
это объединенные данные. В отличие от массивов, структуры могут содержать данные разных типов:
struct <имя типа> {<поля>}
struct student {
char *name;
int age;
};
struct student x, y, *z;
…
№15 слайд![Так же можно объявлять](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img14.jpg)
Содержание слайда: Так же можно объявлять переменные сразу после объявления структуры:
Так же можно объявлять переменные сразу после объявления структуры:
struct student {
char name[20];
char sex;
int age;
float mark;
} a, b[5], *c;
№16 слайд![Операции над структурами](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img15.jpg)
Содержание слайда: Операции над структурами
присваивание полю структуры значение того же типа;
можно получить адрес структуры. Не забываем операцию взятия адреса (&);
можно обращаться к любому полю структуры, доступ к полям структуры производится по имени поля; (x = a.mark; x=c->mark;)
для того, что бы определить размер структуры, как и любого другого типа, можно использовать операцию sizeof().
№17 слайд![Инициализация структуры](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img16.jpg)
Содержание слайда: Инициализация структуры
struct student a = {"Sergey", ‘m', 20, 4.5 };
Cоздается переменная типа struct student и присваивается всем полям, которые у нас определенны в структуре, значения. Порядок очень важен при инициализации структуры. Если какое-либо поле у вас будет не заполненным, то оно автоматом заполнится 0 - для целочисленных типов;
NULL - для указателей; \0 - для строковых типов.
Структура того же самого типа не может содержаться в качестве поля - рекурсивные определения запрещены!
Но можно использовать поля - указатели на структуры такого же типа или другого (об этом позже).
№18 слайд![Пример Пример struct student](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img17.jpg)
Содержание слайда: Пример:
Пример:
struct student {
char name[20];
char sex;
int age;
float mark;
};
struct student x, y, *z;
x.age = 19;
scanf (“%s”, x.name);
z = &x;
printf (“age = %d\n”, x.age);
printf (“age = %d\n”, (*z).age);
printf (“age = %d\n”, z->age);
№19 слайд![Объединения позволяют](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img18.jpg)
Содержание слайда: Объединения
позволяют определять один и тот же участок памяти для
хранения нескольких типов данных. При этом память – для
максимального типа.
Это тип данных, который очень похож на структуру. Только
все данные объединения занимают одну и ту же область в
памяти.
union rec {
int a;
float b;
struct student st;
} x,y,*a;
x.a = 5;
x.st.age = 19;
№20 слайд![Операции присваивать](/documents_6/1af28a26a5e1fc44cacbe113f6a0153c/img19.jpg)
Содержание слайда: Операции
присваивать объединения друг другу (x=y);
брать адрес (a=&x);
доступ к элементам так же как и в структурах: через (.) или (->)
Объединение ( union ) можно инициализировать только одним значением, причем оно должно соответствовать первому элементу этого объединения.
Например, union rec A = {34};