scanf("%d",&end);
}
}
Замечание. Функция formula() возвращает адрес либо адрес функции form_Simps(), либо адрес функции form_ trap(). Важно, что 2 последние функции, типы возвращаемых значений которых совпадают, имеют одинаковые списки формальных параметров, т.е. одинаковое количество параметров, типы которых попарно совпадают.
КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАНИЯ
1. Переписать программу из примеров 4.1 – 4.3, добавив дополнительные функции для приближенного интегрирования:
· f(X) = , [a,b] = [0,1];
· f(X) =, [a,b] = [0,1];
· f(X) =ln(1 + ), [a,b] = [0,1.2].
2. Описать функцию для приближенного вычисления определенного интеграла по формуле Ньютона (правилу трех восьмых) и использовать ее в программе, изменив по необходимости функции из примера 4.4. Для подынтегральных выражений использовать функции из примера 4.1.
Правило трех восьмых (количество узлов, n, должно удовлетворять условию: n =3m, где – m натуральное число):
≈ .
Здесь h = (b – a)\n, = a, == b, = a + ih для i = .
3. Написать оператор объявления указателя на функцию, которая не имеет параметров и возвращает адрес целочисленного массива.
4. Написать заголовок функции_1, возвращающей переменную типа float. Первый формальный параметр функции – указатель на переменную типа int, второй – указатель на функцию_2, которая не имеет параметров и возвращающую адрес массива переменных типа float.
5. Объявить массив из N указателей на функции, каждая из которых при вызове получает адрес строки, целое число и символ. В точки вызова функции ничего не возвращают.
6. Объявить массив из K указателей на функции, каждая из которых при вызове получает адрес строки и адрес целого числа. В точки вызова функции возвращают адрес функции без параметров, возвращающей символ.
ЛАБОРАТОРНАЯ РАБОТА 5
Целью лабораторной работы 5 является освоение приемов многоуровневой адресации для передачи объектов разного типа между функциями.
ВАРИАНТЫ ЗАДАНИЙ
Вариант 1. В программе описать 3 функции.
Функция f1() осуществляет ввод m, n – размеров одномерных массивов, а[i] и b[i] –значений элементов массивов (предварительно под массивы в теле функции динамически выделяется память), передает в главную m, n, a[i], i=1,...m, и b[i], i=1,...n.
Функция f2(), получая через параметры одномерный массив, динамически выделяет память под новый массив (каждый элемент нового массива – соответствующий элемент исходного, возведенный в степень 3) и передает главной «информацию» о новом массиве и его максимальном элементе.
Главная функция получает размеры массивов и значения их элементов после вызова f1(), дважды вызывает f2(), сравнивает полученные максимальные элементы и выводит на экран элементы того массива, максимальный элемент которого больше.
Вариант 2. В программе описать 3 функции.
Функция f1() осуществляет ввод m-размера одномерного массива, а[i] – значений элементов массива (предварительно под массив в теле функции динамически выделяется память), передает в главную mи a[i], i=1,...m.
Функция f2(), получая через параметры одномерный массив, динамически выделяет память под новый массив (инвертируемый исходный) и передает главной функции «информацию» о новом массиве. Тип возвращаемого функцией значения – void.
Главная функция получает размер массива и значения его элементов через f1(), вызывает f2() и выводит на экран элементы нового массива, полученные как разности элементов исходного массива и инвертированного.
Вариант 3. В программе описать 3 функции.
Функция f1() осуществляет ввод m, n – размеров одномерных массивов, а[i] и b[i] – значений элементов массивов (предварительно под массивы в теле функции динамически выделяется память), передает в главную m, n, a[i], i=1,...m, и b[i], i=1,...n.
Функция f2(), получая через параметры одномерный массив, осуществляет поиск минимального элемента массива и передает его в точку вызова.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.