Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 431
от 08.06.2006, 22:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 339, Экспертов: 49
В номере:Вопросов: 2, Ответов: 4


Вопрос № 45047: Здравствуйте, Уважаемые Эксперты. Задача (см. приложение) метод Ньютона для нулей функций. Подробнее можно глянуть здесь [http://en.wikipedia.org/wiki/Newton's_method] , если не знакомы ещё. На русском не нашёл, но принцип можно без язык...
Вопрос № 45085: Прошу помоч по курсовому проекту. У меня задание: Хранение текста в двоичном файле (начальный балл 5.0) Двоичный файл содержит записи – текстовые строки в формате записей переменной длины. Реализовать набор операций над записями без загр...

Вопрос № 45.047
Здравствуйте, Уважаемые Эксперты.

Задача (см. приложение) метод Ньютона для нулей функций.
Подробнее можно глянуть здесь [http://en.wikipedia.org/wiki/Newton's_method] , если не знакомы ещё. На русском не нашёл, но принцип можно без языка понять.
Рассчитываю нули для функций.
На пример: f(x)=x*x-2. Можно и другие f(x), не в том суть.

А вопросы такие:
1.Как описать производную?
2.Можно ли как-нибудь сделать, чтобы не в программе описывалась
бы f(x),а задавалась пользователем? Знаю, что Си не предусмотрен
для таких запросов, но поделитесь соображениями.

Спасибо.

P.S. Чуть не забыл: MSV 6, Си (не Си ++).

Приложение:

Отправлен: 03.06.2006, 09:32
Вопрос задал: Евсеев В. Н. (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Zitz
Здравствуйте, Евсеев В. Н.!

Можно. Задайте к примеру такой шаблон функции
f(x, A, B, C, D, E) = A*x^4+B*x^3+C*x^2+D*x + E
т.е. пользователь вводит например x^2 - 2, отсюда имеем
A=0, B=0, C=1, D=0, E=-2
Если не знаете как или не хотите строку анализировать, то пусть пользователь сразу же эти коэффициенты вводит для простоты.
Ну а производная тоже лягко считается
F(x, A, B, C, D) = 4*A*x^3+3*B*x^2+2*C*x+D
---------
Успех неизбежен
Ответ отправил: Zitz (статус: Студент)
Ответ отправлен: 03.06.2006, 11:07
Оценка за ответ: 5

Отвечает: Boriss
Здравствуйте, Евсеев В. Н.!
Можно производную и не описывать, а считать ее приближенно (тогда получается, что рассчитываем не касательную, а секущую):
dxk = xk - f(xk)/((f(x(k)) - f(x(k-1)))/(x(k) - x(k-1)) )
Метод немного медленнее, называется "метод секущих"
---------
Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: факультет Электронной техники, Мордовский госуниверситет
Адрес: г. Саранск
WWW: Программирование на Паскале
----
Ответ отправлен: 03.06.2006, 13:57
Оценка за ответ: 5

Отвечает: Vest
Здравствуйте, Евсеев В. Н.!
Насчёт производной - есть методы выч. математики (если нужно, могу прислать необходимые функции): метод половинного деления, касательных (был в ответе), хорд и совместный хорд и касательных (точнее приближённый результат).
Если хочешь чтобы функция задавалась пользователем, то могу посоветовать, либо создать необходимые шаблоны функций с параметрами (a, b, c, d...), либо посложнее - это написать интерпритатор символьных выражений (или иногда называется что-то вроде анализатора выражений, или какой-то калькулятор - не могу вспомнить точное название). Ранее в ответах этот механизм описывался, да и информация есть по этому поводу в инете.

Да, вот ещё - ты находишь нули, "отталкиваясь" от некоторого начала, есть идея попытаться вывести больше "нолей" за раз - после того, как ты находишь ноль (с некоторой точностью), вывести его, и далее выбрать следующую на некотором от него расстоянии точку, и просчитать следующий ответ, главное вовремя остановится, чтобы программа "вечно" не работала...
---------
Халявы не бывает
Ответ отправил: Vest (статус: 2-ой класс)
Ответ отправлен: 03.06.2006, 19:34
Оценка за ответ: 5


Вопрос № 45.085
Прошу помоч по курсовому проекту. У меня задание:

Хранение текста в двоичном файле (начальный балл 5.0)
Двоичный файл содержит записи – текстовые строки в формате записей переменной длины. Реализовать набор операций над записями без загрузки одновременно всей таблицы в память (поэлементная загрузка СД): добавление строки таблицы, извлечение, удаление, вставка по логическому номеру и редактирование (обновление) строки, вставка с сохранением порядка, сортировка (возможно, через внешний текстовый файл), экспорт строк из текстового файла, постраничный просмотр. Структура данных: Двусвязный список, элемент списка содержит строку.

Не могли бы вы дать наиболлее понятную формулировку задания? Я студент 1-го курса. Язык программирования Си. Спасибо.
Отправлен: 03.06.2006, 17:36
Вопрос задал: Басёнов Е.С. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: gitter
Здравствуйте, Басёнов Е.С.!
Очень интересная задача как для первого курса.
Более понятную формулировку, конечно же, должен был дать преподаватель.
Я приведу пример работы с двунаправленным списком: добавление, редактирование, вставка, удаление, сортировка элементов списка, с тестовыми процедурами проверки этих функций.
А как всё это связать с двочным файлом - додумывай сам, переспроси у преподавателя алгоритм (покажи ему что ты уже что-то сделал, а вот с этим-то возникли трудности).

PS Отправил исходники письмом, т.к. здесь ограничение на ответ 6000-8000 символов
Ответ отправил: gitter (статус: 3-ий класс)
Ответ отправлен: 06.06.2006, 12:40


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное