Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.О.П / 3_кол / Лекції / лекция_С++ (6)_у.doc
Скачиваний:
8
Добавлен:
30.05.2020
Размер:
144.38 Кб
Скачать

2. Математичні вирази і функції

Математичний вираз є комбінація із змінних, операцій, дужок, констант, елементарних математичних функцій і їх суперпозицій. Набір математичних функцій в мові С міститься в стандартному файлі math.h. Ці функції можна використовувати при обчисленні математичних виразів. Дамо неповний перелік цих функцій:

abs(i) – обчислює абсолютне значення цілого змінного i.

fabs(x) – обчислює абсолютне значення дійсного змінного x.

асos(x) – обчислює кут, косинус якого рівний x.

exp(x) – обчислює значення ех.

sin(x), cos(x), tan(x) – обчислює значення тригонометричних функцій.

pow(x,y) – Обчислює ху.

log(x) – обчислює натуральний логарифм ln x.

log10(x) – обчислює десятковий логарифм lg x.

Програма 8. Визначити значення числа e.

Void main()

{double e; // Визначається змінна для числа е.

clrscr();

e = exp(1); // Обчислюється e в 1-й ступені.

cout << “Число e = “<< e << “\n”;

getch(); }

Програма 9. Обчислити значення sin x. Значення змінної x задавати в градусах.

#include <math.h>

Void main()

{ float x, у; clrscr();

cout << “Введи кут в градусах для обчислення синуса “;

cin >> x;

cout << “Ви ввели ” << x << “ градусів\n”; у = x * асos(-1)/180.; // Переводимо градуси в радіани.

у = sin(у);

cout << “sin( “ << x << “ градусів)= ” << у << “\n”;

getch(); }

Складемо програму обчислення деякого математичного виразу.

Задача 2

Перед складанням програми треба відповісти на стандартний набір питань і виконати стандартний набір дій. Перерахуємо деякі з них. Уважно вивчити задачу. Основним результатом цього етапу винні бути відповіді на питання:

  1. чи розв'язувалася подібна задача раніше;

  2. чи можна розбити задачу на більш прості;

  3. які дані входять в умову задачі;

  4. яка форма представлення цих даних в програмі;

  5. що викликає утруднення при рішенні (можна спростити або відкинути частину умов, які створюють труднощі);

  6. розглянути окремий випадок задачі;

  7. розглянути частину задачі.

Задачу 2 можна розбити на підзадачі, рішення яких не представляє праці, а саме послідовно обчислити значення: z = х2 + 1, у = z і т.д. З умови задачі виходить, що змінні х, у і z є дійсними числами.

Якщо рішення можна розбити на підзадачі, то програмісту (і не тільки йому), що починає, можна порекомендувати технологію поступового наближення до остаточного рішення задачі. Така технологія називається програмуванням від низу до верху. В реальному режимі технологія наближення до рішення полягає в наступному:

  • до деякого початкового тексту програми послідовно додаються нові директиви;

  • з кожним новим додаванням проводиться контроль виконання цих нових директив.

Програма 10. Остаточний код програми для вирішення задачі 2.

Void main()

{

float х, у, z;

float zl;

cout « “введи дійсне число х = “;

cin » х;

cout « “введи дійсне число у = “;

cin » у;

cout« "Введені числа: \nх = “ «х « “\nу = “ «у« “\n”;

z = fabs(cos(x))+ sin(у);

z = exp(z);

z1= sin(x)* sin(x)+cos(у) * cos(у);

z1 = z1/(sin((x + у)/2.)+ 1.5);

z = z1 - z; // Обчислюємо для задачі 2 значення

// вирази в дужках.

z = z * log(fabs(x)+ 1) - sqrt(x*x + 1); // Результат рішення задачі.

cout << “\nРезультат обчислення z = “ << z << “\n”;

getch();

}

Слід звернути увагу на контроль начальнных даних при проектуванні програми і на контроль проміжних результатів розрахунку.

Приведемо більш короткий варіант програми для вирішення задачі 2. Якщо студент освоїв теоретичний матеріал, то він відразу може запропонувати саме таку, більш коротку, реалізацію.

Програма 11

Соседние файлы в папке Лекції