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

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Адресная арифметика. «Структурные» типы данных абсолютно бесплатно. Урок-презентация на эту тему содержит всего 30 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Образование » Адресная арифметика. «Структурные» типы данных



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    30 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    425.00 kB
  • Просмотров:
    80
  • Скачиваний:
    0
  • Автор:
    неизвестен



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

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

№2 слайд
. Указатели Формат lt
Содержание слайда: 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 *) b;

№4 слайд
Основное правило адресной
Содержание слайда: Основное правило адресной арифметики <Указатель> + n  <Адрес> + n*sizeof(<Тип данных>) Пример: short a, *ptrs =&a; 1) ptrs++; 2) ptrs+=4; 3) *(ptrs+2)=2;

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

№6 слайд
. Управление динамической
Содержание слайда: 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 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; 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<Имя типа>[<Количество>]; Операция освобождения памяти: delete [ ] <Типизированный указатель>; Пример: int *list; list = new int [3]; *list=-244; *(list+1)=15; *(list+2)=-45; delete[ ] list;

№10 слайд
. Массивы Объявление массива
Содержание слайда: 2.3 Массивы Объявление массива: <Тип элемента> <Имя>[<Размер1>] [<Размер2>] ...[= {<Список значений >}]; Примеры: 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 <stdio.h> #include <conio.h> #define N 5 void main(int argc, char* argv[]) { int a[N][N],i,j,s[N]; for(i=0; i<N; i++){ printf("Input numbers of %2d string:\n",i); for (j=0; j<N; j++) scanf("%d",&a[i][j]); } for(i=0;i<N;i++) for (j=0,s[i]=0;j<N;j++) s[i]+=a[i][j]; for(i=0; i<N; i++){ for (j=0; j<N; j++) printf("%3d ",a[i][j]); printf("sum=%4d\n",s[i]); } getch(); }

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

№13 слайд
. Строки Строка Паскаля
Содержание слайда: 2.4 Строки Строка Паскаля Строка С (С++)

№14 слайд
Объявление строки Объявление
Содержание слайда: Объявление строки Объявление строки 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 * <Имя>[<Размер 1>] [= <Значение>]; Массив строк указанной длины char <Имя>[<Размер 1>][Размер 2] [= <Значение>]; Примеры: а) char * mn[4] = {“весна”, “лето”,”осень”,”зима”}; б) char ms[4][7] = {“весна”, “лето”,”осень”,”зима”};

№16 слайд
Функции, работающие со
Содержание слайда: Функции, работающие со строками Библиотеки: 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) преобразование строки в вещественное число: 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 <stdlib.h> #include <stdio.h> 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 <string.h> #include <stdio.h> 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 <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> 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,". \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 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

№24 слайд
Пример использования
Содержание слайда: Пример использования структуры (Ex2_05) Программа определения среднего балла каждого студента и группы в целом #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <string.h> 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 names, subjects and marks or end"), scanf("\n%s",stud[n].family), strcmp(stud[n].family,"end")!=0) { for (avarstud=0,i=0; i<3; i++) { scanf("\n%s %d",stud[n].results[i].name, &stud[n].results[i].ball); avarstud+=stud[n].results[i].ball;} printf("Average:%s=%5.2f\n", stud[n].family,avarstud/3); avarage+=avarstud; n++; } printf("Group average mark=%5.2f\n",avarage/n/3); getch(); return 0;}

№26 слайд
. Объединения union lt Имя
Содержание слайда: 2.6 Объединения union <Имя объединения> { <Список элементов объединения>} [<Список переменных [и значений]>]; Пример: union mem { double d; long l; int k[2]; };

№27 слайд
. Динамические структуры
Содержание слайда: 2.7 Динамические структуры данных (Ex2_06) Пример. Стек записей. #include "stdafx.h" #include <stdio.h> #include <string.h> 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 zap; strcpy(r->det,a.det); r->diam=a.diam; r->p=q; }

№29 слайд
Динамические структуры данных
Содержание слайда: Динамические структуры данных (3) q=r; do { if(q->diam<1) { if(q==r) { r=r->p; 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 %5.1f\n",q->det,q->diam); q=q->p; } while (q!=NULL); return 0; }

Скачать все slide презентации Адресная арифметика. «Структурные» типы данных одним архивом: