🗊Презентация Типи даних, що визначає програміст

Нажмите для полного просмотра!
Типи даних, що визначає програміст, слайд №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

Содержание

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

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


Слайд 1





Типи даних, 
що визначає програміст
Описание слайда:
Типи даних, що визначає програміст

Слайд 2





Типи даних,
що визначає програміст
У реальних задачах інформація, що потребує обробки, може мати досить складну структуру. Для її представлення використовують типи даних побудовані на основі простих типів даних, масивів, покажчиків.
Мова С++ дозволяє програмісту визначати свої типи даних та правила роботи з ними. Історично для основних таких типів склалися свої власні назви, але їх можна об`єднати під назвою типів, що визначає програміст.
Описание слайда:
Типи даних, що визначає програміст У реальних задачах інформація, що потребує обробки, може мати досить складну структуру. Для її представлення використовують типи даних побудовані на основі простих типів даних, масивів, покажчиків. Мова С++ дозволяє програмісту визначати свої типи даних та правила роботи з ними. Історично для основних таких типів склалися свої власні назви, але їх можна об`єднати під назвою типів, що визначає програміст.

Слайд 3





Структури
Структури (записи) – гнучкий структурований тип даних, що дозволяє поєднувати в єдине ціле елементи різних типів.
Структури – використовують для адекватного представлення реальних об`єктів, де елементи (поля) визначають різні характеристики об`єктів.
Використання:
таблиці із різнотипною складноструктурованою інформацією;
файли, бази даних;
динамічні структури даних;
…
Описание слайда:
Структури Структури (записи) – гнучкий структурований тип даних, що дозволяє поєднувати в єдине ціле елементи різних типів. Структури – використовують для адекватного представлення реальних об`єктів, де елементи (поля) визначають різні характеристики об`єктів. Використання: таблиці із різнотипною складноструктурованою інформацією; файли, бази даних; динамічні структури даних; …

Слайд 4





Структури
struct [ім`я типу] {
	<тип_1> <елемент_1>;
	<тип_2> <елемент_2>; 
	... 
	<тип_N> <елемент_N>;
} [<список змінних>];
Елементи структури називають полями.
Типи полів можуть бути різними, але не функціональними (не типами функцій та покажчиків на них), а також не типом самої структури (але може бути покажчиком на нього).
Розмір пам`яті не обов`язково дорівнює сумі розмірів полів (за рахунок вирівнювання на границі слова).
Описание слайда:
Структури struct [ім`я типу] { <тип_1> <елемент_1>; <тип_2> <елемент_2>; ... <тип_N> <елемент_N>; } [<список змінних>]; Елементи структури називають полями. Типи полів можуть бути різними, але не функціональними (не типами функцій та покажчиків на них), а також не типом самої структури (але може бути покажчиком на нього). Розмір пам`яті не обов`язково дорівнює сумі розмірів полів (за рахунок вирівнювання на границі слова).

Слайд 5





Приклади
struct date {
  int day;
  int month;
  int year;
};
date dt_brt[10], *pdt;
struct {
float x, y;
} position;
//struct position tk1, tk2;
Описание слайда:
Приклади struct date { int day; int month; int year; }; date dt_brt[10], *pdt; struct { float x, y; } position; //struct position tk1, tk2;

Слайд 6





Приклади ініціалізації
struct person {
 char name[20];
 date b_d;};
 person man = {"Bill", {7, 11, 1935}};
struct complex {
  float re, im;
}  compl [2][3] = {
{{1,1}, {1,2}, {1,3}},
{{2,1}, {2,2}, {2,3}}
};
Описание слайда:
Приклади ініціалізації struct person { char name[20]; date b_d;}; person man = {"Bill", {7, 11, 1935}}; struct complex { float re, im; } compl [2][3] = { {{1,1}, {1,2}, {1,3}}, {{2,1}, {2,2}, {2,3}} };

Слайд 7





Дії
Для змінних одного структурного типу – операція присвоювання (поелементне копіювання).
Структури можна передавати у функцію через параметри та повертати як значення функції.
Доступ до полів структури здійснюється операціями:
 .  (вибору) через ім`я змінної-структури;
 ->  через покажчик на структуру.
dt_brt[1].day = 15;
pdt -> month = 6;
if (pdt->year == 2012 && pdt->month == 2)  pdt->day = 29;
compl [1][2].re = 2.4;   compl [1][2].im = 5.55; 
До структур можна застосовувати операцію  &.
Описание слайда:
Дії Для змінних одного структурного типу – операція присвоювання (поелементне копіювання). Структури можна передавати у функцію через параметри та повертати як значення функції. Доступ до полів структури здійснюється операціями: . (вибору) через ім`я змінної-структури; -> через покажчик на структуру. dt_brt[1].day = 15; pdt -> month = 6; if (pdt->year == 2012 && pdt->month == 2) pdt->day = 29; compl [1][2].re = 2.4; compl [1][2].im = 5.55; До структур можна застосовувати операцію &.

Слайд 8





Приклад
struct complex {
  float re, im;
};
complex add_complex (complex c1, complex c2){
 complex c3 = c1;
 c3.re += c2.re;
 c3.im += c2.im;
 return c3;
}
...
complex x, y, z;
...
z = add_complex(x, y);
cout << "z = x+y  = " << z.re << " + " << z.im << "i" << endl;
Описание слайда:
Приклад struct complex { float re, im; }; complex add_complex (complex c1, complex c2){ complex c3 = c1; c3.re += c2.re; c3.im += c2.im; return c3; } ... complex x, y, z; ... z = add_complex(x, y); cout << "z = x+y = " << z.re << " + " << z.im << "i" << endl;

Слайд 9





Структури та функції
При використанні структур в якості параметрів функцій потрібно враховувати можливості 
параметрів-значень та параметрів-посилань.
Якщо функція не змінює значення полів структури її можна передавати як параметр-значення.
Якщо функція повинна змінювати значення полів структури передавати структуру як параметр-посилання.

Приклади.
Описание слайда:
Структури та функції При використанні структур в якості параметрів функцій потрібно враховувати можливості параметрів-значень та параметрів-посилань. Якщо функція не змінює значення полів структури її можна передавати як параметр-значення. Якщо функція повинна змінювати значення полів структури передавати структуру як параметр-посилання. Приклади.

Слайд 10





Бітові поля
Особливий вид полів структури. Використовується для щільної упаковки невеликих даних. При визначенні поля вказується його розмір у бітах.
struct optins {
 bool centerX:1;
 bool centerY:1;
 unsigned int shadow:2;
 unsigned int palette:4;
} pd;
…
pd.centerX = 0; pd.centerY = 0;
pd.shadow = 3; pd.palette = 7;
Описание слайда:
Бітові поля Особливий вид полів структури. Використовується для щільної упаковки невеликих даних. При визначенні поля вказується його розмір у бітах. struct optins { bool centerX:1; bool centerY:1; unsigned int shadow:2; unsigned int palette:4; } pd; … pd.centerX = 0; pd.centerY = 0; pd.shadow = 3; pd.palette = 7;

Слайд 11





Бітові поля
Бітові поля можуть бути довільного цілого типу. Доступ здійснюється традиційним чином через ім`я поля.
 Фактично такі поля надають доступ до окремих частин байтів – бітів пам`яті.
Отримати адресу такого поля не можна. Не можна створювати масиви бітових даних.
Ім`я поля може бути відсутнім. Такі поля використовуються для вирівнювання на апаратні границі. Доступ до самого такого поля відсутній.
Дозволяють заощадити пам`ять, але слід враховувати, що операції з окремими бітами реалізуються суттєво менш ефективно ніж операції з байтами та словами. Такі програми значною мірою є машино-залежними.
Описание слайда:
Бітові поля Бітові поля можуть бути довільного цілого типу. Доступ здійснюється традиційним чином через ім`я поля. Фактично такі поля надають доступ до окремих частин байтів – бітів пам`яті. Отримати адресу такого поля не можна. Не можна створювати масиви бітових даних. Ім`я поля може бути відсутнім. Такі поля використовуються для вирівнювання на апаратні границі. Доступ до самого такого поля відсутній. Дозволяють заощадити пам`ять, але слід враховувати, що операції з окремими бітами реалізуються суттєво менш ефективно ніж операції з байтами та словами. Такі програми значною мірою є машино-залежними.

Слайд 12





Об`єднання
Змінні типу об`єднання (суміш) можуть набувати значень кількох різних типів. Можна трактувати їх як структури, всі поля яких розташовані за однією адресою, в одній спільній ділянці, достатній для збереження найбільшого за розміром поля.
Фактично вони надають можливість доступу до однієї й тієї самою ділянки пам`яті за допомогою змінних різних типів. В об`єднанні допускаються й структури з бітовими полями, що надає можливості доступу до окремих бітів ділянки. Зрозуміло що в кожен момент часу у такій змінній зберігається лише одне значення.
Відповідальність за правильність використання покладається на програміста.
Описание слайда:
Об`єднання Змінні типу об`єднання (суміш) можуть набувати значень кількох різних типів. Можна трактувати їх як структури, всі поля яких розташовані за однією адресою, в одній спільній ділянці, достатній для збереження найбільшого за розміром поля. Фактично вони надають можливість доступу до однієї й тієї самою ділянки пам`яті за допомогою змінних різних типів. В об`єднанні допускаються й структури з бітовими полями, що надає можливості доступу до окремих бітів ділянки. Зрозуміло що в кожен момент часу у такій змінній зберігається лише одне значення. Відповідальність за правильність використання покладається на програміста.

Слайд 13





Об`єднання
union onefrom {
  int int_val;
  long long_val;
  double double_val;
};
onefrom zmn;
…
zmn.int_val = 15;
cout << zmn.int_val;
…
zmn.double_val = 1.38;
cout << zmn.double_val;
Описание слайда:
Об`єднання union onefrom { int int_val; long long_val; double double_val; }; onefrom zmn; … zmn.int_val = 15; cout << zmn.int_val; … zmn.double_val = 1.38; cout << zmn.double_val;

Слайд 14





