МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
/
З В І Т
до лабораторної роботи №6
з курсу: «Алгоритмічні мови та програмування, Ч.2»
на тему: «Успадкування. Ієрархія класів. Побудова ієрархії класів»
Варіант № 15
Львів-2016
Мета роботи – вивчити інструкції мови C#. Навчитися складати та відлагоджувати розрахункові програми з розгалуженими та циклічними структурами.
1.1.Завдання
Скласти блок-схеми алгоритмів та програми мовою С# для табулювання функцій. Забезпечити ввід значень інтервалу, кроку і похибки табулювання з клавіатури і вивід результатів на дисплей. Табулювання функції, що вибирається залежно від значення аргумента, на проміжку [a, b] з кроком табуляції h.
/
1.2. Блок-схема алгоритму програми
Метод «Main ()»/
Метод «Vvid ()»
/
Метод «cycle ()»
/
Метод «Vyvid ()»
/
1.3.Список ідентифікаторів констант, змінних, процедур і функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення.
X – змінні дійсного типу, яка є аргументом виразу;
a, b – змінні дійсного типу, які визначають інтервал;
h – змінна дійсного типу, яка визначає крок;
y – змінна дійсного типу, якій надається значення результату обчислення виразу;
Main( ) – головний метод;
Console.ReadLine() – метод, що затримує вікно консолю;
private – рівень доступу, у якому члени доступні лише з поточного класу ;
public – рівень доступу, у якому члени доступні з будь-якого місця програми;
double – тип, з плаваючою точкою подвійної точності;
Console.Write – метод, що виводить текст на екран;
double.Parse – метод, що переводить дані типу string в double;
Console.ReadLine() – метод, що зчитує дані з консолю;
vyvid() – метод, що відповідає за вивід допоміжного тексту на екран і зчитування з екрану значення змінних;
cycle() – метод, що відповідає за обрахування виразу;
Math.Exp() – метод, що повертає значення експоненти;
Math.Atan() – метод, що повертає значення арктангенса;
Math.Tan() – метод, що повертає значення тангенса від числа;
Math.Pow() – метод, до повертає значення числа піднесеного до вказаного степеня;
Math.Sin() – метод, що повертає значення синуса від числа;
Math.Log() – метод, яка повертає значення натурального логарифма;
Tabul() – метод, що відповідає за табуляцію функції;
for (…) – цикл з передумовою;
Vyvid() – метод, що відповідає за виведення результату обрахунку.
1.4.Текст програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Math;
namespace Laba2a
{
class Vykonannia
{
static void Main(string[] args)
{
Lab2 lab = new Lab2();
lab.Vvid();
lab.cycle();
lab.Vyvid();
Console.ReadLine();
}
}
class Lab2 : BaseMath
{
public void Vvid()
{
Console.WriteLine("Vvedit a");
a = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Vvedit b");
b = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Vvedit h");
h = Convert.ToDouble(Console.ReadLine());
}
public override void Vyvid()
{
Console.WriteLine(String.Format("x={0:F20} y={0:F20}", x, y));
}
}
abstract class BaseMath
{
public double h, a, b, x, y;
public void cycle()
{
for (x = a; x <= b + h / 10; x += h)
{
if (x < +8)
y = Pow((x * x - 1), (x - 7));
else if (x > 8 && x <= 9)
y = 1 / (Sin(x) + Abs(Cos(x)));
else if (x > 9)
y = Log10(Exp(x) + 4);
Vyvid();
}
}
public abstract void Vyvid();
}
}
1.5.Результат роботи програми
/
2.1 Задання
Скласти блок-схеми алгоритмів та програми мовою С# для табулювання функцій. Забезпечити ввід значень інтервалу, кроку і похибки табулювання з клавіатури і вивід результатів на дисплей. табулювання функції, представленої рядом , на інтервалі [a, b] з кроком табуляції h та абсолютною похибкою d. Оцінку похибки здійснювати за значенням модуля чергового члена ряду.
/
2.2 Блок-схема алгоритму програми
Метод «Main ()»
/
Метод «Read1»
/
Метод «Rah ()»
/
Метод «Vyv ()»
/
Метод «Tabul ()»
/
3.2 Список ідентифікаторів констант, змінних, процедур і функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення.
x – змінні дійсного типу, які є аргументами виразу;
a, b – змінні дійсного типу, які визначають інтервал;
h – змінна дійсного типу, яка визначає крок;
d – змінна дійсного типу, що є похибкою;
y – змінна дійсного типу, що є абсолютною похибкою виразу;
S – змінна дійсного типу, якій надається значення результату обчислення виразу;
n – змінна цілого типу, яка є аргументом виразу і оператору циклу з післяумовою;
Main( ) – головний метод;
Console.ReadLine() – метод, що затримує вікно консолю;
public – рівень доступу, у якому члени доступні з будь-якого місця програми;
double – тип, з плаваючою точкою подвійної точності;
int – цілий знаковий тип;
Console.Write – метод, що виводить текст на екран;
Convert.ToDouble – метод, що переводить дані типу string в double;
Console.ReadLine() – метод, що зчитує дані з консолю;
Read1() – метод, що відповідає за вивід допоміжного тексту на екран і зчитування з екрану значення змінних;
Rah() – метод, що відповідає за обрахування виразу;
Math.Pow() – метод, до повертає значення числа піднесеного до вказаного степеня;
Math.Sin() – метод, що повертає значення синуса від числа;
Tabul() – метод, що відповідає за табуляцію функції;
for (…) – цикл з передумовою;
do … while(…) – цикл з післяумовою;
Vyv() – метод, що відповідає за виведення результату обрахунку.
4.2 Остаточна версія програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Math;
namespace Laba2b
{
class Program
{
static void Main(string[] args)
{
Tab y = new Tab();
y.Read1();
y.Tabul();
Console.ReadLine();
}
}
class Obr
{
public double a, b, h, d, S, y, x;
public int n = 1;
const int m = 3;
public void Read1()
{
Console.WriteLine("a=");
a = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("b=");
b = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("h=");
h = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("d=");
d = Convert.ToDouble(Console.ReadLine());
}
public long factorial(long value)
{
long result = 1;
for (long i = 2; i <= value; i++)
{
result *= i;
}
return result;
}
public void Rah()
{
y = (((m + n - 1) / (double)(factorial(n))) * Pow(x, n));
}
public void Vyv()
{
Console.WriteLine("x={0} \t S={1} \t pohybka={2} \n", x, S, Abs(y));
}
}
class Tab : Obr
{
public void Tabul()
{
for (x = a; x < b + h / 10; x += h)
{
S = 1;
n = 1;
y = 0;
do
{
S += y;
Rah();
n++;
}
while (Abs(y) > d);
Vyv();
}
}
}
}
5.2 Результати роботи програми
/
Висновок
На цій лабораторні роботі ми вивчили інструкції мови C#. Навчилися складати та відлагоджувати розрахункові програми з розгалуженими та циклічними структурами. Навчилися працювати з циклами “for” та “do while”.
Склали блок-схеми алгоритмів та програми мовою С# для табулювання функцій з похибкою та без похибки.