Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2016, 13:40   #1
ARTEN
Новичок
Джуниор
 
Регистрация: 12.10.2016
Сообщений: 5
По умолчанию Найти площади (Паскаль)

Составить алгоритм и написать код программы, вычисляющей длину линии вертикального разреза фигуры y_razrez, значения площадей фигуры слева и справа от линии разреза s_left, s_right, по значениям аргумента x, введенным с консоли. C линией разреза все понятно,но не получается найти площади
ARTEN вне форума Ответить с цитированием
Старый 12.10.2016, 14:08   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Разбиваешь площадь на множество, маленьких прямоугольников.

Площадь прямоугольника как находится?
Высоту на ширину...

111.jpg

В нашем случае ширина всегда одна и та же и равна "dx= рассматриваемый интервал / кол-во разбиений (количество разбиений может равняться и 10000 и более)". А высота прямоугольничка -> значение функции в i-й точке (т.е. f(xo), f(xo+dx), f(xo+2*dx), f(xo+3*dx).... ). Суммируешь площади маленьких прямоугольничков.
ura_111 вне форума Ответить с цитированием
Старый 12.10.2016, 14:09   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

смотрите похожие темы:

http://programmersforum.ru/showthread.php?t=213209

http://programmersforum.ru/showthread.php?t=297491


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

Последний раз редактировалось Serge_Bliznykov; 12.10.2016 в 14:11.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.10.2016, 14:53   #4
ARTEN
Новичок
Джуниор
 
Регистрация: 12.10.2016
Сообщений: 5
По умолчанию

если не сложно можете помочь реализовать это в программном коде, не особо силен в этом, особенно в геометрии, давно это было, заранее искренне благодарен.
ARTEN вне форума Ответить с цитированием
Старый 12.10.2016, 15:07   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от ARTEN Посмотреть сообщение
C линией разреза все понятно
простите, а что Вам понятно с линией разреза?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.10.2016, 15:20   #6
ARTEN
Новичок
Джуниор
 
Регистрация: 12.10.2016
Сообщений: 5
По умолчанию

допустим что при x от 1 до 2 - y_razrez= 2*sqrt((2-x)*(2-(2-x))).
ARTEN вне форума Ответить с цитированием
Старый 12.10.2016, 15:37   #7
ARTEN
Новичок
Джуниор
 
Регистрация: 12.10.2016
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
простите, а что Вам понятно с линией разреза?
не получается найти x<1 :

S1 = 2 - Math.PI / 2;
S2 = Math.PI / 2;

if (x == 1) {
y_razrez = 2.0;
s_left = S2;
s_right = S1;
}

if (x > 1) {

y_razrez = 2 * Math.sqrt((2 - x) * (2 - (2 - x)));
s_right = Math.acos(x - 1) - (x - 1) * Math.sqrt(1 - (x - 1) * (x - 1));
s_left = S1 + S2 - s_right;

System.out.println(y_razrez);
System.out.println(s_right);
System.out.println(s_left);
}
if (x < 1) {

y_razrez = 2 - 2 * Math.sqrt((2 - x) * (2 - (2 - x)));

System.out.println(y_razrez);
}
ARTEN вне форума Ответить с цитированием
Старый 12.10.2016, 15:45   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
допустим что при x от 1 до 2 - y_razrez= 2*sqrt((2-x)*(2-(2-x))).
Да, верно.

но я бы рассмотрел другую формулу.
если рассмотреть прямоугольный треугольник из центра окружности,
то легко увидеть, что гипотенуза равна 1 (радиус окружности единица),
по оси X длина катета равна (X-1), а по оси Y - длина катета и даёт необходимое значение y
поэтому
длина хорды равна 2*y
=> 2 * sqrt( 1 - sqr(x-1) )

результат получается одинаковый.

p.s.
Цитата:
System.out.println(y_razrez);
это что, код на Java?
я думал, что Вы на Паскале пишете, а Вам на java надо решение?

Последний раз редактировалось Serge_Bliznykov; 12.10.2016 в 15:49.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.10.2016, 16:07   #9
ARTEN
Новичок
Джуниор
 
Регистрация: 12.10.2016
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Да, верно.

но я бы рассмотрел другую формулу.
если рассмотреть прямоугольный треугольник из центра окружности,
то легко увидеть, что гипотенуза равна 1 (радиус окружности единица),
по оси X длина катета равна (X-1), а по оси Y - длина катета и даёт необходимое значение y
поэтому
длина хорды равна 2*y
=> 2 * sqrt( 1 - sqr(x-1) )

результат получается одинаковый.

p.s.

это что, код на Java?
я думал, что Вы на Паскале пишете, а Вам на java надо решение?
Мне не принципиально на каком языке,ява,паскаль или си без разницы. Просто не получается найти площади при условии когда x лежит в интервале от 0 до 1
ARTEN вне форума Ответить с цитированием
Старый 12.10.2016, 16:32   #10
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

А какой вид функции на промежутке [0;1] ?

Парабола (у=х*х)?
ura_111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти площади трех колец, для которых даны внешние и внутренние радиусы C++ визуальный режим carrie bradshaw Помощь студентам 13 31.01.2014 00:42
Написать программу вычисления площади многоугольника используя формулу для вычисления площади треугольника в качестве подпрограммы сердце Паскаль, Turbo Pascal, PascalABC.NET 0 24.12.2012 18:21
НАйти ромб наибольшей площади... Altair8 Помощь студентам 12 17.03.2011 08:29
Паскаль.программа вычисления площади кольца uropb992 Помощь студентам 8 09.06.2010 19:53
Паскаль Вычисление площади Unikummm Помощь студентам 16 04.02.2009 06:52