Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка С++.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.27 Mб
Скачать

Робоче завдання

Завдання 1. Створити програму, яка виводить на екран ваші Прізвище, Ім'я, По-батькові, номер групи (кожне слово з нового рядка). Для виконання цього завдання необхідно створити новий проект з ім'ям «Lb2_2», текстовому файлу програмного коду дати ім'я «Task2» (див. п. 6).

Завдання 2. Створити програму введення-виведення значень змінних: а - типу float, b - типу integer, c – типу char, у вигляді:

А = значення

B equal значення

C is значення.

Для виконання цього завдання необхідно створити новий проект з ім'ям «Lb2_3», текстовому файлу програмного коду дати ім'я «Task3» (див. п. 6).

Завдання 3. Створити програму обчислення площі поверхні і об'єму циліндра за формулами

S = 2 r (h+r), (2.1)

де S – площа поверхні циліндра;

r – радіус основи циліндра;

h – висота циліндра.

V =  r2 h, (2.2)

де V - об'єм циліндра.

*Примітрка. Оскільки в С++ немає оператора зведення в ступінь, то для обчислення r2 слід скористатися оператором множення.

Для виконання цього завдання необхідно створити новий проект з ім'ям «Lb2_4», текстовому файлу програмного коду дати ім'я «Task4».

Число задати як константу, а значення r і h ввести з клавіатури. Результат обчислень повинен містити необхідні пояснення. (Наприклад: Ob’em cilindra V=123).

Контрольні запитання

  1. Які задачі можна вирішувати за допомогою середовища розробки Visual Studio 6.0?

  2. Перерахуйте основні компоненти Visual C++?

  3. Дайте поняття проекту?

  4. Що є робочим екраном Visual С++?

  5. Як здійснюється відладка програми?

  6. Як задаються змінні і константи?

Лабораторна робота №3

ДОСЛІДЖЕННЯ ПРОГРАМ З ЛІНІЙНОЮ СТРУКТУРОЮ

Мета роботи: придбання навиків розробки і дослідження програм обчислення арифметичних і логічних виразів.

Теоретичні відомості

Програми з лінійною структурою є найпростішими і використовуються, як правило, для реалізації простих обчислень за формулами. В програмах з лінійною структурою інструкції виконуються послідовно, одна за одною. Алгоритм програми з лінійною структурою може бути представлений у вигляді наступної схеми:

  • введення початкових даних (з клавіатури);

  • обробка (обчислення);

  • виведення результатів (на екран монітора).

Для запису арифметичних виразів використовуються арифметичні оператори (+, -, *, / ,%) і математичні функції, які знаходяться в заголовковому файлі math.h.

Основні функції бібліотеки math.h наведені в таблиці 3.1.

Таблиця 3.1 - Математичні функції (файл math.h).

Функція

Прототип і скорочений опис дій

abs(x)

int abs(int x); повертає абсолютне значення цілого аргументу х.

fabs(x)

double fabs(double x); повертає абсолютне значення аргументу float х подвійної точності.

labs(x)

long labs(long x); повертає абсолютне значення цілого аргументу long х.

cabs(znum)

double cabs(struct complex znum); обчислює абсолютне значення комплексного числа znum. Визначення структури (типу) complex – у файлі math.h.

exp(x)

double exp(double x); Обчислює .

log(x)

double log(double x); обчислює значення натурального логарифму ln x.

log10(x)

double log10(double x); обчислює значення log x.

pow(x,y)

double pow(double x, double y); обчислює значення xy.

pow10(p)

double pow10(int p); обчислює значення 10p.

sqrt(x)

double sqrt(double x); обчислює значення .

floor(x)

double floor(double x); знаходить найбільше ціле, яке не перевершує значення x.

fmod(x,y)

double fmod(double x, double y); визначає остачу від ділення x/y.

ldexp(v,x)

double ldexp(double v, int x); обчислює значення v*2x.

hypot(x,y)

