🗊 Презентация Адресная арифметика. «Структурные» типы данных

Категория: Образование
Нажмите для полного просмотра!
Адресная арифметика. «Структурные» типы данных, слайд №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 Адресная арифметика. «Структурные» типы данных, слайд №27 Адресная арифметика. «Структурные» типы данных, слайд №28 Адресная арифметика. «Структурные» типы данных, слайд №29 Адресная арифметика. «Структурные» типы данных, слайд №30

Содержание

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

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


Слайд 1


Глава 2. Адресная арифметика. «Структурные» типы данных МГТУ им. Н.Э. Баумана Факультет Информатика и системы управления Кафедра Компьютерные системы...
Описание слайда:
Глава 2. Адресная арифметика. «Структурные» типы данных МГТУ им. Н.Э. Баумана Факультет Информатика и системы управления Кафедра Компьютерные системы и сети Лектор: д.т.н., проф. Иванова Галина Сергеевна

Слайд 2


2.1 Указатели Формат: [][][] []*[=];
Описание слайда:
2.1 Указатели Формат: [][][] []*[=];

Слайд 3


Операции над указателями 1. Присваивание Примеры: int a,*ptri,*ptrj; void *b; 1) ptri=&a; 2) ptri=NULL; 3) ptri=ptrj; 4) b=&a; 5) ptri=b;  ptri=(int...
Описание слайда:
Операции над указателями 1. Присваивание Примеры: int a,*ptri,*ptrj; void *b; 1) ptri=&a; 2) ptri=NULL; 3) ptri=ptrj; 4) b=&a; 5) ptri=b;  ptri=(int *) b;

Слайд 4


Основное правило адресной арифметики + n  + n*sizeof() Пример: short a, *ptrs =&a; 1) ptrs++; 2) ptrs+=4; 3) *(ptrs+2)=2;
Описание слайда:
Основное правило адресной арифметики + n  + n*sizeof() Пример: short a, *ptrs =&a; 1) ptrs++; 2) ptrs+=4; 3) *(ptrs+2)=2;

Слайд 5


Ссылки int a, // переменная *ptri=&a, // указатель &b=a; // ссылка … a=3;  *ptri=3;  b=3;
Описание слайда:
Ссылки int a, // переменная *ptri=&a, // указатель &b=a; // ссылка … a=3;  *ptri=3;  b=3;

Слайд 6


2.2 Управление динамической памятью (С) 1. Размещение в памяти одного значения Выделение памяти void * malloc(size_t size); Освобождение памяти void...
Описание слайда:
2.2 Управление динамической памятью (С) 1. Размещение в памяти одного значения Выделение памяти void * malloc(size_t size); Освобождение памяти void free(void *block); Пример: int *a; if ((a = (int *) malloc(sizeof(int))) == NULL){ printf("Not enough memory."); exit(1); } *a=-244; free(a);

Слайд 7


Управление динамической памятью (С) 2. Размещение нескольких значений Выделение памяти void * сalloc(size_t n, size_t size); Освобождение памяти void...
Описание слайда:
Управление динамической памятью (С) 2. Размещение нескольких значений Выделение памяти void * сalloc(size_t n, size_t size); Освобождение памяти void free(void *block); Пример: int *list; list = (int *) calloc(3,sizeof(int)); *list=-244; *(list+1)=15; *(list+2)=-45; … free(list);

Слайд 8


Управление динамической памятью в С++ 1. Одно значение Операция выделения памяти =new[()]; Операция освобождения памяти delete ; Примеры: а) int *k;...
Описание слайда:
Управление динамической памятью в С++ 1. Одно значение Операция выделения памяти =new[()]; Операция освобождения памяти delete ; Примеры: а) int *k; k = new int; *k = 85; б) int *a; if ((a = new int(-244)) == NULL){ printf("Not enough memory."); exit(1); } delete a;

Слайд 9


Управление динамической памятью в С++ (2) 2. Несколько значений Операция выделения памяти для n значений: =new[]; Операция освобождения памяти:...
Описание слайда:
Управление динамической памятью в С++ (2) 2. Несколько значений Операция выделения памяти для n значений: =new[]; Операция освобождения памяти: delete [ ] ; Пример: int *list; list = new int [3]; *list=-244; *(list+1)=15; *(list+2)=-45; delete[ ] list;

Слайд 10


2.3 Массивы Объявление массива: [] [] ...[= {}]; Примеры: 1) int a[4][5]; 2) short x[3][4] ={{9,6,-56,0}, {10,3,-4,78}, {-6,8,45,7}}; Примечания: 1)...
Описание слайда:
2.3 Массивы Объявление массива: [] [] ...[= {}]; Примеры: 1) int a[4][5]; 2) short x[3][4] ={{9,6,-56,0}, {10,3,-4,78}, {-6,8,45,7}}; Примечания: 1) индексы массива всегда начинаются с 0; 2) многомерные массивы в памяти расположены построчно; 3) для адресации элементов массива независимо от способа описания можно использовать адресную арифметику: (list+i)  &(list[i]) *(list+i)  list[i]

