Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
32
Добавлен:
15.01.2021
Размер:
112.13 Кб
Скачать

11

Алгоритми та структури даних

Лабораторна робота № 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 запусках

n

t

5

0,0034

10

0,0068

15

0,0092

20

0,0112

25

0,0132

Динаміка зростання: 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();

}

}

}