Основи роботи з функціями в C++

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

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

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

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Основи програмування
Група:
ПІ

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

Міністерство освіти і науки, молоді та спорту України Національний університет “Львівська політехніка” Кафедра Програмного забезпечення Інститут КНІ Лабораторна робота №8 З предмету: “Основи програмування” На тему “Основи роботи з функціями в C++” Львів-2012 Мета роботи: здобути практичні навики створення та застосування функцій у мові С++ . Відповіді на теоретичні запитання Яке призначення функцій у програмуванні? Призначення функцій в програмуванні – це реалізація алгоритму, який можна буде використовувати для різних наборів даних. А також для багаторазового використання даного алгоритму (повторне використання програмного коду). Який загальний вигляд опису функції у мові С++? Синтаксис мови С++ передбачає такий формат опису функції: [тип_результату] ім’я_функції(список_параметрів) { тіло функції } Що таке формальні параметри функції? Для чого вони призначені? Формальні параметри – параметри, які використовуються для позначення вхідних даних функції. З точки зору синтаксису мови С++ кожний формальний параметр описується аналогічно до звичайної змінної, тобто опис формального параметру включає задання типу даних та ідентифікатора. Як здійснюється вихід з функції? Існують два способи завершення виконання функції і повернення у точку програми, з якої здійснено виклик. Перший - завершення виконання функції з використанням оператора повернення return, другий - полягає у послідовному проходженні всіх операторів тіла функції до закриваючої фігурної дужки. Цей спосіб можливий лише для функцій з типом результату void. Як здійснюється виклик функції? Виклик функції здійснюється в потрібному місці програми за її іменем (аналогічно як і для стандартних бібліотечних функцій) у такому загальному форматі: ім’я_функції([список_аргументів]) Що таке аргументи функції? Яка різниця між фактичними та формальними параметрами функції? Список аргументів задає значення фактичних параметрів, які підставлються у відповідні формальні параметри. На відміну від списку формальних параметрів у списку аргументів не потрібно вказувати тип аргумента, достатньо записати лише ідентифікатор. Фактичні параметри відрізняються від формальних тим, що фактичні - це параметри, які підставлються в функцію у ролі аргументів, тоді як формальні – параметри, які використовуються для позначення вхідних даних функції. Під час виклику функції у формальні параметри підставляються значення аргументів у тому порядку, в якому вони задані при виклику функції. Що таке прототип функції? Для чого він призначений? Прототипом функції - це “попереднє” оголошення функції. Для визначення прототипу функції потрібно задати тип результату функції, її ім’я та список типів формальних параметрів у такому форматі: [тип_результату] ім’я_функції(список_типів_параметрів); Прототипом функції призначений для ідентифікації типу значення, яке поверне функція, так, щоб компілятор міг згенерувати коректний код для типу даних, що повертаються. Також прототип фунції у визначає тип та кількість аргументів, які використовуються функцією. Більше того, реалізація другого завдання прототипу функції передбачає можливість автоматичного перетворення типів фактичних аргументів до типу, що зазначений у прототипі функції. У чому полягають правила приведення типів у мові С++? Правила приведення типів у мові С++ полягає в в наступному: якщо типи формального параметру і аргумента функції не співпадають (але вони відносяться до одного з вбудованих типів мови С++), то відбувається автоматичне приведення значення “нижчого” типу до значення “вищого” типу згідно ієрархії основних типів. Перелік основних типів С++ (в порядку від “вищого” типу до “нижчого”) : long double, double, float, unsigned long int, long int, unsigned int, int, unsigned short int, short int, unsigned char, char. Які способи передачі аргументів у функцію Ви знаєте? Мова С++ має два способи передачі аргументів: передача аргументів за значенням і передача аргументів за посиланням (адресою). При: передачі аргументів за значенням значення аргументу копіюється у відповідний формальний параметр функції. При передачі аргументів за посиланням передається не копія значення аргумента, а його адреса. Чому не можна задавати вираз у ролі аргумента коли передача аргумента у функцію відбувається за посиланням? Коли передача аргумента у функцію відбувається за посиланням не можна задавати вираз у ролі аргумента, тому що в функцію повинна передаватися адреса змінної (яка знаходиться в оперативній пам’яті компютера), а вираз – це не змінна, він не міститься в ОЗП і, відповідно, не має адреси. Що таке локальні змінні? А глобальні? Наведіть приклад. Усі змінні, оголошені всередині довільної функції є локальними змінними цієї функції. Це означає, що їх значення зберігаються тільки на час виконання цієї функції. Інколи кажуть, що локальні змінні мають область видимості обмежену тілом функції, в якій вони оголошені. Усі формальні параметри функції розглядаються також як локальні змінні цієї функції. Усі змінні, оголошені поза межами всіх функцій з яких складається програма, називаються глобальними. Наприклад: int x; void somefunction(int i) { int j; } Змінна x – глобальна змінна (оголошена поза межами всіх функцій програми), змінні i та j локальні змінні функції somefunction. У чому полягає суть механізму перекриття імен мови С++? Суть механізму перекриття імен мови С++ полягає в тому, що дозволяється використовувати однакові ідентифікатори для позначення змінних в різних блоках. Умова програми Задано функцію. Написати програму для знаходження визначеного інтегралу з точністю Е=10-3 для заданих границь [a,b] за допомогою трьох методів: 1) прямокутників; 2) трапецій; 3) Сімпсона. 25)x*sin(x)/(cos(x)*cos(x)+1.0) Блок-схема Функція main() Функція y(double x) Функція integr_rec() НІ ТАК Функція integr_trap () Функція integr_simp() Текст програми #include <iostream> #include <conio.h> #include <math.h> #include <time.h> #include <locale.h> using namespace std; #define Pi 3.1415 const double a=0,b=Pi; double f1=0,f2=0,dx=0.00001,x,x1,x2,q=(b-a)/dx; double integr_rec(); double integr_trap(); double integr_simp(); double y(double x); int main() { setlocale(LC_ALL,"ukrainian"); cout<<"Метод Прямокутникiв: "<<integr_rec()<<endl; cout<<"Метод Трапецiй: "<<integr_trap()<<endl; cout<<"Метод Сiмпсона: "<<integr_simp()<<endl; _getch(); return 0; } double y(double x) { return x*sin(x)/(cos(x)*cos(x)+1.0); } double integr_rec() { double s=0; for(x=a;x<=b;x+=dx) { f1=y(x); s+=f1; } return s*dx; } double integr_trap() { double s=0; for(x=a,x1=a+dx;x1<=b;x+=dx,x1+=dx) { f1=y(x); f2=y(x1); s+=(f1+f2)/2.0; } return s*dx; } double integr_simp() { double s=y(a)+y(b); double x=a; for(int i=1;i<=q-1;i++) { x+=dx; if(i%2==0) s+=2*y(x); else s+=4*y(x); } return s*(dx/3.0); } Виконання програми  Висновок. На даній лабораторній роботі я здобув практичні навики створення та застосування функцій у мові С++ . Дізнався про три методи інтегрування функції, які використовуються в програмуванні.
Антиботан аватар за замовчуванням

16.01.2013 12:01-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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