- •Загальні положення ...………………………………………………………….........3
- •Загальні положення
- •1 Організація введення і виведення даних та розв’язання задач з простою змінною
- •1.1 Мета роботи
- •1.2 Вказівки до організації самостійної роботи студентів
- •1.2.1 Використання операторів введення
- •#Define sp " "
- •Int main ( )
- •Int main ( )
- •Int main ( )
- •Void main ( )
- •For ( [ вир1 ]; [ вир2] ;[ вир3 ] ) оператор;,
- •Void main ( )
- •Void main ( )
- •1.5 Контрольні питання
- •1.6 Варіанти індивідуальних завдань
- •2 Розв’язання задач c використанням одновимірних і двовимірних масивів
- •2.1 Ціль роботи Прищепити студентам навички розв’язання задач з використанням одновимірних і двовимірних масивів, складних циклів і використання покажчиків.
- •2.2 Методичні рекомендації з організації самостійної роботи студентів
- •Void main( )
- •Void main ( )
- •Void main ( )
- •Void main ( )
- •2.3 Використання покажчиків
- •Наиведемо програму з використанням покажчиків:
- •Int main ( )
- •Void main ( void )
- •2.4 Використання масивів і покажчиків
- •Приклад 2.4 Обчислити середнє значення додатних елементів одновимірного масиву.
- •Int *pmas;
- •2.5 Масиви покажчиків
- •Void main( )
- •2.6 Контрольні питання
- •2.7. Варіанти індивідуальних завдань
- •3 Вирішування задач з використанням даних символьного типу
- •3.1 Ціль роботи Вивчення засобів опису символьних типів даних і використання структур для обробки даних.
- •3.2 Методичні рекомендації з організації самостійної
- •Роботи студентів
- •3.2.1 Організація символьного введення - виведення
- •Device . Get (char_var);
- •3.2.2 Рядки як символьні масиви
- •3.2.3 Введення-виведення символьних масивів
- •Void main (void)
- •3.2.4 Основні функції обробки символьних типів
- •Void main (void)
- •Void del (char *st, int k, int n);
- •Void del(char *st, int, int);
- •Void main()
- •Void del(char *st,int k,int n)
- •[ Проміжки ] [знак числа] [ цифри].
- •Void main( )
- •Void main()
- •Void main()
- •Void main(void)
- •3.2 Контрольні питання і завдання
- •3.4 Варіанти індивідуальних завдань
- •4 Вирішувння задач з використанням даних типу структура
- •4.1 Ціль роботи Освоєння заходів розробки і налагодження програм з використанням
- •4.2 Методичні рекомендації з організації самостійної
- •Void main(void)
- •Void qsort (void *base , n , width,
- •Int (*fcmp) ( const void *elem1, const void *elem2) .
- •4.3 Контрольні питання
- •4.4. Індивідуальні завдання
- •5 Використання функцій при розробці програм
- •5.1 Ціль роботи
- •5.2 Методичні вказівки з організації самостійної роботи студентів
- •Void fun ( int p)
- •Void main ( )
- •Int main ( )
- •5.2.1 Використання покажчиків на функцію
- •Void main ( )
- •5.2.2 Використання масивів - параметрів функцій
- •Vоid sort (int mas [ 30 ]); .
- •Void sort ( int mas [ ], int n ) ; .
- •Void fun1 (char st [15]);
- •Int main ( )
- •Void fun1 ( char st[15] )
- •Void fun2 ( int mat [ ] [10], int rows, int cols );
- •Int main ( )
- •5.2.4 Звертання до функції і передача результату
- •Int main ( )
- •5.2.5 Перевантаження функцій
- •Int main ( )
- •5.3 Контрольні питання
- •5.4 Варіанти індивідуальних завдань
- •6 Робота з файлами
- •6.1 Ціль роботи
- •6.2 Методичні вказівки по організації самостійної роботи
- •Int main ( )
- •Int main ( )
- •Void main ( )
- •Ifstream in ( ”file1") ;
- •In.Close();
- •Перелік посілань
- •Навчальне видання
- •61726 Харків, просп. Леніна, 14.
Void fun ( int p)
{
++ p;
cout << " p=" << p << endl;
}
Void main ( )
{
int x = 10;
fun (x); // виклик функції
cout << "x=" << x << endl;
}
У результаті роботи цього фрагмента програми буде виведено: р=11, х = 10, оскільки для виклику функції fun(x) до неї передається копія значення рівного 10, під час виконання цієї функції значення p збільшується на 1, тобто (++р) і, тому виводиться р = 11, але за межами функції зазначене значення не змінюється. Якщо треба змінити змінну оригінал, тобто передати зміну параметра за межами тіла функції, то можна передати значення параметра за посиланням або використовувати параметр-покажчик. Тоді, використовуючи параметр- посилання, одержимо :
// Використання параметра - посилання
void fun (int &р)
{ ++p;
cout << "p = " << р << endl;
}
void main ( )
{
int x = 10;
fun( x );
cout << "x=" << x << endl;
}
У результаті буде виведена інформація: р=11 і х=11.
Під час використання аргументу-покажчика програма буде мати вигляд:
// Використання параметра - покажчика
void fun2 (int *p)
{
++*р;
cout << "*p = " << *p << endl;
}
void main ( )
{
int x = 10;
fun2 ( &x );
cout << "x = " << x << endl;
}
У цьому випадку одержуємо той же результат, тобто р = 11 і х = 11.
Під час використання таких параметрів у функцію і з неї передається не значення, а адреса, тому зміна значення цієї змінної усередині функції передається за її межі (в інші функції). Якщо треба, щоб які-небудь параметри не змінювали свої значення усередині функції, то їх варто оголосити як параметри-константи, використовуючи модифікатор const .
Тіло функції може складатися з описів змінних і операторів. Змінні, котрі використовуються при виконанні функції, можуть бути глобальні і локальні. Якщо змінні описані (визначені) за межами функції, вони будуть глобальними. З їхньою допомогою можна передавати дані у функцію, не включаючи до складу формальних аргументів. У тілі функції їх можна змінювати і потім отримані значення передавати в інші функції.
Змінні, описані в тілі функції, називаються локальними або автоматичними. Вони існують тільки під час виклику функції. Як тільки відбувається повернення з функції, система видаляє локальні змінні і звільняє пам'ять. Отже, між викликами функції значення локальних змінних губиться, тому ініціалізацію локальних перемінних треба робити щораз при виклику функції.
У випадку, коли необхідно зберегти значення локальних змінних між викликами функції, їх треба описати як статичні за допомогою службового слова static, наприклад:
static int x, y; або static float p = 3.25;
Статична змінна схожа на глобальну, але доступна тільки в тій функції, у якій вона оголошена.
Таким чином, можна зробити висновок:
параметри функції передаються в неї за значенням, тому за межами функції вони не змінюються, тобто їх не можна використовувати для передачі результату роботи функції;
при передачі результату функції за її межі використовуються: або передача параметрів за посиланням (&р); або передача за покажчиком (*р), у цьому випадку під час звертання до функції застосовується символ адреси & , тобто (&р); або як параметр функції варто використовувати глобальні змінні;
локальні (звичайні) змінні використовуються в тілі функції, існують тільки під час роботи функції, а при виході з неї знищуються, тому такі змінні називаються автоматичними і їх можна використовувати тільки для перетворень усередині функції;
якщо виникає необхідність збереження значень локальних змінних між викликами функції, то вони повинні бути оголошені як статичні, тобто з описом static, наприклад:
static char st[ ] = "Тесленко А.М.";
у якості вхідних (і вихідних) формальних аргументів функцій можуть використовуватися масиви як фіксованої довжини, так і змінної; якщо використовується в якості формальний масив змінної довжини, то обов'язково серед аргументів функції повинна бути змінна, що вказує длину масиву, наприклад:
int minmas (int mas [ 50]); // Масив фіксованої довжини
int minmas (int mas [ ], int n); //Масив змінної довжини
int minmas (int *mas, int n); //Масив змінної довжини
усі масиви формальні аргументи передаються за адресою, тобто як покажчики;
на початку програми записується заголовок використовуваної функції, який називається прототипом , наприклад:
double sgr (double); // Прототип функції sqr
. . . . . . . . .