Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

МВ ЛСР СП КС 2012

.pdf
Скачиваний:
26
Добавлен:
09.02.2016
Размер:
10.5 Mб
Скачать

- 78 -

- 79 -

-80 -

- 81 -

- 82 -

- 83 -

- 84 -

- 85 -

- 86 -

- 87 -

Лабораторна робота № 6

Створення функцій користувача для організації циклічних обчислювань

Мета роботи: вивчити засоби організації функцій алгоритмічною мовою C++.

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

Процес розробки програмного забезпечення передбачає поділ складної задачі на набір більш простих задач і завдань. У С++ підтримуються функції як логічні одиниці (блоки тексту програми), які служать для виконання конкретного завдання. Функції іноді ще називають підпрограмами. Підпрограми вирішують невелику і специфічну частину загальної задачі. На відміну від інших мов програмування високого рівня, в мові С++ немає поділу на підпрограми-процедури та підпрограми-функції.

Функція - це сукупність оголошень і операторів, звичайно призначених для вирішення певної задачі. Кожна функція повинна мати ім’я. яке використовується для її оголошення, визначення і виклику.

При виклику функції їй за допомогою аргументів (формальних параметрів) можуть бути передані деякі значення (фактичні параметри), які використовуються під час виконання функції. Функція може повертати деяке (одне!) значення. Це повернене значення і є результат виконання функції, який при виконанні програми підставляється в точку виклику функції, де б цей виклик ні зустрівся. Допускається також використовувати функцій, які не мають аргументів, і функцій, що не повертають жодних значень. Дія таких функцій може полягати, наприклад, в зміні значень деяких змінних.

Задача 1 Обчислити суму знакозмінного ряду . Обчислення організуємо у функції:

- 88 -

- 89 -

Текст функції та її виклик в основній програмі:

Задача 2 Обчислити суму ряду , складаючи члени ряду, значення котрих по модулю більше заданої точності ε = 10-4.

Значення x (-2 < x < 2) вводити з клавіатури.

Організуємо рішення таким чином, щоб в головній програмі були прописані оператори введення/виведення даних, а всі обчислення по виконанню завдання винесемо у функції.

Задача 3 Обчислити суму рядутрьома варіантами, використовуючи різні оператори циклу.

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

- 90 -

Блок-схеми функцій:

a – zikl_for; б – zikl_while; в – zikl_do

Блок-схеми з викликом функцій для кнопок: a – For; б – while; в – do_while

- 91 -

Тексти функцій та їх виклик в основній програмі:

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

1

Вкажіть кількість результатів, які може безпосередньо повертати

функція.

2

Яке значення результату виконання функції за умовчанням?

3

Які вимоги висуваються до розташування, типу і кількості формальних

параметрів в описі функції і фактичних параметрів при виклику функції? Вибрати вірні відповіді:

а) тип і порядок розташування вільний; б) суворе дотримання типу і порядку розташування;

в) кількість фактичних і формальних параметрів має бути однаковим; г) кількість фактичних і формальних параметрів може відрізнятися.

4 Складіть два приклади функцій (з використанням рекурсії і без неї) для обчислення факторіала деякого числа N.

Лабораторне завдання

1

Дати відповіді на контрольні запитання.

2

Скласти схеми алгоритмів, розробити проект форми і програми для

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

3 Оформити протокол лабораторної роботи і записати результати роботи проекту програми.

- 92 -

- 93 -

Лабораторна робота № 7

Обробка одномірних масивів

Мета роботи: вивчити засоби обробки одномірних масивів в C++.

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

Масив (array) в програмуванні - це впорядкована сукупність однотипних елементів. Масиви широко використовують для збереження і обробки однорідної інформації, наприклад таблиць, векторів, матриць, коефіцієнтів рівнянь та ін.

Одновимірний масив оголошується в програмі таким чином:

тип_даних ім’я_масиву [розмір_масиву];

Ім’я_масиву - це ідентифікатор масиву. Тип_даних задає тип елементів оголошуємого масиву. Розмір_масиву в квадратних дужках задає кількість елементів масиву. На відміну від мови Pascal, в С++ не перевіряється вихід за межі масиву, тому, щоб уникнути помилок в програмі, треба стежити за розмірами описаних масивів.

Кожен елемент масиву однозначно визначається ім'ям та індексами. Індекси визначають розташування елемента в масиві. Наприклад: int А[10]; оголошує масив з ім'ям А, що містить 10 цілих чисел. А[0] - значення першого елемента, А[1] - другого, А[9] - останнього.

Кількість індексів визначає розмірність масиву. Наприклад, вектори в програмах-це одномірні масиви, матриці - двовимірні.

При оголошенні масивів можна елементам масиву (необов'язково всім ) привласнювати початкові значення, які в подальшому в програмі можуть бути змінені. Якщо кількість ініціалізуємих значень менше, ніж розмірність масиву, то всім іншим елементам масиву привласнюється значення 0.

Наприклад:

В останньому прикладі ініціалізується SS як масив символів з чотирьох елементів. Четвертим елементом є символ " \0", який завершує вcі символьні масиви (рядки) в С++. Якщо рядок коротше, ніж специфікований розмір масиву, то інші елементи масиву ініціалізуються нулем (символом "\0").

Задача 1 Розробити схему алгоритму і проект програми для введення елементів одновимірного масиву з 10 дійсних елементів і обчислення добутку всіх ненульових елементів масиву.

- 94 -

Задача 2 Скласти схему алгоритму та проект програми для введення елементів одномірного масиву з 7-ми цілих чисел, визначення мінімального елемента та його порядкового номера.

Задача 3 Розробити схему алгоритму та проект програми для введення 11ти (або менше) цілих чисел з компонента Memo та відсортувати їх за зростанням.

Значення елементів перетвореного масиву в якості передаваємого результату вказувати не треба. Оскільки масив передається за посиланням, то будь-які зміни в функції одразу відображуються і у викликаючій програмі.

- 95 -

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

1Що називається масивом в програмуванні?

2Що є індексом масиву? Змінні яких типів можна використовувати для

індексів? Як позначаються індекси масиву?

3 Які з наведених нижче описів одновимірного масиву з 10 елементів помилкові?

a) int А [1..10]; б) float А[10]; в) int А[9]; г) float А[0,9];

4Запишіть оголошення одновимірного масиву з 25-тн дійсних чисел.

5Запишіть оголошення одновимірного констант-маснву з послідовності

символів Вашого прізвища

6 Які компоненти форми проекту в С++ Builder для виведення значень одновимірних масивів Ви знаєте?

7 Які компоненти форми проекту в С++ Builder для введення значень одновимірних масивів Ви знаєте?

8 Запишіть оператори виведення масиву з 17-тн дійсних чисел в п'ять різних компонентів.

Лабораторне завдання

1Дати відповіді на контрольні запитання.

2Скласти схеми алгоритмів, розробити проект форми і програми в С++

Builder для виконання індивідуального завдання з таблиць 7.1 ... 7.3 згідно з номером прізвища студента в списку групи. У проекті передбачити введення елементів масиву з клавіатури через компонент Memo і виведення отриманих

- 96 -

результатів на форму в компоненти Edit, Memo, ListBox або Label (за вказівкою викладача).

3 Оформити протокол лабораторної роботи і записати результати роботи програми.

Таблиця 7.1 - Індивідуальні завдання середнього рівня складності

Розмір

Тип

Індивідуальне завдання

вар.

масиву

даних

 

1

15

цілий

Обчислити суму парних елементів масиву

 

 

 

 

2

10

дійсн.

Обчислити середнє арифметичне всіх елементів масиву

 

 

 

 

3

8

цілий

Обчислити факторіал значення останнього елемента масиву

 

 

 

 

4

12

дійсн.

Обчислити добуток елементів, значення яких менше 6 -ти

5

14

цілий

Обчислити середнє арифметичне парних елементів масиву

6

18

дійсн.

Упорядкувати за зростанням масив

7

11

цілий

Розташувати елементи масиву в зворотному порядку

8

14

дійсн.

Масив містить позитивні і негативні елементи. Розташувати

 

 

 

елементи масиву в порядку зростання значень їх модулів

9

16

цілий

Обчислити суму елементів масиву, значення яких можна поділити

 

 

 

на два без залишку

10

14

дійсн.

Обчислити суму елементів, абс. значення яких не перевищує 1.5

11

17

цілий

Обчислити напівсуму мінім. та макс. елементів масиву

12

9

дійсн.

Вивести кількість елементів, значення яких більше значення

 

 

 

першого елемента масиву

13

15

цілий

Обчислити індекси мінім. та макс. елементів масиву

14

10

дійсн.

Обчислити суму тих елементів масиву, значення яких належать

 

 

 

проміжку [3,6]

15

8

цілий

Обчислити добуток непарних елементів масиву

16

12

дійсн.

Обчислити добуток мінім. та макс. елементів масиву

 

 

 

 

17

20

цілий

Упорядкувати за спаданням масив

 

 

 

 

18

18

дійсн.

Обчислити середнє арифметичне позитивних елементів

 

 

 

 

19

11

цілий

Обчислити кількість елементів, значення яких менше значення

 

 

 

останнього елемента масиву

20

9

дійсн.

Обчислити різницю між добутком всіх позитивних елементів і

 

 

 

сумою модулів всіх негативних

21

16

цілий

Обчислити середнє арифметичне непарних елементів масиву

22

19

 

Обчислити суму мінімального елемента і його індексу

23

17

цілий

Обчислити кількість позитивних, негативних та нульових

 

 

 

елементів

24

8

дійсн.

Обчислити добуток елементів, значення яких менше значення

 

 

 

останнього елемента

25

7

цілий

Обчислити добуток позитивних елементів, які не перевищують

 

 

 

число 4

26

18

дійсн.

Обчислити суму мінімального та максимального елементів масиву

27

11

цілий

Обчислити суму від'ємних елементів масиву

28

10

дійсн.

Обчислити суму квадратів тих чисел, модуль яких більше

 

 

 

значення 2.5

29

12

цілий

Обчислити суму модулів всіх негативних елементів масиву

30

9

дійсн.

Обчислити добуток тих елементів масиву, значення яких належать

 

 

 

проміжку [2, 5]

- 97 -