- •Программирование на языке высокого уровня си
- •Часть II
- •Содержание
- •Работа 1. Пользовательские функции в си
- •I. Теоретический раздел работы
- •1. Функции
- •1.1. Аргументы функций
- •1.2.Функции, возвращающие значения.
- •1.3. Функция main ()
- •2. Рекурсия.
- •II. Экспериментальный раздел работы
- •III. Задания для самостоятельной работы
- •Работа 2. Структурированный тип данных массив
- •I. Теоретический раздел работы
- •1.1. Структурированный тип данных массив
- •1.2. Передача массива в качестве параметра
- •1.3. Многомерные массивы
- •II. Экспериментальный раздел
- •III. Задания для самостоятельной работы.
- •Работа 3. Символьный и строковый типы данных
- •1.1. Символьный тип данных
- •Работа 4. Структуры
- •I. Теоретический раздел работы
- •1.1. Структура
- •1.2. Объединение
- •1.3. Переименование типов
- •II. Экспериментальный раздел работы
- •III. Задания для самостоятельной работы
- •Работа 5. Работа с файлами
- •I. Теоретический раздел работы
- •1.1.Введение
- •1.1. Потоковый ввод-вывод
- •1.2. Открытие и закрытие потока
- •1.3. Стандартные файлы и функции для работы с ними.
- •1.4. Форматированный ввод-вывод
- •1.5. Прямой доступ к файлам
- •II. Экспериментальный раздел работы.
- •III. Задания для самостоятельной работы
- •Список литературы
- •Учебное издание
- •Часть II
III. Задания для самостоятельной работы
A.
1. Вычислить числа Фибоначчи второго порядка:
u0 =1; u1 =2; u2 =3
un = un-1 + un-2 + un-3 , при n=3, 4,…
2. Написать рекурсивную функцию для вычисления значения так называемой функции Аккермана для неотрицательных чисел n и m. Функция Аккермана определяется следующим образом:
3. Вычислить рекурсивно функцию:
n –10, если n>100
F(n)= F(F(n+4)), если n<100
4. Вычислить рекурсивно функцию :
1, если n=1
S(n) S(n/2), если n=2k
S((3n+1)/2), если n=2k+1
5. Написать рекурсивную и нерекурсивную функции вычисления биномиальных коэффициентов:
C(n,0) = C(n,n) = 1
C(m,n) = C(m,n-1) + C(m-1,n-1) при 0 < m < n
6. Написать рекурсивную и нерекурсивную функции для разностного уравнения
А(0) = 1
A(n) = A(ndiv2)+A(ndiv3)
7. Написать рекурсивную функцию:
а) вычисления суммы цифр натурального числа;
б) вычисления количества цифр натурального числа.
8. Даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для нахождения:
а) n-го члена прогрессии;
б) суммы n первых членов прогрессии.
9. Даны первый член и знаменатель геометрической прогрессии. Написать рекурсивную функцию:
а) нахождения ее n-го члена;
б) нахождения суммы n первых членов прогрессии.
B.
1. Вычислить рекурсивно полином Лежандра порядке n:
P0(x) = 1; P1(x) = x;
Pn(x)=((2n-1)Pn-1(x) - (n-1)Pn-2(x)/n
2. Написать рекурсивную и не рекурсивную функции вычисления полинома Чебышева первого ряда:
T0(x)=1; T1(x)=x
Tn(x)=2xTn-1(x) – Tn-2(x)
Сравнить число операций.
3. Написать рекурсивную и не рекурсивную функции вычисления полинома:
H0(x)=1; H1(x)=x
Hn(x)=xHn-1(x) –(n-2)Hn-2(x)
Сравнить число операций.
4. Написать рекурсивную и не рекурсивную функции вычисления полинома:
G0(x)=1; G1(x)=x-1
Gn(x)=(x-2n+1)Gn-1(x) –(n-1)2Gn-2(x)
Сравнить число операций.
5. Написать рекурсивную и не рекурсивную функции вычисления полинома:
L0(x)=1; L1(x)=x
Сравнить число операций.
6. Написать рекурсивную и не рекурсивную функции вычисления полинома Эрмита
H0(x)=1; H1(x)=2x
Hn(x)=2xHn(x) – 2nHn-1(x)
7. Написать рекурсивную и не рекурсивную функции вычисления полинома Лагерра:
, n=1,2,
L0(x)=1; L1(x)=1-x.
8. Вычислить рекурсивно и нерекурсивно:
,
где
k!! = 1*3*5*…k, если k – нечетно
k!! = 2*4*6*…k, если k - четно
9. Вычислить, используя рекурсию и без нее:
а) ;
б) ;
в) ;
г) ;
д) ;
е)
C.
1. Используя команды write(x) лишь при х=0,1,…9 написать рекурсивную процедуру вывода на экран десятичной записи натурального числа n.
2. Используя команды write(x) лишь при х=0,1 написать рекурсивную процедуру вывода на экран двоичной записи натурального числа n.
3. Используя команды write(x) лишь при х=0,1,…9 написать рекурсивную процедуру вывода на экран восьмеричной записи натурального числа n.
4.Написать рекурсивную и нерекурсивную функции возведения вещественного числа х в натуральную степень n.
5. Цифровой корень натурального числа находится через сумму цифр этого числа до тех пор, пока эта сумма не станет цифрой. Написать рекурсивную функцию нахождения цифрового корня натурального числа.
6. Написать рекурсивную процедуру перевода числа из десятичной системы в N –ю
(2<= N <= 16).
7. Составить рекурсивную функцию нахождения суммы первых n членов арифметической и геометрической прогрессий.
8. Составить рекурсивную процедуру нахождения максимального элемента в массиве.
9. Написать рекурсивный алгоритм головоломки «ханойская башня».
10. Написать рекурсивный алгоритм перевода из двоичной системы счисления в десятичную ( из восьмеричной и шестнадцатеричной в десятичную).
11. Написать рекурсивный алгоритм представления натурального числа в римском исчислении.
12. Написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке.
13. Написать рекурсивную процедуру перевода натурального числа из десятичной системы счисления в N-ичную. Значение N в основной программе вводится с клавиатуры (2 N 1б).
14. Написать рекурсивную функцию, определяющую, является ли заданное натуральное число простым (простым называется натуральное число, большее 1, не имеющее других делителей, кроме единицы и самого себя).