помогите!Задачка с координатами |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
помогите!Задачка с координатами |
Серый |
Сообщение
#1
|
Гость |
Помогите все кто сможет !особенно прошу админов саита! Задали курсовую задачку(это в десятом то классе >:() ну в общем слушаите
Пусть дан круг радиусом r, с диаметром в точке C ,с декартовыми координатами x© и y© и дан квадрат со стороной a; верхний левый угол квадрата в точке x(P) и y(P), а его стороны параллельны осям координат. Написать программу вычисляющую кол-во точек с координатами типа integer находящихся внутри фигуры образованной пересечением круга и квадрата. С клавы вводится радиус r; сторона квадрата a; точка C(x©;y©) и точка P(x(P);y(P)); при ограничениях r(0..30); x©>50; y©<100; a[0..50]; x(P)>0; y(P)<100; Помогите заранее ОГРОМНОЕ СПАСИБО!!!!!!!!!!! ;D :D |
reill |
Сообщение
#2
|
Пионер Группа: Пользователи Сообщений: 52 Репутация: 0 |
А что такое х(С) и х(Р) - как координаты точки могут зависить от самой точки ???
Читай инструкцию лучше ;D Напиши дословно задание. з.ы. если это оно и было - сочувствую, если тебе что-то и напишат то это будет такого же плана ;D |
Серый |
Сообщение
#3
|
Гость |
нет по ходу это просто переменные типа у точки С (x;y) и у P(x;y) :-/ просто чтобы не путать x c x и y c y
а текст подлинный все как есть - бред, конечно ну это уже к нашим любимым учителям ;) |
reill |
Сообщение
#4
|
Пионер Группа: Пользователи Сообщений: 52 Репутация: 0 |
Воходит типа того:
Дан круг радиусом R , с диаметром(может центром???) в точке C(х,у) и дан квадрат со стороной a; верхний левый угол квадрата в точке Р(х,у), а его стороны параллельны осям координат(что вполне логично, это же квадрат!). Написать программу, вычисляющую кол-во точек, с координатами типа integer, находящихся внутри фигуры, образованной пересечением круга и квадрата. С клавиатуры вводится радиус r; сторона квадрата a; точка C(x;y) и точка P(x,у); при ограничениях 0<r<30); C(x,y): x>50; y<100; 0<a<50]; P(x,y): x>0; y<100; |
Серый |
Сообщение
#5
|
Гость |
Да выходит так !!!! с центром в С. Я это нарисовал,но нарисовать то несложно...может нужно наити площадь этого пересечения а через площадь уже как-то кол-во точек...единственное что пересечение получается всегда разное то один угол квадрата то другой получается в этом пересечении , блин закончу школу информатичку убью!!!!!!!!!
|
trminator |
Сообщение
#6
|
Четыре квадратика Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: 4 |
Код program tochki; var cx, cy, px, py, r, a : integer; i, j, N : integer; x, y : integer; begin N:=0; Write('Square (x, y, a): '); ReadLn(px, py, a); Write('Round (x, y, r): '); ReadLn(cx, cy, r); for i:=px to px+a do {Тестируем все точки квадрата} for j:=py to py-a do if sqr(i-cx)+sqr(j-cy)<=sqr(r) {(x-a)^2+(y-B)^2=r^2 - ур-е окружности} then inc(N); WriteLn(N) end. =================== Что-то вроде этого... Сообщение отредактировано: volvo - -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
Серый |
Сообщение
#7
|
Гость |
Пасибо !!!!!! вроде бы идет выводит какие-то цифры хотя это ли оно или нет :) :-/ Ну да ладно ! единственное что это за уравнение окружности что за a и b ? Но все равно СПАСИБО!!!!!!!!!
|
reill |
Сообщение
#8
|
Пионер Группа: Пользователи Сообщений: 52 Репутация: 0 |
Я тут тоже заканчиваю твою задачку.... ЖДи скоро скину свой вариант, прада он побольше)))
|
Vano |
Сообщение
#9
|
Гость |
Пасибо!!!!!!!! только там должно быть (py+a) так как отсчет x y в Pascal'е идет с левого верхнего угла то есть y к низу увеличивается
|
trminator |
Сообщение
#10
|
Четыре квадратика Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: 4 |
Уравнение окружности привел "просто так" чтобы показать что я там проверяю, а и b там - координаты центра, в программе они - соответственно сх и су. А систему координат я брал не Паскалевскую, а "школьную", хотя тут кому как нравится
Единственное - на больших значениях будет долго считать (рх может быть хоть миллион, если по условию), может, твоя курсовая в том и заключается чтобы сделать не такой тупой алгоритм? ;D -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
reill |
Сообщение
#11
|
Пионер Группа: Пользователи Сообщений: 52 Репутация: 0 |
Вот мой вариант...
Код program s; uses crt,GRAPH; var x1,y1,x2,y2,d,m,i,j: integer; r: 1..30; a: 1..50; k: longint; g: string; t: text; function prov: boolean; begin if (x1<x2-r) and (x2-r <x1+a) and (y1< y2-1) and (y2-r<y1+a) then prov:=true else prov:=false; end; begin clrscr; d:=0; assign(t,'koordinaty.txt'); reset(t); readln(t,r,a); readln(t,x1,y1,x2,y2); initgraph(d,m,'D:maditpbgi'); setcolor(14); rectangle(x1,y1,x1+a,y1+a); setfillstyle(1,14); floodfill(x1+1,y1+1,14); setcolor(5); circle(x2,y2,r); setfillstyle(1,5); floodfill(x2,y2,5); {if prov then begin outtextxy(10,300,'Koordinaty vvedeny pravilno!');} for i:=y1 to y1+a do for j:=x1 to x1+a do if getpixel(i,j)=5 then inc(k); {end else outtextxy(10,300,'Error ispravte koordinaty!!!');} str(k,g); outtextxy(30,320,g); readln; closegraph; end. С вариантои trminator некоторые ответы не сходятся по тестируй сам.. я данные через фаил вводил так просто удобней при отладки было, я думаю ты разберешся где исправить... Сообщение отредактировано: volvo - |
trminator |
Сообщение
#12
|
Четыре квадратика Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: 4 |
Цитата С вариантои trminator некоторые ответы не сходятся по тестируй сам.. хмм... reill, а ты границу учитываешь или нет? я - да, если ты не учитываешь то у нас ВСЕ будет различаться... А вообще интересная прога, нарисовать все это да и посмотреть, сколько там точек. А для школьной курсовой (по своему опыту знаю) как раз побольше красивой графики нужно - в 10 классе получил 2 место только благодаря красивой презентации в PowerPoint, которая крутилась во время моего рассказа, сама курсовая была... слабовата, не курсовая, а так - реферат (тема - НЛП) , даже проги никакой не было. А в 11классе была классная прога - "Оптимизация выработки электроэнергии на <Мой-Город> ТЭЦ", но никаких красот - ввод того, что имеем и вывод того, как сделать, на Паскале, черный экран с белыми буковками. Естественно, им не понравилось (понимали бы что... ) Так что забабахай это на Дельфях, чтобы с 3D-графикой :) и PowerPoint'ом ;D и вперед - защищать ;D ;D -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
Текстовая версия | 11.10.2024 8:42 |