Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164

Голодная коза на веревке.

08.01.2010, 12:30. Показов 2957. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть квадратное поле с травой, сторона квадрата - N.
В центре поля привязана веревка длины r. К другому концу веревки привязана коза.
Коза поедает всю траву, до которой может дотянуться, при этом ей мешает длина веревки.
Ввод: В первой строке файла input содержатся два целых числа N и r через пробел.
1<=N,r<=100
Ограничения: время счета - 1 сек, объем памяти: 16 Mb
Вывод: С точностью до 3-ех знаков указать площадь травы, которую cъест коза.

Пример:
INPUT:
10 6
OUTPUT:
95.091

http://acm.timus.ru/problem.aspx?space=1&num=1084
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.01.2010, 12:30
Ответы с готовыми решениями:

Написать программу Голодная зима
Написать программу с оператором while Голодная зима. Суточный рацион коровы составляет u кг сена, ν кг силоса и ω кг...

Голодная зима. циклы.
хэлп, плиз! срочно =) выкладываю условие и пример проги на javascript. на паскале грамотно кто-нибудь может написать? Голодная зима....

Мальчик вращает камень, привязанный к веревке длиной 1м, в вертикальной плоскости с частотой 12 гц
На какую высоту взлетел камень, если веревка оторвалась на тот момент, когда скорость была направлена вертикально вверх?

15
Быдлокодер
 Аватар для Darky
512 / 298 / 85
Регистрация: 22.11.2009
Сообщений: 892
08.01.2010, 12:43
Если я правильно понимаю, то нужно посчитать площадь круга с заданным радиусом? При некоторых условиях
1
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
08.01.2010, 12:48  [ТС]
Веревка, вытянутая на полную длину образует круг.
Поле образует квадрат.
Пусть S - это искомая площадь.
Имеем три случая:

1) Край круга не достает до стороны квадрата.
r<=N/2
S= площадь круга = PI*r^2

2) Край круга протирается дальше чем углы квадрата
Пусть N2 - расстояние от центра квадрата до угла квадрата.
N2= sqrt( 0.5*N^2 )= N/sqrt( 2.0 )
Условие: r>=N2
S= площадь квадрата = N^2

3) Край круга находится дальше чем сторона квадрата, но меньше чем угол квадрата.
Условие:
N/2<r<N2
Осталось посчитать площадь в этом самом сложном случае
1
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
08.01.2010, 13:02
http://amway.ucoz.ua/pusti_kozla_v_ogorod.rar

Вот, если это вам поможет))
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
08.01.2010, 13:05  [ТС]
Не - будем без подсказок решать
1
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
08.01.2010, 13:08
стоп, так эт я написал, или вы мне не доверяете?

Добавлено через 1 минуту
там просто выкладки на А4 по поиску площади 4-ех секторов и 4-ех треугольников, с рисунком
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
08.01.2010, 13:08  [ТС]
Вывод long double с используя printf()
Этот код тоже ты написал ?
1
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
08.01.2010, 13:10
хотя, нет, в суме 2*А4 + финальная формула на 3-ем листе

Добавлено через 52 секунды
я старался расписать так, что-бы можно было найти ошибку
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
08.01.2010, 13:10
Цитата Сообщение от odip Посмотреть сообщение
3) Край круга находится дальше чем сторона квадрата, но меньше чем угол квадрата.
Условие:
N/2<r<N2
Осталось посчитать площадь в этом самом сложном случае
Это есть площадь круга минус учетверённая площадь сегмента (который торчит из-за сторон квадрата). Радиус известен, угол вычисляется, соотвеnственно вычисляется площадь сегмента
1
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
08.01.2010, 13:16
Evg, а если решить еще и через площади сегментов, тогда если формулы сойдутся - я вывел верно, иначе, ищем ошибку..

Добавлено через 3 минуты
odip, я же говорил, ошибка в последнем знаке - это ронг ансер..
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
08.01.2010, 13:21
Цитата Сообщение от odip Посмотреть сообщение
Веревка, вытянутая на полную длину образует круг.
Поле образует квадрат.
Пусть S - это искомая площадь.
Имеем три случая:

...

2) Край круга протирается дальше чем углы квадрата
Пусть N2 - расстояние от центра квадрата до угла квадрата.
N2= sqrt( 0.5*N^2 )= N/sqrt( 2.0 )
Условие: r>=N2
S= площадь квадрата = N^2
...
Для этого случая формула такая:
2) Край круга протирается дальше чем углы квадрата
Пусть N2 - расстояние от центра квадрата до угла квадрата.
N2= sqrt((0.5*N)^2+(0.5*N)^2)=0.5*N*sqrt(2.0 ) //по т.Пифагора
Условие: r>=N2
S= площадь квадрата = N^2
1
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
08.01.2010, 13:26  [ТС]
Delphin_KKC, можешь сам убедиться что 0.5*sqrt(2.0) == 1/sqrt( 2.0 )
)))
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
08.01.2010, 13:27
odip, согласен, с 1/sqrt(2.0)
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
08.01.2010, 13:37
Цитата Сообщение от odip Посмотреть сообщение
Delphin_KKC, можешь сам убедиться что 0.5*sqrt(2.0) == 1/sqrt( 2.0 )
)))
Может быть. Я формулу писал прямо в окне ответа.
Но умножение, насколько я помню из уроков ассемблера, выполняется чуть быстрее деления.
А в задаче есть ограничение по времени счёта.

Для ещё большего ускорения можно вместо 0.5*sqrt(2.0) написать 0.707 (на всякий случай проверьте константу; ибо по памяти пишу)
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
08.01.2010, 15:21  [ТС]
C
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
/* Thread 83603 */
 
#include <stdio.h>
#include <assert.h>
#include <math.h>
 
 
/********************************************************************/
#define PI 3.141592653589793238462
 
 
/********************************************************************/
double calc_koza_square( double N, double r );
 
 
/********************************************************************/
int main( void ) {
 
int N_int, r_int;
double S;
 
 
freopen( "input.txt", "r", stdin );
freopen( "output.txt", "w", stdout );
 
scanf( "%d %d", &N_int, &r_int );
assert( 1<=N_int && N_int<=100 );
assert( 1<=r_int && r_int<=100 );
 
S= calc_koza_square( (double)N_int, (double)r_int );
printf( "%.3f\n", S );
 
return 0;
 
} /* main() */
 
 
/********************************************************************/
double calc_koza_square( double N, double r ) {
 
double N_2, N2, teta, S;
 
 
N_2= 0.5*N;
N2= N/sqrt( 2.0 );
 
if ( r<=N_2 ) {
    return PI*r*r;
} else if ( r>=N2 ) {
    return N*N;
}
 
teta= 2*acos( N_2/r );
S= PI*r*r-4*(0.5*r*r*(teta-sin(teta)));
 
return S;
 
} /* calc_koza_square() */
Во - правильно считает.

Добавлено через 10 минут
teta - угол сегмента, который торчит за пределы квадрата.

Найдем половину этого угла.
cos( teta/2 ) = катет / гипотенузу = N/2 / r

teta= 2*acos( N_2/r )

Площадь_сегмента = 0.5*r*r*(teta-sin(teta))

S= площадь_круга - 4*площади_сегмента = PI*r*r-4*(0.5*r*r*(teta-sin(teta)))

Добавлено через 1 минуту
outoftime, чего-то сильно перемудрил у себя в файле rtf

Добавлено через 1 час 18 минут
Задача Пуговицы - Игра Пуговицы.
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
08.01.2010, 15:22
сейчас проферю hosts, может вируса..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.01.2010, 15:22
Помогаю со студенческими работами здесь

Волк, коза и капуста
на одном берегу вовк, коза и капуста, как их переправить на 2 берег лодкой я знаю, а вот как ето запрограмировать незнаю((( подскажите!!!...

Коза на круглом лугу
К колышку на краю круглого поля радиуса R привязана коза. Какой длины должна быть веревка, чтобы коза смогла съесть траву только на...

Волк заяц и коза
Классическая задача про волка заяца и козу , которых нужно перевозить на другой берег так что бы коза не съела капусту а волк не съел козу....

Волк, коза и капуста через БД?
Здравствуйте. Скажу сразу, облазил всё что мог, но найти мой вариант решения этой головоломки я не смог. У меня есть только вывод...

Волк Коза и Капуста: Просмотреть все возможные варианты перевозок и выбрать наикратчайший вариант
Доброе время суток, форумчане. Сразу к делу. предмет называется &quot;Искусственный Интеллект&quot;. Нужно решить эту задачу про волка, козу и...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
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, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru