Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 418

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Я не умею программировать совсем и мне срочно нужна ваша помощь, пожалуйста помогите написать программу если для вас не составит труда.
Вычислить объём:
тело образовано вращением вокруг оси Ох фигуры, ограниченной линиями: y=2x-x*x, y+x-2=0, x=0

Вычислить объём:
тело образовано вращением вокруг оси Оу фигуры, ограниченной графиком: y=0, y=1, x=0.5, y= корень(x-1)

Очень вас прошу, помогите пожалуйста =)

Lena Shatrova Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: Lena Shatrova (статус: Посетитель)
Вопрос отправлен: 16 июня 2011, 17:52
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Толяныч

Здравствуйте, Lena Shatrova!

Что-то нет желающих. Да и зачем - сессия-то, нверное, уже позади ?
Не студентов ради, а истины для :
Можно решить методом Монте-Карло. В параллелепипед со сторонами 2, 1 и 1 бросаем точку, координаты которой равномерно распределены на интервале (0..2),(0..1) и (0..1) соответственно.
Подсчитываем счисло точек, попавших в заданное условие, делим на число реализаций и затем умножаем на объем параллелепипеда ( App.1)

Приложение:
  1. {code}
  2. var
  3. Form1: TForm1 ;
  4. I,N4,Np : Int64 ;
  5. V : double ;
  6. implementation
  7.  
  8. {$R *.dfm}
  9.  
  10.  
  11.  
  12. procedure TForm1.FormClick(Sender: TObject);
  13. var ix,iy : integer ;
  14. x,y,z,r,r1,r2 : double ;
  15. begin
  16. Memo1.Lines.Add( 'B') ; N4 := 0 ; Np := 0 ;
  17. for ix := 1 to 10000000 do
  18. begin
  19. x := Random ; y := Random * 2.0 ; z := Random * 2 ;
  20. r := Sqrt (z*z+ y*y) ;
  21. if (r >= (x * (2.0-x))) and (r < (2.0-x)) then Inc(N4) ;
  22. if (r <= (x * (2.0-x)) ) then Inc(Np) ;
  23. end ;
  24. Memo1.Lines.Add( Format('%d %d',[N4,Np]) ) ;
  25. x := N4 * 0.0000016 ;
  26. Memo1.Lines.Add( Format('%12.8f',[x]) ) ;
  27. end ;
  28.  
  29. end.
  30. {/code}
  31.  


Ответ отправил: Толяныч (статус: 4-ый класс)
Время отправки: 20 июня 2011, 14:59
Оценка за ответ: 5

Комментарий к оценке: спасибо!

Мини-форум вопроса

Всего сообщений: 11; последнее сообщение — 21 июня 2011, 00:39; участников в обсуждении: 5.
min@y™

min@y™ (статус: Доктор наук), 16 июня 2011, 18:59 [#1]:

А по каким формулам вычисляются объёмы данных фигур? Тут попахивает двойными интегралами. Программировать ты не умеешь, а как на счёт математики-то?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Lena Shatrova

Lena Shatrova (статус: Посетитель), 16 июня 2011, 19:15 [#2]:

с математикой у меня всё нормально, только с интегралами не очень, у меня есть программа, которая считает эти объёмы, но не мои значения, я не знаю как там исправить, так как она написана не мной и я её не понимаю.
Егор

Егор (статус: 10-ый класс), 16 июня 2011, 19:35 [#3]:

пива поставишь? :) я решу. не впервой :)
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
Lena Shatrova

Lena Shatrova (статус: Посетитель), 16 июня 2011, 19:44 [#4]:

насчёт пива это ты серьёзно? :)

16 июня 2011, 21:05: Вопрос перемещён из тематического раздела Delphi » Прочее в раздел Лабораторный практикум » Delphi модератором Ерёмин А.А.

Lena Shatrova

Lena Shatrova (статус: Посетитель), 17 июня 2011, 05:14 [#5]:

Толяныч: я интегралы последний раз решала года 2 назад, и сейчас вспоминая их у меня возникают трудности.
min@y™

min@y™ (статус: Доктор наук), 17 июня 2011, 08:19 [#6]:

Цитата (Lena Shatrova):

я интегралы последний раз решала года 2 назад, и сейчас вспоминая их у меня возникают трудности.

А я решал интегралы в 1997 году. И сейчас, вспоминая их, я понимаю, что они мне в жизни так и не пригодились.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
bugmenot

bugmenot (статус: 3-ий класс), 17 июня 2011, 10:16 [#7]:

Цитата (Толяныч):

я вожу машину хорошо, но только по прямой, и чтоб светофоров не было

Поезд монорельсовой дороги подходит =)
виконання програми розпочинається з того самого мiсця, де призупинилося.

Толяныч

Толяныч (статус: 4-ый класс), 20 июня 2011, 15:06 [#8]:

Но такой экзотичный вариант покажется преподу подозрительным. Поэтому более тривиальное : из объема усеченного конуса вычитаем объем параболоида вращения.

фрагмент кода

Результаты :

1-й способ ( взято несколько реализаций )
5,65614880
5,65644000
5,65639360
5,65419680

2-й способ
4 5,698227 5,6982273001
8 5,665758 -0,0324692600
16 5,657593 -0,0081652519
32 5,655548 -0,0020443090
64 5,655037 -0,0005112645
128 5,654909 -0,0001278278
256 5,654877 -0,0000319577
512 5,654869 -0,0000079895
1024 5,654867 -0,0000019974
2048 5,654867 -0,0000004993

Как видно, метод Монте-Карло дает величины с разбросом, что и понятно - метод-то вероятностный.
Набирая достаточное число реализаций и усредняя, можем получить приемлемую точность.

Второй вариант решается абсолютно так же, только там надо отдельно посчитать объем цилиндра, а потом из него "вырезать объем" параболоида.
Lena Shatrova

Lena Shatrova (статус: Посетитель), 20 июня 2011, 17:17 [#9]:

Сессию я уже сдала, у меня в данный момент проходит практика. Спасибо вам огромное за программу, я взяла второй способ.
Толяныч

Толяныч (статус: 4-ый класс), 21 июня 2011, 00:16 [#10]:

А отметку 5 мне Пушкин поставит ?
bugmenot

bugmenot (статус: 3-ий класс), 21 июня 2011, 00:39 [#11]:

Утром оценка - вечером ответ; вечером оценка - утром ответ.
виконання програми розпочинається з того самого мiсця, де призупинилося.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:31
Выполнено за 0.02 сек.