Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Помогите с задачей /Pascal/

Ответить
Настройки темы
Delphi - [решено] Помогите с задачей /Pascal/

Аватара для Habetdin


Автор проектов


Сообщения: 3649
Благодарности: 1498

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Habetdin
Дата: 21-10-2009
Собственно, задача:
Цитата:
В центре городского парка, имеющего форму круга радиуса R2, находится круглый фонтан радиусом R1. Деревья в парке растут в узлах координатной сетки, начало которой находится в центре фонтана. Шаг координатной сетки равен 1. На границах парка и фонтана деревья не растут. Посчитайте количество деревьев в парке.

Вводятся два целых числа R1 и R2. Вывести количество деревьев.
Вопрос в том, как найти кол-во деревьев (по какой формуле?)

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Отправлено: 14:08, 21-10-2009

 

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


for x:=r1+1 to r2-1 do
Должен быть целочисленным

Код: Выделить весь код
var
r1,r2,k,x,y,rez: integer;
begin
assign(input,'input.txt');
assign(output,'output.txt');
reset(input);
read(input,r1,r2);
close(input);
rez:=0;
{*Делаем перебор всех точек начиная от [-r2,r2](верхнийй левый угол) и 
заканчивая [r2,-r2](нижний правый угол)*}
for x:=-r2 to r2 do
  for y:=-r2 to r2 do
{*Для каждой точки проверяем *}
    if ((x*x+y*y<r2){*Лежит ли она внутри окружность радиуса r2 И*} 
and (x*x+y*y>r1){*вне окружности радиуса r1*}) then rez:=rez+1;{*если да прибавляем 1 к количесву деревьев*}
writeln(output,rez);
close(output);
end.

Отправлено: 22:06, 27-10-2009 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для detrin

Ветеран


Сообщения: 540
Благодарности: 42

Профиль | Отправить PM | Цитировать


Цитата Habetdin:
Теперь ошибка в 12 строке:
Цитата:
Error 97: Invalid FOR Control variable - Ошибочен тип переменной параметра цикла оператора FOR. »
Имхо, скобки нужны: "for x:=(r1+1) to (r2-1) do"

-------
Лучше ничего не делать, чем делать ничего.


Отправлено: 22:20, 27-10-2009 | #12


Аватара для Habetdin


Автор проектов


Сообщения: 3649
Благодарности: 1498

Профиль | Сайт | Отправить 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:=-r2 to r2 do
for y:=-r2 to r2 do
if ((x*x+y*y<r2) and (x*x+y*y>r1)) then k:=k+1;
rewrite(output);
writeln(output,k);
close(output);
end.
Выходной файл не создается, да и простой вывод на экран k не работает

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Отправлено: 23:08, 27-10-2009 | #13


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Habetdin,
Цитата Habetdin:
if ((x*x+y*y<r2) and (x*x+y*y>r1)) then k:=k+1; »
найди 2 ошибки.
Цитата Habetdin:
да и простой вывод на экран k не работает »
это как?
readln; в конце программы поставь, чтобы вывод k посмотреть.
переменными r1, r2 тоже можно для начала задаться в ручную.

Отладчик что говорит по ходу выполнения программы?
Какая вообще среда программирования?

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 09:19, 28-10-2009 | #14


Аватара для Habetdin


Автор проектов


Сообщения: 3649
Благодарности: 1498

Профиль | Сайт | Отправить PM | Цитировать


lxa85, Turbo Pascal
Вот что сейчас:
Код: Выделить весь код
program Park;
var
r1,r2,k,x,y: integer;
begin
assign(input,'C:\input.txt');
reset(input);
read(input,r1,r2);
close(input);
k:=0;
for x:=-r2 to r2 do
for y:=-r2 to r2 do
if (x*x+y*y<r2) and (x*x+y*y>r1) then
k:=k+1;
assign(output,'C:\output.txt');
rewrite(output);
writeln(output,k);
close(output);
end.
Но результат почему-то неверный, при r1=1 и r2=3 k должно быть 20, а получается 4

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Последний раз редактировалось Habetdin, 28-10-2009 в 19:57.


Отправлено: 17:53, 28-10-2009 | #15


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Habetdin,
Цитата lxa85:
Habetdin,
Цитата Habetdin:if ((x*x+y*y<r2) and (x*x+y*y>r1)) then k:=k+1; »
найди 2 ошибки. »
Вся твоя программа, по сути, состоит из этого условия. Все что выше и ниже, не более чем обрамление, и ничего интересного не представляет. Т.е. про это вообще сейчас можно забыть, и не смотреть.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 20:10, 28-10-2009 | #16


Аватара для Habetdin


Автор проектов


Сообщения: 3649
Благодарности: 1498

Профиль | Сайт | Отправить PM | Цитировать


lxa85,
Цитата Habetdin:
if (x*x+y*y<r2) and (x*x+y*y>r1) then k:=k+1; »
Как я понял, 1 ошибка устранена (в синтаксисе команды?)?

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Отправлено: 20:47, 28-10-2009 | #17


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата Habetdin:
Как я понял, 1 ошибка устранена? »
Нет!
Конструкции
Код: Выделить весь код
if (x*x+y*y<r2) and (x*x+y*y>r1) then
    k:=k+1;
и
Код: Выделить весь код
if (x*x+y*y<r2) and (x*x+y*y>r1) then k:=k+1;
совершенно идентичны.
if <условие> then <оператор, действие> ;
Ищи ошибку дальше.
Если не найдешь, утром буду сильно ругаться.
( С приведением наглядного материала и разносом по всем статьям. )
Я предупредил.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 20:54, 28-10-2009 | #18


Аватара для Habetdin


Автор проектов


Сообщения: 3649
Благодарности: 1498

Профиль | Сайт | Отправить PM | Цитировать


lxa85, э... я скобки лишние убрал
Цитата lxa85:
С приведением наглядного материала и разносом по всем статьям. »
Паскаль неделю назад начал изучать по очень старой книжке

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Отправлено: 21:25, 28-10-2009 | #19


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата Habetdin:
э... я скобки лишние убрал »
Вряд ли там скобки, так как скобки могут быть управляющими, например, ((a + b) + (c + d )) + (e + f) Сначала выполнится сложение в скобках ((a + b) + (c + d )), потом в (e + f).

lxa85, Я думаю ты строг сильно, одно дело понимать что ищем, а другое дело, не знать и при этом искать ошибку.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 21:36, 28-10-2009 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Помогите с задачей /Pascal/

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Всё о 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




 
Переход