Программа, проверяющая поподает ли точка M(x,y) в заданную область |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Программа, проверяющая поподает ли точка M(x,y) в заданную область |
Kosmik |
Сообщение
#1
|
... Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: 0 |
Написать программу, проверяющую, попадает ли точка M(x,y) с координатами x и y в заданную область. Нарисовать заданный рисунок в графическом режиме и закрасить ту область, в которую попала точка.
Написать программу, которая по заданной области автоматически составляет Паскаль-программу, проверяющую, попадает ли точка M(x,y) с координатами x и y в эту область. Для решения задачи организуйте арифметический цикл с заранее известным числом повторений. Напишите, какие появились идеи на счет решения этой задачи... График я сейчас попытаюсь сделать...в остальном возникли затруднения. |
Archon |
Сообщение
#2
|
Профи Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: 24 |
Цитата Написать программу, которая по заданной области автоматически составляет Паскаль-программу, проверяющую, попадает ли точка M(x,y) с координатами x и y в эту область. А в каком виде задается область?-------------------- Close the World...txeN eht nepO
|
Kosmik |
Сообщение
#3
|
... Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: 0 |
|
Archon |
Сообщение
#4
|
Профи Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: 24 |
У тебя же два задания, верно? Как я понимаю, изображение относится к первому. Условие для него такое (я потестировал, но ты лучше сама проверь, мало ли):
(y <= 0) and (x <= 0) and ((sqr(x+2) + sqr(y) <= 4) xor ((y < (x+2)*2/3) and (y > (x+3.6641)*(-0.2837)-1.1094)))Нарисовать картинку на экране, думаю, дело техники. А вот со вторым заданием непонятно. Судя по всему на вход программе должна поступать некоторым образом заданная область, а на выходе она должна выдавать программу на Паскале. Вот я и спрашиваю, в каком виде должна задаваться эта область. Ну не рисунок же программа разбирать должна. Кстати, вот это: Цитата Для решения задачи организуйте арифметический цикл с заранее известным числом повторений. к какой задаче относится?-------------------- Close the World...txeN eht nepO
|
Kosmik |
Сообщение
#5
|
... Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: 0 |
График я нарисовала...какой уж получился...простой такой правда...
Правда я не знаю, правильно ли я его написала...или по другому нужно было сделать... |
Archon |
Сообщение
#6
|
Профи Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: 24 |
Рисует красиво
-------------------- Close the World...txeN eht nepO
|
Kosmik |
Сообщение
#7
|
... Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: 0 |
|
Lapp |
Сообщение
#8
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
я не знаю, правильно ли я его написала...или по другому нужно было сделать... ммммммммне кажется, что нужно было по-другому..Во-первых, отвыкай (лучше, еще не привыкнув) использовать абсолютные координаты на экране. Исключительный моветон. Правильно было бы задать соответствие математических координат (типа слева x1=-5, справа x2=5 и т.д.) и сделать функцию, которая переводит математические координаты в физические на эеране. Типа так: function xPh(x: tReal): integer; Во-вторых, тебе надо было закрасить область, куда попала точка (предварительно, видимо, запросив ее ввход). Куда ПОПАЛА, а не заданная область. Чувствуешь разницу? А в третьих, задание не очень ясное. Я имею в виду второе.. Как там задается область? ее что, сканировать нужно?? Я бы, может, придумал некий язык для задания и читал бы из файла тогда. В файле что-то типа такого: Код area circle -2 0 2 inner line 0 1.5 -2 0 right line 0 0 -2 0 left area .... че скажешь? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Kosmik |
Сообщение
#9
|
... Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: 0 |
|
Lapp |
Сообщение
#10
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Скажу что для меня пока все это сложно Не так страшен черт.. Цитата а на счет задания абсолютных координат я подумаю Думай, это дело хорошее )).Имея такие функции, которые я написал выше, ты можешь задавать, например, линию, так: Line(xPh(-1),yPh(2),xPh(3.5),yPh(-10.23)); Но это громоздко. Лучше, если ты сделаешь также проседурку типа такую: procedure MathLine(x1,y1,x2,y2: tReal); И вот тогда все станет намнооооого проще )). Такие же можно сделать для рисования всех остальных примитивов. И засунь их всех в смой личный юнит MathGraph . -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Kosmik |
Сообщение
#11
|
... Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: 0 |
Что-то у меня вообще ничего не получается если такие задачи нам дают на первом курсе то что будет дальше?..
|
Lapp |
Сообщение
#12
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Что-то у меня вообще ничего не получается если такие задачи нам дают на первом курсе то что будет дальше?.. Надя, ты чего?.. Так хорошо начинала, все сама делала.. Я смотрел - не мог нарадоваться (пошерсти-ка по форуму, посмотри, как другие поступают..).Что именно у тебя не выходит? Ты говори, разберемся вместе. Обязательно разберемся. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Kosmik |
Сообщение
#13
|
... Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: 0 |
Что именно у тебя не выходит? Я не могу построить график по координатам...вообще никак не получается...пробовала в той же программе прописать ту процедуру, которую Вы посоветовали..но как у новичка в прогроммировании..стали выходить ошибки...одну исправлю выходит другая...я уже запуталась..не могу понять что мне сейчас делать. Все что нарисовала переделывать или искать решение у второй задачи. Путаница в голове полнейшая Если бы я смогла как-то начертить график окружности и нарисовать треугольник по его вершинам...там наверное уже можно бы было думать на счет второй задачи. Щас буду думать как это все воплотить...может что-то и получится...надеюсь. |
Lapp |
Сообщение
#14
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
стали выходить ошибки...одну исправлю выходит другая...я уже запуталась..не могу понять что мне сейчас делать. Все что нарисовала переделывать или искать решение у второй задачи. Очень часто приходится переделывать всю программу, с начала до конца. Как ьы хорошо ни старался продумать заранее, все учесть невозможно. Тому, кто боится переделать все с нуля, в программировании делать нечего )). Обычно желание все переписать появляется и потом накапливается. В некоторый момент понимаешь, что все - по-старому уже нельзя. И процесс переделки далеко не всегда радужный..Цитата Если бы я смогла как-то начертить график окружности и нарисовать треугольник по его вершинам...там наверное уже можно бы было думать на счет второй задачи. Боюсь, я не совсем тебя понял. Что означает "начертить график окружности"? У тебя же есть процедура Circle. Просто нужно подставить туда математические координаты. Сложность возникает в случаеЬ когда масштаб по осям не совпадает. И тогда ясно, что на самом деле нужно использовать не Circle, а Ellipse с соответствующим пересчетом осей. Сможешь сама сделать или помочь? А треугольник по вершинам - просто с помощью MathLine .. Я что-то упускаю? ты только не паникуй )). без трудностей не бывает. да и неинтересно.. )) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Kosmik |
Сообщение
#15
|
... Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: 0 |
Очень часто приходится переделывать всю программу, с начала до конца. Как ьы хорошо ни старался продумать заранее, все учесть невозможно. Тому, кто боится переделать все с нуля, в программировании делать нечего )). Обычно желание все переписать появляется и потом накапливается. В некоторый момент понимаешь, что все - по-старому уже нельзя. И процесс переделки далеко не всегда радужный.. Переделать на боюсь, боюсь что не смогу доделать. Если честно, не люблю оставлять не закоченные дела. ночь просижу, но задачку сделаю. Боюсь, я не совсем тебя понял. Что означает "начертить график окружности"? У тебя же есть процедура Circle. Просто нужно подставить туда математические координаты. Сложность возникает в случаеЬ когда масштаб по осям не совпадает. И тогда ясно, что на самом деле нужно использовать не Circle, а Ellipse с соответствующим пересчетом осей. Сможешь сама сделать или помочь? Помогите, если вам будет это не трудно А треугольник по вершинам - просто с помощью MathLine .. Я что-то упускаю? Пыталась это сделать, но на этой строчке Line(xPh(x1),yPh(y1),xPh(x2),yPh(y2)) все время выходила какая-то ошибка(только уже не помню какая, слишком их много сегодня было ). Добавлено через 17 мин. окружность нарисовала:) щас процедуру MathLine попытаюсь прописать... |
Lapp |
Сообщение
#16
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Помогите, если вам будет это не трудно Во-первых, я там ошибся выше в переводе координат - извиняюсь.. Во-вторых, ниже я переделал все названия (это я люблю)). В третьих, вот: uses С эллипсом немного потом, ладно? Когда посплю чуток)). И зарубки на осях сделаем)). -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Kosmik |
Сообщение
#17
|
... Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: 0 |
А может попробуем мою переделать? окружность уже рисует по координатам только вот с треугольником возникли проблемки..программа вот в этих строчках указывает на ошибку...скорее всего из-за этих чисел 3.6 может знаете в чем ошибка?
line(x1+3*st,y1+3*st,x1-(3.6*st),y1+1.2*st); line(x1-3.6*st,y1+1.2*st,x1+2*st,y1-3*st);
Добавлено через 10 мин. Ошибку решила так line(x1+3*st,y1+3*st,x1-trunc(3.6*st),y1+trunc(1.2*st)); line(x1-trunc(3.6*st),y1+trunc(1.2*st),x1+2*st,y1-3*st); теперь все работает Теперь осталась вторая часть задания да? |
Kosmik |
Сообщение
#18
|
... Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: 0 |
вот моя программка все координаты абсолютные
graphik.pas ( 1.69 килобайт )
Кол-во скачиваний: 520
программка теперь отмечает ту область куда поподает точка а как сделать чтобы в определенную область попадала, еще не знаю Добавлено через 5 мин. просто в моей программке мне все понятно а вашей я запуталась Сообщение отредактировано: Kosmik - |
Kosmik |
Сообщение
#19
|
... Группа: Пользователи Сообщений: 31 Пол: Женский Реальное имя: Надежда Репутация: 0 |
Оставляю здесь мой "шедевр"
graphik.pas ( 1.97 килобайт )
Кол-во скачиваний: 514
Сделала все что смогла... |
Lapp |
Сообщение
#20
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Сделала все что смогла... Уверена? Я так и не понял, что тебе не было понятно в моем коде. Ты пишешь: "запуталась" - но не говоришь, в чем. Не получилось разметить оси координат? Заштриховать? Что именно вызвало трудность? Дело ведь в чем.. В абсолютные координаты можно пересчитать одну несложную картинку - ну, две.. А знаешь, как выглядит твоя картинка на моем мониторе (1920х1280)? Почему не заставить компьютер делать работу по пересчету координат? Он это умеет лучше людей )). Можно учесть разные размеры экрана. Можно вообще делать несколько окон с графиками на экране одновременно. Ты только представь, как бы ты стала рисовать, скажем, синус в левом окошке, косинус справа и экспоненту в центре.. Везде же нужно делать свой сдвиг! А программными же средствами - только не забывай переключать окна.. )) Не выглядит заманчивым? .. нет? Или ты думаешь, что программирование - это значит правильно вычислить число на калькуляторе, а потом занести его в программный код?.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Текстовая версия | 15.05.2024 9:53 |