Рефераты Массивы

Вернуться в Цифровые устройства

Массивы
B.I.Березін,С.Б.Березін(С.83) МАСИВИ І ПОКАЖЧИКИ
Раніше ми ввели типи даних в мові С, які називаються іноді базовими або
вбудованими. На основі цих типів даних мова С дозволяє будувати інші типи
даних і структури даних. Масив - один з найбільш простих і відомих структур
даних. Під масивом в мові С розуміють набір даних одного і того ж типу,
зібраних під одним ім'ям. Кожний елемент масиву визначається ім'ям масиву і
порядковим номером елемента, який називається індексом. Індекс в мові С
завжди ціле число.

ОГОЛОШЕННЯ МАСИВУ В ПРОГРАМІ
Основна форма оголошення масиву розмірності N така:

тип <ім'я масиву>[размер1][размер2]...[размерН]

Частіше за все використовуються одновимірні масиви:

тип <ім'я масиву> [розмір] ;
тип - базовий тип елементів масиву, розмір - кількість елементів
одновимірного масиву.
При описі двовимірного масиву оголошення має наступний вигляд:

тип <ім'я масиву> [размері][размер2];
У цьому описі можна трактувати оголошення двовимірного масиву як
оголошення масиву масивів, т. е. масив розміру [размер2], елементами якого
є одновимірні масиви <ім'я масиву>[размер1].
Розмір масиву в мові С може задаватися константою або константним
виразом. Не можна задати масив змінного розміру. Для цього існує окремий
механізм, званий динамічним виділенням пам'яті.
ОДНОВИМІРНІ МАСИВИ
У мові С індекс завжди починається з нуля. Коли ми говоримо про перший
елемент масиву, то маємо на увазі елемент з індексом 0. Еслі ми оголосили
масив

int a[100] ;
це означає, що масив містить 100 елементів від а[0] до а[99]. Для
одновимірного масиву легко підрахувати, скільки байт в пам'яті буде займати
цей масив:

кільк.байтів=<розмір базового типу>*<кільк.елементів>.
У мові С під масив завжди виділяється безперервне місце в оперативній
пам'яті.
У мові С не перевіряється вихід індексу за межі масиву. Якщо масив
а[100] описаний як цілочисельний масив, що має 100 елементів, а ви в
програмі вкажете а[200], то повідомлення про помилку не буде видане, а як
значення елемента а[200] буде видано деяке число, що займає відповідні 2
байти. Можна визначити масив будь-якого визначеного раніше типу, наприклад

unsigned arr[40], long double al[1000], char ch[80].

|/*поміняти місцями max з min*/ |// Сортування і програвання масиву |
|#include main() |#include #include |
|{ int i,j,a[10], max. nmax, min, |#'\ nclude void main() { int |
|nmin, temp; clrscr(); for (i=0; i<10;|temp, і, j, a[ 1 0]; clrscr(); for |
|i++) сіп » a[i]; max=min=a[0]; |(i=0;i<10;i++) сіп » a [ і ]; for |
|nmax=nmin=0; for (i=0; i<10; i++) |(i=0;i<9;i++) for (j=i+1 ;j<10;j++) if |
|if(a[i]>max) { max=a[i]; nmax=i;} |(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; |
|else if(a[i] |tern p= a[n m ax]; a[n max]=a[nm і |« a[i]«" "; sound(a[i]*80); delay(500);|
|n]; a[nm і n]=temp; for (i=0; i<10; |nosou nd(); } getch(); } |
|i++) cout « a[i] «" "; } | |


МАСИВИ СИМВОЛІВ. РЯДКИ
Однак масиви типу char - символьні масиви - займають в мові особливе
місце. У багатьох мовах е спеціальний тип даних - рядок символів (string).
У мові С окремого типу рядка символів немає, а реалізована робота з рядками
шляхом використання одновимірних масивів типу char. У мові С символьний
рядок - це одновимірний масив типу char, що закінчується нульовим байтом.
Нульовий байт - це байт, кожний біт якого рівний нулю. Для нульового байта
визначена спеціальна символьна константа ' \0 ' . Це потрібно враховувати
при описі відповідного масиву символів. Так, якщо рядок повинен містити N
символів, то в описі масиву потрібно указати N+1 елемент.
Наприклад, опис

char str[11] ;
передбачає, що рядок містить 10 символів, а останній байт зарезервований
під нульовий байт
Добавить в Одноклассники    

 

Rambler's Top100