КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Абстрактний тип даних. 2
Абстрактний тип даних. 1 Приклад використання посилання
void swap(int &a, int &b) { int nTemp; nTemp = a; a = b; b = nTemp; } main() { int nJ; int nI; nJ = 10; nI = 20; swap (nI, nJ); } Змінені значення формальних параметрів впливають на значення фактичних (результати повертаються з підпрограми через параметри) Приклад використання посилання і не типізованої вказівної змінної void swap (void* &a, void* &b) { void *ptemp; ptemp = a; a = b; b = ptemp; } main() { int *pnI; int *pnJ; pnI = new int; pnJ = new int; *pnI = 10; *pnJ = 20; swap (pnI, pnJ); delete pnI; delete pnJ; } Приклад формального параметру індексованого типу.
const SIZE_MAS1 = 6; const SIZE_MAS2 = 7;
void init(int nAr[][SIZE_MAS2], int size1, int size2) { int i, j; for (i = 0; i < size1; i = i + 1) { for (j = 0; j < size2; j = j + 1) { nAr[i][j] = i * j; } } }
int add(int nAr[] [SIZE_MAS2], int size1, int size2) { int sum = 0; int i, j; for (i = 0; i < size1; i = i + 1) { for (j = 0; j < size2; j = j + 1) { sum = sum + nAr[i][j]; } } return sum; }
void main() { int mas [SIZE_MAS1][SIZE_MAS2]; init(mas, SIZE_MAS1, SIZE_MAS2); int sum; sum = add(mas, SIZE_MAS1, SIZE_MAS2); }
Приклад використання статичної змінної у підпрограмі.
int sum(int x) { static int nS; nS = nS + x; return nS; } main() { while (sum(1) < 10); }
program ty; const CountRow = 5; const CountColumn = 6; type ar = array [1.. CountRow,1.. CountColumn] of real;
function Avg(simpl: ar; sizeRow: integer): real; var nCount: integer; lSum: real; begin lSum:=0.0; for nCount:= 1 to sizeRow do begin simpl[nCount, 1]:= nCount + 100; lSum:= lSum + simpl[nCount, 1]; end; Avg:= lSum/ sizeRow; end;
var mas: ar; i: real; Begin i:= Avg (mas, CountRow); End.
Абстрактний тип даних (abstract data type) – це визначуваний тип, що потребує опису не тільки множини значень, але й множини операцій.
Класифікація абстрактних типів даних:
В основі абстрактних типів даних лежать структури даних. Абстрактний тип даних, як і будь-який інший тип даних мови програмування, використовується для опису об'єктів програми. Стан абстрактного типу даних, це його значення в деякий момент часу виконання програми. Як правило, значення абстрактного типу даних є складеним, тому стан об'єкта абстрактного типу даних – це множина поточних значень об'єкта – компонентів мультизначення. Операції абстрактних типів даних Усі операції зі значеннями об'єктів, описаних абстрактними типами даних, належать до одного з таких трьох типів: конструктори - змінюють стан об'єкта (наприклад, записати в, прочитати з); селектори - оцінюють стан об'єкту (наприклад, чи порожнє значення структури даних, або повне; яка довжина значення, що в голові значення, а, що у хвості, якщо це список; якщо, наприклад, це черга - що у вершині? ітератори – «розглядають» (досліджують) стан об'єкта (наприклад, повертають, значення всіх компонентів послідовне одне за одним без зміни стану об'єкта).
Дата добавления: 2014-01-04; Просмотров: 1323; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |