DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

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

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт з лабораторної роботи №1 з дисципліни Програмування (Об’єктно-орієнтоване програмування)

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра електронних обчислювальних машин

Інформація про роботу

Рік:
2026
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування
Група:
КН
Коротко про документ

Про що ця робота

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

У роботі розглядаються

  • Програмування
  • Об’єктно-орієнтоване програмування
  • Перевантаження функцій
  • Мова програмування C++
  • Алгоритми пошуку
  • Масиви та рядки
  • Лабораторна робота

Зміст і розділи

  1. Тема
  2. Мета
  3. Теоретичні відомості
  4. Порядок виконання
  5. Індивідуальне завдання
  6. Текст набраної програми
  7. Скріншоти виконаної програми
  8. Висновок
Для кого:Студенти технічних спеціальностей, викладачі програмування
Викладачі:Викладач кафедри електронних обчислювальних машин

Ключові поняття

перевантаження функційсигнатура функціїаргументимасиврядокфункціяC++моніторингпошук

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра “Електронних обчислювальних машин” Звіт з лабораторної роботи №1 з дисципліни «Програмування, частина 2.(Об’єктно-орієнтоване програмування)» на тему: “Перевантаження функцій ” Тема: Перевантаження функцій Мета: познайомитися із перевантаженням функцій. Теоретичні відомості: У мові С++, на відміну від мови С дозволяється визначати декілька функцій з одним і тим же іменем за умови, що дані функції мають різну сигнатуру (різні типи та кількість аргументів функції). При цьому тип значення що повертається при перевантаженні до уваги не приймається. Розглянемо дії компілятора коли він зустрічає при компіляції в коді програми виклики перевантажених функцій. При виклику функції з ім‘ям func спершу компілятор намагатиметься знайти функцію, формальні аргументи якої відповідають фактичним аргументам без усяких перетворень типів або з використанням тільки неминучих перетворень - наприклад, імені масиву до покажчика або значення змінної до константи або навпаки. Якщо відповідна функція не знайдена, то здійснюється пошук такої функції, щоб для відповідності формальних і фактичних аргументів досить було використати тільки такі стандартні перетворення, що не спричиняють перетворень цілих типів до типів з плаваючою крапкою і навпаки. При цьому підбирається функція, для якої число таких перетворень було б мінімальним. Третім етапом є пошук такої функції, для виклику якої досить здійснити будь-які стандартні перетворення аргументів (і знову так, щоб цих перетворень було якнайменше). Далі здійснюється пошук функції, для якої аргументи можна одержати за допомогою всіх перетворень, розглянутих до цього, а також перетворень типів, визначених самим програмістом. Якщо й у цьому випадку єдина потрібна функція не знайдена, то на останньому етапі компілятор пробує знайти відповідність з урахуванням списку невизначених аргументів. Так, виклик функції func (1, 2, 3) може бути співставлений лише з функцією, що оголошена як іnt func(float, ...). Якщо компілятор не знайде жодної підходящої функції, або виклик функції не може бути однозначно співставлений з однією з оголошених функцій, то програма не скомпілюється і буде виведене повідомлення про помилку. Подрядок виконання: 1. Запустити Microsoft Visual Studio. 2. Створити новий порожній проект в стилі Visual С++ Win 32 Console application. Якщо ви використовуєте MS Visual Studio версії 2012 або вище, то для того, щоб використовувати ключове слово auto для встановлення автоматичного класу пам‘яті, а не для автоматичного виведення типу змінної, в проекті слід в властивостях проекту на вкладці «Властивості конфігурації» -> «С/С++» -> «Командний рядок» у вікні «Додаткові параметри» додати параметр /Zc:auto-. 3. Створити новий *.cpp файл та включити його в проект. 4. Написати і скомпілювати код програми, що реалізує поставлене завдання, та виводить результат виконання на екран. 5. Оформити та захистити звіт. Індивідуальне завдання: Оскільки мій варіант №3, я виконую завдання : Написати реалізацію перевантажених функцій: int func(int* arr, int length, int number); int func(char* str, char ch); Функція func повертає позицію першого входження шуканого числа чи символу. Текст набраної програми: #include <iostream> #include <ctime> using namespace std; int func(int* arr, int length, int number); int func(char* str, char ch); int main() { setlocale(LC_ALL, "rus"); srand(time(NULL)); int SIZE; cout << "Введiть розмiр цiлочисельного массиву = "; cin >> SIZE; int *arr = new int[SIZE]; cout << "Введiть число яке будете шукати = "; int number; cin >> number; int pozition = func(arr, SIZE, number); for (int i = 0; i < SIZE; i++) { cout << arr[i] << "\t"; } cout << endl; if (pozition == 0) { cout << "Дане число не знайдено" << endl; } else { cout << "Позицiя першого входження заданого числа = " << pozition << endl; } delete[] arr; char string[128]; cout << "Введiть ряд = "; cin >> string; cout << "Введiть символ який будете шукати = "; char symbol; cin >> symbol; pozition = func(string, symbol); if (pozition == 0) { cout << "Даний символ не знайдено" << endl; } else { cout << "Позицiя першого входження заданого символу = " << pozition << endl; } system("pause"); } int func(int* arr, int length, int number) { int poz = 0; for (int i = 0; i < length; i++) { arr[i] = rand() % 10; } for (int i = 0; i < length; i++) { if (arr[i] == number) { poz = i + 1; break; } } return poz; } int func(char* str, char ch) { int dlina = strlen(str); static int poz = 0; for (int i = 0; i < dlina; i++) { if (str[i] == ch) { poz = i + 1; break; } } return poz; } Скріншоти виконаної програми: Рис.1 Виконана програма Висновок: на лабораторній роботі №1 я познайомився із перевантаженням функцій, класами пам’яті і вбудованими функціями.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!