Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
R8_Зап_12.doc
Скачиваний:
4
Добавлен:
21.12.2018
Размер:
182.27 Кб
Скачать

Особливості обробки у мові c

Способи доступу до елементів структури:

змінна.поле

покажчик -> поле

Наприклад,

strcpy(stud.FIO,”Ivanov“);

stud.year =1985;

cout<<”Input FIO,year\n“);

cin>>ps->FIO>> ps->year;

Допустимі операції над структурами:

  • присвоювання (не можна порівнювати), наприклад,

TStudent stud;

TStudent stud_new = stud;

  • передача в якості параметра у функцію (за іменем, за покажчиком), наприклад,

void f1(TStudent stud_new)

void f2(TStudent *ps)

Щоб мати змогу змінити структуру, у функцiю пеpедається покажчик на неї.

  • повернення як результат з функції (тільки по покажчику), наприклад,

TStudent f1(TStudent stud_new).

З полями структур допускаються операції відповідно до їх типів.

В реальних задач, зазвичай, здійснюється обробка не окремих структур, а їх масивів:

<тип структури> <ім’я масиву>[<кількість елементів>].

Доступ до полів масиву структур аналогічний доступу до елементів цифрових і рядкових масивів. Зокрема, формат доступу за індексом елемента:

<ім'я_масиву>[<індекс>].<ім'я_поля>.

Приклад. Ввести масив структур з полями: назва книги, її автор, ціна книги. Відсортувати отриманий масив за алфавітом прізвищ авторів.

...

struct book // книга

{ char title[20];

char author[20];

}

book katalog[10]; // масив книг

void input(book[],int); // введення масиву книг

void print(book[],int); // виведення масиву книг

void sort(book[],int); // сортування масиву книг

//----------------------- головна функцiя --------------------------------------------------

int main()

{ int i=0,k,kol;

cout<<"input number of books:";

cin>>kol;

input(katalog, kol);

puts ("list of books");

print(katalog, kol);

sort(katalog, kol); // сортування книжок по автору

puts("sorted books list ");

print(katalog, kol);

getch(); }

//----------------------- введення масиву книжок -----------------------------------------

void input(book mas[ ],int n)

{ for (int j=0; j<n; j++)

{ cout<<"input titles:";

cin>>mas[j].title;

cout<<"input autor:";

cin>>mas[j].author;

}

}

//----------------------- виведення масиву книжок ----------------------------------------

void print(book mas[ ],int n)

{ for (int j=0; j<n; j++)

printf("%-22s %-22s \n",mas[j].title,mas[j].author);

}

//---------------------- сортування книжок по автору ------------------------------------

void sort (book mas[ ],int n)

{ book temp;

for (int k=0; k<n-1; k++)

for (int j=k+1; j<n; j++)

if (strcmp(mas[k].author,mas[j].author)>0)

{ temp=mas[k];

mas[k]=mas[j];

mas[j]=temp;

}

}

8

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]