double hypot(double x, double y); обчислює значення гіпотенузи z по значенням катетів x та y.

poly(x,n,c)

double poly(double x, int n, double c[ ]); обчислює значення поліному ступеня n.

sin(x)

Функція синуса. Кут (аргумент) задається в радіанах.

asin(x)

Функція арксинуса. Значення аргументу повинно находитись у діапазоні від –1 до +1.

sinh(x)

Визначає значення гіперболічного синуса для х.

cos(x)

Функція косинуса. Кут (аргумент) задається в радіанах.

acos(x)

Функція арккосинуса. Значення аргументу повинно находитись у діапазоні від –1 до +1.

cosh(x)

Визначає значення гіперболічного косинуса для х.

tan(x)

Функція тангенса. Кут (аргумент) задається в радіанах.

atan(x)

Функція арктангенса. Кут (аргумент) задається в радіанах.

atan2(y,x)

double atan2(double y, double x); функція арктангенса від значення y/x

tanh(x)

Визначає значення гіперболічного тангенса для х.

При зверненні до цих функцій необхідно дотримуватись наступних вимог:

- x і y повинні мати тип double;

- n повинне мати тип int;

- кути (аргументи) в тригонометричних функціях задаються в радіанах.

Всі функції повертають значення типу double.

Наприклад, вираз на мові С++ матиме вигляд:

y=(exp(x)+pow(z,2) - 4.5*100*sqrt(x))/(pow(z,x)+b);

До логічних операцій належать операція логічного І (&&), логічного АБО (||) і операція логічного НЕ (!). Операнди логічних операцій можуть бути цілого типу, плаваючого типу або логічні (тип bool), при цьому в кожній операції можуть брати участь операнди різних типів.

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

Логічні операції не викликають стандартних арифметичних перетворень. Вони оцінюють кожний операнд з погляду його еквівалентності нулю. Результатом логічної операції є 0 (false) або 1 (true), тип результату 0 (false) або 1 (true).

Операція логічного І (&&) видає значення 1 (true), якщо обидва операнди мають значення 1 (true). Якщо один з операндів рівний 0 (false) , то результат також рівний 0 (false) . Якщо значення першого операнда рівне 0 (false) , то другий операнд не обчислюється.

Операція логічного АБО (||) виконує над операндами операцію. Вона видає значення 0 (false) , якщо обидва операнди мають значення 0 (false) , а коли який-небудь з операндів має ненульове значення, то результат операції рівний 1 (true). Якщо перший операнд має ненульове значення, то другий операнд не обчислюється.

Операція логічного НЕ (!) виконує над операндом операцію інверсії, тобто, якщо операнд рівний 0 (false) , то результат операції рівний 1 (true) і навпаки.

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

Щоб підвищити пріоритет операції, її можна брати у круглі дужки.

Таблиця 3.2 - Пріоритети операцій

Тип операцій

Операції

Пріоритет

Унарні

!, ++, -- , +, -

Вищий

Низький

Арифметичні

Мультиплікативні

*, / , %

Адитивні +, -

Відношення

Нерівності <,>,<=,=>

Рівністі = =, !=

Логічні

І &&

АБО ||

Умовна

?:

Присвоєння

=, +=, -= ,*=, /= ,%=

Приклад програми обчислення логічного виразу. Для виконання цього завдання створити проект «Lr3_1» з файлом «Task3_1».

#include <iostream.h>

#include <math.h> // Підключення бібліотеки математичних функцій

void main()

{

float x;

float y;

const bool a = true;

const bool b = true;

const bool c = false;

bool bz;

// При виведенні логічних значень - true виводиться як 1, а false - як 0.

cout<<"Boolean\n"<<"A="<<a<<" B="<<b<<" C="<<c<<endl;

cout<<"Enter x,y"<<endl;

cin>>x>>y;

cout<<"X="<<x<<" X="<<y<<endl;

bz = а && b || c || !( (x<=y) || (x>=-0.15) );

cout << "Logic expression: "<< bz << endl;

}