Министерство образования и науки Украины
Донецкий национальный технический университет
Задания к практическим занятиям по курсу “дискретные структуры”
Донецк, 2012
Тема 1. Интуитивное понятие алгоритма
Материал этой темы является вводным при изучении классической теории алгоритмов. Основные задачи изучения темы – повторение и закрепление понятия и свойств алгоритма, рассматриваемых в курсе « Программирование и работа на ЭВМ », дальнейшее развитие навыков алгоритмизации, демонстрация проявления основных свойств алгоритмов на конкретных примерах. Рекомендуемая литература : [1,2,3,4].
Задания на самостоятельную работу
Контрольные вопросы :
- в чем смысл интуитивного понятия алгоритма ?
- назовите основные свойства алгоритмов. Как они проявляются в программах ?
- в чем особенность рекурсивных алгоритмов ?
Задачи.
1.Составьте следующие алгоритмы :
а) вычисление произведения двух целых чисел без использования операции умножения;
б) вычисление частного и остатка от деления двух целых чисел без использования операции деления;
в) перевод целого десятичного числа в P-ичную систему счисления;
г) подсчет количества делителей целого числа X;
д) вычисление n! , где n - любое целое число;
Выполните трассировку алгоритмов: Евклида, решета Эратосфена, разложения числа на простые множители по исходным данным в соответствии с вариантом задания.
Алгоритм № п/п |
Алгоритм Евклида |
Решето Эратосфена |
Разложение чисел на простые множители | |
1 |
2 3 |
4 |
5 | |
1 |
25 |
60 |
150 |
68 |
2 |
70 |
42 |
160 |
36 |
3 |
100 |
30 |
130 |
100 |
4 |
85 |
60 |
200 |
96 |
5 |
78 |
29 |
65 |
72 |
6 |
36 |
48 |
112 |
106 |
7 |
112 |
40 |
120 |
85 |
8 |
30 |
120 |
250 |
48 |
9 |
52 |
13 |
220 |
90 |
10 |
72 |
38 |
80 |
200 |
11 |
86 |
92 |
146 |
66 |
12 |
40 |
100 |
150 |
70 |
13 |
35 |
150 |
210 |
82 |
14 |
128 |
192 |
160 |
30 |
15 |
81 |
27 |
230 |
102 |
16 |
68 |
96 |
125 |
78 |
17 |
68 |
26 |
170 |
128 |
18 |
64 |
160 |
240 |
86 |
19 |
172 |
43 |
111 |
56 |
20 |
105 |
50 |
195 |
44 |
21 |
116 |
48 |
190 |
122 |
22 |
256 |
64 |
99 |
108 |
23 |
49 |
70 |
300 |
39 |
24 |
26 |
104 |
119 |
115 |
25 |
121 |
22 |
270 |
45 |
Отсортировать массив X с помощью методов вставок, слияния и «взбалтывания». Привести всю последовательность шагов алгоритма для заданного массива.
1. 7,1,4,9,53,39,33.
87,72,41,12,50,67,52.
15,23,85,19,56,13,55.
15,70,81,57,36,16,85,46.
11,73,14,24,28,29,43,27.
35,47,33,11,18,38,94,36.
80,25,95,20,62,53,56,62.
24,99,23,83,12,75,12,2,14.
17,68,18,16,19,71,87,11,59.
12,14,51,13,71,89,39,16.
11,66,12,79,22,87,21,19,20.
26,27,95,30,11,62,29,45.
80,72,73,81,38,46,24,30.
32,14,79,27,79,58,69,74.
67,37,73,83,29,81,16,53,94.
25,65,19,99,26,74,32,33.
106,274,301,221,241,188.
13,52,11,73,25,91,26,82.
46,95,43,50,76,45,57,61.
10,31,34,11,7,17,18,58,24.
24,28,61,19,27,15,95,26.
20,86,16,19,81,71,26,82.
96,86,73,42,46,27,39.
14,79,37,11,34,36,38,46.
18,16,26,23,24,29,31,32.
4. Составьте рекурсивные алгоритмы для вычисления:
а) суммы n элементов массива чисел;
б) произведения n элементов массива;
в) поиск максимального и минимального элементов в массиве чисел;
г) сортировка методом « взбалтывания » . Указание : составить два рекурсивных алгоритма : один выполняет просмотр массива, другой – использует просмотры для сортировки всего массива;
д) поиск заданного элемента в неупорядоченном массиве;
е) поиск заданного элемента в упорядоченном массиве методом деления массива пополам.
Выполните трассировку рекурсивных алгоритмов :
а) игра « Ханойская башня » для n=3 и n=4;
б) функция «91» ; в качестве n возьмите номер своего варианта, увеличенный на 30;
в) алгоритмы, указанные в п.4.