Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Алгоритмізація та програмування2:Базові концепції програмування
ЗВІТ
до лабораторної роботи № 2
« Математичні функції та управляючі конструкції»
Варіант №12
Дата «14» листопада 2021
Завдання до лабараторної роботи:
1.Ознайомитись з математичними операторами та управляючими конструкціями.
2. Дослідити особливості їхнього застосування для розв’язання складних математичних виразів.
3. Написати програму, що виконує математичні розрахунки за заданим рівнянням. Врахувати можливі математичні особливості рівняння.
4. Реалізувати ініціалізацію розрахункових змінних (x, a, b, …) початковими значеннями або з використанням додаткових параметрів командного рядка, або з консолі (клавіатури), або з
використанням значень за замовчуванням.
У якості індивідуального завдання необхідно написати програму, що виконує розрахунки для математичних виразів із використанням індивідуального завдання 2 для кожного варіанту з Додатку В.
/
Теоретичні відомості
Бібліотеки, необхідні для роботи з математичними виразами:
#include <math.h>- математична бібліотека;
#include <stdlib.h>- бібліотека, який зберігає у собі функції для виділення пам’яті, контролю процесу виконання програми, перетворення типів даних та ін.
Наступний етап- введення змінних різних типів(int a,b,у; double exp()).
Для функції exp() використовуємо тип double, оскільки приблизне значення е дорівнює 2,7.
Використаємо функцію scanf для введення даних з клавіатури, а для виведення на екран присвоєних значень скористуємося функцією printf.
/
Далі необхідно задати умови, для виконання програмою правильних обчислень. Отже, початкові вимога х=7, за допомогою if задаємо умову і функцію, для обчислення у.
Для цього використовую функції:
round()-для округлення отриманого значення за математичними правилами(це необхідно для того, щоб в подальшому не виникло труднощів з виведенням результатів обчислення на консоль) ;
exp()-експонента(значення, записані у дужках будуть значенням степеня експоненти);
sin()-синус.
Блок-схема
Код програми:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a,x,y,h;
double exp();
printf("Виберіть способи присвоєння значень змінним:\n-натисніть 1, якщо бажаєте ввести значення змінних зклавіатури;\n-натисніть 2,якщо бажаєте ввести значення змінних за допомогою командного рядка;\n-натисніть 3, якщо бажаєте , щоб введені значення були обрані за замовчуванням;\n ");
scanf("%i",&h);
if(h==1)
{
printf("Введіть x=");
scanf("%d",&x);
printf("Введіть а=");
scanf("%d",&a);
}
else if(h==2 && argc == 3)
{
x = atoi(argv[1]);
a = atoi(argv[2]);
printf("x=%i;\na=%i;\n",x,a);
}
if(h==3)
{
x=18;
a=1;
printf("x=%i;\na=%i;",x,a);
}
else if (h!=1&&h!=2&&h!=3){
printf("Помилка");
return 0;
}
if (x==7){
y=round(exp(a+sin(x)));
}
else if (x>7)
{
y=a*abs(a-x);
}
else return 0;
printf("Результати обчислень: %d",y);
return 0;
}
Результати виводу:
1.Якщо ви вибрали введення даних за допомогою клавіатури(натиснули 1 )
1.1. X<7
/
1.2. X=7
/
1.3.X>7
/
2.Якщо ви вибрали введення даних за допомогою командного рядка(натиснули 2 )
/
3. Якщо ви вибрали дані за замовчуванням(натиснули 3 )
/
5.Програмний код (додаток):
https://replit.com/join/euniqldwgm-tr-15tkachienko
Висновок
Під час виконання даної лабараторної роботи я ознайомилася з математичними операторами та управляючими конструкціями, розглянула їх особливості під час використання їх для розв’язання складних математичних виразів. Після врахування математичних особливостей рівняння, можна написати програму, яка обчислює задані рівняння.
Готова програма обчислює значення у, в залежності від значення х, який вводиться з клавіатури(також а), змінюється метод обчислення у, результати розрахунків виводяться на консоль.