ІКТА / КБ-12 / Технології Програмування частина №2 (ТП ч.2) / Лаби (готові) / Варіант №5 / Лабараторна робота №6 ТП Ч.2
.docxМІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
ЗВІТ
до лабораторної роботи № 6
з курсу: «Технології програмування Ч.2»
на тему: « УСПАДКУВАННЯ. ІЄРАРХІЯ КЛАСІВ. ПОБУДОВА
ІЄРАРХІЇ КЛАСІВ»
Варіант № 5
Виконав: ст. гр. КБ-12
Войтович О.О.
Прийняв: Партика А. І.
Львів - 2018
Мета роботи - вивчити інструкції мови C#. Навчитися складати та відлагоджувати розрахункові програми з розгалуженими та циклічними структурами.
1. Завдання
Скласти блок-схеми алгоритмів та програми мовою С# для табулювання функцій. Забезпечити ввід значень інтервалу, кроку і похибки табулювання з клавіатури і вивід результатів на дисплей. Дані для роботи беруться з таблиць 1 і 2 за вказівкою викладача:
а) Табулювання функції що вибирається залежно від значення аргумента, на проміжку [a, b] з кроком табуляції h
2 а). Блок-схема алгоритму програми
3 а). Cписок ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі,
та їх пояснення
y – задана функція;
x – аргумент функції;
а – початок заданого проміжку;
b – кінець заданого проміжку;
h – крок табулювання функції;
for - цикл з передумовою;
log10(x) – обчислення натурального логарифма з основою 10;
pow(x,y) – обчислення х в степені у;
соs (x) – обчислення косинуса;
sin(x) – обчислення синуса.
4 а). Текст програми
using System;
namespace _2a
{
class Program
{
static void Main(string[] args)
{
double a, b, h, x, y; // описуємо змінні
a = Convert.ToDouble(Console.ReadLine());
b = Convert.ToDouble(Console.ReadLine());
h = Convert.ToDouble(Console.ReadLine());
for (x = a; x < b + h; x += h) // запускаємо цикл від a до b з кроком h
{ if (x < 0.2) y = (Math.Log10(3 * x + 1) / Math.Log10(5));
else if (x >= 0.2 && x < 0.4) y = Math.Pow(x, (Math.Cos(x)));
else y = ((1 / Math.Sin(x)) * Math.Log10(x));
// виконуємо перевірку на умову і виконуємо певну функцію
Console.WriteLine(x+"\t"+y);
}
Console.Read();
}
}
}
5 а). Результати роботи програми
a = 0.1; b = 0.7; h = 0.05;
б) табулювання функції, представленої рядом, на інтервалі [a, b] з кроком табуляції h та абсолютною похибкою d. Оцінку похибки здійснювати за значенням модуля чергового члена ряду.
2 б). Блок-схема алгоритму програми
3 б). Cписок ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі,
та їх пояснення
y – задана функція;
x – аргумент функції;
а – початок заданого проміжку;
b – кінець заданого проміжку;
h – крок табулювання функції;
d - абсолютнa похибкa;
s, k – змінні;
for - цикл з передумовою;
do while – цикл з післяумовою;
pow(x,y) – обчислення х в степені у;
fabs (x) – обчислення модуля числа з плаваючою комою;
sin(x) – обчислення синуса.
4 б). Текст програми
using System;
namespace _2b
{
class Program
{
static void Main(string[] args)
{
double a, b, h, x, y, d, s; long k; // описуємо змінні
a = Convert.ToDouble(Console.ReadLine());
b = Convert.ToDouble(Console.ReadLine());
h = Convert.ToDouble(Console.ReadLine());
d = Convert.ToDouble(Console.ReadLine());
for (x = a; x < b + 0.001; x = x + h)
// запускаємо цикл від a до b з кроком h
{
k = 0; s = 0; // присвоюємо значення змінним
do // запускаємо цикл з післяумовою
{
y = (1 / Math.Pow(2, k)) * Math.Sin(x / Math.Pow(2, k));
// обраховуємо функцію
s = s + y; k = k + 1; // змінюємо значення змінних
}
while (Math.Abs(y) > d); // перевіряємо умову
Console.WriteLine(x+"\t"+s); // виводимо результат
} Console.Read(); } }
}
5 б). Результати роботи програми
a = 1.1; b = 2; h = 0.1; d = 0.001