Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичні вказівки до практичних робіт.docx
Скачиваний:
32
Добавлен:
07.06.2015
Размер:
3.36 Mб
Скачать

5. Методичні вказівки

1. Формування, друк і обробку рядків оформити у вигляді функції. Рядки передавати як параметри функцій.

2. Введення / виведення рядків організувати за допомогою функцій:

• char * gets (char * s)

• int puts (char * s)

3. Для обробки рядків використовувати стандартні функції з бібліотечного файлу <string.h>

4. Функція main () повинна містити тільки опис рядків і виклики функцій для формування, друку та обробки рядків.

6. Зміст звіту

1. Постановка завдання (загальна і для конкретного варіанту).

2. Визначення функцій, використовуваних для формування, друку та обробки рядків (для кожного завдання).

3. Визначення функції main ().

4. Результати тестів.

7. Контрольні питання

  1. Як представлен рядок в С

  2. Назвіть основні функції роботи з рядками

  3. Наведіть прикладь функції модуля string

  4. Наведіть команди введення/виведення рядка

Практична робота № 16

Тема: Створення та обробка структур

1. Мета роботи:

1. Отримати практичні навички роботи з динамічними рядковими даними.

2. Отримати практичні навички роботи зі структурами.

3. Отримати практичні навички організації динамічних масивів з елементами складної структури.

2. Теоретичні відомості

2.1. Структури

Структура - це об'єднане в єдине ціле безліч пойменованих елементів даних. Елементи структури (поля) можуть бути різного типу, вони всі повинні мати різні імена.

struct Date / / визначення структури

{

int day;

int month;

int year;

};

Date birthday; / / змінна типу Date

Для змінних одного і того ж структурного типу визначена операція присвоювання. При цьому відбувається поелементне копіювання.

Доступ до елементів структур забезпечується за допомогою уточнених імен:

імя_структури.імя_елемента

/ / Присвоювання значень полях змінної birthday

birthday.day = 11; birthday.month = 3; birthday.year = 1993;

Date Data;

/ / Присвоювання значення змінної birthday змінної Data

Data = birthday;

З елементів структурного типу можна організовувати масиви також як з елементів стандартних типів.

Date mas [15]; / / масив структур

/ / Введення значень масиву

for (int i = 0; i <15; i + +)

{

cout << "\ nEnter day:"; cin >> mas [i]. day;

cout << "\ nEnter month:"; cin >> mas [i]. month;

cout << "\ nEnter year:"; cin >> mas [i]. year;

}

3. Постановка завдання

1. Сформувати динамічний масив з елементів структурного типу. Структурний тип визначений у варіанті.

2. Роздрукувати сформований масив.

3. Виконати пошук елементів у масиві, що задовольняють заданій у варіанті умові і сформувати з них новий масив.

4. Роздрукувати отриманий масив.

5. Сформувати динамічний масив, що складається з динамічних рядків.

6. Роздрукувати сформований масив.

7. Виконати обробку цього масиву.

8. Роздрукувати отриманий масив.

4 Варіанти

Завдання 16.1

Таблиця 21 – Вихідні данні для завдання 16.1

варианта

Структура

Критерій для пошуку в масиві структур

Завдання для обробки масиву рядків

1

struct person

{

char*name;

char *adres;

int age;

};

Імена починаються на лiтеру 'A'

Додати рядок із заданим номером

2

struct date

{

int day;

char*month;

int year;

};

Дати з літніми місяцями

Видалити рядок із заданим номером

3

struct student

{

char*name;

int kurs;

float rating

};

Студенти першого курсу

Додати рядок в кінець масиву

4

struct employee

{

char*name;

float salary;

int stage

};

Співробітники зі стажем більше 10 років

Видалити рядок з кінця матриці

5

struct pupil

{

char*name;

int age;

float rating

};

Учні з середнім балом більше 4

Додати рядок в початок масиву

6

struct person

{

char*name;

int age;

};

Вік більше 25 років

Видалити рядок з початку масиву

7

struct date

{

int day;

char*month;

int year;

};

Дати після 2000 року

Додати К рядків у кінець масиву

8

struct student

{

char*name;

int kurs;

float rating

};

Студенти, у яких рейтинг менше 3

Видалити К рядків з кінця матриці

9

struct employee

{

char*name;

float salary;

int stage

};

Співробітники, у яких ім'я починається на букву 'Л'

Додати К рядків в початок масиву

10

struct pupil

{

char*name;

int age;

float rating

};

Учні, у яких прізвище "Іванов"

Видалити К рядків з початку масиву

11

struct person

{

char*name;

int age;

};

Вік менше 18

Видалити рядок з номером К

12

struct date

{

int day;

char*month;

int year;

};

Дата належить першій декаді місяця

Додати рядок з номером К

13

struct student

{

char*name;

int kurs;

float rating

};

Студенти п'ятого курсу

Видалити рядки, починаючи з рядка К1 і до рядка К2

14

struct employee

{

char*name;

float salary;

int stage

};

Співробітники зі стажем менше 3 років

Додати рядка, починаючи з рядка К1 і до рядка К2

15

struct pupil

{

char*name;

int age;

float rating

};

Учні з середнім балом рівним 4.5

Видалити всі рядки, які починаються на лiтеру 'F'

16

struct person

{

char*name;

int age;

};

Імена починаються на лiтеру 'A'

Видалити всі парні рядки

17

struct date

{

int day;

char*month;

int year;

};

Дати із зимовими місяцями

Видалити всі рядки, в яких є хоча б одна цифра

18

struct student

{

char*name;

int kurs;

float rating

};

Студенти першого курсу у яких рейтинг менше 3

Видалити всі стовпці, в яких є хоча б одна буква 'A'

19

struct employee

{

char*name;

float salary;

int stage

};

Співробітники зі стажем більше 10 років і заробітною платою більше 15000

Видалити найдовшу рядок масиву

20

struct pupil

{

char*name;

int age;

float rating

};

Учні 13 років з середнім балом більше 4

Додати рядки після кожної парної рядка масиву

21

struct person

{

char*name;

int age;

};

Вік більше 25 років і прізвище починається на букву 'C'

Видалити кожну непарного рядок масиву

22

struct date

{

int day;

char*month;

int year;

};

Зимові дати після 2000 року

Додати К рядків, починаючи з рядка з номером N

23

struct student

{

char*name;

int kurs;

float rating

};

Студенти 1 та 2 курсу, у яких рейтинг менше 3

Видалити К рядків, починаючи з рядка з номером N

24

struct employee

{

char*name;

float salary;

int stage

};

Співробітники, у яких ім'я починається на букву 'Л' і заробітна плата менше 6000

Додати рядок після найдовшої рядка масиву

25

struct pupil

{

char*name;

int age;

float rating

};

Учні, у яких прізвище "Іванов" і рейтинг більше 4

Додати рядок після найкоротшої рядка масиву