Слайд 11


Пример программы обработки массива (Ex2_01) #include "stdafx.h" #include #include #define N 5 void main(int argc, char* argv[]) { int...
Описание слайда:
Пример программы обработки массива (Ex2_01) #include "stdafx.h" #include #include #define N 5 void main(int argc, char* argv[]) { int a[N][N],i,j,s[N]; for(i=0; i

Слайд 12


Многоуровневые ссылки (Ex2_02) int m[]={1,2,3,4}; int *mp[]={m+3,m+2,m+1,m};
Описание слайда:
Многоуровневые ссылки (Ex2_02) int m[]={1,2,3,4}; int *mp[]={m+3,m+2,m+1,m};

Слайд 13


2.4 Строки Строка Паскаля Строка С (С++)
Описание слайда:
2.4 Строки Строка Паскаля Строка С (С++)

Слайд 14


Объявление строки Объявление строки char [] [= ]; Объявление указателя на строку char *[= ]; Примеры: а) char str[6]; б) char *ptrstr; ptrstr=new...
Описание слайда:
Объявление строки Объявление строки char [] [= ]; Объявление указателя на строку char *[= ]; Примеры: а) char str[6]; б) char *ptrstr; ptrstr=new char[6]; в) char str1[5] = {‘A’,’B’,’C’,’D’,’\0’}; г) char str1[ ] = “ABCD”; д) char *str2 = “ABCD”;

Слайд 15


Объявление и инициализация массивов строк Массив указателей на строки char * [] [= ]; Массив строк указанной длины char [][Размер 2] [= ]; Примеры:...
Описание слайда:
Объявление и инициализация массивов строк Массив указателей на строки char * [] [= ]; Массив строк указанной длины char [][Размер 2] [= ]; Примеры: а) char * mn[4] = {“весна”, “лето”,”осень”,”зима”}; б) char ms[4][7] = {“весна”, “лето”,”осень”,”зима”};

Слайд 16


Функции, работающие со строками Библиотеки: string.h, stdlib.h 1) определение длины строки: size_t strlen(char *s); 2) конкатенация строк: char...
Описание слайда:
Функции, работающие со строками Библиотеки: string.h, stdlib.h 1) определение длины строки: size_t strlen(char *s); 2) конкатенация строк: char *strcat(char *dest,const char *src); 3) сравнение строк: int strcmp(const char *s1,const char *s2); 4) копирование строки src в dest: char *strcpy(char *dest,const char *src); 5) копирование фрагмента dest строки src: char *strncpy(char *dest,const char *src,size_t maxlen); 6) поиск символа c в строке s: сhar *strchr(const char *s, int c); 7) поиск подстроки s2 в строке s1: char *strstr(const char *s1, const char *s2); 8) поиск токенов в строке: char *strtok(char *strToken,const char *strDelimit);

Слайд 17


Функции, работающие со строками (2) 9) преобразование строки в целое число: int atoi(const char *s); 10) преобразование строки в вещественное число:...
Описание слайда:
Функции, работающие со строками (2) 9) преобразование строки в целое число: int atoi(const char *s); 10) преобразование строки в вещественное число: double atof(const char *s); 11) преобразование числа в строку: char *itoa(int value,char *s,int radix); 12) преобразование числа в строку: char *_gcvt( double value, int digits, char *buffer ); 13) преобразование числа в строку: char *_ecvt(double value,int count,int *dec, int *sign); count - количество цифр, dec,sign – позиции точки и знака 14) преобразование числа в строку: char *_fcvt(double value,int count,int *dec,int *sign); count - количество десятичных цифр

Слайд 18


Пример преобразования числа в строку #include "stdafx.h" #include #include void main( void ) { int decimal, sign; // позиция точки и знака...
Описание слайда:
Пример преобразования числа в строку #include "stdafx.h" #include #include void main( void ) { int decimal, sign; // позиция точки и знака char *buffer; int precision = 10; // точность double source = 3.1415926535; buffer =_ecvt( source, precision, &decimal, &sign ); printf ("source: %12.10f buffer: '%s' decimal: %d sign: %d\n", source, buffer, decimal, sign ); }

Слайд 19


Пример использования функции strtok (Ex2_03) #include "stdafx.h" #include #include char string[] = "A string\tof ,,tokens\nand some...
Описание слайда:
Пример использования функции strtok (Ex2_03) #include "stdafx.h" #include #include char string[] = "A string\tof ,,tokens\nand some more tokens"; char seps[] = " ,\t\n", *token; void main( void ) { token = strtok( string, seps ); while( token != NULL ) { printf( "%s ", token ); token = strtok( NULL, seps ); } } Результаты: A string of tokens and some more tokens

Слайд 20


