![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Багирка |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Реальное имя: Анастасия Репутация: ![]() ![]() ![]() |
задача такова: по заданным значениям координат центра окружности и числа N , построить окружность максимального радиуса, целиком помещающуюся в экран и разбить её на N заштрихованных разными типами штриховки полос равной ширины.
Пожалуйста помогите! зачет в субботу не успеваю все сделать... |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Сам хоть что-то пытался сделать?
Покажи. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Багирка |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Реальное имя: Анастасия Репутация: ![]() ![]() ![]() |
|
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
если бы было время... не знаю за что хвататься... ещё 6 прог надо написать... А!.. То есть, ты нам покажешь остальные шесть, да?.. Это радует! ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Багирка |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Реальное имя: Анастасия Репутация: ![]() ![]() ![]() |
А!.. То есть, ты нам покажешь остальные шесть, да?.. Это радует! ![]() покажу) тока вначале сделаю) а вот та программка (не знаю правильно ли)
Program oooo;
uses crt,graph;
var n,i,gd,gm,x0,y0,r,r1:integer;
begin
clrscr;
repeat
write('x0=');readln(x0);
write('y0=');readln(y0);
until (x0>0)and(x0<640)and(y0>0)and(y0<480);
write('N=');readln(n);
gd:=detect;
InitGraph(gd,gm,'d\tp\bgi');
r:=y0;
if (getmaxY-y0)<r then r:=(getmaxY-y0);
if x0<r then r:=x0;
if (getmaxX-x0)<r then r:=(getmaxX-x0);
Setcolor(4);
Circle(x0,y0,r);
for i:=n downto 1 do
begin
r1:=round(r*(i)/n);
SetFillStyle(i+1,i+1);
FillEllipse(x0,y0,r1,r1);
end;
readln;
closegraph;
end.
|
Ozzя |
![]()
Сообщение
#6
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 220 Пол: Мужской Репутация: ![]() ![]() ![]() |
А не так?
Эскизы прикрепленных изображений ![]() |
Lapp |
![]()
Сообщение
#7
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
А не так? Я тоже так подумал ![]() К тому же, в этом варианте нет неоднозначности с наклоном, что есть плюс ![]() Красота! -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Багирка |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Реальное имя: Анастасия Репутация: ![]() ![]() ![]() |
в этой проге где то ошибка!!! где???????????
|
Lapp |
![]()
Сообщение
#9
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
в этой проге где то ошибка!!! где??????????? Это зависит от того с каким уровнем строгости подходить. При желании можно сказать, что эта прога одна сплошная ошибка ![]() А вообще, желательно давать хоть какие-то дополнительные сведения о преполагаемой ошибке, а не заставлять гадать. Начать с того, что вряд ли реальный путь к bgi-файлу есть "d\tp\bgi" - скорее уж, он все же "d:\tp\bgi". Еще есть некоторая асимметрия: центр окружности может попасть на правый край экрана, но не может попасть на левый. Не знаю, можно ли это считать ошибкой, но я бы делал так: until (x0>=0)and(x0<=639)and(y0>=0)and(y0<=479);
А лучше так: until (0<=x0)and(x0<=GetMaxX)and(0<=y0)and(y0<=GetMaxY);
А если учесть, что нужно еще делать n полос, то и вот так: until (n<=x0)and(n<=GetMaxX-x0)and(n<=y0)and(n<=GetMaxY-y0);
Соответственно, n в этом случае нужно вводить раньше x0 и y0, и при вводе n тоже нужен контроль на ошибку (чтоб не вводили слишком большие числа). Некрасиво (но ни в коем случае не ошибка!), что ты злоупотребляешь скобками, вплоть до заключения в них одиночных переменных (типа r1:=round(r*(i)/n); ) Несколько (но не слишком) неприглядное форматирование... тоже не ошибка ![]() Больше никакой крамолы не вижу.. ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Багирка |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Женский Реальное имя: Анастасия Репутация: ![]() ![]() ![]() |
Это зависит от того с каким уровнем строгости подходить. При желании можно сказать, что эта прога одна сплошная ошибка ![]() А вообще, желательно давать хоть какие-то дополнительные сведения о преполагаемой ошибке, а не заставлять гадать. Начать с того, что вряд ли реальный путь к bgi-файлу есть "d\tp\bgi" - скорее уж, он все же "d:\tp\bgi". Еще есть некоторая асимметрия: центр окружности может попасть на правый край экрана, но не может попасть на левый. Не знаю, можно ли это считать ошибкой, но я бы делал так: until (x0>=0)and(x0<=639)and(y0>=0)and(y0<=479);
А лучше так: until (0<=x0)and(x0<=GetMaxX)and(0<=y0)and(y0<=GetMaxY);
А если учесть, что нужно еще делать n полос, то и вот так: until (n<=x0)and(n<=GetMaxX-x0)and(n<=y0)and(n<=GetMaxY-y0);
Соответственно, n в этом случае нужно вводить раньше x0 и y0, и при вводе n тоже нужен контроль на ошибку (чтоб не вводили слишком большие числа). Некрасиво (но ни в коем случае не ошибка!), что ты злоупотребляешь скобками, вплоть до заключения в них одиночных переменных (типа r1:=round(r*(i)/n); ) Несколько (но не слишком) неприглядное форматирование... тоже не ошибка ![]() Больше никакой крамолы не вижу.. ![]() хм... путь и правда я не так написала. а вот остальное... спасибо! не подумала... |
![]() ![]() |
![]() |
Текстовая версия | 15.04.2025 22:16 |