Використання функцій при розробці програм



 

Мета роботи

 

На навчитися застосовувати практиці апарат функцій у мові С++.

 

 

Методичні вказівки по організації самостійної роботи студентів

 

Елементарною одиницею програми мовою C++ є функція. Функція призначена для рішення визначеної задачі різного ступеня складності. Функції, що призначені для рішення складних задач, можуть у свою чергу містити звертання до довільному числа функцій, призначених для рішення менш складних задач. Таким чином, рішення задачі мовою C++ припускає її функціональну декомпозицію, коли функції більш високого рівня забезпечують даними і сприймають результат функцій більш низького рівня [1–7, конспект лекцій].

Використовуючи функції, варто розрізняти три поняття – визначення функції (опис дій, що виконуються функцією — вихідний код), оголошення функції (завдання форми звертання до функції —прототип) і виклик функції.

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

У мові C++ визначено декілька способів передачі параметрів функції й одержання результатів обчислення функції. Існує чотири базових способи передачі параметрів функції: виклик функції з передачею значень; виклик функції з передачею адрес перемінних; виклик функції з використанням механізму посилань при передачі параметрів; за допомогою глобальних параметрів. Але не кожний з цих способів забезпечує повернення змінених параметрів в основну функцію (програму).

 

Функція може бути параметром іншої функції. Можна організувати вбудовану функцію за схемою

 

inline void myPrint(void) { cout << " Text" << endl; } ,

 

що значно скорочує час виконання програми. Мова С++ дозволяє перевантаження функцій — виклик функцій з однаковим ім’ям, але з різними типами фактичних параметрів. Для цього вказується окремий прототип та опис кожного списку параметрів.  

 

Приклад 5

Створити функцію сортування в одновимірному масиві від’ємних елементів на своїх місцях.

 

#include <iostream>

using namespace std;

// Функція сортування

void SortArr(int *mas, int n)

{

int i,j,xmin,imin;

for(j=0;j<n-1;j++)

{

   int currentNeg,prevNeg;

   int i =0;

   while (mas[i]>=0&& i<n) ++i;

   currentNeg=i++;

   for (; i<n;++i)

   {

       prevNeg = currentNeg;

       //Пошук сусідніх від ємних елементів

       while (mas[i]>=0&& i<n) ++i;

       currentNeg=i;

       if ( currentNeg<n && prevNeg<n

           && mas[currentNeg] > mas[prevNeg]

           )

       {

           int c = mas[currentNeg];

           mas[currentNeg] = mas[prevNeg];

           mas[prevNeg] = c;

       }

   }

}

}

 

// Головна функція

int main()

{

const int n=7;

int i, mas[n];

int s=0;

cout<<"\n input 7 members of massiv \n";

for (i=0;i<n;++i)

   cin>>mas[i];

cout<<"Your members:\n";

for(i=0;i<n;i++)

   cout <<mas[i]<<' ';

cout <<"\n";

SortArr(mas,n);

cout<<" Result:massiv"<<"\n";

for(i=0;i<n;i++)

   cout <<mas[i]<<' ';

cout <<"\n";

cin.get();

cin.get();

return(0);

}

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

 

1. Для чого потрібен прототип функцій?

2. Як запрограмувати функції зі змінною кількістю параметрів?

3. Як правильно працювати з даними всередині функцій?

4.  Застосування функцій – покажчиків.

5. Організація роботи з масивами у функціях.

Варіанти індивідуальних завдань

 

1. Створити функцію знаходження мінімального елемента квадратної матриці і сортування ії головної діагоналі.

    2. Розробити функцію, яка знаходить одинакові елементи у двох масивах та використати її для обробки рядків матриці.

3. Розробити функцію, що знаходить оптимуми математичної функції, заданої на деякому інтервалі.

4. Для заданих m та n знайти число сполучень та перестановок, скориставшись функцією обчислення факторіалу числа.

5. Розробити функцію для обчислення середнього арифметичного та середнього геометричного масива чисел.

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

7. Створити функцію, яка вставляє задане число у відсортований масив будь-яку кількість разів.

8. Розробити функцію, яка для довільної матриці знаходить мінімуми в рядках, а серед них – максимум.

9. Перевірити, чи є задана матриця ортогональною, тобто скалярні добутки кожного рядка на інший дорівнюють 0.

10. Написати функцію, яка в залежності від заданої ознаки проводить сортування масива по зростанню або по зменшенню.

11. Створити функцію сортування другого рядка матриці і знаходження ії максимального елемента.

12. Написати функцію, що розраховує відсотки по вкладу в залежності від виду та розміру вкладу.

13. Створити функцію знаходження суми додатних елементів квадратної матриці і сортування головної діагоналі.

14. Знайти шість найменших елементів масиву, користуючись функцією сортування елементів.

15. Створити функцію знаходження суми діагоналей квадратної матриці і сортування ії першого стовпця.

16. Створити функцію знаходження суми елементів, що розташовані над головною діагоналлю квадратної матриці, і в тому випадку, коли ця сума парна, обнулити головну діагональ.

17. Створити функцію, що визначає номери елементів, які зустрічаються у масиві тільки один раз.

18. Створити функцію , яка у масиві обнуляє елементи, що знаходяться між максимумом та мінімумом.

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

20. Провести злиття відсортованих по зростанню масивів, розробивши відповідну функцію.

21. Створити функцію, яка сортує елементи матриці за зростанням для кожного стовпця і знаходить мінімальний елемент.

22. Створити функцію знаходження суми елементів квадратної матриці і сортування іїголовної діагоналі.

23. Скориставшись функцією сортування масиву, відсортувати рядки матриці.

24. Створити функцію знаходження добутку трикутної матриці, що знаходиться нижче головної діагоналі у квадратній матриці, та сортування ії другого стовпця.

25. Створити функцію, яка сортує елементи масива до максимального елемента.

26. Написати функцію, яка в масиві робить перетворення – спочатку записує додатні, а потім – від’ємні елементи, не змінюючи їх порядку слідування.

27. Розробити функцію, яка сортує тільки додатні елементи масиву на своїх місцях.

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

.29. Розробити функцію знаходження суми від'ємних елементів одновимірного масиву та сортування масиву за зростанням.

30. Розробити функцію , що знаходить максимальний і мінімальний елементи, їх номери у одновимірному масиві та міняє ці елементи місцями.

 


Дата добавления: 2018-04-15; просмотров: 691; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!