Пример использования функций обработки строк Петров Петр Петрович 1956 => Петров П.П. 50 (Ex2_04) #include "stdafx.h" #include #include...
Описание слайда:
Пример использования функций обработки строк Петров Петр Петрович 1956 => Петров П.П. 50 (Ex2_04) #include "stdafx.h" #include #include #include #include int main(int argc, char* argv[]) { char st[80],stres[80],strab[80], *ptr1,*ptr2,*ptr3; int old; while ((puts("Input string or Ctrl_Z:"), gets(st))!=NULL) { strcpy(stres,st); ptr1=strchr(stres,' '); *(ptr1+2)='.';

Слайд 21


Пример использования функций обработки строк (2) ptr2=strchr(st,' '); ptr2=strchr(ptr2+1,' '); strncpy(ptr1+3,ptr2+1,1); strncpy(ptr1+4,"....
Описание слайда:
Пример использования функций обработки строк (2) ptr2=strchr(st,' '); ptr2=strchr(ptr2+1,' '); strncpy(ptr1+3,ptr2+1,1); strncpy(ptr1+4,". \0",3); ptr3=strchr(ptr2+1,' '); old=2006-atoi(ptr3+1); strcat(stres,itoa(old,strab,10)); puts(stres); } getch(); return 0; }

Слайд 22


2.5 Структуры 1. Объявление (Си) struct [] {} []]; Примеры: а) struct student { char name[22]; char family[22]; int old; }; struct student...
Описание слайда:
2.5 Структуры 1. Объявление (Си) struct [] {} []]; Примеры: а) struct student { char name[22]; char family[22]; int old; }; struct student stud1={“Петр”, “Петров”, 19}, stud[10], *ptrstud; б) struct { char name[22]; char family[22]; int old; } stud1, stud[10], *ptrstud; 2. Объявление (С++) typedef struct {} ; ; Пример: typedef struct { char name[22]; char family[22]; int old; } student; struct student stud1={“Петр”, “Петров”, 19}, stud[10], *ptrstud;

Слайд 23


Обращение к полям структуры . []. (*). или -> Примеры: stud1.name stud[i].name (*ptrstud).name  ptrstud -> name
Описание слайда:
Обращение к полям структуры . []. (*). или -> Примеры: stud1.name stud[i].name (*ptrstud).name  ptrstud -> name

Слайд 24


Пример использования структуры (Ex2_05) Программа определения среднего балла каждого студента и группы в целом #include "stdafx.h" #include...
Описание слайда:
Пример использования структуры (Ex2_05) Программа определения среднего балла каждого студента и группы в целом #include "stdafx.h" #include #include #include typedef struct { char name[10]; int ball; } test; typedef struct { char family[22]; test results[5]; }student;

Слайд 25


Пример использования структуры (2) int main(int argc, char* argv[]) {student stud[10]; int i,n=0; float avarstud,avarage=0; while (puts("Input...
Описание слайда:
Пример использования структуры (2) int main(int argc, char* argv[]) {student stud[10]; int i,n=0; float avarstud,avarage=0; while (puts("Input names, subjects and marks or end"), scanf("\n%s",stud[n].family), strcmp(stud[n].family,"end")!=0) { for (avarstud=0,i=0; i

Слайд 26


2.6 Объединения union { } []; Пример: union mem { double d; long l; int k[2]; };
Описание слайда:
2.6 Объединения union { } []; Пример: union mem { double d; long l; int k[2]; };

Слайд 27


2.7 Динамические структуры данных (Ex2_06) Пример. Стек записей. #include "stdafx.h" #include #include struct zap {char det[10]; float...
Описание слайда:
2.7 Динамические структуры данных (Ex2_06) Пример. Стек записей. #include "stdafx.h" #include #include struct zap {char det[10]; float diam; zap *p; }; int main(int argc, char* argv[]) { zap a,*r,*q,*f; r=new zap; r->p=NULL; puts("Input strings"); scanf("%s %f\n",r->det,&r->diam);

Слайд 28


Динамические структуры данных (2) while((scanf("\n%s",a.det)),strcmp(a.det,"end")!=0) { scanf("%f",&a.diam); q=r; r=new...
Описание слайда:
Динамические структуры данных (2) while((scanf("\n%s",a.det)),strcmp(a.det,"end")!=0) { scanf("%f",&a.diam); q=r; r=new zap; strcpy(r->det,a.det); r->diam=a.diam; r->p=q; }

Слайд 29


Динамические структуры данных (3) q=r; do { if(q->diamp; delete q; q=r;} else { q=q->p; delete f->p; f->p=q;} } else { f=q; q=q->p;} } while(q!=NULL);
Описание слайда:
Динамические структуры данных (3) q=r; do { if(q->diamp; delete q; q=r;} else { q=q->p; delete f->p; f->p=q;} } else { f=q; q=q->p;} } while(q!=NULL);

Слайд 30


Динамические структуры данных (4) q=r; puts("Result"); if(q==NULL) puts("No information"); else do { printf("%s...
Описание слайда:
Динамические структуры данных (4) q=r; puts("Result"); if(q==NULL) puts("No information"); else do { printf("%s %5.1f\n",q->det,q->diam); q=q->p; } while (q!=NULL); return 0; }



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