Задачи 2017 (1171688), страница 3
Текст из файла (страница 3)
Какие ограничения у такогоалгоритма? Чем он лучше или хуже классического метода Ньютона?- Проверьте полученный результат с помощью открытых ресурсов в Интернете.- Придумайте, как сообщить функции solve или main информацию о том, что расчетфункции или ее производной невозможен (например, потребовалось взять корень изотрицательного числа)ПриложениеПримеры функций для поиска корня19205. Вычисление интеграла функции F(x) методом трапецийОписаниеВычислите интеграл заданной функции F(x) методом трапеций.Основные требования к реализации:Программа имеет «дружественный интерфейс».
Вначале программа печатает информациюо себе, затем сообщает, какие параметры должен ввести пользователь: пределыинтегрирования, число разбиений. Далее выполняется вычисление интеграла. Послевывода результатов программа спрашивает у пользователя, хочет ли он повторить расчет сдругими параметрами.Функция F(x) задается преподавателем.
Пределы интегрирования a, b и число разбиений Nинтервала интегрирования задается с клавиатуры.ТеорияДля вычисления интеграламетодом трапеций интервалразбивается на N одинаковых отрезков размером. В пределах каждого отрезка функция считается линейной, поэтому ееинтеграл равен площади трапеции,Просуммировав площади всех трапеций, получаем численное значение интеграла:Для вычисления значения функции f(x) определите в программе отдельную функцию.Вычисление суммы реализуйте в основной программе.Вопросы1.
Проверьте полученный результат с помощью открытых ресурсов в Интернете.2. Напишите программу так, чтобы значение функции в каждой точкевычислялосьтолько один раз.3. *Оцените точность вычисленного значения. Как быстро точность улучшается приувеличении числа разбиений?21Указание. Для оценки точности можно воспользоваться неравенством:Вторую производную вычислите аналитически и определите в программеотдельную функцию для вычисления ее значения. В то же цикле, в которомвычисляется основная сумма (1), вычислите и максимальное абсолютное значениевторой производной.Список вариантов функций f(x).226.Программаповычислениюмаксимума,минимума,среднегозначения,среднеквадратичного отклонения во введенном статическом массивеОписаниеПрограмма для вычисления максимального, минимального, среднего значения исреднеквадратичного отклонения во введенном статическом массиве.Основные требования к реализации:Программа имеет «дружественный интерфейс».
Вначале программа печатает информациюо себе, затем сообщает, какие параметры должен ввести пользователь: количествоэлементов в массиве и значения элементов. Далее выполняется вычисление параметроввведенного массива. После вывода результатов программа спрашивает у пользователя,хочет ли он повторить расчет с другими параметрами.Максимальный размер массива задается #define и сообщается пользователю на стартепрограммы.Хранение массива необходимо выполнять в виде глобальной переменной.Все вычислительные операции с массивом необходимо делать в отдельных функцияхНе используйте указатели в программе, используйте оператор []ТеорияФормула для вычисления среднеквадратичного отклоненияВопросы- сколько раз ваша программа проходит по массиву?- Какое наименьшее число раз необходимо пройти, если бы была поставлена задачаминимизировать этот параметр?- Реализуйте программу так, чтобы среднее значение и среднеквадратичное отклонениевычислялись в едином цикле – одном проходе через массив.
Тогда вам придетсяреализовать функцию, которая вернет два значения. Как это сделать?237.Программаповычислениюмаксимума,минимума,среднегозначения,среднеквадратичного отклонения во введенном динамическом массивеОписаниеПрограмма для вычисления максимального, минимального, среднего значения исреднеквадратичного отклонения во введенном динамическом массиве.Основные требования к реализации:Программа имеет «дружественный интерфейс». Вначале программа печатает информациюо себе, затем сообщает, какие параметры должен ввести пользователь: количествоэлементов в массиве и значения элементов.
Далее выполняется вычисление параметроввведенного массива. После вывода результатов программа спрашивает у пользователя,хочет ли он повторить расчет с другими параметрами.Размер массива задается пользователемЦелочисленные элементы массива задаются пользователем с клавиатурыВыделение и освобождение памяти в функции main()Все вычислительные операции с массивом необходимо делать в отдельных функцияхРабота с элементами через указатели, не используйте оператор доступа к элементумассива []248. Сортировка введенного динамического массиваОписаниеРеализовать алгоритм «пузырек»сортировки динамического массиваОсновные требования к реализации:Программа имеет «дружественный интерфейс».
Вначале программа печатает информациюо себе, затем сообщает, какие параметры должен ввести пользователь: количествоэлементов в массиве, диапазон значений элементов, направление сортировки. Далеевыполняется заполнение массива случайными элементами, вывод несортированногомассива, затем сортировка и вывод отсортированного массива. После вывода результатовпрограмма спрашивает у пользователя, хочет ли он повторить расчет с другимипараметрами.Реализация единой функции сортировки sort_array() в соответствии с математическоймоделью, за счет выделения функций compare() и replace()Реализуйте в программе несколько функций сравнения, для различных алгоритмовсортировки (по убыванию, по возрастанию, по абсолютному значению), и передайтеуказатель на соответствующую функцию сравнения в единую функцию сортировкиТеория1.
Сортировка пузырькомАлгоритм сортировки пузырьком состоит из повторяющихся проходов по сортируемомумассиву. За каждый проход элементы последовательно сравниваются попарно и, еслипорядок в паре неверный, выполняется обмен элементов. Проходы по массивуповторяются раз или до тех пор, пока на очередном проходе не окажется, что обменыбольше не нужны, что означает, чтомассив отсортирован. При каждом проходеалгоритма по внутреннему циклу, очередной наибольший элемент массива ставится насвоѐ место в конце массива рядом с предыдущим «наибольшим элементом», анаименьший элемент перемещается на одну позицию к началу массива («всплывает» донужной позиции, как пузырѐк в воде, отсюда и название алгоритма).2.
Сортировка перемешиваниемСортировка перемешиванием или Шейкерная сортировка — разновидность пузырьковойсортировки.Анализируяметодпузырьковойобстоятельства.25сортировки,можноотметитьдваВо-первых, если при движении по части массива перестановки не происходят, то эта частьмассива уже отсортирована и, следовательно, еѐ можно исключить из рассмотрения.Во-вторых, при движении от конца массива к началу минимальный элемент «всплывает»на первую позицию, а максимальный элемент сдвигается только на одну позицию вправо.Эти две идеи приводят к следующим модификациям в методе пузырьковой сортировки.Границы рабочей части массива (то есть части массива, где происходит движение)устанавливаютсявместепоследнегообменанакаждойитерации.Массивпросматривается поочередно справа налево и слева направо.3.
Передача указателей на функцииВ языке С можно передавать указатель на функцию в качестве параметра в другуюфункцию. Рассмотрим примерdouble f1(double x){return x+5.0;}void function(double f(double)){printf(“%f”, f(0));}int main(){function(sin);function(cos);function(f1);return 0;}26В этом примере в функцию function передается указатель на функцию «double f(double)».При вызове функции function в качестве параметра передается название функции, котораяимеет такую же сигнатуру, как и f в объявлении функции function. В данном примерепередавались математические функции sin, cos из библиотеки math.h и созданнаяпользователем функция f1.Аналогично можно передавать в функции и другие функции с самыми разнообразнымиопределениями.Вопросы- Оцените вычислительную сложность алгоритма сортировки- Предложите варианты оптимизации алгоритма сортировки279. Обработка текста введенного пользователемОписаниеПрограмма обработки текста, хранящегося в памяти в статическом массивеОсновные требования к реализации:Программа имеет «дружественный интерфейс».
Вначале программа печатает информациюо себе, затем сообщает, что должен ввести пользователь. После вывода результатовпрограмма спрашивает у пользователя, хочет ли он ввести другую строку.Текст хранится в статическом массиве заданного размера, определенного макросом#define.Необходимо реализовать функцию коррекции текста, которая поддерживает следующиеправила:5) большая буква только в начале предложения или в начале текста,6) удаление нескольких пробелов, следующих подряд,7) удаление пробелов перед точкой и запятой,8) добавление пробела после знаков препинания.При работе функции коррекции необходимо свести использование дополнительнойпамяти до постоянного размера, не зависимо от длины введенной строки.Программа может состоять из таких функций:main – выполняет ввод/вывод данных пользователю и вызов функции коррекцииcorrect_string–выполняеткоррекциювведеннойстроки.Используетreplace_symb, delete_symb, insert_symbreplace_symb – заменяет один символ в строке другимdelete_symb – удаляет символ из заданной позиции строкиinsert_symb – вставляет символ в заданную позицию строкиВопросы1.















