0 / 0 / 0
Регистрация: 15.10.2011
Сообщений: 43
1

Программа для решения физической задачи

08.07.2012, 11:43. Показов 2513. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Прошу помощи в написании программы для решения физической задачи.
Делфи ругется на вот эту часть кода:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
begin
  e0:=8.85*exp(ln(10)*(-12));
  C:=e1*e0*R*(((pi*R)/L)+ln((16*pi*R)/L)-1);
  while L/R<1 do begin
    razn:=Abs(R-L);
    if razn<prev_razn then begin
      mem:=R;
      prev_razn:=razn;
    end;
    with Form1.Series1 do AddXY(R,L);
    R:=R+0.0001;
  end;
  edt1.Text:=FloatToStrF(mem,ffFixed,4,2);
end;
Само задание во вложении к сообщению.
Миниатюры
Программа для решения физической задачи  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.07.2012, 11:43
Ответы с готовыми решениями:

Программа, для решения задачи постоянной площади (фигура - кольцо)
Пишу программу для магистерской работы (я обработчик давлением, а не программист, если что, поэтому...

Программа решения задачи с оператором многовариантного выбора
Составить в Console Application delphi программу решения задачи с помощью оператора...

Программа на Delphi, реализующая алгоритм решения задачи выбора
Переборные задачи.Кто может сделать ?

Программа для решения задачи
Напишите программу для решения задачи: сколько можно купить быков, коров и телят, платя за быка 10...

10
80 / 80 / 9
Регистрация: 16.02.2010
Сообщений: 636
08.07.2012, 11:58 2
что пишет?
0
0 / 0 / 0
Регистрация: 15.10.2011
Сообщений: 43
08.07.2012, 12:01  [ТС] 3
SecretSilent, компилируется нормально, но при выборе вариантов "floating point division by zero"
0
80 / 80 / 9
Регистрация: 16.02.2010
Сообщений: 636
08.07.2012, 12:03 4
Gunis, ну так значит, у вас где-то делится на ноль. пробежитесь дебаггером, посмотрите, в какой именно строчке выскакивает ошибка
0
0 / 0 / 0
Регистрация: 15.10.2011
Сообщений: 43
08.07.2012, 12:09  [ТС] 5
SecretSilent, пробовал. Получается, что ошибка в главной формуле
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
08.07.2012, 12:12 6
Если на картинке все задание, то при чем здесь неправильно написанное это
Delphi
1
 with Form1.Series1 do AddXY(R,L);
0
80 / 80 / 9
Регистрация: 16.02.2010
Сообщений: 636
08.07.2012, 12:15 7
а где вы берете значение радиуса в 4-й строчке? Он же неизвестный, насколько я понимаю. И зачем вы присваиваете что-то емкости - ее значение дано в вариантах?

Добавлено через 1 минуту
Gunis, вам сейчас нужно выразить из формулы радиус и подставить значения.
0
0 / 0 / 0
Регистрация: 15.10.2011
Сообщений: 43
08.07.2012, 19:35  [ТС] 8
Puporev, там нужно еще вывести график

SecretSilent, это то я понял, что нужно R выразить. Весь вопрос в том - как это сделать?
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
08.07.2012, 19:39 9
Цитата Сообщение от Gunis Посмотреть сообщение
что нужно R выразить. Весь вопрос в том - как это сделать?
Не нужно R выражать. Нужно составить функцию
F(e1,e0,r,l); и прогнать ее скажем от r=0.001 пока r<l с шагом типа 0.001
при abs(F-C)<0.001 завершить цикл, это и будет нужный радиус
1
0 / 0 / 0
Регистрация: 15.10.2011
Сообщений: 43
08.07.2012, 21:31  [ТС] 10
Puporev, спасибо большое! Не могли бы помочь оформить программно?

Добавлено через 1 час 31 минуту
Вроде как то так должно получиться:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
begin
**Series1.Clear;
**Re:=0;
**Reh:=0.0012;
**e0:=8.85*exp(Ln(10)*(-12));
**for i:=1 to 1000 do begin
****Re:=Re+Reh;
****C:=e1*e0*Re*(((pi*Re)/L)+ln((16*pi*Re)/L)-1);
****if (Re<L) then begin
****edt1.Text:=FormatFloat('0.0000',Re);
****R:=Re;
****end;
**end;
 
**Re:=0;
**Reh:=0.005;
**for i:=1 to 50 do begin
****Re:=Re+Reh;
****C:=e1*e0*Re*(((pi*Re)/L)+ln((16*pi*Re)/L)-1);
****Series1.AddXY(Re,C);
****end;
end;
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
08.07.2012, 21:44 11
Вот я посчитал для консоли и для 1 варианта, вроде так.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const e0=8.85e-3;{в пФ/мм}
      e1=1;
      l=1;
      c=100;
      t=0.001;
function F(r:extended):extended;
begin
F:=e1*e0*r*(pi*r/l+ln(16*pi*r/l)-1);
end;
var x,r:extended;
begin
r:=l+t;
while abs(F(r)-c)>t do r:=r+t;
write('R=',r:0:3,'  C=',F(r):0:8);//C для проверки, должно быть около 100
readln
end.
Добавлено через 41 секунду
радиус в миллиметрах.
1
08.07.2012, 21:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2012, 21:44
Помогаю со студенческими работами здесь

Программа для решения задачи Кеплера
народ такая ситуация препод дал программу для расчета задачи кеплера (находит радиус планет...

Программа для решения олимпиадной задачи о поездках Васи на метро по проездному билету
Мальчик Вася каждый день ездит на метро. Утром он едет в школу, а вечером того же дня, обратно из...

Программа с выбором варианта решения задачи.
Помогите решить 2 задачи. http://s61.***********/i171/0905/7f/24d839454b1c.jpg Нужно решить первую...

Моделирование физической задачи на Си/Си++
Люди, смоделировать задачу физическую на движение тела выпущеным под углом. Ну тоесть должно...

Моделирование физической задачи
Привет! Вот решил смоделировать задачу по физике когда там тело брошено под углом к горизонту. Я...

Математическая интерпретация физической задачи
Здравствуйте! Возникли сложности с записью диффура для вот такой вот задачи: Есть двухмерный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru