![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Алиса Глупенькая |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 8 Пол: Женский Репутация: ![]() ![]() ![]() |
Помогите, пожалуйста, написать программу: пользователь вводит с клавиатуры число окружностей. Программа рисует данное число окружностей
|
sheka |
![]()
Сообщение
#2
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
readln(n); как-то так |
Алиса Глупенькая |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 8 Пол: Женский Репутация: ![]() ![]() ![]() |
Спасибо!!А как теперь сделать так чтобы все окружности полностью распологались на экране?
|
Алиса Глупенькая |
![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 8 Пол: Женский Репутация: ![]() ![]() ![]() |
задача: ввести с клавиатуры число окружностей и нарисовать их. А как сделать так чтобы все окружности полностью располагались на экране???
|
IUnknown |
![]()
Сообщение
#5
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Изменить "магические константы" в параметрах Random на функции, определяющие максимально возможные координаты для установленного у тебя граф. режима. То есть, если сделать так:
readln(n);, то окружности в принципе не смогут вылезти за пределы экрана: если радиус окружности = R, то координата X должна лежать в диапазоне R .. (getmaxx - R), чтобы окружность не вылезла из границ экрана (бррр... ужас, представил себе окружность, которая торчит из монитора)... Аналогично и для Y-координаты. В примере у Шеки также была небольшая вероятность того, что сгенерируется окружность с нулевым радиусом, ты ее не увидишь, и посчитаешь, что одна окружность вылезла за пределы экрана. Сообщение отредактировано: IUnknown - 1.06.2011 13:14 |
Алиса Глупенькая |
![]()
Сообщение
#6
|
Группа: Пользователи Сообщений: 8 Пол: Женский Репутация: ![]() ![]() ![]() |
Изменить "магические константы" в параметрах Random на функции, определяющие максимально возможные координаты для установленного у тебя граф. режима. То есть, если сделать так: readln(n);, то окружности в принципе не смогут вылезти за пределы экрана: если радиус окружности = R, то координата X должна лежать в диапазоне R .. (getmaxx - R), чтобы окружность не вылезла из границ экрана (бррр... ужас, представил себе окружность, которая торчит из монитора)... Аналогично и для Y-координаты. В примере у Шеки также была небольшая вероятность того, что сгенерируется окружность с нулевым радиусом, ты ее не увидишь, и посчитаешь, что одна окружность вылезла за пределы экрана. нет что то все равно не работает. Вот полный текст задания: В текстовом режиме ввести число окружностей и их радиус. Перейти в графический режим работы с драйвером EGA, что соответствует константе 3, с режимом работы EGALo, что соответствует константе 0 (на экране при таком режиме 640Х200 точек), вывести окружности на экран, меняя цвет прорисовки каждой. Окружности должны полностью располагаться на экране. и вот что у меня написано Program x1; uses crt, graph; const var driver, mode: integer; x, y: integer; r , k, i, n: integer; begin writeln ('VVeDITe r'); readln®; writeln ('vvedite n '); readln(n); begin driver:=3; mode:=0; initgraph (driver, mode, '' ); begin randomize; for i:=1 to n do begin rectangle(0,0,637,198); setviewport (0, 0, 637, 198, clipon); x:= random(getmaxx -2*r )+r; y:= random(getmaxy - 2*r )+r; setbkcolor(green); setcolor (succ(random(16))); circle(x, y, r); end; readln; end; end; end. В чем ошибка (он не все окружности на экран выводит) Добавлено через 5 мин. да еще они все теперь разного радиуса |
IUnknown |
![]()
Сообщение
#7
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата да еще они все теперь разного радиуса Эти сказки будешь рассказывать кому-нибудь другому. В твоей программе они НИКАК не могут быть разного радиуса, у тебя R не изменяется. Это первое. Второе: у тебя что, действительно инициализируется режим 640*200, или ты так хитро решила показать КАК БЫ инициализацию 640*200? Зачем строкаЦитата setviewport (0, 0, 637, 198, clipon); Зачем меняешь цвета окружностей? А если цвет случайно совпадет с цветом фона - ты окружность увидишь? Я - нет. И будешь считать, что программа отрабатывает неправильно, хотя она просто сделала то, что он нее просили. Хотя бы проверяй, если сгенерированный цвет совпадает с фоновым - то генерируй другой... Вот это: initgraph (driver, mode, '' );должно отрисовать N одинаковых окружностей белого цвета. Если этого не происходит - то выброси свой компилятор. А если происходит - то тогда уже добавляй изменение цвета, с учетом того что я написал выше. Кстати, твоя программа вообще не откомпилируется, ибо раздел const - пустой. Как же ты говоришь, что программа работает? Опять одно из двух: либо врешь, что работает, либо показываешь ДРУГУЮ программу. Ни в том ни в другом случае у меня нет желания тебе помогать. Сообщение отредактировано: IUnknown - 1.06.2011 14:38 |
Алиса Глупенькая |
![]()
Сообщение
#8
|
Группа: Пользователи Сообщений: 8 Пол: Женский Репутация: ![]() ![]() ![]() |
О боже! Сколько желчи! Я уже все разобрала сама, а не получалось потому что у меня сам паскаль иногда зависает чтоли или не знаю как это назвать но он прадолжает выполнять старую программу хотя написано уже другое.
Добавлено через 3 мин. А setviewport (0, 0, 637, 198, clipon) я применяла потому что думала что это поможет мне чтобы окружности за экран не вылезали, но это оказалось другое. Я же за помощью обращаюсь следовательно я в этом не разбираюсь, и уж тем боллее обманывать тут кого то мне точно нет смысла. |
TarasBer |
![]()
Сообщение
#9
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
> О боже! Сколько желчи!
Где желчь? Если ты даже его (ну жестковат, но всё в пределах нормы) стиля разговора испугалась, то что же дальше будет. Хорошо, что ты ещё Луговского не видела... Запомни - важна не форма, а содержание. Не бойся человека, если он хамит или грубит. Такие люди на самом деле наимеее опасны, потому что они прямо говорят, что думают, и всегда знаешь, чего от них ждать. А вот те, кто сладкими словами по ушам красиво умеют ездить - на самом деле как раз очень коварны и опасны, и от них хрен знаешь, чего ждать. Избегай таких людей. -------------------- |
sheka |
![]()
Сообщение
#10
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Цитата Если же ты ПОКАЗЫВАЕШЬ, что у тебя "вот такой экран, и вот так располагаются окружности" - то будь добра и координаты окружностей генерировать не по реальному разрешению, а по мнимому, по тому, которое ты подразумеваешь В данном случае по 637, 198 ? |
IUnknown |
![]()
Сообщение
#11
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата В данном случае по 637, 198 ? В данном случае - да. |
Алиса Глупенькая |
![]()
Сообщение
#12
|
Группа: Пользователи Сообщений: 8 Пол: Женский Репутация: ![]() ![]() ![]() |
> О боже! Сколько желчи! Где желчь? Если ты даже его (ну жестковат, но всё в пределах нормы) стиля разговора испугалась, то что же дальше будет. Хорошо, что ты ещё Луговского не видела... Запомни - важна не форма, а содержание. Не бойся человека, если он хамит или грубит. Такие люди на самом деле наимеее опасны, потому что они прямо говорят, что думают, и всегда знаешь, чего от них ждать. А вот те, кто сладкими словами по ушам красиво умеют ездить - на самом деле как раз очень коварны и опасны, и от них хрен знаешь, чего ждать. Избегай таких людей. Хорошо я учту, что это он на меня не ругался) Спасибо за помощь! |
![]() ![]() |
![]() |
Текстовая версия | 11.07.2025 1:25 |