Перезавантаження функцій

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

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

Рік:
2013
Тип роботи:
Лабораторна робота
Предмет:
Програмування Ч 3 Структури даних і алгоритми

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

Міністерство освіти і науки України Національний університет „ Львівська політехніка “ Кафедра ЕОМ Звіт З Лабораторної роботи №1:“ Перезавантаження функцій ” МЕТА РОБОТИ: ПОЗНАЙОМИТИСЯ ІЗ ПЕРЕВАНТАЖЕННЯМ ФУНКЦІЙ Перевантаження функцій С++ дозволяє визначати декілька функцій з одним і тим же іменем, якщо дані функції мають різні набори параметрів (принаймні різні типи параметрів). Нехай оголошені наступні функції: іnt func(іnt, іnt); іnt func(char, double); іnt func(long, double); іnt func(float, ...); // Функція з невизначеним числом аргументів. іnt func(char*, іnt);   При виклику функції з ім’ям func спершу компілятор намагатиметься знайти функцію, формальні аргументи якої відповідають фактичним аргументам без усяких перетворень типів або з використанням тільки неминучих перетворень - наприклад, імені масиву до покажчика або значення змінної до константи або навпаки. char strіng[ ] = "Рядок - це масив символів"; іnt і = func (strіng, 13); // func (char*, іnt); іnt j = func(1995L, 36.6); // func(long, double);   Якщо відповідна функція не знайдена, то здійснюється пошук такої функції, щоб для відповідності формальних і фактичних аргументів досить було використати тільки такі стандартні перетворення, що не спричиняють перетворень цілих типів до типів з плаваючою крапкою і навпаки. При цьому підбирається функція, для якої число таких перетворень було б мінімальним. float a=36.6; j = func('a', a); // func(char, double)   Третім етапом є пошук такої функції, для виклику якої досить здійснити будь-які стандартні перетворення аргументів (і знову так, щоб цих перетворень було якнайменше). іnt l = func("РІК:", 2002.3); // func (char*, іnt)   ЗАВДАННЯ: Варіант №11 Написати реалізацію перевантажених функцій : int func(int* arr, int length); int func(double * arr, int length); Функція func перевіряє чи в масиві чередуються знаки. Програма: #include <stdio.h> #include "func.h" int func(double *arr, int length){ bool negative=false; printf("\n[double]\n"); if(arr[0]<0)negative=true; for(int i=1; i<length; i++){ if(arr[i]<0){ if(negative)return 0; negative = true; }else{ if(!negative)return 0; negative = false; } } return 1; } int func(int *arr, int length){ bool negative=false; printf("\n[integer]\n"); if(arr[0]<0)negative=true; for(int i=1; i<length; i++){ if(arr[i]<0){ if(negative)return 0; negative = true; }else{ if(!negative)return 0; negative = false; } } return 1; } #include <stdio.h> #include "func.h" void main(){ int len=0, result=0; printf("Please enter length of array => "); scanf("%d", &len); printf("\n"); if(len<2){ printf("Error! Length of array at the least must be equal 2!\n"); return; } printf("===========\n\n"); double * a=new double[len]; for(int i=0; i<len; i++){ printf("Please enter element of array (#%d) => ", i+1); scanf("%Lf", &a[i]); } result = func(a, len); if(result==1)printf("\nThe elements (numbers) of array are alternate with each other. [%d]\n", result); else printf("\nThe elements (numbers) of array are NOT alternate with each other. [%d]\n", result); printf("\n===========\n\n"); int * a2=new int[len]; for(int i=0; i<len; i++){ printf("Please enter element of array (#%d) => ", i+1); scanf("%d", &a2[i]); } //befev result = func(a2, len); if(result==1)printf("\nThe elements (numbers) of array are alternate with each other. [%d]\n", result); else printf("\nThe elements (numbers) of array are NOT alternate with each other. [%d]\n", result); } Висновок: На лабораторній роботі №2, я познайомився з перезавантаженням функцій.
Антиботан аватар за замовчуванням

04.06.2014 18:06-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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