Міністерство освіти і науки України
Національний університет "Львівська політехніка"
/
Лабораторна робота №3
Програмування обчислень
Мета роботи:
засвоїти методику програмування однієї з базових структур алгоритмів - лінійної; засвоїти запис констант, змінних та операторів.
Завдання:
Задача 1. Задано дві функції від двох змінних x, y:
//.
Необхідно скласти та перевірити блок-схему алгоритму, що обчислює значення цих функцій. За блок-схемою написати і виконати програму мовою програмування С++. Кількість запусків програми з різними початковими даними для x, y не менше 3-х. Перед розробкою блок-схеми виконати спрощення заданих виразів та введення проміжних змінних для зменшення кількості математичних операцій. Спосіб введення даних (введення з клавіатури, початкове присвоєння змінним, опис констант) обирається студентом.
Задача 2. Модифікувати програму так, щоби на екран виводилися персональні дані студента (група, прізвище, ім‘я, номер варіанту). Реалізувати перевірку вхідних даних на предмет можливості обчислень (н.пр. чи не виникає необхідність ділення на 0). При некоректних вхідних даних необхідно здійснити вивід повідомлення і не здійснювати обчислення. Здійснювати вивід результату з точністю до 3-го знака після коми для виразу Z(x,y) і з точністю до 5-го знака після коми для виразу W(x,y).
Аналіз завдання:
Потрібно обчислити дві функції від змінних x та y. Для цього використаймо бібліотеку math.h.
При обчисленні виразу може виникнути ситуація, при якій знаменник функції може дорівнювати нулеві. Тоді треба ввести перевірку чи знаменник не дорівнює нулю. Для цього можна скористатися циклом “if…else”.
Для зменшення обсягу програмного коду та математичних обчислень введемо нову змінну, яка замінить частину функції.
Алгоритм програми:
/
Текст програми:#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[])
{
float x,y,chus1,chus2,znam1,znam2,e,Z,W;
puts ("Lojik Vitalij, RT-11, LAB3 FUNKZII");
puts ("Vvedit' znachenna zminnoi X");
scanf("%f",&x);
puts ("Vvedit' znachenna zminnoi Y");
scanf("%f",&y);
e=pow(exp(x),x);
chus1=((1+e)-(pow(sinh(y),2)));
znam1=sinh(1+exp(x));
if (znam1==0) printf("Pomulka: dilenna na null!!");
else {
Z=chus1/znam1;
printf("Znachenna funkzii Z=%0.3f\n",Z);
}
chus2= (cos(1-exp(x)));
znam2= (2 - cos(y));
if (znam2==0) printf("Pomulka: dilenna na null!");
else {
W=chus2/znam2;
printf("Znachenna funkzii W=%0.5f\n",W);
}
system("PAUSE");
return 0;
}
Результати:
///
Висновок:
Я засвоїв методику програмування лінійної структури алгоритму, запис констант, операторів та змінних, написав програму, яка обчислює функцію та перевіряє чи немає ділення на нуль. Для написання програми я використав бібліотеку math.h, функції вводу - виводу та оператор циклу «if…else».