
Алгоритми та структури даних ЗПІ-91-20210115T104612Z-001 / Lab 1. Прості алгоритми
.doc
Алгоритми та структури даних
Лабораторна робота № 1
(max 6 балів)
Завдання для всіх
Способи запису алгоритмів
Блок-схему будувати засобами Word.
1. Скласти блок-схему алгоритму обчислення 2*n! Реалізувати наведений алгоритм на ПК на C#.
Дослідити асимптотичну складність алгоритму за часом виконання. Побудувати графік функції зростання складності в Excel. Дослідити при якому значенні n відбудеться переповнення розрядної сітки для типу long.
2. Скласти блок-схему алгоритму обчислення виразу n!+30*n. Реалізувати наведений приклад на C#.
3. Скласти програму обчислення n-го числа Фібоначчі для вказаного n.
Дослідити асимптотичну складність алгоритму за часом виконання. Побудувати графік функції зростання в Excel.
4. Скласти програму на мові C# для створення масиву з 50 чисел, заповнення його цілими числами і обчислення суми і середнього арифметичного елементів масиву.
5. Скласти програму на мові C# для створення масиву 3 чисел, заповнення його цілими числами, обчислення добутку і середнього геометричного елементів масиву.
формула обчислення середнього геометричного:
6. Скласти блок-схеми алгоритмів пошуку НСД двох чисел діленням і відніманням.
7. Скласти словесний опис алгоритму генерації послідовності ступенів числа 2i і реалізувати його на C#. Послідовність: 2, 22,…..2n. Кількість членів послідовності n ввести з консолі. Результати вивести на консоль.
Дослідити асимптотичну складність алгоритму за часом виконання. Побудувати графік функції зростання складності в Excel. Дослідити при якому значенні n відбудеться переповнення розрядної сітки для типу int.
8. Написати програму знаходження членів послідовності
сi=(аi — bi )*(аi + bi ) (1 <i<n).Кількість членів послідовності ввести з консолі. Масиви для зберігання членів послідовностей ai, bi, ci не використовувати.
Правила для формування послідовностей ai, bi придумати самостійно.
Зростання часу виконання для обчислення n! при 5 запусках
|
|
Динаміка зростання: t/(t-1)
2 |
1,352941 |
1,217391 |
1,178571 |
class Program
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch(); //створення об’єкту класу
int n = 5;
for (int k = 0; k < 5; k++)
{
sw.Start();
long fact = 1;
for (int i = 2; i <= n; i++)
fact *= i;
Console.WriteLine("fact= " + fact);
//зупинення таймера
sw.Stop();
TimeSpan ts = sw.Elapsed; // ts – час виконання
Console.WriteLine("Total time: {0} \t n= {1}", ts.TotalMilliseconds, n);
n += 5;
}
Console.ReadKey();
}
8. Написати програму знаходження членів послідовності
сi=(аi — bi )*(аi + bi ) (1 <i<n).Кількість членів послідовності ввести з консолі. Масиви для зберігання членів послідовностей ai, bi, ci не використовувати.
namespace AlgorLab1_8
{
class Program
{
//Написати програму знаходження членів послідовності
//сi=(аi — bi )*(аi + bi ) (1 <i<n)
static void Main(string[] args)
{
Console.WriteLine("Введите количество членов последовательности");
int n = int.Parse(Console.ReadLine());
int a, b, c;
for (int i = 1; i <= n; i++)
{
a = 2 * i;
b = 3 * i;
c = (a - b) * (a + b);
Console.WriteLine("a= {0} \t b= {1} \t c={2}", a, b, c);
}
Console.ReadKey();
}
}
}