Міністерство освіти і науки,
Національний університет «Львівська Політехніка»
Кафедра ЕОМ
/
Лабораторна робота №1
з дисципліни «Програмування, частина 2(Об'єктно-орієнтоване програмування)»
на тему:
«Перевантаження функцій»
Мета роботи: Познайомитися із перевантаженням функцій.
Порядок виконання роботи
1. Запустити Microsoft Visual Studio.
2. Створити новий порожній проект в стилі Visual С++ Win 32 Console application. Якщо ви використовуєте MS Visual Studio версії 2012 або вище, то для того, щоб використовувати ключове слово auto для встановлення автоматичного класу пам’яті, а не для автоматичного виведення типу змінної, в проекті слід в властивостях проекту на вкладці «Властивості конфігурації» -> «С/С++» -> «Командний рядок» у вікні «Додаткові параметри» додати параметр /Zc:auto-.
3. Створити новий *.cpp файл та включити його в проект.
4. Написати і скомпілювати код програми, що реалізує поставлене завдання, та виводить результат виконання на екран.
5. Оформити та захистити звіт.
Завдання (варіант 11)
Написати реалізацію перевантажених функцій :
bool func(int* arr, int length);
bool func(double * arr, int length);
Функція func перевіряє чи в масиві чергуються знаки.
Хід роботи
1. Запускаю програму і вводжу два масиви, різних типів.
/
2.Змінюю знаки так, щоб чергування знаків було відсутнє.
/
/
Опис алгоритму
Функція працює шляхом ділення двох сусідніх чисел і , в результаті, якщо два сусідніх числа мають різні знаки, то ми отримуємо мінус, а якщо вони одинакові, тобто, послідовність відсутня, то знак буде додатній. І на основі цього, якщо результат цього ділення більше нуля, то знак додатній, тоді функція повертає false – немає послідовності, а в іншому випадку – true, тобто, є послідовність.
Висновок: У цій лабораторній роботі я познайомився із перевантаженням функцій і написав програму на цю тему.
Текст програми:
#include "iostream"
using namespace std;
bool func(int * arr, int length);
bool func(double * arr, int length);
int main(){
setlocale(LC_ALL, "ukr");
int a[6] = { 2, -1, 8, -3, 7, -2 };
double b[6] = { 1.2, -6.4, 8.5, -3.1, 7.8, -2.3 };
if (func(a, 6) == 1)
{
cout << "знаки в масивi цiлих чисел чергуються\n" << endl;
}
else cout << "знаки в масивi цiлих чисел не чергуються\n" << endl;
if (func(b, 6) == 1)
{
cout << "знаки в масивi дiйсних чисел чергуються\n" << endl;
}
else cout<< "знаки в масивi дiйсних чисел не чергуються\n" << endl;
system("pause");
}
bool func(int * arr, int length)
{
int i, k = 0;
for (i = 0; i < length; i++)
{
//if ((arr[i] > 0 && arr[i + 1] < 0) || (arr[i] < 0 && arr[i + 1] > 0))
if (arr[i]/arr[i+1] > 0)
{
k++;
}
}
if (k >= 1)
return false;
return true;
}
bool func(double * arr, int length)
{
int i, k = 0;
for (i = 0; i < length; i++)
{
//if ((arr[i] > 0 && arr[i + 1] < 0) || (arr[i] < 0 && arr[i + 1] > 0))
if (arr[i] / arr[i + 1] > 0)
{
k++;
}
}
if (k >= 1)
return false;
return true;
}