Об`єднання
struct widget { //структура реєстру
  char brand[20];
  int type;
  union id {  //залежить від типу
    long id_num;
    char id_char[20];
  } id_val;
};
...
widget prize;
...
if (prize.type == 1) cin >> prize.id_val.id_num;
else cin >> prize.id_val.id_char;
Описание слайда:
Об`єднання struct widget { //структура реєстру char brand[20]; int type; union id { //залежить від типу long id_num; char id_char[20]; } id_val; }; ... widget prize; ... if (prize.type == 1) cin >> prize.id_val.id_num; else cin >> prize.id_val.id_char;

Слайд 15





Об`єднання
struct widget { //структура реєстру
  char brand[20];
  int type;
  union {  //залежить від типу
    long id_num;
    char id_char[20];
  };
};
...
widget prize;
...
if (prize.type == 1) cin >> prize. id_num;
else cin >> prize. id_char;
Описание слайда:
Об`єднання struct widget { //структура реєстру char brand[20]; int type; union { //залежить від типу long id_num; char id_char[20]; }; }; ... widget prize; ... if (prize.type == 1) cin >> prize. id_num; else cin >> prize. id_char;

Слайд 16





Перелічення
(порядкові типи)
Спосіб створення іменованих констант, зв`язаних між собою. Сприяє наочності програмних рішень, а також забезпечує контроль з боку системи програмування за значеннями відповідних змінних.          Формат:    
enum [<ім`я_типу>] {<список_констант>} [<змінні>];
 <ім`я_типу> - визначається, якщо потрібно окремо визначати змінні цього типу. Змінні можуть приймати значення тільки з <список_констант>.
Константи з <список_констант> - цілі. Можуть бути ініціалізовані звичайним чином, або за умовчанням у першої константи значення – 0, у кожної наступної значення  –  на 1 більше ніж у попередньої.
Операції: присвоювання, порівняння. При виконанні арифметичних операцій перетворюються на цілі.
Описание слайда:
Перелічення (порядкові типи) Спосіб створення іменованих констант, зв`язаних між собою. Сприяє наочності програмних рішень, а також забезпечує контроль з боку системи програмування за значеннями відповідних змінних. Формат: enum [<ім`я_типу>] {<список_констант>} [<змінні>]; <ім`я_типу> - визначається, якщо потрібно окремо визначати змінні цього типу. Змінні можуть приймати значення тільки з <список_констант>. Константи з <список_констант> - цілі. Можуть бути ініціалізовані звичайним чином, або за умовчанням у першої константи значення – 0, у кожної наступної значення – на 1 більше ніж у попередньої. Операції: присвоювання, порівняння. При виконанні арифметичних операцій перетворюються на цілі.

Слайд 17





Перелічення. Приклади
enum spectrum {red, orange, yellow, green, blue, violet, 			    indigo, ultraviolet};
Визначили новий тип spectrum, а також іменовані константи з значеннями  0 – 7.
spectrum band; //змінна з типом spectrum 
band = blue;
band = 2000; //не припустимо
значення змінної band обмежені 8 переліченими.
int color = blue; //припустимо
band = spectrum(3); //приведення 3 до типу spectrum 
band = spectrum(40003); //невизначеність
Описание слайда:
Перелічення. Приклади enum spectrum {red, orange, yellow, green, blue, violet, indigo, ultraviolet}; Визначили новий тип spectrum, а також іменовані константи з значеннями 0 – 7. spectrum band; //змінна з типом spectrum band = blue; band = 2000; //не припустимо значення змінної band обмежені 8 переліченими. int color = blue; //припустимо band = spectrum(3); //приведення 3 до типу spectrum band = spectrum(40003); //невизначеність

Слайд 18





Перелічення. Приклади
enum Err{ERR_READ, ERR_WRITE, ERR_CONVERT};
Err error;
...
switch (error) {
  case ERR_READ:  /* оператори */ break;
  case ERR_WRITE:  /* оператори */ break;
  case ERR_CONVER:  /* оператори */ break;
};
enum {two = 2, three, ten = 10, eleven, fifty = ten + 40};
enum {zero, null = 0, one, numero_uno = 1};
//імена констант різні, значення можуть співпадати
Описание слайда:
Перелічення. Приклади enum Err{ERR_READ, ERR_WRITE, ERR_CONVERT}; Err error; ... switch (error) { case ERR_READ: /* оператори */ break; case ERR_WRITE: /* оператори */ break; case ERR_CONVER: /* оператори */ break; }; enum {two = 2, three, ten = 10, eleven, fifty = ten + 40}; enum {zero, null = 0, one, numero_uno = 1}; //імена констант різні, значення можуть співпадати

Слайд 19





Приклади
enum paytype {CARD, CHECK};
paytype ptype;
union payment {
  char card[25];
  long check;
} info;
... //отримання значень info та ptype
switch (ptype) {
  case CARD: cout << "Оплата карткою: " << info.card; 			break;
  case CHECK: cout << "Оплата чеком: " << info.check; 			break;
  }
...
Описание слайда:
Приклади enum paytype {CARD, CHECK}; paytype ptype; union payment { char card[25]; long check; } info; ... //отримання значень info та ptype switch (ptype) { case CARD: cout << "Оплата карткою: " << info.card; break; case CHECK: cout << "Оплата чеком: " << info.check; break; } ...

Слайд 20





Приклади
enum paytype {CARD, CHECK};
struct {
  paytype ptype;
  union {
    char card[25];
    long check;
  };
} info;
... //отримання значень info
switch (info.ptype) {
  case CARD: cout << "Оплата карткою: " << info.card; 			break;
  case CHECK: cout << "Оплата чеком: " << info.check; 			break; }    //...
Описание слайда:
Приклади enum paytype {CARD, CHECK}; struct { paytype ptype; union { char card[25]; long check; }; } info; ... //отримання значень info switch (info.ptype) { case CARD: cout << "Оплата карткою: " << info.card; break; case CHECK: cout << "Оплата чеком: " << info.check; break; } //...

Слайд 21





Визначення типів
Можна створювати додаткові імена для існуючих та нових типів.
Формат:
typedef <тип> <нове_ім`я> [<розмірність>];
Наприклад:
typedef int LENGTH;
typedef unsigned int UINT;
typedef char Msg[100];
typedef struct {
  char fio[30];
  int date, code;
  double salare;
} Worker;
Описание слайда:
Визначення типів Можна створювати додаткові імена для існуючих та нових типів. Формат: typedef <тип> <нове_ім`я> [<розмірність>]; Наприклад: typedef int LENGTH; typedef unsigned int UINT; typedef char Msg[100]; typedef struct { char fio[30]; int date, code; double salare; } Worker;

Слайд 22





Приклади
typedef int LENGTH;
typedef unsigned int UINT;
typedef char Msg[100];
typedef struct {
  char fio[30];
  int date, code;
  double salare;
} Worker;
LENGTH n, m, k;
UINT i, j;
Msg str[10];
Worker staff[100];
Описание слайда:
Приклади typedef int LENGTH; typedef unsigned int UINT; typedef char Msg[100]; typedef struct { char fio[30]; int date, code; double salare; } Worker; LENGTH n, m, k; UINT i, j; Msg str[10]; Worker staff[100];

Слайд 23





Приклади
typedef struct tnode {
  char *word;
  struct tnode *left;
  struct tnode *right;
} TREENODE, *TREEPTR;
TREEPTR talloc(){
  return ((TREEPTR) calloc(1, sizeof(TREENODE)));
}
TREEPTR p, t;
p = talloc();
Описание слайда:
Приклади typedef struct tnode { char *word; struct tnode *left; struct tnode *right; } TREENODE, *TREEPTR; TREEPTR talloc(){ return ((TREEPTR) calloc(1, sizeof(TREENODE))); } TREEPTR p, t; p = talloc();

Слайд 24





Приклади
struct  my_struct {
  int a;
  double b;
};
//або
typedef struct {
  int a;
  double b;
} my_struct;
//використання типу
my_struct *s;
s->a = 3;    //(*s.a)=3;
s->b = 4.5;  //(*s.b)=4.5;
Описание слайда:
Приклади struct my_struct { int a; double b; }; //або typedef struct { int a; double b; } my_struct; //використання типу my_struct *s; s->a = 3; //(*s.a)=3; s->b = 4.5; //(*s.b)=4.5;

Слайд 25





Підсумки
Розглянули спектр різних можливостей, що до визначення власних типів даних.
Розглянуті типи дозволяють найбільш адекватним чином представляти різноманітну внутрішньо складну інформацію, забезпечувати гнучкість, наочність та перенесення програмного забезпечення.
Окремі системи програмування можуть надавати додаткові можливості, мати певні особливості в роботі з такими даними.
Описание слайда:
Підсумки Розглянули спектр різних можливостей, що до визначення власних типів даних. Розглянуті типи дозволяють найбільш адекватним чином представляти різноманітну внутрішньо складну інформацію, забезпечувати гнучкість, наочність та перенесення програмного забезпечення. Окремі системи програмування можуть надавати додаткові можливості, мати певні особливості в роботі з такими даними.

Слайд 26





Поради
Грамотно, з розумінням використовувати розглянуті можливості для визначення потрібних типів даних.
Не зловживати “недокуметованими можливостями”, особливостями окремих систем програмування.
Описание слайда:
Поради Грамотно, з розумінням використовувати розглянуті можливості для визначення потрібних типів даних. Не зловживати “недокуметованими можливостями”, особливостями окремих систем програмування.

Слайд 27





Задачі
У послідовності дат (число, місяць, рік) знайти зимові дати.
У заданій множині точок площини знайти 2 найбільш віддалені точки.
Визначити  тип, що дозволить представляти геометричні фігури : прямокутник, коло, правильний многокутник.
N трикутників задані координатами своїх вершин. Визначити, який з них має найбільшу площу.
Описание слайда:
Задачі У послідовності дат (число, місяць, рік) знайти зимові дати. У заданій множині точок площини знайти 2 найбільш віддалені точки. Визначити тип, що дозволить представляти геометричні фігури : прямокутник, коло, правильний многокутник. N трикутників задані координатами своїх вершин. Визначити, який з них має найбільшу площу.

Слайд 28





Задачі
Написати логічну функцію Equally(a,b) , що порівнює два раціональних числа.
Написати функцію для скорочення раціональної дробі.
Написати функцію для додавання раціональних дробів.
Написати функцію Rmax(x, m) , що присвоює параметру m найбільше з раціональних чисел масиву x.
Є координати вершин трикутника та координати деякої внутрішньої точки. Знайти відстань від даної точки до найближчої сторони трикутника.
Описание слайда:
Задачі Написати логічну функцію Equally(a,b) , що порівнює два раціональних числа. Написати функцію для скорочення раціональної дробі. Написати функцію для додавання раціональних дробів. Написати функцію Rmax(x, m) , що присвоює параметру m найбільше з раціональних чисел масиву x. Є координати вершин трикутника та координати деякої внутрішньої точки. Знайти відстань від даної точки до найближчої сторони трикутника.



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