Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Теплоенергетичний факультет
Кафедра автоматизації проектування енергетичних процесів і систем
ЗВІТ
з лабораторної роботи № 3(2)
з дисципліни «Алгоритмізація та програмування 1. Базові концепції програмування»
Тема «Ознайомлення з математичними операторами та управляючими конструкціями»
Завдання до роботи:
1.Ознайомитись з математичними операторами та управляючими конструкціями.2. Дослідити особливості їхнього застосування для розв’язання складних математичних виразів.3. Написати програму, що виконує математичні розрахунки за заданим рівнянням. Врахувати можливі математичні особливості рівняння.4. Реалізувати ініціалізацію розрахункових змінних (x, a, b, …) початковими значеннями або з використанням додаткових параметрів командного рядка, або з консолі (клавіатури), або звикористанням значень за замовчуванням.У якості індивідуального завдання необхідно написати програму, що виконує розрахунки для математичних виразів із використанням індивідуального завдання 2 для кожного варіанту з Додатку В.
Варіант 15 умова:
/
Теоретичні відомості:
Для виконання даної лабораторної роботи №3 був використаний сайт replit.com . На цьому сайтів був написаний код програми на мові С. Саму програму можна переглянути за посиланням: https://replit.com/join/qdfeaaybkq-tr-15fundamient
Під час виконання даної програми були ініціалізовані чотири змінні типу double (x,y,a,b) і присвоєні їм значення, введені користувачем, з клавіатури у консоль.
Для виводу вказівок у консоль був використаний метод printf(). Цей метод приймає такі параметри: Перший – це формат виводу, який вказує що потрібно вивести і які змінні. Для вводу змінних з клавіатури і їх присвоєння був використаний метод scanf(). Він також примає два аналогічні параметри, але для формування адреси змінної перед нею ще ставиться амперсанд ( & ). Для вводу даних був використуваний формат %lf, а для виводу %f. Символ \n використовувався для перенесення на наступний рядок. Для рішення даної задачі були використані такі математичні методи:
log() – Даний метод визначає натуральний логарифм(ln).
fabs() – Даний метод визначає модуль виразу.
sqrt() – Даний метод визначає модуль виразу.
log10() – Даний метод визначає десятковий логарифм виразу(lg).
Блок схема програми:
/
Скріншот програми:
/
Результати роботи програми:
/
Висновок:
Під час виконання даної лабораторної роботи ми були ознайомлені із використанням математичних операторів та управляючих конструкцій на мові С. Були досліджені різні математичні методи, завдяки яким і була написана дана програма(такі як log(), fabs(), sqrt(), log10() і тд.). На початку програми вводяться деякі змінні, а на виході ми отримаємо обчислену за деякою формулою змінну у . Правильність виконання програми була перевірена за допомогою мобільного додатку PhotoMath, похибок у обчисеннях не виявлено.
Код програми:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
printf("Оберіть варінт присвоєння змінних(1-з клавіатури, 2-командна строка, 3-за замовчуванням:");
int number;
scanf("%d", &number);
double x,y,a,b;
if (number == 1) {
printf("уведіть значення x, a, b: ");
scanf("%lf %lf %lf", &x, &a, &b);
printf("Значення: x = %f, a = %f, b = %f\n", x, a, b);
} else if (number == 2 && argc == 4) {
x = atof(argv[1]);
a = atof(argv[2]);
b = atof(argv[3]);
printf("Значення: x = %f, a = %f, b = %f\n", x, a, b);
}
else if (number == 2 && argc != 4) {
printf("----EROR----- \n");
return 0;
}
else {
x = 2;
a = 5;
b = 7;
}
if(x > 2) {
y = a * (log(fabs(b-x)));
} else if(x == 2) {
y = b * sqrt(a+x);
} else {
y = log10(a*b*x);
}
printf("y = %f\n", y);
return 0;
}
Також його можна переглянути за посиланням: https://replit.com/join/qdfeaaybkq-tr-15fundamient