|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Помогите с задачей /Pascal/ |
|
|
Delphi - [решено] Помогите с задачей /Pascal/
|
![]() Сообщения: 3652 |
Собственно, задача:
Цитата:
![]() |
||
------- Отправлено: 14:08, 21-10-2009 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Habetdin:
В формуле получается сумма от 1 до n при условии R1<Ri<R2 . Для уменьшения кол-ва расчетов можно взять 1/8 круга, скорректировав конечный результат. |
|
------- Отправлено: 22:29, 21-10-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Сообщения: 3652
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 00:04, 22-10-2009 | #3 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Habetdin,
Цитата Habetdin:
![]() И тогда введя все нужные обозначения, у них не должно возникнуть вопроса, а "что писать"? Все это будет четко привязано к формулам. Только за абстракцией, к примеру, R=... будет стоять либо функция, либо простая арифметика, массив, и пр. Цитата Habetdin:
" rez:=Ri(0, " - вот это надо переделать в отдельную функцию. И больше ничего подсказывать не буду ![]() P.S. Я как-то говорил, что не буду заниматься написанием программ. Мне больше интересен процесс понимания человеком того, что он пишет. Т.е. семантика языка это одно, внутренняя логика и структура программы - другое. Вот меня интересует то самое другое. ![]() |
||
------- Отправлено: 01:31, 22-10-2009 | #4 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Для экономии времени ещё можно ходить не по всему кругу, а только по его границе, потом вычести компоненту y "нижнего" круга из "верхнего". Получится имитация вычисления площади как интеграла (f2(x) - f1(x))dx
|
|
Отправлено: 07:17, 22-10-2009 | #5 |
![]() Ветеран Сообщения: 540
|
Профиль | Отправить PM | Цитировать В школьные годы на олимпиаде была подобная задача, но с треугольником. По трем заданным точка рисуется треугольник и нужно проверить попадает ли четвертая точка в него или нет. Одноклассник очень оригинально ее решил, что мне сильно врезалось в память.
Он решил ее графически. Если сделать аналогию, то нужно нарисовать 2 окружности и залить внутреннее пространство каким-либо цветом. Ну а после нужно перебирать точки и считывать их цвет. Решение данной задачи было сделано на Бейсике, но ведь наверняка в Паскале есть подобные функции. |
------- Отправлено: 10:39, 22-10-2009 | #6 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать |
Отправлено: 02:46, 26-10-2009 | #7 |
![]() Сообщения: 3652
|
Профиль | Сайт | Отправить PM | Цитировать Вот что имеется на данный момент:
program Park; var r1,r2,k,x,y: integer; begin assign(input,'input.txt'); assign(output,'output.txt'); reset(input); read(input,r1,r2); close(input); k:=0; for x:=r1+1 to r2-1 do begin y:=sqrt(sqr(r2)-sqr(x)); if sqr(x)+sqr(y)=sqr(r2) then dack(y); k:=k+y; for x:=0 to r1-1 do begin if sqr(x)+sqr(y)=sqr(r1) then k:=k-y; end; end; k:=k*4; rewrite(output); writeln(output,k); close(output); end. ![]() |
------- Отправлено: 20:40, 26-10-2009 | #8 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Drongo:
Habetdin, Цитата Habetdin:
y - определен как целое, а ему хотят назначить результат с плавающей запятой. результат работы функции sqrt. Цитата:
Цитата Habetdin:
На будущее операцию возведения в квадрат проще и читабельнее писать как x*x Всем переменным либо дать более полные и нормальные названия, либо в var прокомментировать их и дать словесное обозначение. Что такое k - ? К циклу так же дать комментарии. Т.к. непонятно что делаешь, и что надо проверять. |
||||
------- Отправлено: 21:23, 26-10-2009 | #9 |
![]() Сообщения: 3652
|
Профиль | Сайт | Отправить PM | Цитировать lxa85, r1,r2 - см. условие задачи; k - кол-во деревьев; x,y - оси абцисс, ординат
dack(y); - то же самое, что и y:=y-1 program Park; var r1,r2,k: integer; x,y: real; begin assign(input,'input.txt'); assign(output,'output.txt'); reset(input); read(input,r1,r2); close(input); k:=0; for x:=r1+1 to r2-1 do begin y:=sqrt(r2*r2-x*x); if x*x+y*y=r2*r2 then dack(y); k:=k+y; for x:=0 to r1-1 do begin if x*x+y*y=r1*r1 then k:=k-y; end; end; k:=k*4; rewrite(output); writeln(output,k); close(output); end. Цитата:
|
|
------- Отправлено: 21:43, 27-10-2009 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Всё о TURBO PASCAL (обсуждение, помощь в написание программ, ошибки, Pascal ABC) | Loading | Программирование и базы данных | 41 | 20-05-2015 15:28 | |
C/C++ - помогите с задачей по СИ!!! | feliks2009 | Программирование и базы данных | 4 | 16-11-2009 00:18 | |
C/C++ - [решено] Помогите с задачей! | FeuerEngel | Программирование и базы данных | 3 | 28-05-2009 09:58 | |
Delphi - [решено] Помогите с комбинаторной задачей! | ALI | Программирование и базы данных | 16 | 01-01-2009 14:10 | |
C/C++ - Помогите с задачей по Тройкам Пифагора | quaker_strelok | Программирование и базы данных | 10 | 01-12-2008 16:44 |
|