- •1. Кроки для створення виконання програми
- •2. Змінні та константи
- •3. Символьні масиви і рядки
- •4. Директиви препроцесора
- •Тема 2: введення-виведення даних план
- •Аргументи для setiosflags і resetiosflags
- •2. Функція printf
- •2. Операції відношення
- •3. Логічні операції
- •4. Додаткові операції
- •5. Порозрядні операції
- •Тема 4: організація циклів план
- •1. Організація циклів за допомогою while і do...While
- •2. Організація циклів із використанням оператора for
- •3. Оператори switch і goto
- •Тема 5: створення функцій план
- •1. Створення функцій
- •2. Видимість змінних
- •3. Передача значень
- •4. Повертаємі значення і прототипи функцій
- •Тема 6: зовнішні пристрої і символьне введення/виведення план
- •1. Загальна концепція
- •2. Функції символьного введення-виведення
- •3. Символьні функції
- •4. Рядкові функції
- •5. Числові функції
- •6. Функції роботи з датою та часом
- •Тема 7: масиви план
- •1. Одномірні масиви, їхня ініціалізація
- •2. Сортування масивів
- •3. Розміщення одномірного масиву в пам’яті
- •4. Багатомірні масиви і їхнє розміщення в пам’яті
- •Тема 8. Вказівки і посилання план
- •1. Вказівки
- •2. Масиви і вказівки
- •Тема 9: робота з файлами план
- •1. Загальна характеристика роботи з файлами
- •2. Послідовні файли
- •Можливі режими доступу
- •3. Файли довільного доступу (із випадковим доступом)
- •Тема 10. Структури план
- •1. Загальна характеристика структури
- •2. Масиви структур
- •3. Використання масивів, як елементів структур
- •2. Робота зі структурами є універсальною, передбачено додавання записів до файлу (флаг ios:app). Для підрахунку кількості структур на диску приведемо наступні рядки програми:
- •Список літератури
3. Передача значень
Передача змінних у функцію виконується:
за значенням (передача копіюванням);
за адресою (передача по посиланню).
При передачі за значенням копія значення змінної передається функції, що приймає (рис. 2.).
По умовчанню всі параметри передаються за значенням, крім випадків передачі масивів. Масиви завжди передаються за адресою.
Рис.2. Передача змінної i за значенням.
Якщо приймаюча функція змінює змінну, що була передана в її за адресою, то змінна змінюється й у функції, що викликається.
Всі змінні розміщаються в ОЗП за адресами.
Приклад:
int i = 4;
char ar[2] = {’A’,’B’};
Ім’я змінної |
Пам’ять |
Адреса |
i |
4 |
34440 |
ar[0] |
A |
34442 |
ar[1] |
B |
34443 |
Приклад:
#include <iostream.h>
#include <string.h>
void t(char c[4])
{
cout << c << “\n”;
strcpy(c,”USA”);
return;
}
void main()
{
char n[4] = “ABC”;
t(n);
cout << n << “\n”;
}
Результат
АВС
USA
Для передачі за адресою даних які не є масивом, потрібно зробити таке:
Перед змінною у функції, що викликає, поставити символ амперсант (&);
Перед кожним використанням змінної у функції, що приймає, поставити символ (*).
Приклад:
#include <iostream.h>
void dd(int *t)
{
*t = 100;
return;
}
void main()
{
int i = 200;
dd(&i);
cout << i;
}
Виведення: 100.
4. Повертаємі значення і прототипи функцій
C++ потребує прототипу для кожної написаної функції.
Прототипи гарантують відповідність типів даних переданих параметрів і повертаємих значень функції.
Якщо необхідно повернути значення у функцію, що викликає, поміщайте повертаємі значення після оператора return.
Попередження: не повертайте глобальних змінних, вони відомі всій програмі.
Функція може одержувати більше одного параметра, а повертати у функцію, що викликає, тільки одне значення.
Приклад: знаходження min і max із 2-х значень.
#include <iostream.h>
int maximum(int num1, int num2)
{
int max;
max = (num1 > num2) ? (num1) : (num2);
return (max);
}
int minimum(int num1, int num2)
{
int min;
min = (num1 < num2) ? (num1) : (num2);
return (min);
}
void main()
{
int num1, num2;
int min, max;
cin >> num1 >> num2;
max = maximum(num1,num2);
min = minimum(num1,num2);
cout << min<<”\n” << max;
}
Прототипи функцій
Слово прототип визначають як “модель”. У C++ прототип функції є моделлю дійсної функції. Ви повинні описати прототипи усіх функцій ваших програм.
Розроблювачі C++ думали, що усі функції повинні мати прототип. Не треба описувати прототипи бібліотечних функцій, тому що розроблювачі помістили такі прототипи в заголовні (header) файли на вашому диску.
Ви включали прототип cout і cin у кожну програму за допомогою оператора:
#include <iostream. h>
Файл iostream. h містить прототипи багатьох функцій введення-виведення C++. Використовуючи опис прототипів C++ гарантує, що зможете передати коректні значення в потрібні функції.
У попередніх прикладах ми розглядали функції перед основною функцією main(). Це поганий стиль, проте не потрібен прототип. Ознакою гарної програми є опис прототипів, тоді функції можна поміщати після основної функції main().
Приклад: Повернення символу по ASCII - коду.
#include <iostream.h>
char ascii(int num);
void main()
{
int num;
char asc_char;
cin >> num;
asc_char = ascii(num);
cout << asc_char;
}
char ascii(int num)
{
char asc_char;
asc_char = (char) num;
return (asc_char);
}