|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.07.2008, 08:44 | #1 |
Регистрация: 14.07.2008
Сообщений: 5
|
Нужна помощь в доведении программы до рабочего состояния
Задача:
В гибридных интегральных схемах используются плоские пленочные катушки индуктивности в виде квадратной спирали. Индуктивность такой катушки (в нГн) приближенно определяется по формуле: L:=2.41*a*exp((5/3)*ln(N))*ln((8*a)/c) где N - число витков, a=(R1+R2)/2, c=R2-R1, R1 и R2 - размеры внутреннего и внешнего витков катушки. Задавшись числом витков N и размером R1, найдите параметр R2, обеспечивающий заданную индуктивность L (Значения N, R1 и L даны в таблице (6 вариантов)) Что нужно было сделать: Интерфейс, решение функции, вывод данных о ней, о варианте и о переменных с константами + построить график. Вот, что получилось. Программа выдает ошибку "Invalid floating point operation" Последний раз редактировалось Darion; 14.07.2008 в 09:38. |
14.07.2008, 09:05 | #2 | ||
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Приложи файл программы, легче будет разобраться.
Цитата:
Цитата:
Тип Real для таких вычислений по-моему не годится. Последний раз редактировалось puporev; 14.07.2008 в 09:51. |
||
14.07.2008, 10:00 | #3 |
Регистрация: 14.07.2008
Сообщений: 5
|
Как тогда грамотно поправить?
|
14.07.2008, 10:23 | #4 |
Регистрация: 14.07.2008
Сообщений: 5
|
Я заменил их типы на extended, но все равно не выходит...
|
14.07.2008, 11:02 | #5 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
деление на 0 - проверяйте в каждом операторе /
Берегите друг друга!
|
15.07.2008, 00:37 | #6 |
Регистрация: 14.07.2008
Сообщений: 5
|
Я покопался в программе, понял, что криво записал функцию.
Выразил ручками гигантское уравнение, в котором неизвестна только искомая переменная. И не пашет... Нужна помощь... |
15.07.2008, 08:08 | #7 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Ваша формула стала ничуть не лучше, чем была. Из первоначальной функции нужно вытащить R2 и привести функцию к виду
R2(N,L,R1:extended):extended; begin R2:=преобразованная функция, где через указанные три параметра, определяется значение R2. Тут немного надо знать математику. |
15.07.2008, 11:00 | #8 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Сделал новый пост, чтобы автор получил уведомление.
P.S. Сам попробовал это сделать, сходу ничего не получилось. Подумал, что если такое преобразование сделать нельзя, или оно ни к чему не приведет, то можно попробовать искать R2 по другому. Код:
Но вот проблема: и так программа не работает. Я взял Вашу формулу и проделал манипуляции в Экселе. Ни при каком R2 не получается нужная индукция, следовательно в исходной формуле ошибка, или скобки неправильно, или еще что-то, трудно сказать. Лист Экселя прилагаю. |
15.07.2008, 22:02 | #9 |
Регистрация: 14.07.2008
Сообщений: 5
|
Вот само задание, формулы вроде я все верно написал и выразил
|
16.07.2008, 11:57 | #10 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Действительно с формулой все в порядке, просто я взял такие исходные данные при которых она не выполнима. Посмотрел программу дальше. Нам оказывается не нужно вычислять R2, а брать его с графика. Я построил приближенные графики в Excel. Из них видно, во-первых, что значений R2 не одно, а два, и нужно решить которое Вам нужно. Во-вторых, при шаге 0,01 никогда не получится точность 0,00001. Скорее наоборот, если поменять их местами.
При построении графика мы по формуле считаем значение Li-изменяющейся индукции. Нам надо найти значение(значения) R2, при котором abs(L-Li)<=e; Код:
Вам надо поправить все ваши процедуры, продумать, что они делают, откуда берут данные, куда выдают. Например что делают эти процедуры: Код:
Короче надо разбираться с программой, в чем я Вам не помощник, поскольку сам в Дельфи почти ноль. Если помните, начинали мы с " Программа выдает ошибку "Invalid floating point operation"", тут я вам мог подсказать, а получилось как в поговорке "Дайте воды попить, а то так есть хочется, что переночевать негде".Это шутка. Кроче посмотрите графики, таблицы, подумайте что и как поправить. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужна помощь в создании программы... | Gangster | Общие вопросы Delphi | 16 | 24.05.2008 14:42 |
нужна помощь - 2 программы в С++ | Nemisoi | Фриланс | 1 | 22.04.2008 23:10 |
Нужна помощь в написании программы. | GhosT3Ds | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 23.12.2007 07:45 |