Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
2 / 2 / 2
Регистрация: 17.03.2015
Сообщений: 147

Вычисление площади фигуры

26.11.2015, 22:53. Показов 1616. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача состоит в вычислении площади общей части полуэллипса и ромба, для тестирования беру a и b больше c и d (т.е. искомая площадь является по-сути полуплощадью ромба). Вот код методом Монте-Карло:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
var
a,b,c,d,e,Sold,Snew,a1,b1 : double;
p1,p2 : boolean;
n,k,m :integer;
procedure vvod();
begin
write('Задайте погрешность вычислений: ');
readln(e);
write('Задайте длину первой полуоси эллипса: ');
readln(a);
write('Задайте длину второй полуоси эллипса: ');
readln(b);
write('Задайте первую полудиагональ ромба: ');
readln(c);
write('Задайте вторую полудиагональ ромба: ');
readln(d);
end;
 
function check(x,y :double):boolean;
begin
p1:=((sqr(x)/sqr(a)+ sqr(y)/sqr(b))<=1)and (y>=0);
p2:=(abs(x)<=c) and(abs(y)<=-d/c+d);
if p1 and p2 then check:=true else check:=false;
end;
 
procedure MonteCarlo_m(a1,b1 :double; k: longint; var m: longint);
var
i: integer;
x,y :double;
flag :boolean;
begin
m:=0;
n:= sqr(k);
for i:=1 to n do begin
x:=random*(2*a1+1)- a1;
y:=random*(2*b1+1)- b1;
flag:=check(x,y);
if flag = true then m:=m+1;
end;
end;
 
begin
randomize;
k:=1;
Snew:=10000;
vvod();
repeat
Sold:=Snew;
if (abs(a)>abs(c)) then a1:=a else a1:=c;
if (abs(b)>abs(d)) then b1:=b else b1:=d;
MonteCarlo_m(a1,b1,k,m);
Snew:=m/n*(a1*b1);
k:=k+1;
until (abs(Sold-Snew)<e);
writeln('Площадь: ', Snew);
writeln('Нажмите любую клавишу...');
read();
exit;
end.
Не могу найти ошибку, площадь возвращает равной нулю.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2015, 22:53
Ответы с готовыми решениями:

Вычислить и сравнить площади двух треугольников. Оформить вычисление площади в виде процедуры
1. вычеслить площади двух треугольников и сравнить их. оформит вычисление площади треугольника по формуле Герона в виде процедуры. по...

Определение площади фигуры, образованной графиком функции
Определить площадь фигуры, образованной графиком функции y=x^1/3 и осью абсцисс, с точностью 0,5-1,0% и менее 0,01%. Область определения...

Вычисление площади кольца
uses crt; var a,b,c:integer; s:array of integer; f1:text; const p=3; begin assign(f1,'out.txt'); rewrite(f1); ...

2
2 / 2 / 2
Регистрация: 17.03.2015
Сообщений: 147
26.11.2015, 22:54  [ТС]
Вот рисунок
Миниатюры
Вычисление площади фигуры  
0
2 / 2 / 2
Регистрация: 17.03.2015
Сообщений: 147
26.11.2015, 23:23  [ТС]
Проблему нашел, она заключается в том, что проверка на заданную погрешность оставляет 0, если 2 шага подряд ни 1 точки не попало в область, т.е. |Sold-Snew|<E
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.11.2015, 23:23
Помогаю со студенческими работами здесь

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

Вычисление площади параллелограмма
Была дана задача на языке паскаль написать программу вычисления площади параллелограмма. Никак не мог закончить программу, не знал...

Вычисление площади треугольника 3 способами
Составитт программу вычисления площади треуголника из трех известных формул.

Вычисление площади треугольника с координатами вершин
Составьте программу для вычисления площади треугольника с координатами вершин (x1,y1), (x2,y2), (x3,y3) используя формулу для вычисления...

Вычисление площади треугольника по формуле Герона
Даны координаты вершин некоторого пятиугольника. Разбив его на треугольники вычислить его площадь. Вычисление площади треугольника по...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru